I was planning to try and implement support for Vanilla hoppers as they're covered by Automate, and it would increase compatability with certain mods e.g. Walk of Life.
There's a number of ways I think this could be implemented but to me it seems like a hopper should contain some elements of both GameStorage and ObjectMachine.
The hopper is a type of chest, so we wouldn't necessarily care about the MachineState of the ObjectMachine it's attached to, instead preferring to load it with materials to feed the attached machines recipies until we're out of materials or the chest is full. Unlike a chest - since the hopper would be feeding the attached machine instead of the Junimo - we would need to keep track of the following useful data encompassed by ObjectMachine:
- The IsStillPresent status of the attached machine, to decide if we should keep loading the hopper.
- The recipe returned by GetRecipeFromChest. We'd have to proxy the call to this function through the hopper to the attached machine and return the result.
- The category of the attached machine, to decide which Junimos could add items to the hopper
- The result of IsCompatibleWithJunimo
There are some other quirks, but I'm not sure if it actually matters to solve for them:
- If a hopper and its attached machine are on the same network, do we care to stop Junimos from interacting with the machine?
- Should Junimos be allowed to remove items from a Hopper in order to feed other machines on the network which take the same items for their recipies?
I'm interested to hear your feedback.
I was planning to try and implement support for Vanilla hoppers as they're covered by Automate, and it would increase compatability with certain mods e.g. Walk of Life.
There's a number of ways I think this could be implemented but to me it seems like a hopper should contain some elements of both
GameStorageandObjectMachine.The hopper is a type of chest, so we wouldn't necessarily care about the
MachineStateof theObjectMachineit's attached to, instead preferring to load it with materials to feed the attached machines recipies until we're out of materials or the chest is full. Unlike a chest - since the hopper would be feeding the attached machine instead of the Junimo - we would need to keep track of the following useful data encompassed by ObjectMachine:There are some other quirks, but I'm not sure if it actually matters to solve for them:
I'm interested to hear your feedback.