Printer Instructions: Sugar, Cocoa, and Cake

Date: Sat, 16 Nov 2024
Stationeers Game Banner
Genre: Action, Indie, Simulation, Early Access
Developer: RocketWerkz
Release Date: Tue, 12 Dec 2017

More Stuff, Faster



In the near future we'll revisit kitchens and cooking, but currently we are working on several other aspects of the larger survival updates including new suits, jetpacks, and starting equipment. Instead of hoarding all of the new content for one massive cooking update, we’ve decided to add some of it into the current system, so players can grow some new plants, and craft some new foods in the meantime.

New Plants: Sugarcane and Cocoa




Cocoa plants like a warm environment, and while a dedicated room isn't necessary, the ideal growth temperatures of some normal plants may conflict, leading to some plants growing slower depending on your grow room temperature. Cocoa plants harvest into cocoa pods, which can be used in the reagent processor to create cocoa powder.

Sugarcane plants grows much like wheat and harvests into sugarcane, which can be used in the reagent processor to create sugar.

But what could you make with sugar and cocoa…?


Chocolate!




We’ve added a selection of sweet treats for your chubby little stationeer fingers to grab. Chocolate bars, regular cake, chocolate cake, and chocolate cereal bars count as high quality food, which additionally raise your mood if you are feeling down. We’ve also increased the trader’s egg and milk supply, so that you can bake some joy into your life at the cost of some credits, without raising chickens, or making soy milk. Some traders might also pay a high price for some of your delicious treats.


Printer Stack Instructions




Following on from our introduction of stack instructions for the Logic Sorter last week, IC can now ‘easily’ write their own print stack onto the printers. This includes internal count tracking of each print request, so keeping track of how many of something has printed is much easier. There are also several modifier instructions that will tell the printer to modify the next instruction, to do things such as to wait until this print is complete before continuing. We are trying to keep each instruction as simple and straightforward as possible, so that players can intuitively know what their code will do.

Another notable feature of the printer instructions is an exposed stack pointer. The Logic Sorter reads through and evaluates all of its memory to check for valid conditions each tick but Printers may hit an instruction that blocks them from continuing their internal processing, such as WaitUntilNextValid. This is notable in the instruction JumpIfNextInvalid, where instead of continuing on, or waiting upon finding a print job that cant complete, a stack address can be provided to jump to another section of prints that might be desired instead. So the stack pointer is exposed to the player here so they can write flow control into their print requests, with reduced overhead on the IC10 code.

The last interesting mechanic used in the printer instructions is MissingRecipeReagent. Notably, it is only valid from 54 to 62, and it is actually used as an instruction from the printer to the player, sending data back out. The printer can be stopped at a ExecutePrintRecipe if it was preceded by a WaitUntilNextValid, and it is missing resources to execute the print job. In this case, the printer will use those addresses to output the missing reagents via the payload of the MissingRecipeReagent.




Your support makes these updates possible



https://store.steampowered.com/bundle/2624/Stationeers_Complete_the_Set/

