Flaxbeard / ImmersivePetroleum

Oil and oil processing for Immersive Engineering
https://minecraft.curseforge.com/projects/immersive-petroleum
54 stars 58 forks source link

Other IE addons and the projector #119

Open malte0811 opened 6 years ago

malte0811 commented 6 years ago
  1. Currently only the "partial" excavator multiblocks don't have projectors (see here), but there is no way for addons to disable them for their multiblocks. A specific usecase would be the mechanical multiblocks I'm adding to Industrial Wires: they consist of an arbitrary chain of "parts", so there is no fixed structure. I have multiblocks (that can't be formed) for the individual components and an example of a complete multiblock, but those are a separate class (loaded from an MC structure file and only intended to be used in the manual and maybe things like the projector).
  2. Would it be possible to use the block states to render the multiblock rather than the item stacks? The manual does this, and I rely on it in Industrial Wires: The Marx generator contains some wire connectors and wallmounts that have to be placed in a specific orientation. Since item stacks don't mean much in that situation I currently use bricks in those positions and convert them into the proper block states in getBlockstateFromStack. I can (and probably will) improve the situation on my side by replacing the bricks with roughly correct items, but the orientation still won't be right.

Ideally these changes would not add a compile-time dependency (unless IP is one some maven/jenkins server?). One way to do this that some frame mods used in 1.7.10 would be a method (with a fixed name that would not usually be used, e.g. _shouldAddProjector) in the multiblock class that is called using reflection if it exists (since this would only be called in getSubItems the performance impact of reflection shouldn't matter).

malte0811 commented 6 years ago

The second issue is at least partially relevant for the feedthrough multiblock (in IE) as well, the connectors don't render properly.