Add property override so controller energy status is rendered correctly.
This commit is contained in:
@@ -2,13 +2,24 @@ package com.raoulvdberge.refinedstorage.item.blockitem;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.block.ControllerBlock;
|
||||
import com.raoulvdberge.refinedstorage.tile.ControllerTile;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.energy.CapabilityEnergy;
|
||||
import net.minecraftforge.energy.IEnergyStorage;
|
||||
|
||||
// TODO: Set energy state on controller item texture...
|
||||
public class ControllerBlockItem extends EnergyBlockItem {
|
||||
public ControllerBlockItem(ControllerBlock block) {
|
||||
super(block, new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1), block.getType() == ControllerBlock.Type.CREATIVE, () -> RS.CONFIG.getController().getCapacity());
|
||||
|
||||
this.setRegistryName(block.getRegistryName());
|
||||
this.addPropertyOverride(new ResourceLocation("energy_type"), (stack, world, entity) -> {
|
||||
IEnergyStorage storage = stack.getCapability(CapabilityEnergy.ENERGY).orElse(null);
|
||||
if (storage != null) {
|
||||
return ControllerTile.getEnergyType(storage.getEnergyStored(), storage.getMaxEnergyStored()).ordinal();
|
||||
}
|
||||
|
||||
return ControllerBlock.EnergyType.OFF.ordinal();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -221,7 +221,6 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
if (type == ControllerBlock.Type.NORMAL) {
|
||||
if (!RS.CONFIG.getController().getUseEnergy()) {
|
||||
this.energy.setStored(this.energy.getCapacity());
|
||||
@@ -232,8 +231,7 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
|
||||
}
|
||||
} else if (type == ControllerBlock.Type.CREATIVE) {
|
||||
this.energy.setStored(this.energy.getCapacity());
|
||||
}*/
|
||||
this.energy.setStored(5000);
|
||||
}
|
||||
|
||||
boolean canRun = canRun();
|
||||
|
||||
@@ -587,7 +585,7 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
|
||||
return getEnergyType(this.energy.getStored(), this.energy.getCapacity());
|
||||
}
|
||||
|
||||
private static ControllerBlock.EnergyType getEnergyType(int stored, int capacity) {
|
||||
public static ControllerBlock.EnergyType getEnergyType(int stored, int capacity) {
|
||||
int energy = getEnergyScaled(stored, capacity, 100);
|
||||
|
||||
if (energy <= 0) {
|
||||
|
@@ -1,3 +1,28 @@
|
||||
{
|
||||
"parent": "refinedstorage:block/controller/controller_off"
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"energy_type": 0
|
||||
},
|
||||
"model": "refinedstorage:block/controller/controller_off"
|
||||
},
|
||||
{
|
||||
"predicate": {
|
||||
"energy_type": 1
|
||||
},
|
||||
"model": "refinedstorage:block/controller/controller_nearly_off"
|
||||
},
|
||||
{
|
||||
"predicate": {
|
||||
"energy_type": 2
|
||||
},
|
||||
"model": "refinedstorage:block/controller/controller_nearly_on"
|
||||
},
|
||||
{
|
||||
"predicate": {
|
||||
"energy_type": 3
|
||||
},
|
||||
"model": "refinedstorage:block/controller/controller_on"
|
||||
}
|
||||
]
|
||||
}
|
Reference in New Issue
Block a user