Change Log v.2.4966.22543



  • Fixed a bug where clicking on the scrollbar in the sorter motherboard's filter dropdown would close the dropdown, rendering it unusable.
  • Update scroll speed of the sorter motherboard's filter dropdowns to be 10x faster
  • Fixed AreaPowerControl, PoweredVent, ActiveVent and WallLight were not checking base.CanConstruct method. This meant they could be placed adjacent to other devices such that their power connections where connected.
  • Extended width of IC editor from 64 to 90 characters
  • Added first pass of Read/Write Stack addressable memory for all Fabrication Devices such as the autolathe. These enhancements allow device memory stack to have reserved memory locations in the stack. In the fabricators the Stack Pointer index is the last value in the stack. The remainder of the stack is split as used for the player to store requested transactions (such as make this prefabhash a number of times, or export everything in the device), and the other part the device will write missing reagents. This transaction is the reagent hash (not the prefab hash - the reagent hash i.e. Iron would be HASH("Iron")), and the total quantity needed as a ceil integer (so 0.5 would become 1). These details are shown in the stationpedia, and if the instructions are only expected in certain stack addresses you will be told. Currently there is no safety checking with specific memory addresses currently.
  • Added instructions to manufactuing devices, such as the Autolathe and other printers. The Printers now have their own internal stack that is used for different functions. The end of the stack is used as the "stack pointer", which is the "memory" for the device of where it is up to, when processing. The first bunch of addresses are used for "transactions". you can load payloads into this memory to have the printer do things for you. The second chunk of memory it will record things it is missing. If instructions are only to be used in certain addresses, the stationpedia will tell you so. Added FabricatorInstruction.DeviceSetLock, FabricatorInstruction.JumpToAddress, FabricatorInstruction.WaitUntilNextValid, FabricatorInstruction.JumpIfNextInvalid, FabricatorInstruction.ExecuteRecipe, FabricatorInstruction.EjectReagents/
  • Added CLRD. This is a variant of the CLR IC instruction, which will clear the stack memory of any device with writable memory. This variant allows directly referencing a device via ID rather than pin.
  • Fixed Clients can't interact with slot screw of SlotReader on Dedicated Server.
  • Fixed Resetting values on circuitBoards & Motherboards with screwdriver did not work reliably for all clients on dedicated server.
  • Fully Disabled Deprecated Research system as it was causing some saves (that had research disabled) to fail to load.
  • Fixed Credit cards spawning with zero credits in a new game. IQuantity was not implemented on the CreditCard so the QuantityAction was not applying.
  • Fixed hygiene and mood tooltips showing for robots.
  • Fixed stacker not splitting items correctly which could result in space ice having zero gas or de-gassed ore having its gasses duplicated. Stacker will now use the same logic as splitting from your hands which should handle all these cases rather than its own custom logic.
  • Fixed when starting a new game when your species was set to robot or zrillian in on a previous stable branch (i.e. you had old saved character data in your local PlayerCosmetics.xml) upon loading that game a second time your character would pass out. This was due to the old player cosmetics data not initialising correctly and causing the creation of a bugged character spawn.
  • Changed PumpkinPie provides 50% Mood Recovery.
  • Added ChocolateCake (50 Sugar, 50 flour, 5 milk, 1 Egg, 2 Cocoa Powder). High Nutrition, 100% Mood Recovery.
  • Added Cake (50 Sugar, 50 flour, 5 milk, 1 Egg). High Nutrition, 50% Mood Recovery.
  • Added ChocolateBar (10 Sugar, 2 Cocoa powder). Modest Nutrition, 100% Mood Recovery.
  • Added Chocolate CerealBar (50 flour, 1 Cocoa powder). Same nutrition value as CerealBar but also provides 50% Mood Recovery.
  • Balance pass on Growth times and life requirements for Cocoa Tree and Sugarcane. Cocoa is perennial grows at a similar rate to the pumpkin. Cocoa ideal growth temperature is 30-40degreesC. Sugarcane is annual and grows at a similar rate to wheat.
  • Added battery slot trigger (art asset)
  • Added advanced turbine jetpack for hardsuit. (art asset)
  • Reinstated throwing fixes from r22413 and r22419 that were removed for hotfix preparation.
  • Changed Flagged ResearchCapsules and ResearchMachine as not spawn-able.
  • Removed Calls to Research initialisation methods.
  • Removed PanelResearch and ResearchManger from scene.
  • Removed Saving of Research state.
  • Fixed robots mood being reduced on taking damage
  • Removed Research fields from PanelToolTip.
  • Removed References to PanelResearch in InventoryManager & GameManager.
  • Removed Research events.
  • Changed PanelTooTip is now initialised by GameManager instead of ResearchManager.
  • Fixed new emergency suit being green by removing the unused materials
  • Updated h2 combustor models and thumbnails to have output port on the correct side (the front rather than the left).
  • Changed Furnace to using animComponents instead of unity animator. This should resolve occasional issues where the imported ore would not be processed due to an animator event not firing.
  • Added enforcement of 4096 B limit for IC files
  • Added back slots, back interactables and their collider to other new suits
  • Fixed emergency suit collider size
  • Changed Advanced Furnace to use AnimComponents.
  • Fixed 'cant enter slot' tooltips getting stuck based on the last thing you hovered your mouse on. Also fixed a few cases where tooltips would be incorrect when dragging from a world slot as the 'last hovered' thing could become the parent item rather than the dragged item dependent on mouse placement.
  • Added crosshair, matter state labels, and freezing temperature to phase change diagram
  • Added PrinterInstruction.EjectReagent. This allows you to specify the reagent you want to eject. All reagents of that type will be ejected. The stack will not advance until this is complete.
  • Fixed PrinterInstruction was not correctly applied by ProgrammableChip
  • Moved slots away from having hard coded indexes. The indexes are now serialized when the suit slots are created.
  • Added ability to have a suit that does not have a waste tank slot at all. When this is the case the suit will dump filtered gas directly into the world atmosphere.
  • Refactored TradeDataHelper.HandleBuyItem to more cleanly handle edge-cases around transaction of quantities of stackables and ingots. This allowed for removal of edge-case code for trading in QuantityAction which was interfering with new spawn-condition logic.
  • Changed tightened grid bounds of wind turbine.
  • Fixed a bug where the last segment on the phase change diagram wasn't drawing directly up as it should have
  • Fixed Clients can't interact with Mode screw on Speaker on Dedicated Server.
  • Fixed Atmospherics devices with IC slots could not read the gas ratio values of the new gasses/liquids.
  • Fixed On/Off animation position of valve on shower.
  • Fixed On/Off animation position of valve on powered shower.
  • Fixed batch logic instructions that use the name would not consider default names, only custom names. Now the default name generates a hash and is used in the comparison.
  • Added LogicType.NameHash. This returns the 32bit hash of the objects name.
  • Changed IC source code was being stored as char rather than bytes, despite being parsed at ASCII. This change has no functional impact for player scripts, as the text was already being parsed. This means that 1 character will only take 1 byte. Network synchronization has been moved to sync the bytes, rather than the characters. This substantially reduces the network impact of synchronizing IC script changes in multiplayer.
  • Added Turbine Jetpack
  • Updated Animation Component to take in a time value rather than a speed value. This was required so that a single component could move several objects synchronously.
  • Fixed dynamic crate open/close animation speed was too fast and was not matching up with its audio.
  • Fixed days passed text not initializing correctly when starting a new game.
  • Added Prototype scripts and prefabs for networked window shutters.
  • Moved where the 'you have survived for x days' message is published. Will now appear after the InventoryManager is initialized to guarantee the player and their days lived have been loaded.
  • Fixed days lived not being correctly synced for clients. This could result in clients' days lived value resetting to 0 every time they join a game.
  • Updated seed bag texture for watermelon, blueberry and strawberry. (Art asset)
  • Added new seed bag models for watermelon, blueberry and strawberry (art asset)
  • Added new models and textures for blueberry tree, strawberry tree, and watermelon plant (art asset)
  • Changed scale for cooked corn and tomato
  • Updated advanced tablet tooltip to show both cartridge slots rather than just the first one.
  • Changed scale for cooked corn and tomato (Art asset)
  • Committed automatic prefab changes for rocket manufactory (animSpeed was renamed to time).
  • Tweaked cooked corn and cooked tomato meshes and updated blueprints and thumbnails for both.
  • Fixed Reseting Programming Motherboard with screwdriver causes it to retain reference to an old circuit holder
  • Fixed LandingPad pieces do not consume grinder battery when deconstructed.
  • Fixed Traders could buy items from vendingMachine import and export slots. 1st Item bought from the trader would spawn in VendingMachine export slot.
  • Fixed Vending machine would export incorrect item after buying from the trader.
  • Added new food models and a texture. (Art asset)
  • Changed color and mesh of growth stages for sugarcane tree. (Art asset)
  • Added new sugar and cocoa models and textures
  • Updated the locking behaviour on the electric jetpack's battery slot. It now also prevents swapping from the player's inventory, and is colored red when locked.
  • Added roatry animation to the electric jetpack's turbines
  • Removed deprecated auto-generation code for reagents.cs from WorldManager.
  • Added Sugar and Cocoa Reagents.
  • Added cocoa and sugar seed bag and plant prefabs plus their related blueprints, thumbnails and materials
  • Removed some unused models
  • Moved some consumables prefabs to their appropriate folder
  • Updated english xml for sugar and cocoa assets.
  • Fixed incorrectly set up toxic gas types for cocoa and sugar cane
  • Added CocoaPowder Item.
  • Added cocoa and sugar cane plants and seeds to the world manager
  • Committed auto prefab changes (IsLocked field was added)
  • Moved cocoa powder material out of resources folder
  • Added MoodBonus to INutrition to allow certain foods like chocolate to boost your mood when eaten
  • Fixed cocoa and sugar plant prefabs having the incorrect grip type
  • Fixed cocoa and sugar reagent contents were incorrectly set to corn
  • Added Sugar, Eggs, Flour and Cocoa Selling items to consumables trader.
  • Added Sugar and Cocoa selling items to Food Trader and cocoa pod and sugarcane buys to food trader.
  • Added Sugar and Cocoa recipes to reagentgrinder.xml
  • Added Sugar Item.
  • Added models and texture for chocolate bar and cake (art asset)
  • Added chocolate cereal bar (art asset)
  • Fixed incorrect quantity tooltip in trader UI on microwave ingredient reagent quantities.
  • Fixed autolathe's ExecuteRecipe could override the stack pointer at address 63 if enough reagents were missing from a recipe.
  • Fixed autolathe's ExecuteRecipe was reusing the first valid address (index 54) to put its missing reagents, overriding the previous value if more than one reagent was missing. It will now correctly fill up addresses 54 to 62.
  • Fixed stationpedia descriptions for autolathe instructions DeviceSetLock and JumpToAddress were reporting the incorrect 'valid address space'
  • Updated size of cake, uncooked cake and chocolate cake. (art asset)
  • Fixed missing reagent instructions for the autolathe were not being converted correctly in some cases to a double. Have changed it to use LongToDouble rather than auto casting.
  • Increased size of cakes
  • Added Exposed Mood Bonus of food to stationpedia. Some High quality foods will restore mood when eaten. Eating raw foods will lower mood.
  • Added Buy and sell orders for new foods to traders.
  • Fixed PackByteInt32 was shifting the incorrect number of bytes making it impossible to read hashes from the autolathe's missing reagent instruction.
  • Fixed SourceCode Fragment byte count being sent as a byte when it had a max size of 512. (this meant the code longer than 128bytes would not send correctly)
  • Fixed Code input window not counting line break characters when counting the code size. (this meant that some characters could get stripped if the total length INCLUDING line break characters exceeded the size limit.
  • Fixed possible nre when opening the menu before the initial world save has completed

Write your comment!