Posts by Chocohead

    They all use the same base recipe manager which can definitely use NBT. It does sometimes need slightly different passing in though to ensure it checks the way you need, but for what you're doing it shouldn't. The extractor has an air cell to empty cell recipe which means universal fluid cells definitely do work as inputs too.


    Try something like...

    Java
    IRecipeInput input = Recipes.inputFactory.forStack(IC2Items.getItem("fluid_cell", "water"), 50);
    ItemStack outputA = IC2Items.getItem("fluid_cell", "ic2heavy_water");
    ItemStack outputB = IC2Items.getItem("fluid_cell");
    outputB.setCount(49); //49 Empty universal fluid cells output
    Recipes.centrifuge.addRecipe(input, Arrays.asList(outputA, outputB), null, false);

    Very nice, quite the range of new reactor related things you're adding. Certainly matches the name well ;)


    I feel like you probably could have got away with just changing the texture IC2's uranium ore wanted rather than completely replacing it, but whatever. If you'd like I could look into getting your RTG E-net problem working too so you can have native EU generation too rather than depending on a way to do RF back to EU.

    What error are you getting when doing Cell -> Cell + Empty Cells? There's been a lot of work (some quite recently) to make universal fluid cells work in machine recipes, especially if a different recipe using them already exists (hence the compressor recipe is fine).


    As an aside, getSubItems was patched to be universal in 1.11 and was made universal in 1.12 so you're clear to use it without concern.

    Since this seems to be lacking a conclusive answer, IEnergySource#getOfferedEnergy determines how much power is drawn from an energy source each tick. Accounting for the maximum the tier from IEnergySource#getSourceTier can transfer per tick, the energy net will then try to move that to any connected energy storage or sinks. If any power is transferred IEnergySource#drawEnergy(double) will be called to allow you to drain any buffer the source may have.


    There isn't a direct way to announce you want to send power every second rather than tick, but it is possible to emulate the effort. For example you could send 20 packets in one go and count the 19 ticks afterwards to send nothing, but the resulting power flow would be quite jerky if watched flowing into a batbox. Alternatively you could over send if the adjacent blocks should have meant more power previously should have been emitted to make the difference up (but this requries the normal output to have some extra headroom compared to the maximum output for the tier). There's probably other methods too, all depends on how the neighbouring blocks effect the output.

    You'll want to use the -dev version if you're in a development environment. The normal one will have all the vanilla fields and methods re-obfuscated which will cause you issues like you've found.

    Try something like

    The default ElectricItemManager should be fine, as it interpolates the amount of remaining charge into damage. So long as you're careful within setDamage (ie expect a second call to it if you do ElectricItem.manager.use within it) or implement ICustomDamageItem so you can call the super methods directly from that, it should work as you need.