Jump to content
(AMC)

Minecraft mod pack created for Asterion Minecraft

This is a legacy project. Support for this project was discontinued in January 2016.

While Ginever Entertainment no longer provides any official support for this project, you may be able to find help within the wider Ginever community. For more information, feel free to ask in the forums or in our Discord server.

Sign in to follow this  
AMC-749 (Bug)

Railcraft IC2 multi-block machines not connecting to IC2 Cables (Steam Turbine)

Description

Railcraft steam boiler housing not connecting to IC2 EU Power cables.

Steam boiler not functional as result. 

steamhousing.png

Related Issues

This issue is not related to any other issues

User Feedback

Recommended Comments

Tinytimrob
Current Assignee Project Manager Programming Lead

Posted

Marked issue as in development

Looks like IEmitterDelegate and ISinkDelegate are not implementing IEnergyTile (maybe a development oversight by CJ?).

In addition to the Steam Turbine, this may also break the energy-net cable connections for the Electric Feeder, Energy Loader, and Energy Unloader  (although right now it seems confined to Steam Turbine so I'm thinking this is broken somehow due to the turbine's multi-block nature)

Share this comment


Link to comment
Share on other sites
Tinytimrob
Current Assignee Project Manager Programming Lead

Posted

Alright, some more digging!

Railcraft tile entities themselves do not implement any IC2 API functions. This is so that the TE classes can be instantiated without IC2 being present. Instead, it uses delegates for IC2 functionality, and whenever add-to-enet and remove-from-enet are called, it passes them through to the delegate. Normally this works fine because all of the delegates added/removed from the e-net implement IEnergyTile (and where necessary either IEnergyAcceptor or IEnergyEmitter).

In the case of the Steam Turbine though, Railcraft can't do this as-is, because the turbine is a multi-block structure. IC2 uses a "meta-delegate" to wrap multiple energy tiles together in the case you have a machine implemented as a multi-block structure and that must also be used here. The implementation of this provided by Railcraft for Steam Turbine is "TileIC2MultiEmitterDelegate". IC2 asks this implementation to return a list of all of the IEnergyTile subtiles it is encapsulating - and it attempts to do this by returning an unmodified list of all turbine component tiles.

The problem is that none of of the turbine component tiles implement IEnergyTile because this behaviour is normally delegated. Consequently none of the subtiles get added to the energy-net, and no power gets generated. Even if the subtiles get modified to implement IEnergyTIle this is STILL not enough because the cable connection relies on the subtile implementing IEnergyAcceptor or IEnergyEmitter and either of those interface implementations allowing a cable connection in that direction.

I modified the component tiles to implement IEnergyAcceptor/IEnergyEmitter where necessary... and while this did make the Steam Turbine work correctly, the RC delegation system ended up broken.

Looking to see if there is a better solution before pushing ahead with this one.

Share this comment


Link to comment
Share on other sites
Tinytimrob
Current Assignee Project Manager Programming Lead

Posted

Marked issue as resolved in version Fondant 27 DEV9.2 [r5100] (77b3c0d873c3)

Resolved in 27 DEV9.2

Share this comment


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Create a new GineverAccount today. It's easy!

Register a new account

Sign In with GineverAccount 5.1

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...