diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/MachineCasingBlock.java b/src/main/java/com/raoulvdberge/refinedstorage/block/MachineCasingBlock.java index b6193a7c8..5198cff21 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/MachineCasingBlock.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/MachineCasingBlock.java @@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.util.BlockUtils; import net.minecraft.block.Block; -// TODO DROPS public class MachineCasingBlock extends Block { public MachineCasingBlock() { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/block/QuartzEnrichedIronBlock.java b/src/main/java/com/raoulvdberge/refinedstorage/block/QuartzEnrichedIronBlock.java index 6db4786c3..f27accbae 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/block/QuartzEnrichedIronBlock.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/block/QuartzEnrichedIronBlock.java @@ -4,7 +4,6 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.util.BlockUtils; import net.minecraft.block.Block; -// TODO DROPS public class QuartzEnrichedIronBlock extends Block { public QuartzEnrichedIronBlock() { super(BlockUtils.DEFAULT_ROCK_PROPERTIES); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ItemEnergyForge.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ItemEnergyForge.java deleted file mode 100644 index 3d548dacb..000000000 --- a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ItemEnergyForge.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.raoulvdberge.refinedstorage.integration.forgeenergy; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraftforge.energy.EnergyStorage; - -public class ItemEnergyForge extends EnergyStorage { - private static final String NBT_ENERGY = "Energy"; - - private ItemStack stack; - - public ItemEnergyForge(ItemStack stack, int capacity) { - super(capacity, Integer.MAX_VALUE, Integer.MAX_VALUE); - - this.stack = stack; - this.energy = stack.hasTag() && stack.getTag().contains(NBT_ENERGY) ? stack.getTag().getInt(NBT_ENERGY) : 0; - } - - @Override - public int receiveEnergy(int maxReceive, boolean simulate) { - int received = super.receiveEnergy(maxReceive, simulate); - - if (received > 0 && !simulate) { - if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); - } - - stack.getTag().putInt(NBT_ENERGY, getEnergyStored()); - } - - return received; - } - - @Override - public int extractEnergy(int maxExtract, boolean simulate) { - int extracted = super.extractEnergy(maxExtract, simulate); - - if (extracted > 0 && !simulate) { - if (!stack.hasTag()) { - stack.setTag(new CompoundNBT()); - } - - stack.getTag().putInt(NBT_ENERGY, getEnergyStored()); - } - - return extracted; - } -} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ItemEnergyStorage.java b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ItemEnergyStorage.java new file mode 100644 index 000000000..f1935e712 --- /dev/null +++ b/src/main/java/com/raoulvdberge/refinedstorage/integration/forgeenergy/ItemEnergyStorage.java @@ -0,0 +1,30 @@ +package com.raoulvdberge.refinedstorage.integration.forgeenergy; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraftforge.common.util.INBTSerializable; +import net.minecraftforge.energy.EnergyStorage; + +public class ItemEnergyStorage extends EnergyStorage implements INBTSerializable { + private static final String NBT_ENERGY = "Energy"; + + public ItemEnergyStorage(ItemStack stack, int capacity) { + super(capacity, Integer.MAX_VALUE, Integer.MAX_VALUE); + + this.energy = stack.hasTag() && stack.getTag().contains(NBT_ENERGY) ? stack.getTag().getInt(NBT_ENERGY) : 0; + } + + @Override + public CompoundNBT serializeNBT() { + CompoundNBT tag = new CompoundNBT(); + + tag.putInt(NBT_ENERGY, getEnergyStored()); + + return tag; + } + + @Override + public void deserializeNBT(CompoundNBT tag) { + this.energy = tag.getInt(NBT_ENERGY); + } +} diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/EnergyItem.java b/src/main/java/com/raoulvdberge/refinedstorage/item/EnergyItem.java index bb8a88d9e..a8662b959 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/EnergyItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/EnergyItem.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.item; -import com.raoulvdberge.refinedstorage.item.capabilityprovider.CapabilityProviderEnergy; +import com.raoulvdberge.refinedstorage.item.capabilityprovider.EnergyCapabilityProvider; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -31,7 +31,7 @@ public abstract class EnergyItem extends Item { @Override public ICapabilityProvider initCapabilities(ItemStack stack, CompoundNBT tag) { - return new CapabilityProviderEnergy(stack, energyCapacity); + return new EnergyCapabilityProvider(stack, energyCapacity); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ControllerBlockItem.java b/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ControllerBlockItem.java index 62122b1e1..9c3b4f888 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ControllerBlockItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ControllerBlockItem.java @@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RS; import com.raoulvdberge.refinedstorage.block.ControllerBlock; import net.minecraft.item.Item; +// 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()); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/EnergyBlockItem.java b/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/EnergyBlockItem.java index 4d7d2446d..9df795fd3 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/EnergyBlockItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/EnergyBlockItem.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.item.blockitem; -import com.raoulvdberge.refinedstorage.item.capabilityprovider.CapabilityProviderEnergy; +import com.raoulvdberge.refinedstorage.item.capabilityprovider.EnergyCapabilityProvider; import net.minecraft.block.Block; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.BlockItem; @@ -34,7 +34,7 @@ public abstract class EnergyBlockItem extends BlockItem { @Override public ICapabilityProvider initCapabilities(ItemStack stack, CompoundNBT tag) { - return new CapabilityProviderEnergy(stack, energyCapacity.get()); + return new EnergyCapabilityProvider(stack, energyCapacity.get()); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ItemBlockEnergyItem.java b/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ItemBlockEnergyItem.java index 04363c117..6d329480a 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ItemBlockEnergyItem.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/blockitem/ItemBlockEnergyItem.java @@ -1,7 +1,7 @@ package com.raoulvdberge.refinedstorage.item.blockitem; import com.raoulvdberge.refinedstorage.block.BlockBase; -import com.raoulvdberge.refinedstorage.item.capabilityprovider.CapabilityProviderEnergy; +import com.raoulvdberge.refinedstorage.item.capabilityprovider.EnergyCapabilityProvider; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraftforge.common.capabilities.ICapabilityProvider; @@ -23,7 +23,7 @@ public abstract class ItemBlockEnergyItem extends ItemBlockBase { @Override public ICapabilityProvider initCapabilities(ItemStack stack, CompoundNBT tag) { - return new CapabilityProviderEnergy(stack, energyCapacity); + return new EnergyCapabilityProvider(stack, energyCapacity); } /* TODO @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/capabilityprovider/CapabilityProviderEnergy.java b/src/main/java/com/raoulvdberge/refinedstorage/item/capabilityprovider/EnergyCapabilityProvider.java similarity index 85% rename from src/main/java/com/raoulvdberge/refinedstorage/item/capabilityprovider/CapabilityProviderEnergy.java rename to src/main/java/com/raoulvdberge/refinedstorage/item/capabilityprovider/EnergyCapabilityProvider.java index 686200891..fab5b734d 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/capabilityprovider/CapabilityProviderEnergy.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/capabilityprovider/EnergyCapabilityProvider.java @@ -1,6 +1,6 @@ package com.raoulvdberge.refinedstorage.item.capabilityprovider; -import com.raoulvdberge.refinedstorage.integration.forgeenergy.ItemEnergyForge; +import com.raoulvdberge.refinedstorage.integration.forgeenergy.ItemEnergyStorage; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraftforge.common.capabilities.Capability; @@ -12,12 +12,12 @@ import net.minecraftforge.energy.IEnergyStorage; import javax.annotation.Nonnull; import javax.annotation.Nullable; -public class CapabilityProviderEnergy implements ICapabilityProvider { +public class EnergyCapabilityProvider implements ICapabilityProvider { private ItemStack stack; private int energyCapacity; - private LazyOptional capability = LazyOptional.of(() -> new ItemEnergyForge(stack, energyCapacity)); + private LazyOptional capability = LazyOptional.of(() -> new ItemEnergyStorage(stack, energyCapacity)); - public CapabilityProviderEnergy(ItemStack stack, int energyCapacity) { + public EnergyCapabilityProvider(ItemStack stack, int energyCapacity) { this.stack = stack; this.energyCapacity = energyCapacity; } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java b/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java index 2d36e0474..78e94e27e 100644 --- a/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/tile/ControllerTile.java @@ -221,6 +221,7 @@ public class ControllerTile extends TileBase implements ITickableTileEntity, INe } } + /* if (type == ControllerBlock.Type.NORMAL) { if (!RS.CONFIG.getController().getUseEnergy()) { this.energy.setStored(this.energy.getCapacity()); @@ -231,7 +232,8 @@ 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(); diff --git a/src/main/resources/assets/refinedstorage/models/block/controller/controller_nearly.json b/src/main/resources/assets/refinedstorage/models/block/controller/controller_nearly.json index 13e17586b..99cab458b 100644 --- a/src/main/resources/assets/refinedstorage/models/block/controller/controller_nearly.json +++ b/src/main/resources/assets/refinedstorage/models/block/controller/controller_nearly.json @@ -1,6 +1,82 @@ { - "parent": "refinedstorage:block/cube_all_cutout", + "parent": "block/cube", "elements": [ + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "down": { + "texture": "#all", + "cullface": "down" + }, + "up": { + "texture": "#all", + "cullface": "up" + }, + "north": { + "texture": "#all", + "cullface": "north" + }, + "south": { + "texture": "#all", + "cullface": "south" + }, + "west": { + "texture": "#all", + "cullface": "west" + }, + "east": { + "texture": "#all", + "cullface": "east" + } + } + }, + { + "from": [ + 0, + 0, + 0 + ], + "to": [ + 16, + 16, + 16 + ], + "faces": { + "up": { + "texture": "#cutout", + "cullface": "up" + }, + "down": { + "texture": "#cutout", + "cullface": "down" + }, + "north": { + "texture": "#cutout", + "cullface": "north" + }, + "south": { + "texture": "#cutout", + "cullface": "south" + }, + "west": { + "texture": "#cutout", + "cullface": "west" + }, + "east": { + "texture": "#cutout", + "cullface": "east" + } + } + }, { "from": [ 0, diff --git a/src/main/resources/data/refinedstorage/loot_tables/blocks/controller.json b/src/main/resources/data/refinedstorage/loot_tables/blocks/controller.json new file mode 100644 index 000000000..d719001b0 --- /dev/null +++ b/src/main/resources/data/refinedstorage/loot_tables/blocks/controller.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage:controller", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "Energy", + "target": "Energy", + "op": "replace" + } + ] + }, + { + "function": "minecraft:set_contents", + "entries": [ + { + "type": "minecraft:dynamic", + "name": "minecraft:contents" + } + ] + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/loot_tables/blocks/machine_casing.json b/src/main/resources/data/refinedstorage/loot_tables/blocks/machine_casing.json new file mode 100644 index 000000000..52590a133 --- /dev/null +++ b/src/main/resources/data/refinedstorage/loot_tables/blocks/machine_casing.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage:machine_casing" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/refinedstorage/loot_tables/blocks/quartz_enriched_iron_block.json b/src/main/resources/data/refinedstorage/loot_tables/blocks/quartz_enriched_iron_block.json new file mode 100644 index 000000000..dbe6ab5ea --- /dev/null +++ b/src/main/resources/data/refinedstorage/loot_tables/blocks/quartz_enriched_iron_block.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "refinedstorage:quartz_enriched_iron_block" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file