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.RS;
|
||||||
import com.raoulvdberge.refinedstorage.block.ControllerBlock;
|
import com.raoulvdberge.refinedstorage.block.ControllerBlock;
|
||||||
|
import com.raoulvdberge.refinedstorage.tile.ControllerTile;
|
||||||
import net.minecraft.item.Item;
|
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 class ControllerBlockItem extends EnergyBlockItem {
|
||||||
public ControllerBlockItem(ControllerBlock block) {
|
public ControllerBlockItem(ControllerBlock block) {
|
||||||
super(block, new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1), block.getType() == ControllerBlock.Type.CREATIVE, () -> RS.CONFIG.getController().getCapacity());
|
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.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 (type == ControllerBlock.Type.NORMAL) {
|
||||||
if (!RS.CONFIG.getController().getUseEnergy()) {
|
if (!RS.CONFIG.getController().getUseEnergy()) {
|
||||||
this.energy.setStored(this.energy.getCapacity());
|
this.energy.setStored(this.energy.getCapacity());
|
||||||
@@ -232,8 +231,7 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
|
|||||||
}
|
}
|
||||||
} else if (type == ControllerBlock.Type.CREATIVE) {
|
} else if (type == ControllerBlock.Type.CREATIVE) {
|
||||||
this.energy.setStored(this.energy.getCapacity());
|
this.energy.setStored(this.energy.getCapacity());
|
||||||
}*/
|
}
|
||||||
this.energy.setStored(5000);
|
|
||||||
|
|
||||||
boolean canRun = canRun();
|
boolean canRun = canRun();
|
||||||
|
|
||||||
@@ -587,7 +585,7 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe
|
|||||||
return getEnergyType(this.energy.getStored(), this.energy.getCapacity());
|
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);
|
int energy = getEnergyScaled(stored, capacity, 100);
|
||||||
|
|
||||||
if (energy <= 0) {
|
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