Stationeers

Stationeers

Not enough ratings
DiRCI [StationeersLaunchPad]
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
1.011 MB
30 Oct @ 4:25pm
1 Change Note ( view )

Subscribe to download
DiRCI [StationeersLaunchPad]

Description
DiRCI
Adds DiRCI to Stationeers, A logistics robot.

DiRCI (or Directed Relocatable Cargo Interface) is a controllable rover which can be ordered to move to a point, pull from items from vending machines, and deposite items into a nearby chute inlet.

Having 10 storage slots and good speed, DiRCI can help connect your outposts without literally having to connect them.

DiRCI requires programming knowledge to operate, but like AIMeE it can make your life as a Stationeer a little easier.


Deep mining site a little too far - DiRCI can pick up those ores.

Don't feel like setting up passive power generation at the outpost - DiRCI can deliver batteries or fuel canisters then pickup the empty.

Regular sorting systems too simple for you - DiRCI... DiRCI isn't really meant for that, but if you can make DiRCI sort, more power to you.

DiRCI's kit is produced via tier two Electronics Printer:
Time: 30
Energy: 2000
Gold: 5
Copper: 5
Silicon: 20
Steel: 20
Electrum: 10

DiRCI has 8 modes:

0 = Idle = Do nothing
1 = MoveToTarget = Move to target in straight line, returns to Idle when reached
2 = LoadCargo = Pull items from the Vending Machine, Small Vending Machine, or Refrigerated Vending Machine it is facing
3 = UnloadCargo = Unload in chute input or chute bin within 2 meters / 1.25 large grids
4 = CargoFull = Automaticly assigned if full while trying to load Cargo
5 = CargoEmpty = Automaticly assigned if empty while trying to unload Cargo
6 = PathFromStack = See Below
7 = StackPointArrived = Automaticly assigned, used for telling when to move through the stack

PathFromStack: A path point is stored in the stack in four addresses.
[PathID] - Must be greater than zero
[TargetX] - This point's X position
[TargetY] - This point's Y position
[TargetZ] - This point's Z position

The absolute value of Setting minus one is the stack position. (1 or -1 is position 0 in the stack)

#1. When PathFromStack is assigned from any mode below 4, check the stack at the stack position for PathID, if it is not valid, go to Idle.
#2. If it is valid store it, then read up and set TargetX, TargetY, TargetZ and begin moving.
#3. When StackPointArrived is assigned, check 4 up if Setting was positive or 4 down if negative.
#4. If the value at the checked address equals the stored PathID, jump to its position and goto step #2.
#5. Othersize go to Idle.

Important notes:
*Will move to Idle if LoadCargo or UnloadCargo do not have a target.
*When its checking the stack and would go out of range, it will move to Idle.
*Assigning mode 6 with Setting at zero will move it to Idle.
*DiRCI's stack can hold 128 entries, or 32 points.
*The stack cannot be interacted with via transmitter, it must be interfaced via the IC10 socket.

Questions and Answers:
*Why use Setting: So you can easily read it and the game automatically saves it.
*Why can't Setting be zero: positive or negative Setting is used to tell which direction to jump through the stack, there is no negative zero.
*Power usage: About 16W, though it should be 15W based on the code.
Calculated runtime based on Joule capicity:
Small Battery: about 37 minutes.
Large Battery: about 5 hours.
Nuclear Battery: about 40 hours.
Small Wireless Cell: about 12 minutes. how I got 16W draw.
Big Wireless Cell: about 1 hour and 15 minutes.


Not gonna lie, this mod under the hood is frankenstein's monster of AIMeE's code, whatever bits of functions that I needed from other objects, and my own code stitching to make everything function how I want.
I was pretty much working from zero because I have a bad habit of trying to learn modding for games with completely different architecture from eachother.

But it does work, DiRCI remembers key things between saves, should sync between players (I have not tested it) and hasn't crashed my game nor tanked performance.


And Thank you to those in the Stationeers Modding Discord for answering my questions.


Before I forget this is a StationeersLaunchPad Plugin Mod. It requires Bepinex to be installed with the StationeersLaunchPad plugin.
See: https://github.com/StationeersLaunchPad/StationeersLaunchPad/


Have a good day!
Popular Discussions View All (1)
0
30 Oct @ 4:33pm
PINNED: Errors and Issues
TrippleTrip
2 Comments
Masteroink 4 hours ago 
GOAT
pagilu2401 15 hours ago 
This is the perfect mod.