FarmPlots are missing core features.

Daniel den Otter - Kuperus shared this bug 41 hours ago
Investigating

The FarmPlot block has been added, but not at all implemented in existing systems, like other blocks in the game.

Example 1: When adding farm plot to a hotbar, you can do things like setting a colour. But add a blockgroup containing only farmplots, you can no longer set things you could have set on a single farm plot. Other block groups don't follow this same logic, where a group is more limited than a single block, so this is an oversight.


Example 2: There is no way to read the status of a FarmPlot block using in-game scripting. The only interface found in documentation is: 'IMyFarmPlotLogic', but this is not usable in in-game scripts. So we cannot read plant growth, status, if something is planted, ect. Other blocks in the game can atleast be read with scripts, like door status, tank/container levels, ect ect, so this is an oversight. A workaround for this is to read the 'DetailedInfo' property, but this is not updated properly when a plant is harvested, so it still reads as "Plant: Wheat, Growth status: 100%", for example, even when there is no more plant present.

Replies (2)

photo
1

re Example 2.

The mentioned IMyFarmPlotLogic interface isnt a block type but an Entity Component interface type. From there you can get some information on the status of the farmplot. There is also an IMyResourceStorageComponent attached (again an entity component) which manages the water level of the block, and an IMyLightingComponent for the inbuilt light.

an example of retrieving and using these interfaces: (and the wiki page talking about Entity Components in general)


var farmplot = GridTerminalSystem.GetBlockWithName("Farm Plot");
IMyFarmPlotLogic fpLogic;
if (farmplot.Components.TryGet(out fpLogic))
{
    Echo($"planted: {fpLogic.IsPlantPlanted}");
}
IMyResourceStorageComponent fpStorage;
if (farmplot.Components.TryGet(out fpStorage))
{
    Echo($"water: {fpStorage.ResourceCapacity*fpStorage.FilledRatio}l");
}
IMyLightingComponent fpLighting;
if (farmplot.Components.TryGet(out fpLighting))
{
    Echo($"light color: {fpLighting.Color}");
}

photo
1

Hello Engineers,

Thank you for reaching our forum.

Regarding point No. 1, please take a look at this Feedback thread, which discusses the same issue. It is already being addressed internally:

https://support.keenswh.com/spaceengineers/pc/topic/49432-add-group-actions-for-lights-to-the-farm-plots

As for point No. 2, this topic requires further internal discussion within our teams, so we kindly ask for your patience while we work on it. We will share an update as soon as we have more information.

Thank you for your understanding.

Kind regards,

Keen Software House: QA Department

Leave a Comment
 
Attach a file
Access denied