-
-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Furnace Cart resupplying works incompatible with lithium #718
Comments
out.mp4i have no idea maybe a mod conflict? (also this made me notice the feature crashes on forge, which i may have forgotten to test) |
also ye sorry the code is jank. a.) make the furnace minecart an actuall inventory Fabrication currently has no way to do this is a safe manner and tbh probably? wont get one. b) make the hopper check for furnace carts and give it a fake entity with an inventory to act as an intermediary. i pulled a bit of a hack to make it not have to check for entities twice, which is better for performance. |
try 3.4.17 |
Ok, I found the culprit. The mod isn't compatible with lithium's default config. Specifically the rule mixin.block.hopper that seems to be doing a bunch of underlying changes to the hopper mechanic I'm not too well versed with how Minecraft works internally, but reading over the general purpose of each rule, this mixin might be the culprit? I'm guessing it's trying to optimise the minecart-hopper interaction by preventing minecarts with no inventory attached from triggering events that it deems unnecessary. In case you can't have it fixed in fabrication, I can try reporting it as a bug to lithium so they can take it into account, or at least provide a config rule that disables that specific mixin instead of every hopper optimisations at once. Worst case scenario, I just add one line of config to disable the whole thing and I should be good to go 👍 Still, since this rule is enabled by default with lithium, and it's installed in many modpacks it might cause confusion in the future. |
I'll add it to the feature description. there's not much else that can be resonably done about this. |
actually no wait i think 376 was fixed, so this should be do-able |
Thanks for debuging it. Try asking the lithium devs, they seem to have added handling for the wierd wool hopper mechanic so maybe thei've got an approach for this. (if they think compat code is required on both sides message me) Here's the relavent code: (FabInject is just mixins Inject but with a few extra checks) |
Lithium developer here. The mixin only influences lithium's internal movement listening system, which is supposed to tell hoppers to check for inventory minecarts after a nearby inventory minecart moved. Lithium has another feature that makes block entities (including hoppers) sleep under certain conditions, with certain events waking them up again (e.g. an inventory entity moving nearby). This might be incompatible with your additional hopper feature, because the sleeping and waking conditions are not implemented. I suggest testing with the line Here is an instruction how you can disable that lithium setting automatically when your mod is installed: For example: fabric-mod.json :
|
@2No2Name (mentioning in case gh didn't follow the issue) i probably should have repeated what was mentioned in 376 Fabrications features can generally be toggled while in game. so anything todo with fabric-mod.json is not an option. the way 376 ended up being resolved is this i tried doing something simmilar in this case, that being mostly just going arount and changing "instanceof Inventory" to "instance of Inventory | instanceof FabricationFurnaceMinecart" inside lithium. ideally we could get something that works without loosing the optimization and i think it's possible, although it probably requres changes in both mods? otherwise i'll just have to add a discraimer to the feature description to go manually disable the lithium optimization. |
I suggest to change your implementation to actually make your custom furnace minecart a vehicle inventory entity (similar to chest boat) that immediately acts when it receives an item, similarly to a composter that is getting filled up. Vanilla furnaces and similar blocks also already implement the possibility of disallowing item transfers under certain conditions. |
That would be the best solution. "immediately acts when it receives an item", makes some mods have dupe bugs, sadly an inventory has to be reversable at least in the same tick. (but that's not really relavent) Thanks for the advice, i immagine you deal with a fair bit of this. |
|
Of course you could also implement the updating during the furnace minecart tick, checking whether any items were inserted until then |
yup, just pointing it out in case you have any code which needs to be reconsidered. (it's not the important part, just a side note) |
Hi, thanks for fixing my issue yesterday!
I'm trying out the new release, but I can't figure out how furnace cart resupplying is supposed to work. I have a hopper pointed at a furnace cart with fuel inside of it, and the cart doesn't get filled up.
Reading the code, I don't understand what the trigger for refueling is.
I am on latest released version, and I have the new feature enabled in the config.
The text was updated successfully, but these errors were encountered: