mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-03-11 12:15:35 +00:00
commit
f806dee99f
@ -6,6 +6,7 @@ import java.util.Random;
|
|||||||
|
|
||||||
import com.hbm.handler.MultiblockHandlerXR;
|
import com.hbm.handler.MultiblockHandlerXR;
|
||||||
import com.hbm.handler.ThreeInts;
|
import com.hbm.handler.ThreeInts;
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
import com.hbm.tileentity.IPersistentNBT;
|
||||||
|
|
||||||
@ -32,7 +33,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
|
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public abstract class BlockDummyable extends BlockContainer implements ICustomBlockHighlight {
|
public abstract class BlockDummyable extends BlockContainer implements ICustomBlockHighlight, ICopiable {
|
||||||
|
|
||||||
public BlockDummyable(Material mat) {
|
public BlockDummyable(Material mat) {
|
||||||
super(mat);
|
super(mat);
|
||||||
@ -507,4 +508,31 @@ public abstract class BlockDummyable extends BlockContainer implements ICustomBl
|
|||||||
for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(meta - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1);
|
for(AxisAlignedBB aabb : this.bounding) event.context.drawOutlinedBoundingBox(getAABBRotationOffset(aabb.expand(exp, exp, exp), 0, 0, 0, ForgeDirection.getOrientation(meta - offset).getRotation(ForgeDirection.UP)).getOffsetBoundingBox(x - dX + 0.5, y - dY, z - dZ + 0.5), -1);
|
||||||
ICustomBlockHighlight.cleanup();
|
ICustomBlockHighlight.cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
int[] pos = findCore(world, x, y, z);
|
||||||
|
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
|
if (tile instanceof ICopiable)
|
||||||
|
return ((ICopiable) tile).getSettings(world, pos[0], pos[1], pos[2]);
|
||||||
|
else
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
int[] pos = findCore(world, x, y, z);
|
||||||
|
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
|
if (tile instanceof ICopiable)
|
||||||
|
((ICopiable) tile).pasteSettings(nbt, index, world, player, pos[0], pos[1], pos[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
int[] pos = findCore(world, x, y, z);
|
||||||
|
TileEntity tile = world.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
|
if (tile instanceof ICopiable)
|
||||||
|
return ((ICopiable) tile).infoForDisplay(world, x, y, z);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,8 +4,11 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.hbm.blocks.IAnalyzable;
|
import com.hbm.blocks.IAnalyzable;
|
||||||
|
import com.hbm.extprop.HbmPlayerProps;
|
||||||
|
import com.hbm.handler.HbmKeybinds;
|
||||||
import com.hbm.inventory.fluid.FluidType;
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||||
|
import com.hbm.items.machine.ItemFluidIDMulti;
|
||||||
import com.hbm.tileentity.network.TileEntityPipeBaseNT;
|
import com.hbm.tileentity.network.TileEntityPipeBaseNT;
|
||||||
|
|
||||||
import api.hbm.fluid.IPipeNet;
|
import api.hbm.fluid.IPipeNet;
|
||||||
@ -14,6 +17,7 @@ import net.minecraft.block.Block;
|
|||||||
import net.minecraft.block.BlockContainer;
|
import net.minecraft.block.BlockContainer;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
@ -36,13 +40,24 @@ public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct, IA
|
|||||||
IItemFluidIdentifier id = (IItemFluidIdentifier) player.getHeldItem().getItem();
|
IItemFluidIdentifier id = (IItemFluidIdentifier) player.getHeldItem().getItem();
|
||||||
FluidType type = id.getType(world, x, y, z, player.getHeldItem());
|
FluidType type = id.getType(world, x, y, z, player.getHeldItem());
|
||||||
|
|
||||||
if(!player.isSneaking()) {
|
if(!HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_CTRL) && !player.isSneaking()) {
|
||||||
|
|
||||||
TileEntity te = world.getTileEntity(x, y, z);
|
TileEntity te = world.getTileEntity(x, y, z);
|
||||||
|
|
||||||
if(te instanceof TileEntityPipeBaseNT) {
|
if(te instanceof TileEntityPipeBaseNT) {
|
||||||
TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te;
|
TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te;
|
||||||
|
|
||||||
|
if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) {
|
||||||
|
Item item = player.getHeldItem().getItem();
|
||||||
|
if (item instanceof ItemFluidIDMulti) {
|
||||||
|
if (id.getType(world, x, y, z, player.getHeldItem()) != pipe.getType()) {
|
||||||
|
ItemFluidIDMulti.setType(player.getHeldItem(), pipe.getType(), true);
|
||||||
|
world.playSoundAtEntity(player, "random.orb", 0.25F, 0.75F);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(pipe.getType() != type) {
|
if(pipe.getType() != type) {
|
||||||
pipe.setType(type);
|
pipe.setType(type);
|
||||||
return true;
|
return true;
|
||||||
@ -51,9 +66,21 @@ public class FluidDuctBase extends BlockContainer implements IBlockFluidDuct, IA
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
TileEntity te = world.getTileEntity(x, y, z);
|
TileEntity te = world.getTileEntity(x, y, z);
|
||||||
|
|
||||||
if(te instanceof TileEntityPipeBaseNT) {
|
if(te instanceof TileEntityPipeBaseNT) {
|
||||||
TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te;
|
TileEntityPipeBaseNT pipe = (TileEntityPipeBaseNT) te;
|
||||||
|
|
||||||
|
if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT)) {
|
||||||
|
Item item = player.getHeldItem().getItem();
|
||||||
|
if (item instanceof ItemFluidIDMulti) {
|
||||||
|
if (id.getType(world, x, y, z, player.getHeldItem()) != pipe.getType()) {
|
||||||
|
ItemFluidIDMulti.setType(player.getHeldItem(), pipe.getType(), true);
|
||||||
|
world.playSoundAtEntity(player, "random.orb", 0.25F, 0.75F);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
changeTypeRecursively(world, x, y, z, pipe.getType(), type, 64);
|
changeTypeRecursively(world, x, y, z, pipe.getType(), type, 64);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -137,6 +137,7 @@ public class ToolRecipes {
|
|||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bismuth_tool, 1), new Object[] { "TBT", "SRS", "SCS", 'T', TA.nugget(), 'B', ModItems.nugget_bismuth, 'S', ANY_RESISTANTALLOY.ingot(), 'R', ModItems.reacher, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP) });
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', ModItems.sat_chip, 'I', GOLD.ingot() });
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.sat_designator, 1), new Object[] { "RRD", "PIC", " P", 'P', GOLD.plate(), 'R', Items.redstone, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'D', ModItems.sat_chip, 'I', GOLD.ingot() });
|
||||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker });
|
CraftingManager.addShapelessAuto(new ItemStack(ModItems.sat_relay), new Object[] { ModItems.sat_chip, ModItems.ducttape, ModItems.radar_linker });
|
||||||
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.settings_tool), new Object[] { " P ", "PCP", "III", 'P', IRON.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG), 'I', ModItems.plate_polymer });
|
||||||
|
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ANY_RUBBER.ingot(), 'G', KEY_CLEARGLASS});
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette, 1), new Object[] { " L", " G ", "G ", 'L', ANY_RUBBER.ingot(), 'G', KEY_CLEARGLASS});
|
||||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', RUBBER.ingot(), 'B', ModBlocks.glass_boron});
|
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pipette_boron, 1), new Object[] { " P", " B ", "B ", 'P', RUBBER.ingot(), 'B', ModBlocks.glass_boron});
|
||||||
|
|||||||
@ -25,6 +25,9 @@ public class HbmKeybinds {
|
|||||||
public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category);
|
public static KeyBinding hudKey = new KeyBinding(category + ".toggleHUD", Keyboard.KEY_V, category);
|
||||||
public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category);
|
public static KeyBinding dashKey = new KeyBinding(category + ".dash", Keyboard.KEY_LSHIFT, category);
|
||||||
public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category);
|
public static KeyBinding trainKey = new KeyBinding(category + ".trainInv", Keyboard.KEY_R, category);
|
||||||
|
public static KeyBinding copyToolAlt = new KeyBinding(category + ".copyToolAlt", Keyboard.KEY_LMENU, category);
|
||||||
|
|
||||||
|
public static KeyBinding copyToolCtrl = new KeyBinding(category + ".copyToolCtrl", Keyboard.KEY_LCONTROL, category);
|
||||||
|
|
||||||
public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category);
|
public static KeyBinding reloadKey = new KeyBinding(category + ".reload", Keyboard.KEY_R, category);
|
||||||
public static KeyBinding gunPrimaryKey = new KeyBinding(category + ".gunPrimary", -100, category);
|
public static KeyBinding gunPrimaryKey = new KeyBinding(category + ".gunPrimary", -100, category);
|
||||||
@ -54,6 +57,8 @@ public class HbmKeybinds {
|
|||||||
ClientRegistry.registerKeyBinding(craneLeftKey);
|
ClientRegistry.registerKeyBinding(craneLeftKey);
|
||||||
ClientRegistry.registerKeyBinding(craneRightKey);
|
ClientRegistry.registerKeyBinding(craneRightKey);
|
||||||
ClientRegistry.registerKeyBinding(craneLoadKey);
|
ClientRegistry.registerKeyBinding(craneLoadKey);
|
||||||
|
ClientRegistry.registerKeyBinding(copyToolAlt);
|
||||||
|
ClientRegistry.registerKeyBinding(copyToolCtrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@ -101,10 +106,11 @@ public class HbmKeybinds {
|
|||||||
CRANE_LEFT,
|
CRANE_LEFT,
|
||||||
CRANE_RIGHT,
|
CRANE_RIGHT,
|
||||||
CRANE_LOAD,
|
CRANE_LOAD,
|
||||||
|
TOOL_ALT,
|
||||||
|
TOOL_CTRL,
|
||||||
GUN_PRIMARY,
|
GUN_PRIMARY,
|
||||||
GUN_SECONDARY,
|
GUN_SECONDARY,
|
||||||
GUN_TERTIARY,
|
GUN_TERTIARY,
|
||||||
RELOAD,
|
RELOAD
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
29
src/main/java/com/hbm/interfaces/ICopiable.java
Normal file
29
src/main/java/com/hbm/interfaces/ICopiable.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.hbm.interfaces;
|
||||||
|
|
||||||
|
import com.hbm.util.Either;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public interface ICopiable {
|
||||||
|
|
||||||
|
NBTTagCompound getSettings(World world, int x, int y, int z);
|
||||||
|
|
||||||
|
void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z);
|
||||||
|
|
||||||
|
default String getSettingsSourceID(Either<TileEntity, Block> self) {
|
||||||
|
Block block = self.isLeft() ? self.left().getBlockType() : self.right();
|
||||||
|
return block.getUnlocalizedName();
|
||||||
|
}
|
||||||
|
|
||||||
|
default String getSettingsSourceDisplay(Either<TileEntity, Block> self) {
|
||||||
|
Block block = self.isLeft() ? self.left().getBlockType() : self.right();
|
||||||
|
return block.getLocalizedName();
|
||||||
|
}
|
||||||
|
|
||||||
|
default String[] infoForDisplay(World world, int x, int y, int z){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1248,6 +1248,7 @@ public class ModItems {
|
|||||||
public static Item coupling_tool;
|
public static Item coupling_tool;
|
||||||
public static Item drone_linker;
|
public static Item drone_linker;
|
||||||
public static Item radar_linker;
|
public static Item radar_linker;
|
||||||
|
public static Item settings_tool;
|
||||||
|
|
||||||
public static Item template_folder;
|
public static Item template_folder;
|
||||||
public static Item journal_pip;
|
public static Item journal_pip;
|
||||||
@ -4513,6 +4514,7 @@ public class ModItems {
|
|||||||
coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool");
|
coupling_tool = new ItemCouplingTool().setUnlocalizedName("coupling_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":coupling_tool");
|
||||||
drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker");
|
drone_linker = new ItemDroneLinker().setUnlocalizedName("drone_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":drone_linker");
|
||||||
radar_linker = new ItemRadarLinker().setUnlocalizedName("radar_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radar_linker");
|
radar_linker = new ItemRadarLinker().setUnlocalizedName("radar_linker").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radar_linker");
|
||||||
|
settings_tool = new ItemSettingsTool().setUnlocalizedName("settings_tool").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":settings_tool");
|
||||||
|
|
||||||
key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key");
|
key = new ItemKey().setUnlocalizedName("key").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":key");
|
||||||
key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red");
|
key_red = new ItemCustomLore().setUnlocalizedName("key_red").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":key_red");
|
||||||
@ -6684,6 +6686,7 @@ public class ModItems {
|
|||||||
GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName());
|
GameRegistry.registerItem(power_net_tool, power_net_tool.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName());
|
GameRegistry.registerItem(analysis_tool, analysis_tool.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName());
|
GameRegistry.registerItem(coupling_tool, coupling_tool.getUnlocalizedName());
|
||||||
|
GameRegistry.registerItem(settings_tool, settings_tool.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName());
|
GameRegistry.registerItem(dosimeter, dosimeter.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName());
|
GameRegistry.registerItem(geiger_counter, geiger_counter.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName());
|
GameRegistry.registerItem(digamma_diagnostic, digamma_diagnostic.getUnlocalizedName());
|
||||||
|
|||||||
139
src/main/java/com/hbm/items/tool/ItemSettingsTool.java
Normal file
139
src/main/java/com/hbm/items/tool/ItemSettingsTool.java
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
package com.hbm.items.tool;
|
||||||
|
|
||||||
|
import com.hbm.extprop.HbmPlayerProps;
|
||||||
|
import com.hbm.handler.HbmKeybinds;
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.packet.PlayerInformPacket;
|
||||||
|
import com.hbm.util.ChatBuilder;
|
||||||
|
import com.hbm.util.Either;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
|
import net.minecraft.util.StatCollector;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ItemSettingsTool extends Item {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) {
|
||||||
|
NBTTagList displayInfo;
|
||||||
|
if(!(entity instanceof EntityPlayerMP)) return;
|
||||||
|
|
||||||
|
if(((EntityPlayer) entity).getHeldItem() == stack && stack.hasTagCompound()) {
|
||||||
|
EntityPlayer player = ((EntityPlayer) entity);
|
||||||
|
int delay = stack.stackTagCompound.getInteger("inputDelay");
|
||||||
|
delay++;
|
||||||
|
displayInfo = stack.stackTagCompound.getTagList("displayInfo", 10);
|
||||||
|
|
||||||
|
if (HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_ALT) && delay > 4) {
|
||||||
|
int index = stack.stackTagCompound.getInteger("copyIndex") + 1;
|
||||||
|
if(index > displayInfo.tagCount() - 1) index = 0;
|
||||||
|
stack.stackTagCompound.setInteger("copyIndex", index);
|
||||||
|
delay = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.stackTagCompound.setInteger("inputDelay", delay);
|
||||||
|
if(world.getTotalWorldTime() % 5 != 0) return;
|
||||||
|
|
||||||
|
if(displayInfo.tagCount() > 0){
|
||||||
|
for (int j = 0; j < displayInfo.tagCount(); j++) {
|
||||||
|
NBTTagCompound nbt = displayInfo.getCompoundTagAt(j);
|
||||||
|
EnumChatFormatting format = stack.stackTagCompound.getInteger("copyIndex") == j ? EnumChatFormatting.AQUA : EnumChatFormatting.YELLOW;
|
||||||
|
PacketDispatcher.wrapper.sendTo(
|
||||||
|
new PlayerInformPacket(ChatBuilder.startTranslation(nbt.getString("info"))
|
||||||
|
.color(format)
|
||||||
|
.flush()
|
||||||
|
, 897 + j, 4000 ), (EntityPlayerMP) entity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||||
|
list.add("Can copy the settings (filters, fluid ID, etc) of machines");
|
||||||
|
list.add("Shift right-click to copy, right click to paste");
|
||||||
|
list.add("Ctrl click on pipes to paste settings to multiple pipes");
|
||||||
|
/*if(stack.stackTagCompound != null) {
|
||||||
|
NBTTagCompound nbt = stack.stackTagCompound;
|
||||||
|
if (nbt.hasKey("tileName")){
|
||||||
|
list.add(ChatBuilder.startTranslation(nbt.getString("tileName")).color(EnumChatFormatting.BLUE).flush().getFormattedText());
|
||||||
|
} else {
|
||||||
|
list.add(EnumChatFormatting.RED + " None ");
|
||||||
|
}
|
||||||
|
|
||||||
|
}*/
|
||||||
|
//the translation wont fucking work I swear to allah
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float fX, float fY, float fZ) {
|
||||||
|
Either<TileEntity, Block> schrodinger = getCopyInfoSource(world, x, y, z);
|
||||||
|
if(schrodinger == null) return false;
|
||||||
|
ICopiable copiable = schrodinger.cast();
|
||||||
|
|
||||||
|
if(player.isSneaking()) {
|
||||||
|
stack.stackTagCompound = copiable.getSettings(world, x, y, z);
|
||||||
|
if(stack.stackTagCompound != null) {
|
||||||
|
|
||||||
|
stack.stackTagCompound.setString("tileName", copiable.getSettingsSourceID(schrodinger));
|
||||||
|
stack.stackTagCompound.setInteger("copyIndex", 0);
|
||||||
|
stack.stackTagCompound.setInteger("inputDelay", 0);
|
||||||
|
String[] info = copiable.infoForDisplay(world, x, y, z);
|
||||||
|
if (info != null) {
|
||||||
|
NBTTagList displayInfo = new NBTTagList();
|
||||||
|
for (String str : info) {
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
nbt.setString("info", str);
|
||||||
|
displayInfo.appendTag(nbt);
|
||||||
|
}
|
||||||
|
stack.stackTagCompound.setTag("displayInfo", displayInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (world.isRemote) {
|
||||||
|
player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA)
|
||||||
|
.nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA)
|
||||||
|
.next("] ").color(EnumChatFormatting.DARK_AQUA)
|
||||||
|
.next("Copied settings of " + copiable.getSettingsSourceDisplay(schrodinger)).color(EnumChatFormatting.AQUA).flush());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
player.addChatMessage(ChatBuilder.start("[").color(EnumChatFormatting.DARK_AQUA)
|
||||||
|
.nextTranslation(this.getUnlocalizedName() + ".name").color(EnumChatFormatting.DARK_AQUA)
|
||||||
|
.next("] ").color(EnumChatFormatting.DARK_AQUA)
|
||||||
|
.next("Copy failed, machine has no settings tool support: " + copiable.getSettingsSourceDisplay(schrodinger)).color(EnumChatFormatting.RED).flush());
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if(stack.hasTagCompound()) {
|
||||||
|
int index = stack.stackTagCompound.getInteger("copyIndex");
|
||||||
|
copiable.pasteSettings(stack.stackTagCompound, index, world, player, x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
return !world.isRemote;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private Either<TileEntity, Block> getCopyInfoSource(World world, int x, int y, int z) {
|
||||||
|
TileEntity te = world.getTileEntity(x, y, z);
|
||||||
|
if(te instanceof ICopiable) {
|
||||||
|
return Either.left(te);
|
||||||
|
}
|
||||||
|
|
||||||
|
Block block = world.getBlock(x, y, z);
|
||||||
|
if(block instanceof ICopiable) {
|
||||||
|
return Either.right(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2111,6 +2111,8 @@ public class ClientProxy extends ServerProxy {
|
|||||||
case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed();
|
case CRANE_LEFT: return HbmKeybinds.craneLeftKey.getIsKeyPressed();
|
||||||
case CRANE_RIGHT: return HbmKeybinds.craneRightKey.getIsKeyPressed();
|
case CRANE_RIGHT: return HbmKeybinds.craneRightKey.getIsKeyPressed();
|
||||||
case CRANE_LOAD: return HbmKeybinds.craneLoadKey.getIsKeyPressed();
|
case CRANE_LOAD: return HbmKeybinds.craneLoadKey.getIsKeyPressed();
|
||||||
|
case TOOL_ALT: return HbmKeybinds.copyToolAlt.getIsKeyPressed();
|
||||||
|
case TOOL_CTRL: return HbmKeybinds.copyToolCtrl.getIsKeyPressed();
|
||||||
case GUN_PRIMARY: return HbmKeybinds.gunPrimaryKey.getIsKeyPressed();
|
case GUN_PRIMARY: return HbmKeybinds.gunPrimaryKey.getIsKeyPressed();
|
||||||
case GUN_SECONDARY: return HbmKeybinds.gunSecondaryKey.getIsKeyPressed();
|
case GUN_SECONDARY: return HbmKeybinds.gunSecondaryKey.getIsKeyPressed();
|
||||||
case GUN_TERTIARY: return HbmKeybinds.gunTertiaryKey.getIsKeyPressed();
|
case GUN_TERTIARY: return HbmKeybinds.gunTertiaryKey.getIsKeyPressed();
|
||||||
|
|||||||
@ -2,18 +2,27 @@ package com.hbm.tileentity;
|
|||||||
|
|
||||||
import com.hbm.interfaces.IControlReceiver;
|
import com.hbm.interfaces.IControlReceiver;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.nbt.NBTTagList;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public interface IControlReceiverFilter extends IControlReceiver {
|
public interface IControlReceiverFilter extends IControlReceiver, ICopiable {
|
||||||
|
|
||||||
void nextMode(int i);
|
void nextMode(int i);
|
||||||
|
|
||||||
|
/*
|
||||||
|
default ModulePatternMatcher getMatcher(){
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public default void receiveControl(NBTTagCompound data) {
|
default void receiveControl(NBTTagCompound data) {
|
||||||
if(data.hasKey("slot")) {
|
if(data.hasKey("slot")) {
|
||||||
setFilterContents(data);
|
setFilterContents(data);
|
||||||
}
|
}
|
||||||
@ -23,7 +32,7 @@ public interface IControlReceiverFilter extends IControlReceiver {
|
|||||||
* Expects the implementor to be a tile entity and an IInventory
|
* Expects the implementor to be a tile entity and an IInventory
|
||||||
* @param nbt
|
* @param nbt
|
||||||
*/
|
*/
|
||||||
public default void setFilterContents(NBTTagCompound nbt) {
|
default void setFilterContents(NBTTagCompound nbt) {
|
||||||
TileEntity tile = (TileEntity) this;
|
TileEntity tile = (TileEntity) this;
|
||||||
IInventory inv = (IInventory) this;
|
IInventory inv = (IInventory) this;
|
||||||
int slot = nbt.getInteger("slot");
|
int slot = nbt.getInteger("slot");
|
||||||
@ -31,4 +40,62 @@ public interface IControlReceiverFilter extends IControlReceiver {
|
|||||||
nextMode(slot);
|
nextMode(slot);
|
||||||
tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile);
|
tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Used for the copy tool
|
||||||
|
* @return The start and end (start inclusive, end exclusive) of the filter slots of the TE
|
||||||
|
*/
|
||||||
|
int[] getFilterSlots();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
IInventory inv = (IInventory) this;
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
NBTTagList tags = new NBTTagList();
|
||||||
|
int count = 0;
|
||||||
|
for (int i = getFilterSlots()[0]; i < getFilterSlots()[1]; i++) {
|
||||||
|
NBTTagCompound slotNBT = new NBTTagCompound();
|
||||||
|
if(inv.getStackInSlot(i) != null) {
|
||||||
|
slotNBT.setByte("slot", (byte) count);
|
||||||
|
inv.getStackInSlot(i).writeToNBT(slotNBT);
|
||||||
|
tags.appendTag(slotNBT);
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
nbt.setTag("items", tags);
|
||||||
|
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
TileEntity tile = (TileEntity) this;
|
||||||
|
IInventory inv = (IInventory) this;
|
||||||
|
NBTTagList items = nbt.getTagList("items", 10);
|
||||||
|
int listSize = items.tagCount();
|
||||||
|
if(listSize > 0) {
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
for (int i = getFilterSlots()[0]; i < getFilterSlots()[1]; i++) {
|
||||||
|
if (i < listSize) {
|
||||||
|
NBTTagCompound slotNBT = items.getCompoundTagAt(count);
|
||||||
|
byte slot = slotNBT.getByte("slot");
|
||||||
|
ItemStack loadedStack = ItemStack.loadItemStackFromNBT(slotNBT);
|
||||||
|
//whether the filter info came from a router
|
||||||
|
boolean router = nbt.hasKey("modes") && slot > index * 5 && slot < index * + 5;
|
||||||
|
|
||||||
|
if (loadedStack != null && index < listSize && (slot < getFilterSlots()[1] || router)) {
|
||||||
|
inv.setInventorySlotContents(slot + getFilterSlots()[0], ItemStack.loadItemStackFromNBT(slotNBT));
|
||||||
|
nextMode(slot);
|
||||||
|
tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
return new String[] { "copytool.filter" };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
69
src/main/java/com/hbm/tileentity/IFluidCopiable.java
Normal file
69
src/main/java/com/hbm/tileentity/IFluidCopiable.java
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
package com.hbm.tileentity;
|
||||||
|
|
||||||
|
import api.hbm.fluid.IFluidStandardTransceiver;
|
||||||
|
import api.hbm.fluid.IFluidUser;
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public interface IFluidCopiable extends ICopiable {
|
||||||
|
/**
|
||||||
|
* @return First type for the normal paste, second type for the alt paste, none if there is no alt paste support
|
||||||
|
*/
|
||||||
|
default int[] getFluidIDToCopy(){
|
||||||
|
IFluidUser tile = (IFluidUser) this;
|
||||||
|
ArrayList<Integer> types = new ArrayList<>();
|
||||||
|
|
||||||
|
for (FluidTank tank : tile.getAllTanks()) {
|
||||||
|
if (!tank.getTankType().hasNoID())
|
||||||
|
types.add(tank.getTankType().getID());
|
||||||
|
}
|
||||||
|
|
||||||
|
return BobMathUtil.intCollectionToArray(types);
|
||||||
|
}
|
||||||
|
|
||||||
|
default FluidTank getTankToPaste(){
|
||||||
|
TileEntity te = (TileEntity) this;
|
||||||
|
if (te instanceof IFluidStandardTransceiver) {
|
||||||
|
IFluidStandardTransceiver tile = (IFluidStandardTransceiver) this;
|
||||||
|
return tile.getReceivingTanks() != null ? tile.getReceivingTanks()[0] : null;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default NBTTagCompound getSettings(World world, int x, int y, int z){
|
||||||
|
NBTTagCompound tag = new NBTTagCompound();
|
||||||
|
if(getFluidIDToCopy().length > 0)
|
||||||
|
tag.setIntArray("fluidID", getFluidIDToCopy());
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
if(getTankToPaste() != null) {
|
||||||
|
int[] ids = nbt.getIntArray("fluidID");
|
||||||
|
if(ids.length > 0 && index < ids.length) {
|
||||||
|
int id = ids[index];
|
||||||
|
getTankToPaste().setTankType(Fluids.fromID(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
int[] ids = getFluidIDToCopy();
|
||||||
|
String[] names = new String[ids.length];
|
||||||
|
for (int i = 0; i < ids.length; i++) {
|
||||||
|
names[i] = Fluids.fromID(ids[i]).getUnlocalizedName();
|
||||||
|
}
|
||||||
|
return names;
|
||||||
|
}
|
||||||
|
}
|
||||||
32
src/main/java/com/hbm/tileentity/IMetalCopiable.java
Normal file
32
src/main/java/com/hbm/tileentity/IMetalCopiable.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.hbm.tileentity;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
|
import com.hbm.inventory.material.Mats;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public interface IMetalCopiable extends ICopiable {
|
||||||
|
int[] getMatsToCopy();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default NBTTagCompound getSettings(World world, int x, int y, int z){
|
||||||
|
NBTTagCompound tag = new NBTTagCompound();
|
||||||
|
if(getMatsToCopy().length > 0)
|
||||||
|
tag.setIntArray("matFilter", getMatsToCopy());
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
default String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
int[] ids = getMatsToCopy();
|
||||||
|
String[] names = new String[ids.length];
|
||||||
|
for (int i = 0; i < ids.length; i++) {
|
||||||
|
names[i] = Mats.matById.get(ids[i]).getUnlocalizedName();
|
||||||
|
}
|
||||||
|
return names;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
default void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z){
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import java.util.HashSet;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.hbm.handler.CompatHandler;
|
import com.hbm.handler.CompatHandler;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import cpw.mods.fml.common.Optional;
|
import cpw.mods.fml.common.Optional;
|
||||||
import li.cil.oc.api.machine.Arguments;
|
import li.cil.oc.api.machine.Arguments;
|
||||||
import li.cil.oc.api.machine.Callback;
|
import li.cil.oc.api.machine.Callback;
|
||||||
@ -56,7 +57,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver, SimpleComponent, CompatHandler.OCComponent {
|
public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IRadarCommandReceiver, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable {
|
||||||
|
|
||||||
/** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */
|
/** Automatic instantiation of generic missiles, i.e. everything that both extends EntityMissileBaseNT and needs a designator */
|
||||||
public static final HashMap<ComparableStack, Class<? extends EntityMissileBaseNT>> missiles = new HashMap();
|
public static final HashMap<ComparableStack, Class<? extends EntityMissileBaseNT>> missiles = new HashMap();
|
||||||
@ -555,4 +556,14 @@ public abstract class TileEntityLaunchPadBase extends TileEntityMachineBase impl
|
|||||||
}
|
}
|
||||||
throw new NoSuchMethodException();
|
throw new NoSuchMethodException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFluidIDToCopy() {
|
||||||
|
return new int[]{tanks[0].getTankType().getID(), tanks[1].getTankType().getID()};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import com.hbm.main.MainRegistry;
|
|||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
import com.hbm.packet.toclient.NBTPacket;
|
import com.hbm.packet.toclient.NBTPacket;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
@ -40,8 +41,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine {
|
public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyProviderMK2, INBTPacketReceiver, IFluidStandardTransceiver, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
private int turnTimer;
|
private int turnTimer;
|
||||||
public float rotor;
|
public float rotor;
|
||||||
@ -372,4 +372,9 @@ public class TileEntityChungus extends TileEntityLoadedBase implements IEnergyPr
|
|||||||
data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]);
|
data.setDouble(CompatEnergyControl.D_OUTPUT_MB, info[1]);
|
||||||
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]);
|
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, info[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import com.google.gson.stream.JsonWriter;
|
|||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.saveddata.TomSaveData;
|
import com.hbm.saveddata.TomSaveData;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
@ -17,7 +18,7 @@ import api.hbm.tile.IInfoProviderEC;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.world.EnumSkyBlock;
|
import net.minecraft.world.EnumSkyBlock;
|
||||||
|
|
||||||
public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IInfoProviderEC, IConfigurableMachine {
|
public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IInfoProviderEC, IConfigurableMachine, IFluidCopiable {
|
||||||
|
|
||||||
public int age = 0;
|
public int age = 0;
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
@ -146,4 +147,9 @@ public class TileEntityCondenser extends TileEntityLoadedBase implements IFluidS
|
|||||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, throughput);
|
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, throughput);
|
||||||
data.setDouble(CompatEnergyControl.D_OUTPUT_MB, throughput);
|
data.setDouble(CompatEnergyControl.D_OUTPUT_MB, throughput);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -22,7 +22,9 @@ import com.hbm.packet.PacketDispatcher;
|
|||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
|
import com.hbm.tileentity.IMetalCopiable;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
import com.hbm.util.CrucibleUtil;
|
import com.hbm.util.CrucibleUtil;
|
||||||
|
|
||||||
import api.hbm.block.ICrucibleAcceptor;
|
import api.hbm.block.ICrucibleAcceptor;
|
||||||
@ -35,6 +37,7 @@ import net.minecraft.client.gui.GuiScreen;
|
|||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.item.EntityItem;
|
import net.minecraft.entity.item.EntityItem;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Items;
|
||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.Container;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
@ -45,7 +48,7 @@ import net.minecraft.util.Vec3;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, ICrucibleAcceptor, IConfigurableMachine {
|
public class TileEntityCrucible extends TileEntityMachineBase implements IGUIProvider, ICrucibleAcceptor, IConfigurableMachine, IMetalCopiable {
|
||||||
|
|
||||||
public int heat;
|
public int heat;
|
||||||
public int progress;
|
public int progress;
|
||||||
@ -417,7 +420,6 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
|
|||||||
//if there's no materials in there at all, don't smelt
|
//if there's no materials in there at all, don't smelt
|
||||||
if(materials.isEmpty())
|
if(materials.isEmpty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
CrucibleRecipe recipe = getLoadedRecipe();
|
CrucibleRecipe recipe = getLoadedRecipe();
|
||||||
|
|
||||||
//needs to be true, will always be true if there's no recipe loaded
|
//needs to be true, will always be true if there's no recipe loaded
|
||||||
@ -601,4 +603,18 @@ public class TileEntityCrucible extends TileEntityMachineBase implements IGUIPro
|
|||||||
|
|
||||||
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
|
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
|
||||||
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; }
|
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getMatsToCopy() {
|
||||||
|
ArrayList<Integer> types = new ArrayList<>();
|
||||||
|
|
||||||
|
for (MaterialStack stack : recipeStack) {
|
||||||
|
types.add(stack.material.id);
|
||||||
|
}
|
||||||
|
for (MaterialStack stack : wasteStack) {
|
||||||
|
types.add(stack.material.id);
|
||||||
|
}
|
||||||
|
return BobMathUtil.intCollectionToArray(types);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.hbm.tileentity.machine;
|
|||||||
|
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
|
|
||||||
import api.hbm.energymk2.IEnergyReceiverMK2;
|
import api.hbm.energymk2.IEnergyReceiverMK2;
|
||||||
@ -9,7 +10,7 @@ import api.hbm.fluid.IFluidStandardTransceiver;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver {
|
public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IFluidCopiable {
|
||||||
|
|
||||||
public long power = 0;
|
public long power = 0;
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
@ -121,4 +122,9 @@ public class TileEntityDeuteriumExtractor extends TileEntityMachineBase implemen
|
|||||||
public FluidTank[] getAllTanks() {
|
public FluidTank[] getAllTanks() {
|
||||||
return tanks;
|
return tanks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -24,10 +24,8 @@ import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.*;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
import com.hbm.util.CrucibleUtil;
|
import com.hbm.util.CrucibleUtil;
|
||||||
import com.hbm.util.I18nUtil;
|
import com.hbm.util.I18nUtil;
|
||||||
@ -50,7 +48,7 @@ import net.minecraft.util.Vec3;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider {
|
public class TileEntityElectrolyser extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable, IMetalCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 20000000;
|
public static final long maxPower = 20000000;
|
||||||
@ -547,4 +545,50 @@ public class TileEntityElectrolyser extends TileEntityMachineBase implements IEn
|
|||||||
if(type == UpgradeType.OVERDRIVE) return 3;
|
if(type == UpgradeType.OVERDRIVE) return 3;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tanks[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound tag = new NBTTagCompound();
|
||||||
|
if(getFluidIDToCopy().length > 0)
|
||||||
|
tag.setIntArray("fluidID", getFluidIDToCopy());
|
||||||
|
if(getMatsToCopy().length > 0)
|
||||||
|
tag.setIntArray("matFilter", getMatsToCopy());
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
IFluidCopiable.super.pasteSettings(nbt, index, world, player, x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
ArrayList<String> names = new ArrayList<>();
|
||||||
|
int[] fluidIDs = getFluidIDToCopy();
|
||||||
|
int[] matIDs = getMatsToCopy();
|
||||||
|
|
||||||
|
for (int fluidID : fluidIDs) {
|
||||||
|
names.add(Fluids.fromID(fluidID).getUnlocalizedName());
|
||||||
|
}
|
||||||
|
for (int matID : matIDs) {
|
||||||
|
names.add(Mats.matById.get(matID).getUnlocalizedName());
|
||||||
|
}
|
||||||
|
|
||||||
|
return names.toArray(new String[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getMatsToCopy() {
|
||||||
|
ArrayList<Integer> types = new ArrayList<>();
|
||||||
|
if(leftStack != null) types.add(leftStack.material.id);
|
||||||
|
|
||||||
|
if(rightStack != null) types.add(rightStack.material.id);
|
||||||
|
|
||||||
|
return BobMathUtil.intCollectionToArray(types);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,10 +1,12 @@
|
|||||||
package com.hbm.tileentity.machine;
|
package com.hbm.tileentity.machine;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
import com.hbm.inventory.material.Mats;
|
import com.hbm.inventory.material.Mats;
|
||||||
import com.hbm.inventory.material.NTMMaterial;
|
import com.hbm.inventory.material.NTMMaterial;
|
||||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||||
|
|
||||||
import api.hbm.block.ICrucibleAcceptor;
|
import api.hbm.block.ICrucibleAcceptor;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.NetworkManager;
|
import net.minecraft.network.NetworkManager;
|
||||||
import net.minecraft.network.Packet;
|
import net.minecraft.network.Packet;
|
||||||
@ -19,7 +21,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
|||||||
* @author hbm
|
* @author hbm
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class TileEntityFoundryBase extends TileEntity implements ICrucibleAcceptor {
|
public abstract class TileEntityFoundryBase extends TileEntity implements ICrucibleAcceptor, ICopiable {
|
||||||
|
|
||||||
public NTMMaterial type;
|
public NTMMaterial type;
|
||||||
protected NTMMaterial lastType;
|
protected NTMMaterial lastType;
|
||||||
@ -142,4 +144,16 @@ public abstract class TileEntityFoundryBase extends TileEntity implements ICruci
|
|||||||
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
public MaterialStack pour(World world, int x, int y, int z, double dX, double dY, double dZ, ForgeDirection side, MaterialStack stack) {
|
||||||
return standardAdd(world, x, y, z, side, stack);
|
return standardAdd(world, x, y, z, side, stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
if(type != null) nbt.setIntArray("matFilter", new int[]{ type.id });
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.hbm.tileentity.machine;
|
package com.hbm.tileentity.machine;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
import com.hbm.inventory.material.Mats;
|
import com.hbm.inventory.material.Mats;
|
||||||
import com.hbm.inventory.material.Mats.MaterialStack;
|
import com.hbm.inventory.material.Mats.MaterialStack;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
@ -9,13 +10,16 @@ import com.hbm.util.CrucibleUtil;
|
|||||||
|
|
||||||
import api.hbm.block.ICrucibleAcceptor;
|
import api.hbm.block.ICrucibleAcceptor;
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.MovingObjectPosition;
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityFoundryOutlet extends TileEntityFoundryBase {
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
public class TileEntityFoundryOutlet extends TileEntityFoundryBase{
|
||||||
|
|
||||||
public NTMMaterial filter = null;
|
public NTMMaterial filter = null;
|
||||||
public NTMMaterial lastFilter = null;
|
public NTMMaterial lastFilter = null;
|
||||||
@ -121,4 +125,39 @@ public class TileEntityFoundryOutlet extends TileEntityFoundryBase {
|
|||||||
nbt.setBoolean("invertFilter", this.invertFilter);
|
nbt.setBoolean("invertFilter", this.invertFilter);
|
||||||
nbt.setShort("filter", this.filter == null ? -1 : (short) this.filter.id);
|
nbt.setShort("filter", this.filter == null ? -1 : (short) this.filter.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
|
||||||
|
nbt.setBoolean("invert", this.invertRedstone);
|
||||||
|
nbt.setBoolean("invertFilter", this.invertFilter);
|
||||||
|
if(filter != null){
|
||||||
|
nbt.setIntArray("matFilter", new int[]{ filter.id });
|
||||||
|
}
|
||||||
|
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
|
||||||
|
if(nbt.hasKey("invert")) this.invertRedstone = nbt.getBoolean("invert");
|
||||||
|
if(nbt.hasKey("invertFilter")) this.invertFilter = nbt.getBoolean("invertFilter");
|
||||||
|
if(nbt.hasKey("matFilter")) {
|
||||||
|
int[] ids = nbt.getIntArray("matFilter");
|
||||||
|
if(ids.length > 0 && index < ids.length)
|
||||||
|
this.filter = Mats.matById.get(ids[index]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
ArrayList<String> info = new ArrayList<>();
|
||||||
|
info.add("copytool.invertRedstone");
|
||||||
|
info.add("copytool.invertFilter");
|
||||||
|
if (filter != null) info.add(filter.getUnlocalizedName());
|
||||||
|
return info.toArray(new String[0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.Fluids;
|
|||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.inventory.gui.GUIFurnaceCombo;
|
import com.hbm.inventory.gui.GUIFurnaceCombo;
|
||||||
import com.hbm.inventory.recipes.CombinationRecipes;
|
import com.hbm.inventory.recipes.CombinationRecipes;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachinePolluting;
|
import com.hbm.tileentity.TileEntityMachinePolluting;
|
||||||
import com.hbm.util.Tuple.Pair;
|
import com.hbm.util.Tuple.Pair;
|
||||||
@ -30,7 +31,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityFurnaceCombination extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider {
|
public class TileEntityFurnaceCombination extends TileEntityMachinePolluting implements IFluidStandardSender, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public boolean wasOn;
|
public boolean wasOn;
|
||||||
public int progress;
|
public int progress;
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.hbm.main.MainRegistry;
|
|||||||
import com.hbm.saveddata.TomSaveData;
|
import com.hbm.saveddata.TomSaveData;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -31,9 +32,10 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.world.EnumSkyBlock;
|
import net.minecraft.world.EnumSkyBlock;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine {
|
public class TileEntityHeatBoiler extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine, IFluidCopiable {
|
||||||
|
|
||||||
public int heat;
|
public int heat;
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.hbm.main.MainRegistry;
|
|||||||
import com.hbm.saveddata.TomSaveData;
|
import com.hbm.saveddata.TomSaveData;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -26,8 +27,9 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.world.EnumSkyBlock;
|
import net.minecraft.world.EnumSkyBlock;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine {
|
public class TileEntityHeatBoilerIndustrial extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IConfigurableMachine, IFluidCopiable {
|
||||||
|
|
||||||
public int heat;
|
public int heat;
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.hbm.tileentity.machine;
|
|||||||
|
|
||||||
import com.hbm.blocks.BlockDummyable;
|
import com.hbm.blocks.BlockDummyable;
|
||||||
import com.hbm.interfaces.IControlReceiver;
|
import com.hbm.interfaces.IControlReceiver;
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
import com.hbm.inventory.container.ContainerHeaterHeatex;
|
import com.hbm.inventory.container.ContainerHeaterHeatex;
|
||||||
import com.hbm.inventory.fluid.FluidType;
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
@ -9,6 +10,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
|||||||
import com.hbm.inventory.fluid.trait.FT_Coolable;
|
import com.hbm.inventory.fluid.trait.FT_Coolable;
|
||||||
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
||||||
import com.hbm.inventory.gui.GUIHeaterHeatex;
|
import com.hbm.inventory.gui.GUIHeaterHeatex;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -27,7 +29,7 @@ import net.minecraft.util.MathHelper;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHeatSource, INBTPacketReceiver, IFluidStandardTransceiver, IGUIProvider, IControlReceiver {
|
public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHeatSource, INBTPacketReceiver, IFluidStandardTransceiver, IGUIProvider, IControlReceiver, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
public int amountToCool = 1;
|
public int amountToCool = 1;
|
||||||
@ -233,4 +235,23 @@ public class TileEntityHeaterHeatex extends TileEntityMachineBase implements IHe
|
|||||||
|
|
||||||
this.markChanged();
|
this.markChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
nbt.setInteger("toCool", amountToCool);
|
||||||
|
if(getFluidIDToCopy().length > 0)
|
||||||
|
nbt.setIntArray("fluidID", getFluidIDToCopy());
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
int[] ids = nbt.getIntArray("fluidID");
|
||||||
|
if(ids.length > 0) {
|
||||||
|
int id = ids[index];
|
||||||
|
tanks[0].setTankType(Fluids.fromID(id));
|
||||||
|
}
|
||||||
|
if(nbt.hasKey("toCool")) amountToCool = nbt.getInteger("toCool");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import com.hbm.inventory.fluid.trait.FT_Flammable;
|
|||||||
import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType;
|
import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType;
|
||||||
import com.hbm.inventory.gui.GUIOilburner;
|
import com.hbm.inventory.gui.GUIOilburner;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachinePolluting;
|
import com.hbm.tileentity.TileEntityMachinePolluting;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -24,7 +25,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implements IGUIProvider, IFluidStandardTransceiver, IHeatSource, IControlReceiver {
|
public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implements IGUIProvider, IFluidStandardTransceiver, IHeatSource, IControlReceiver, IFluidCopiable {
|
||||||
|
|
||||||
public boolean isOn = false;
|
public boolean isOn = false;
|
||||||
public FluidTank tank;
|
public FluidTank tank;
|
||||||
@ -217,4 +218,21 @@ public class TileEntityHeaterOilburner extends TileEntityMachinePolluting implem
|
|||||||
public FluidTank[] getSendingTanks() {
|
public FluidTank[] getSendingTanks() {
|
||||||
return this.getSmokeTanks();
|
return this.getSmokeTanks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound tag = new NBTTagCompound();
|
||||||
|
tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()});
|
||||||
|
tag.setInteger("burnRate", setting);
|
||||||
|
tag.setBoolean("isOn", isOn);
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
int id = nbt.getIntArray("fluidID")[index];
|
||||||
|
tank.setTankType(Fluids.fromID(id));
|
||||||
|
if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn");
|
||||||
|
if(nbt.hasKey("burnRate")) setting = nbt.getInteger("burnRate");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.hbm.items.ModItems;
|
|||||||
import com.hbm.items.machine.ItemICFPellet;
|
import com.hbm.items.machine.ItemICFPellet;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -39,7 +40,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent {
|
public class TileEntityICF extends TileEntityMachineBase implements IGUIProvider, IFluidStandardTransceiver, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable {
|
||||||
|
|
||||||
public long laser;
|
public long laser;
|
||||||
public long maxLaser;
|
public long maxLaser;
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.hbm.inventory.material.Mats.MaterialStack;
|
|||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.machine.ItemICFPellet;
|
import com.hbm.items.machine.ItemICFPellet;
|
||||||
import com.hbm.items.machine.ItemICFPellet.EnumICFFuel;
|
import com.hbm.items.machine.ItemICFPellet.EnumICFFuel;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
|
|
||||||
@ -26,7 +27,7 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityICFPress extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider {
|
public class TileEntityICFPress extends TileEntityMachineBase implements IFluidStandardReceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
public int muon;
|
public int muon;
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import com.hbm.main.MainRegistry;
|
|||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
import com.hbm.util.CompatEnergyControl;
|
import com.hbm.util.CompatEnergyControl;
|
||||||
@ -51,7 +52,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent {
|
public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 10000000;
|
public static final long maxPower = 10000000;
|
||||||
@ -650,4 +651,9 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece
|
|||||||
}
|
}
|
||||||
throw new NoSuchMethodException();
|
throw new NoSuchMethodException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,11 +15,8 @@ import com.hbm.items.machine.ItemMachineUpgrade;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.*;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IConditionalInvAccess;
|
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
|
||||||
import com.hbm.util.I18nUtil;
|
import com.hbm.util.I18nUtil;
|
||||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -41,7 +38,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider {
|
public class TileEntityMachineArcWelder extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IConditionalInvAccess, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public long maxPower = 2_000;
|
public long maxPower = 2_000;
|
||||||
@ -392,4 +389,9 @@ public class TileEntityMachineArcWelder extends TileEntityMachineBase implements
|
|||||||
if(type == UpgradeType.POWER) return 3;
|
if(type == UpgradeType.POWER) return 3;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
|||||||
import com.hbm.inventory.gui.GUIAssemfac;
|
import com.hbm.inventory.gui.GUIAssemfac;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade;
|
import com.hbm.items.machine.ItemMachineUpgrade;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
import com.hbm.util.I18nUtil;
|
import com.hbm.util.I18nUtil;
|
||||||
@ -31,7 +32,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IUpgradeInfoProvider {
|
public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase implements IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public AssemblerArm[] arms;
|
public AssemblerArm[] arms;
|
||||||
|
|
||||||
@ -476,4 +477,9 @@ public class TileEntityMachineAssemfac extends TileEntityMachineAssemblerBase im
|
|||||||
if(type == UpgradeType.OVERDRIVE) return 12;
|
if(type == UpgradeType.OVERDRIVE) return 12;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -187,7 +187,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
|
|||||||
|
|
||||||
if(i > 9 && i < 19) {
|
if(i > 9 && i < 19) {
|
||||||
ItemStack filter = slots[i - 10];
|
ItemStack filter = slots[i - 10];
|
||||||
if(filter == null) return true;
|
if(filter == null || matcher.modes[i - 10] == null || matcher.modes[i - 10].isEmpty()) return true;
|
||||||
return !matcher.isValidForFilter(filter, i - 10, stack);
|
return !matcher.isValidForFilter(filter, i - 10, stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,7 +216,7 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
|
|||||||
List<Integer> validSlots = new ArrayList();
|
List<Integer> validSlots = new ArrayList();
|
||||||
for(int i = 0; i < 9; i++) {
|
for(int i = 0; i < 9; i++) {
|
||||||
ItemStack filter = slots[i];
|
ItemStack filter = slots[i];
|
||||||
if(filter == null) continue;
|
if(filter == null || matcher.modes[i] == null || matcher.modes[i].isEmpty()) continue;
|
||||||
|
|
||||||
if(matcher.isValidForFilter(filter, i, stack)) {
|
if(matcher.isValidForFilter(filter, i, stack)) {
|
||||||
validSlots.add(i + 10);
|
validSlots.add(i + 10);
|
||||||
@ -350,13 +350,20 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setFilterContents(NBTTagCompound nbt) {
|
public void setFilterContents(NBTTagCompound nbt) {
|
||||||
TileEntity tile = (TileEntity) this;
|
TileEntity tile = this;
|
||||||
IInventory inv = (IInventory) this;
|
IInventory inv = this;
|
||||||
int slot = nbt.getInteger("slot");
|
int slot = nbt.getInteger("slot");
|
||||||
if(slot > 8) return;
|
if(slot > 8) return;
|
||||||
inv.setInventorySlotContents(slot, new ItemStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getInteger("meta")));
|
ItemStack item = new ItemStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getInteger("meta"));
|
||||||
|
inv.setInventorySlotContents(slot, item);
|
||||||
|
matcher.initPatternSmart(getWorldObj(), item, slot);
|
||||||
|
updateTemplateGrid();
|
||||||
nextMode(slot);
|
nextMode(slot);
|
||||||
tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile);
|
tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile);
|
||||||
updateTemplateGrid();
|
updateTemplateGrid();
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public int[] getFilterSlots() {
|
||||||
|
return new int[]{0,9};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.Fluids;
|
|||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.lib.ModDamageSource;
|
import com.hbm.lib.ModDamageSource;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
@ -29,7 +30,7 @@ import net.minecraft.util.MathHelper;
|
|||||||
import net.minecraft.util.MovingObjectPosition;
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
|
|
||||||
public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver {
|
public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver, IFluidCopiable {
|
||||||
|
|
||||||
public static final HashSet<FluidType> acceptedFuels = new HashSet();
|
public static final HashSet<FluidType> acceptedFuels = new HashSet();
|
||||||
|
|
||||||
@ -342,4 +343,8 @@ public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements IN
|
|||||||
public double getMaxRenderDistanceSquared() {
|
public double getMaxRenderDistanceSquared() {
|
||||||
return 65536.0D;
|
return 65536.0D;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.hbm.inventory.gui.GUIChemfac;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade;
|
import com.hbm.items.machine.ItemMachineUpgrade;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
import com.hbm.util.I18nUtil;
|
import com.hbm.util.I18nUtil;
|
||||||
@ -32,7 +33,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider {
|
public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase implements IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
float rotSpeed;
|
float rotSpeed;
|
||||||
public float rot;
|
public float rot;
|
||||||
@ -389,4 +390,9 @@ public class TileEntityMachineChemfac extends TileEntityMachineChemplantBase imp
|
|||||||
if(type == UpgradeType.OVERDRIVE) return 12;
|
if(type == UpgradeType.OVERDRIVE) return 12;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.hbm.items.machine.ItemPistons.EnumPistonType;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachinePolluting;
|
import com.hbm.tileentity.TileEntityMachinePolluting;
|
||||||
import com.hbm.util.EnumUtil;
|
import com.hbm.util.EnumUtil;
|
||||||
@ -32,7 +33,7 @@ import net.minecraft.util.MathHelper;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider {
|
public class TileEntityMachineCombustionEngine extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public boolean isOn = false;
|
public boolean isOn = false;
|
||||||
public static long maxPower = 2_500_000;
|
public static long maxPower = 2_500_000;
|
||||||
@ -318,4 +319,21 @@ public class TileEntityMachineCombustionEngine extends TileEntityMachinePollutin
|
|||||||
|
|
||||||
this.markChanged();
|
this.markChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound tag = new NBTTagCompound();
|
||||||
|
tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()});
|
||||||
|
tag.setBoolean("isOn", isOn);
|
||||||
|
tag.setInteger("burnRate", setting);
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
int id = nbt.getIntArray("fluidID")[index];
|
||||||
|
tank.setTankType(Fluids.fromID(id));
|
||||||
|
if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn");
|
||||||
|
if(nbt.hasKey("burnRate")) setting = nbt.getInteger("burnRate");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.hbm.inventory.recipes.CompressorRecipes.CompressorRecipe;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -37,7 +38,7 @@ import net.minecraft.util.MathHelper;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider {
|
public class TileEntityMachineCompressor extends TileEntityMachineBase implements IGUIProvider, IControlReceiver, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
public long power;
|
public long power;
|
||||||
@ -366,4 +367,34 @@ public class TileEntityMachineCompressor extends TileEntityMachineBase implement
|
|||||||
if(type == UpgradeType.OVERDRIVE) return 9;
|
if(type == UpgradeType.OVERDRIVE) return 9;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound tag = new NBTTagCompound();
|
||||||
|
tag.setIntArray("fluidID", getFluidIDToCopy());
|
||||||
|
tag.setInteger("compression", tanks[0].getPressure());
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
if(nbt.hasKey("compression")) {
|
||||||
|
int compression = nbt.getInteger("compression");
|
||||||
|
|
||||||
|
if (compression != tanks[0].getPressure()) {
|
||||||
|
tanks[0].withPressure(compression);
|
||||||
|
|
||||||
|
CompressorRecipe recipe = CompressorRecipes.recipes.get(new Pair(tanks[0].getTankType(), compression));
|
||||||
|
|
||||||
|
if (recipe == null) {
|
||||||
|
tanks[1].withPressure(compression + 1);
|
||||||
|
} else {
|
||||||
|
tanks[1].withPressure(recipe.output.pressure).setTankType(recipe.output.type);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.markChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
IFluidCopiable.super.pasteSettings(nbt, index, world, player, x, y, z);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.hbm.items.machine.ItemMachineUpgrade;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -39,7 +40,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider {
|
public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 1000000;
|
public static final long maxPower = 1000000;
|
||||||
@ -394,4 +395,14 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase impleme
|
|||||||
if(type == UpgradeType.OVERDRIVE) return 3;
|
if(type == UpgradeType.OVERDRIVE) return 3;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFluidIDToCopy() {
|
||||||
|
return new int[]{ tank.getTankType().getID()};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,10 +16,7 @@ import com.hbm.items.ModItems;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade;
|
import com.hbm.items.machine.ItemMachineUpgrade;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.tileentity.IConditionalInvAccess;
|
import com.hbm.tileentity.*;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
|
||||||
import com.hbm.util.CompatEnergyControl;
|
import com.hbm.util.CompatEnergyControl;
|
||||||
import com.hbm.util.I18nUtil;
|
import com.hbm.util.I18nUtil;
|
||||||
import com.hbm.util.Tuple.Pair;
|
import com.hbm.util.Tuple.Pair;
|
||||||
@ -42,7 +39,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC {
|
public class TileEntityMachineCyclotron extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IConditionalInvAccess, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 100000000;
|
public static final long maxPower = 100000000;
|
||||||
@ -433,4 +430,9 @@ public class TileEntityMachineCyclotron extends TileEntityMachineBase implements
|
|||||||
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0);
|
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0);
|
||||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.progress > 0 ? getConsumption() : 0);
|
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.progress > 0 ? getConsumption() : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import com.hbm.inventory.gui.GUIMachineDiesel;
|
|||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachinePolluting;
|
import com.hbm.tileentity.TileEntityMachinePolluting;
|
||||||
import com.hbm.util.CompatEnergyControl;
|
import com.hbm.util.CompatEnergyControl;
|
||||||
@ -36,7 +37,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC {
|
public class TileEntityMachineDiesel extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IConfigurableMachine, IGUIProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public int soundCycle = 0;
|
public int soundCycle = 0;
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.hbm.main.MainRegistry;
|
|||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
import com.hbm.packet.toclient.BufPacket;
|
import com.hbm.packet.toclient.BufPacket;
|
||||||
import com.hbm.tileentity.IBufPacketReceiver;
|
import com.hbm.tileentity.IBufPacketReceiver;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ import net.minecraft.util.MovingObjectPosition;
|
|||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver {
|
public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFluidStandardReceiver, IBufPacketReceiver, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank tank;
|
public FluidTank tank;
|
||||||
|
|
||||||
@ -157,4 +158,9 @@ public class TileEntityMachineDrain extends TileEntityLoadedBase implements IFlu
|
|||||||
public double getMaxRenderDistanceSquared() {
|
public double getMaxRenderDistanceSquared() {
|
||||||
return 65536.0D;
|
return 65536.0D;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.items.special.ItemBedrockOreBase;
|
import com.hbm.items.special.ItemBedrockOreBase;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -60,7 +61,7 @@ import net.minecraft.util.Vec3;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider {
|
public class TileEntityMachineExcavator extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public static final long maxPower = 1_000_000;
|
public static final long maxPower = 1_000_000;
|
||||||
public long power;
|
public long power;
|
||||||
@ -879,4 +880,9 @@ public class TileEntityMachineExcavator extends TileEntityMachineBase implements
|
|||||||
if(type == UpgradeType.POWER) return 3;
|
if(type == UpgradeType.POWER) return 3;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.trait.FT_Heatable.HeatingType;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -23,7 +24,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver {
|
public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank input;
|
public FluidTank input;
|
||||||
public FluidTank output;
|
public FluidTank output;
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import com.hbm.inventory.gui.GUIMachineLargeTurbine;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -43,7 +44,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine {
|
public class TileEntityMachineLargeTurbine extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.hbm.blocks.ModBlocks;
|
|||||||
import com.hbm.interfaces.IControlReceiver;
|
import com.hbm.interfaces.IControlReceiver;
|
||||||
import com.hbm.inventory.UpgradeManager;
|
import com.hbm.inventory.UpgradeManager;
|
||||||
import com.hbm.inventory.container.ContainerMixer;
|
import com.hbm.inventory.container.ContainerMixer;
|
||||||
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.inventory.gui.GUIMixer;
|
import com.hbm.inventory.gui.GUIMixer;
|
||||||
@ -13,10 +14,7 @@ import com.hbm.inventory.recipes.MixerRecipes;
|
|||||||
import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe;
|
import com.hbm.inventory.recipes.MixerRecipes.MixerRecipe;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.*;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
import com.hbm.util.I18nUtil;
|
import com.hbm.util.I18nUtil;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -35,7 +33,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider {
|
public class TileEntityMachineMixer extends TileEntityMachineBase implements INBTPacketReceiver, IControlReceiver, IGUIProvider, IEnergyReceiverMK2, IFluidStandardTransceiver, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 10_000;
|
public static final long maxPower = 10_000;
|
||||||
@ -374,4 +372,10 @@ public class TileEntityMachineMixer extends TileEntityMachineBase implements INB
|
|||||||
if(type == UpgradeType.OVERDRIVE) return 6;
|
if(type == UpgradeType.OVERDRIVE) return 6;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return this.tanks[2];
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.hbm.lib.Library;
|
|||||||
import com.hbm.lib.ModDamageSource;
|
import com.hbm.lib.ModDamageSource;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
@ -46,7 +47,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineOreSlopper extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider {
|
public class TileEntityMachineOreSlopper extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 100_000;
|
public static final long maxPower = 100_000;
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.hbm.inventory.fluid.Fluids;
|
|||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.inventory.gui.GUIPlasmaHeater;
|
import com.hbm.inventory.gui.GUIPlasmaHeater;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
|
|
||||||
@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider {
|
public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 100000000;
|
public static final long maxPower = 100000000;
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -22,7 +23,7 @@ import net.minecraft.init.Blocks;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
|
||||||
public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine {
|
public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase implements IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine, IFluidCopiable {
|
||||||
|
|
||||||
public static final HashSet<Block> validBlocks = new HashSet();
|
public static final HashSet<Block> validBlocks = new HashSet();
|
||||||
|
|
||||||
@ -200,4 +201,9 @@ public abstract class TileEntityMachinePumpBase extends TileEntityLoadedBase imp
|
|||||||
public double getMaxRenderDistanceSquared() {
|
public double getMaxRenderDistanceSquared() {
|
||||||
return 65536.0D;
|
return 65536.0D;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import com.hbm.items.ModItems;
|
|||||||
import com.hbm.items.machine.ItemRTGPellet;
|
import com.hbm.items.machine.ItemRTGPellet;
|
||||||
import com.hbm.items.machine.ItemRTGPelletDepleted;
|
import com.hbm.items.machine.ItemRTGPelletDepleted;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
import com.hbm.util.CompatEnergyControl;
|
import com.hbm.util.CompatEnergyControl;
|
||||||
@ -33,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC {
|
public class TileEntityMachineRadiolysis extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final int maxPower = 1000000;
|
public static final int maxPower = 1000000;
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.hbm.items.machine.ItemMachineUpgrade;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
@ -38,7 +39,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineSolderingStation extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider {
|
public class TileEntityMachineSolderingStation extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public long maxPower = 2_000;
|
public long maxPower = 2_000;
|
||||||
@ -365,4 +366,9 @@ public class TileEntityMachineSolderingStation extends TileEntityMachineBase imp
|
|||||||
if(type == UpgradeType.POWER) return 3;
|
if(type == UpgradeType.POWER) return 3;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import com.hbm.inventory.fluid.trait.FT_Coolable;
|
|||||||
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
||||||
import com.hbm.inventory.gui.GUIMachineTurbine;
|
import com.hbm.inventory.gui.GUIMachineTurbine;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
import com.hbm.tileentity.IBufPacketReceiver;
|
import com.hbm.tileentity.IBufPacketReceiver;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
@ -42,7 +43,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IFluidStandardTransceiver, IBufPacketReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine{
|
public class TileEntityMachineTurbine extends TileEntityLoadedBase implements ISidedInventory, IEnergyProviderMK2, IFluidStandardTransceiver, IBufPacketReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IConfigurableMachine, IFluidCopiable{
|
||||||
|
|
||||||
private ItemStack slots[];
|
private ItemStack slots[];
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import com.hbm.items.machine.IItemFluidIdentifier;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
import com.hbm.util.CompatEnergyControl;
|
import com.hbm.util.CompatEnergyControl;
|
||||||
@ -42,7 +43,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyProviderMK2, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent {
|
public class TileEntityMachineTurbineGas extends TileEntityMachineBase implements IFluidStandardTransceiver, IEnergyProviderMK2, IControlReceiver, IGUIProvider, SimpleComponent, IInfoProviderEC, CompatHandler.OCComponent, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 1000000L;
|
public static final long maxPower = 1000000L;
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.hbm.main.MainRegistry;
|
|||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachinePolluting;
|
import com.hbm.tileentity.TileEntityMachinePolluting;
|
||||||
@ -47,7 +48,7 @@ import net.minecraft.util.EnumChatFormatting;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
|
public class TileEntityMachineTurbofan extends TileEntityMachinePolluting implements IEnergyProviderMK2, IFluidStandardTransceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 1_000_000;
|
public static final long maxPower = 1_000_000;
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.hbm.items.ModItems;
|
|||||||
import com.hbm.items.ItemEnums.EnumAshType;
|
import com.hbm.items.ItemEnums.EnumAshType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.module.ModuleBurnTime;
|
import com.hbm.module.ModuleBurnTime;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
import com.hbm.util.CompatEnergyControl;
|
import com.hbm.util.CompatEnergyControl;
|
||||||
@ -34,7 +35,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC {
|
public class TileEntityMachineWoodBurner extends TileEntityMachineBase implements IFluidStandardReceiver, IControlReceiver, IEnergyProviderMK2, IGUIProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 100_000;
|
public static final long maxPower = 100_000;
|
||||||
@ -321,4 +322,9 @@ public class TileEntityMachineWoodBurner extends TileEntityMachineBase implement
|
|||||||
if(this.liquidBurn) data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, 1D);
|
if(this.liquidBurn) data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, 1D);
|
||||||
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, power);
|
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, power);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.hbm.tileentity.machine;
|
package com.hbm.tileentity.machine;
|
||||||
|
|
||||||
import com.hbm.handler.CompatHandler;
|
import com.hbm.handler.CompatHandler;
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
import com.hbm.inventory.container.ContainerMicrowave;
|
import com.hbm.inventory.container.ContainerMicrowave;
|
||||||
import com.hbm.inventory.gui.GUIMicrowave;
|
import com.hbm.inventory.gui.GUIMicrowave;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
@ -29,7 +30,7 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")})
|
||||||
public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent, CompatHandler.OCComponent {
|
public class TileEntityMicrowave extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider, SimpleComponent, CompatHandler.OCComponent, ICopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 50000;
|
public static final long maxPower = 50000;
|
||||||
@ -254,4 +255,21 @@ public class TileEntityMicrowave extends TileEntityMachineBase implements IEnerg
|
|||||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new GUIMicrowave(player.inventory, this);
|
return new GUIMicrowave(player.inventory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
nbt.setInteger("microSpeed", speed);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
if(nbt.hasKey("microSpeed")) speed = nbt.getInteger("microSpeed");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
return new String[]{ "copyTool.speed"};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,12 +2,14 @@ package com.hbm.tileentity.machine;
|
|||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
import com.hbm.packet.toclient.BufPacket;
|
import com.hbm.packet.toclient.BufPacket;
|
||||||
import com.hbm.tileentity.IBufPacketReceiver;
|
import com.hbm.tileentity.IBufPacketReceiver;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
|
|
||||||
import api.hbm.fluid.IFluidStandardTransceiver;
|
import api.hbm.fluid.IFluidStandardTransceiver;
|
||||||
@ -19,7 +21,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.util.ChunkCoordinates;
|
import net.minecraft.util.ChunkCoordinates;
|
||||||
|
|
||||||
public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver {
|
public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFluidStandardTransceiver, IBufPacketReceiver, IFluidCopiable {
|
||||||
|
|
||||||
private FluidTank water;
|
private FluidTank water;
|
||||||
private FluidTank steam;
|
private FluidTank steam;
|
||||||
@ -137,4 +139,9 @@ public class TileEntitySolarBoiler extends TileEntityLoadedBase implements IFlui
|
|||||||
water.deserialize(buf);
|
water.deserialize(buf);
|
||||||
steam.deserialize(buf);
|
steam.deserialize(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.hbm.items.ModItems;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -36,7 +37,7 @@ import net.minecraft.util.Vec3;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider {
|
public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 1000000;
|
public static final long maxPower = 1000000;
|
||||||
@ -452,4 +453,9 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
|
|||||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new GUISoyuzLauncher(player.inventory, this);
|
return new GUISoyuzLauncher(player.inventory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
|||||||
import com.hbm.inventory.fluid.trait.FT_Coolable;
|
import com.hbm.inventory.fluid.trait.FT_Coolable;
|
||||||
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
import com.hbm.inventory.fluid.trait.FT_Coolable.CoolingType;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.IConfigurableMachine;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -24,7 +25,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine {
|
public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEnergyProviderMK2, IFluidStandardTransceiver, INBTPacketReceiver, IConfigurableMachine, IFluidCopiable {
|
||||||
|
|
||||||
public long powerBuffer;
|
public long powerBuffer;
|
||||||
|
|
||||||
@ -214,4 +215,9 @@ public class TileEntitySteamEngine extends TileEntityLoadedBase implements IEner
|
|||||||
this.tanks[0].readFromNBT(nbt, "s");
|
this.tanks[0].readFromNBT(nbt, "s");
|
||||||
this.tanks[1].readFromNBT(nbt, "w");
|
this.tanks[1].readFromNBT(nbt, "w");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.hbm.inventory.gui.GUIStorageDrum;
|
|||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.special.ItemWasteLong;
|
import com.hbm.items.special.ItemWasteLong;
|
||||||
import com.hbm.items.special.ItemWasteShort;
|
import com.hbm.items.special.ItemWasteShort;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IBufPacketReceiver;
|
import com.hbm.tileentity.IBufPacketReceiver;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -34,7 +35,8 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidStandardSender, IBufPacketReceiver, IGUIProvider {
|
public class TileEntityStorageDrum extends TileEntityMachineBase implements IFluidStandardSender, IBufPacketReceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
|
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 };
|
private static final int[] slots_arr = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 };
|
||||||
@ -277,4 +279,9 @@ public class TileEntityStorageDrum extends TileEntityMachineBase implements IFlu
|
|||||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new GUIStorageDrum(player.inventory, this);
|
return new GUIStorageDrum(player.inventory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.hbm.items.machine.ItemWatzPellet;
|
|||||||
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
|
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -44,7 +45,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityWatz extends TileEntityMachineBase implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider {
|
public class TileEntityWatz extends TileEntityMachineBase implements IFluidStandardTransceiver, IControlReceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
public int heat;
|
public int heat;
|
||||||
@ -549,4 +550,9 @@ public class TileEntityWatz extends TileEntityMachineBase implements IFluidStand
|
|||||||
public FluidTank[] getReceivingTanks() {
|
public FluidTank[] getReceivingTanks() {
|
||||||
return new FluidTank[] { tanks[0] };
|
return new FluidTank[] { tanks[0] };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.hbm.inventory.FluidStack;
|
|||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.inventory.recipes.CrackingRecipes;
|
import com.hbm.inventory.recipes.CrackingRecipes;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.Tuple.Pair;
|
import com.hbm.util.Tuple.Pair;
|
||||||
@ -17,7 +18,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver {
|
public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardTransceiver, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
|
|
||||||
@ -193,4 +194,9 @@ public class TileEntityMachineCatalyticCracker extends TileEntityLoadedBase impl
|
|||||||
public FluidTank[] getAllTanks() {
|
public FluidTank[] getAllTanks() {
|
||||||
return tanks;
|
return tanks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tanks[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.gui.GUIMachineCatalyticReformer;
|
|||||||
import com.hbm.inventory.recipes.ReformingRecipes;
|
import com.hbm.inventory.recipes.ReformingRecipes;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
import com.hbm.tileentity.IPersistentNBT;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider {
|
public class TileEntityMachineCatalyticReformer extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 1_000_000;
|
public static final long maxPower = 1_000_000;
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.gui.GUIMachineCoker;
|
|||||||
import com.hbm.inventory.recipes.CokerRecipes;
|
import com.hbm.inventory.recipes.CokerRecipes;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
import com.hbm.util.Tuple.Triplet;
|
import com.hbm.util.Tuple.Triplet;
|
||||||
@ -28,7 +29,7 @@ import net.minecraft.tileentity.TileEntity;
|
|||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityMachineCoker extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider {
|
public class TileEntityMachineCoker extends TileEntityMachineBase implements IFluidStandardTransceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public boolean wasOn;
|
public boolean wasOn;
|
||||||
public int progress;
|
public int progress;
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import com.hbm.lib.Library;
|
|||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
import com.hbm.packet.toclient.BufPacket;
|
import com.hbm.packet.toclient.BufPacket;
|
||||||
import com.hbm.tileentity.IBufPacketReceiver;
|
import com.hbm.tileentity.IBufPacketReceiver;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.Tuple.Pair;
|
import com.hbm.util.Tuple.Pair;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -21,7 +22,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
|
||||||
public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver {
|
public class TileEntityMachineFractionTower extends TileEntityLoadedBase implements IBufPacketReceiver, IFluidStandardTransceiver, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank[] tanks;
|
public FluidTank[] tanks;
|
||||||
|
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import com.hbm.inventory.gui.GUIMachineGasFlare;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -41,7 +42,7 @@ import net.minecraft.util.DamageSource;
|
|||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
|
public class TileEntityMachineGasFlare extends TileEntityMachineBase implements IEnergyProviderMK2, IFluidStandardReceiver, IControlReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 100000;
|
public static final long maxPower = 100000;
|
||||||
@ -327,4 +328,21 @@ public class TileEntityMachineGasFlare extends TileEntityMachineBase implements
|
|||||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.fluidUsed);
|
data.setDouble(CompatEnergyControl.D_CONSUMPTION_MB, this.fluidUsed);
|
||||||
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output);
|
data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound tag = new NBTTagCompound();
|
||||||
|
tag.setIntArray("fluidID", new int[]{tank.getTankType().getID()});
|
||||||
|
tag.setBoolean("isOn", isOn);
|
||||||
|
tag.setBoolean("doesBurn", doesBurn);
|
||||||
|
return tag;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
int id = nbt.getIntArray("fluidID")[index];
|
||||||
|
tank.setTankType(Fluids.fromID(id));
|
||||||
|
if(nbt.hasKey("isOn")) isOn = nbt.getBoolean("isOn");
|
||||||
|
if(nbt.hasKey("doesBurn")) doesBurn = nbt.getBoolean("doesBurn");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import com.hbm.inventory.gui.GUIMachineHydrotreater;
|
|||||||
import com.hbm.inventory.recipes.HydrotreatingRecipes;
|
import com.hbm.inventory.recipes.HydrotreatingRecipes;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
import com.hbm.tileentity.IPersistentNBT;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider {
|
public class TileEntityMachineHydrotreater extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 1_000_000;
|
public static final long maxPower = 1_000_000;
|
||||||
@ -222,4 +223,9 @@ public class TileEntityMachineHydrotreater extends TileEntityMachineBase impleme
|
|||||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new GUIMachineHydrotreater(player.inventory, this);
|
return new GUIMachineHydrotreater(player.inventory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tanks[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import com.hbm.inventory.gui.GUILiquefactor;
|
|||||||
import com.hbm.inventory.recipes.LiquefactionRecipes;
|
import com.hbm.inventory.recipes.LiquefactionRecipes;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -33,7 +34,8 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
|
public class TileEntityMachineLiquefactor extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardSender, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 100000;
|
public static final long maxPower = 100000;
|
||||||
|
|||||||
@ -24,11 +24,7 @@ import com.hbm.items.ModItems;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.*;
|
||||||
import com.hbm.tileentity.IOverpressurable;
|
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
|
||||||
import com.hbm.tileentity.IRepairable;
|
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
|
||||||
import com.hbm.util.ParticleUtil;
|
import com.hbm.util.ParticleUtil;
|
||||||
import com.hbm.util.Tuple.Quintet;
|
import com.hbm.util.Tuple.Quintet;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
@ -49,7 +45,7 @@ import net.minecraft.world.Explosion;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyReceiverMK2, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider {
|
public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyReceiverMK2, IOverpressurable, IPersistentNBT, IRepairable, IFluidStandardTransceiver, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power = 0;
|
public long power = 0;
|
||||||
public int sulfur = 0;
|
public int sulfur = 0;
|
||||||
@ -467,4 +463,5 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements
|
|||||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new GUIMachineRefinery(player.inventory, this);
|
return new GUIMachineRefinery(player.inventory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import com.hbm.inventory.gui.GUISolidifier;
|
|||||||
import com.hbm.inventory.recipes.SolidificationRecipes;
|
import com.hbm.inventory.recipes.SolidificationRecipes;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -33,7 +34,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC {
|
public class TileEntityMachineSolidifier extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardReceiver, IGUIProvider, IUpgradeInfoProvider, IInfoProviderEC, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 100000;
|
public static final long maxPower = 100000;
|
||||||
@ -283,4 +284,9 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement
|
|||||||
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0);
|
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.progress > 0);
|
||||||
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.usage);
|
data.setDouble(CompatEnergyControl.D_CONSUMPTION_HE, this.usage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import com.hbm.inventory.recipes.RefineryRecipes;
|
|||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.sound.AudioWrapper;
|
import com.hbm.sound.AudioWrapper;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
import com.hbm.tileentity.IPersistentNBT;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -28,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider {
|
public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, IFluidCopiable {
|
||||||
|
|
||||||
public long power;
|
public long power;
|
||||||
public static final long maxPower = 1_000_000;
|
public static final long maxPower = 1_000_000;
|
||||||
|
|||||||
@ -9,11 +9,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
|||||||
import com.hbm.items.machine.ItemMachineUpgrade;
|
import com.hbm.items.machine.ItemMachineUpgrade;
|
||||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.tileentity.IConfigurableMachine;
|
import com.hbm.tileentity.*;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
|
||||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
import com.hbm.util.Tuple;
|
import com.hbm.util.Tuple;
|
||||||
import com.hbm.util.Tuple.Triplet;
|
import com.hbm.util.Tuple.Triplet;
|
||||||
@ -28,9 +24,10 @@ import net.minecraft.item.ItemStack;
|
|||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider {
|
public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IConfigurableMachine, IPersistentNBT, IGUIProvider, IUpgradeInfoProvider, IFluidCopiable {
|
||||||
|
|
||||||
public int indicator = 0;
|
public int indicator = 0;
|
||||||
|
|
||||||
@ -329,4 +326,9 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple
|
|||||||
if(type == UpgradeType.OVERDRIVE) return 3;
|
if(type == UpgradeType.OVERDRIVE) return 3;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.hbm.inventory.fluid.trait.FluidTrait.FluidReleaseType;
|
|||||||
import com.hbm.inventory.gui.GUIBarrel;
|
import com.hbm.inventory.gui.GUIBarrel;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.saveddata.TomSaveData;
|
import com.hbm.saveddata.TomSaveData;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
import com.hbm.tileentity.IPersistentNBT;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -43,7 +44,7 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
|
||||||
public class TileEntityBarrel extends TileEntityMachineBase implements SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent {
|
public class TileEntityBarrel extends TileEntityMachineBase implements SimpleComponent, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider, CompatHandler.OCComponent, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank tank;
|
public FluidTank tank;
|
||||||
public short mode = 0;
|
public short mode = 0;
|
||||||
@ -304,6 +305,16 @@ public class TileEntityBarrel extends TileEntityMachineBase implements SimpleCom
|
|||||||
return new FluidTank[] { tank };
|
return new FluidTank[] { tank };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFluidIDToCopy() {
|
||||||
|
return new int[] {tank.getTankType().getID()};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeNBT(NBTTagCompound nbt) {
|
public void writeNBT(NBTTagCompound nbt) {
|
||||||
if(tank.getFill() == 0) return;
|
if(tank.getFill() == 0) return;
|
||||||
|
|||||||
@ -20,12 +20,8 @@ import com.hbm.inventory.fluid.Fluids;
|
|||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.tileentity.*;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
|
||||||
import com.hbm.tileentity.IOverpressurable;
|
|
||||||
import com.hbm.tileentity.IPersistentNBT;
|
|
||||||
import com.hbm.tileentity.IRepairable;
|
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
|
||||||
import com.hbm.util.ParticleUtil;
|
import com.hbm.util.ParticleUtil;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
import cpw.mods.fml.common.Optional;
|
import cpw.mods.fml.common.Optional;
|
||||||
@ -53,7 +49,7 @@ import java.util.List;
|
|||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
|
@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers")})
|
||||||
public class TileEntityMachineFluidTank extends TileEntityMachineBase implements SimpleComponent, OCComponent, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable {
|
public class TileEntityMachineFluidTank extends TileEntityMachineBase implements SimpleComponent, OCComponent, IFluidStandardTransceiver, IPersistentNBT, IOverpressurable, IGUIProvider, IRepairable, IFluidCopiable{
|
||||||
|
|
||||||
public FluidTank tank;
|
public FluidTank tank;
|
||||||
public short mode = 0;
|
public short mode = 0;
|
||||||
@ -381,6 +377,16 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements
|
|||||||
return (mode == 0 || mode == 1) ? new FluidTank[] {tank} : new FluidTank[0];
|
return (mode == 0 || mode == 1) ? new FluidTank[] {tank} : new FluidTank[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFluidIDToCopy() {
|
||||||
|
return new int[] {tank.getTankType().getID()};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new ContainerMachineFluidTank(player.inventory, (TileEntityMachineFluidTank) world.getTileEntity(x, y, z));
|
return new ContainerMachineFluidTank(player.inventory, (TileEntityMachineFluidTank) world.getTileEntity(x, y, z));
|
||||||
|
|||||||
@ -221,4 +221,9 @@ public class TileEntityMassStorage extends TileEntityCrateBase implements INBTPa
|
|||||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new GUIMassStorage(player.inventory, this);
|
return new GUIMassStorage(player.inventory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFilterSlots() {
|
||||||
|
return new int[]{1,2};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,21 @@
|
|||||||
package com.hbm.tileentity.network;
|
package com.hbm.tileentity.network;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.ICopiable;
|
||||||
|
import com.hbm.tileentity.IControlReceiverFilter;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.nbt.NBTTagList;
|
||||||
import net.minecraft.network.NetworkManager;
|
import net.minecraft.network.NetworkManager;
|
||||||
import net.minecraft.network.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.Constants;
|
import net.minecraftforge.common.util.Constants;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public abstract class TileEntityCraneBase extends TileEntityMachineBase {
|
public abstract class TileEntityCraneBase extends TileEntityMachineBase implements ICopiable {
|
||||||
|
|
||||||
public TileEntityCraneBase(int scount) {
|
public TileEntityCraneBase(int scount) {
|
||||||
super(scount);
|
super(scount);
|
||||||
@ -101,4 +108,75 @@ public abstract class TileEntityCraneBase extends TileEntityMachineBase {
|
|||||||
super.writeToNBT(nbt);
|
super.writeToNBT(nbt);
|
||||||
nbt.setByte("CraneOutputOverride", (byte) outputOverride.ordinal());
|
nbt.setByte("CraneOutputOverride", (byte) outputOverride.ordinal());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
nbt.setInteger("inputSide", getInputSide().ordinal());
|
||||||
|
nbt.setInteger("outputSide", getOutputSide().ordinal());
|
||||||
|
|
||||||
|
if(this instanceof IControlReceiverFilter){
|
||||||
|
IControlReceiverFilter filter = ((IControlReceiverFilter) this);
|
||||||
|
IInventory inv = this;
|
||||||
|
NBTTagList tags = new NBTTagList();
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
for (int i = filter.getFilterSlots()[0]; i < filter.getFilterSlots()[1]; i++) {
|
||||||
|
NBTTagCompound slotNBT = new NBTTagCompound();
|
||||||
|
if(inv.getStackInSlot(i) != null) {
|
||||||
|
slotNBT.setByte("slot", (byte) count);
|
||||||
|
inv.getStackInSlot(i).writeToNBT(slotNBT);
|
||||||
|
tags.appendTag(slotNBT);
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
nbt.setTag("items", tags);
|
||||||
|
}
|
||||||
|
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
if(index == 1) {
|
||||||
|
if (nbt.hasKey("outputSide")) {
|
||||||
|
outputOverride = ForgeDirection.getOrientation(nbt.getInteger("outputSide"));
|
||||||
|
onBlockChanged();
|
||||||
|
}
|
||||||
|
if (nbt.hasKey("inputSide")) {
|
||||||
|
worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, nbt.getInteger("inputSide"), 3);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this instanceof IControlReceiverFilter) {
|
||||||
|
IControlReceiverFilter filter = ((IControlReceiverFilter) this);
|
||||||
|
IInventory inv = this;
|
||||||
|
|
||||||
|
NBTTagList items = nbt.getTagList("items", 10);
|
||||||
|
int listSize = items.tagCount();
|
||||||
|
if (listSize > 0) {
|
||||||
|
int count = 0;
|
||||||
|
for (int i = filter.getFilterSlots()[0]; i < filter.getFilterSlots()[1]; i++) {
|
||||||
|
if (i < listSize) {
|
||||||
|
NBTTagCompound slotNBT = items.getCompoundTagAt(count);
|
||||||
|
byte slot = slotNBT.getByte("slot");
|
||||||
|
ItemStack loadedStack = ItemStack.loadItemStackFromNBT(slotNBT);
|
||||||
|
//whether the filter info came from a router
|
||||||
|
boolean router = nbt.hasKey("modes") && slot > index * 5 && slot < index * + 5;
|
||||||
|
if (loadedStack != null && (slot < filter.getFilterSlots()[1] || router)) {
|
||||||
|
inv.setInventorySlotContents(slot + filter.getFilterSlots()[0], ItemStack.loadItemStackFromNBT(slotNBT));
|
||||||
|
filter.nextMode(slot);
|
||||||
|
this.getWorldObj().markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
return new String[]{"copytool.filter", "copytool.orientation"};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import com.hbm.items.ModItems;
|
|||||||
import com.hbm.module.ModulePatternMatcher;
|
import com.hbm.module.ModulePatternMatcher;
|
||||||
import com.hbm.tileentity.IControlReceiverFilter;
|
import com.hbm.tileentity.IControlReceiverFilter;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
|
import com.hbm.util.ItemStackUtil;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
@ -255,4 +256,10 @@ public class TileEntityCraneExtractor extends TileEntityCraneBase implements IGU
|
|||||||
setFilterContents(data);
|
setFilterContents(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFilterSlots() {
|
||||||
|
return new int[]{0,9};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -190,6 +190,11 @@ public class TileEntityCraneGrabber extends TileEntityCraneBase implements IGUIP
|
|||||||
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
|
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFilterSlots() {
|
||||||
|
return new int[]{0,9};
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receiveControl(NBTTagCompound data) {
|
public void receiveControl(NBTTagCompound data) {
|
||||||
if(data.hasKey("whitelist")) {
|
if(data.hasKey("whitelist")) {
|
||||||
|
|||||||
@ -12,8 +12,11 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||||||
import net.minecraft.client.gui.GuiScreen;
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.Container;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
@ -120,7 +123,10 @@ public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUI
|
|||||||
public boolean hasPermission(EntityPlayer player) {
|
public boolean hasPermission(EntityPlayer player) {
|
||||||
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
|
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public int[] getFilterSlots() {
|
||||||
|
return new int[]{0, slots.length};
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public void receiveControl(NBTTagCompound data) {
|
public void receiveControl(NBTTagCompound data) {
|
||||||
if(data.hasKey("toggle")) {
|
if(data.hasKey("toggle")) {
|
||||||
@ -133,4 +139,60 @@ public class TileEntityCraneRouter extends TileEntityMachineBase implements IGUI
|
|||||||
setFilterContents(data);
|
setFilterContents(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public NBTTagCompound getSettings(World world, int x, int y, int z) {
|
||||||
|
IInventory inv = (IInventory) this;
|
||||||
|
NBTTagCompound nbt = new NBTTagCompound();
|
||||||
|
NBTTagList tags = new NBTTagList();
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
for (int i = getFilterSlots()[0]; i < getFilterSlots()[1]; i++) {
|
||||||
|
NBTTagCompound slotNBT = new NBTTagCompound();
|
||||||
|
if (inv.getStackInSlot(i) != null) {
|
||||||
|
slotNBT.setByte("slot", (byte) count);
|
||||||
|
inv.getStackInSlot(i).writeToNBT(slotNBT);
|
||||||
|
tags.appendTag(slotNBT);
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
nbt.setTag("items", tags);
|
||||||
|
nbt.setIntArray("modes", modes);
|
||||||
|
|
||||||
|
return nbt;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
|
||||||
|
NBTTagList items = nbt.getTagList("items", 10);
|
||||||
|
int listSize = items.tagCount();
|
||||||
|
|
||||||
|
if(listSize > 0 && nbt.hasKey("modes")) {
|
||||||
|
for (int i = 0; i < listSize; i++) {
|
||||||
|
NBTTagCompound slotNBT = items.getCompoundTagAt(i);
|
||||||
|
byte slot = slotNBT.getByte("slot");
|
||||||
|
ItemStack loadedStack = ItemStack.loadItemStackFromNBT(slotNBT);
|
||||||
|
|
||||||
|
if (loadedStack != null && slot > index * 5 && slot < Math.min(index * 5 + 5, 30)) {
|
||||||
|
this.setInventorySlotContents(slot, ItemStack.loadItemStackFromNBT(slotNBT));
|
||||||
|
nextMode(slot);
|
||||||
|
this.getWorldObj().markTileEntityChunkModified(this.xCoord, this.yCoord, this.zCoord, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
modes = nbt.getIntArray("modes");
|
||||||
|
} else {
|
||||||
|
IControlReceiverFilter.super.pasteSettings(nbt, index, world, player, x, y, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String[] infoForDisplay(World world, int x, int y, int z) {
|
||||||
|
String[] options = new String[patterns.length];
|
||||||
|
for (int i = 0; i < options.length; i++) {
|
||||||
|
options[i] = "copytool.pattern" + i;
|
||||||
|
}
|
||||||
|
return options;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import com.hbm.inventory.container.ContainerDroneCrate;
|
|||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
import com.hbm.inventory.gui.GUIDroneCrate;
|
import com.hbm.inventory.gui.GUIDroneCrate;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.INBTPacketReceiver;
|
import com.hbm.tileentity.INBTPacketReceiver;
|
||||||
import com.hbm.tileentity.TileEntityMachineBase;
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
@ -27,7 +28,7 @@ import net.minecraft.util.AxisAlignedBB;
|
|||||||
import net.minecraft.util.Vec3;
|
import net.minecraft.util.Vec3;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver {
|
public class TileEntityDroneCrate extends TileEntityMachineBase implements IGUIProvider, INBTPacketReceiver, IControlReceiver, IDroneLinkable, IFluidStandardTransceiver, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank tank;
|
public FluidTank tank;
|
||||||
|
|
||||||
|
|||||||
@ -130,4 +130,9 @@ public class TileEntityDroneRequester extends TileEntityRequestNetworkContainer
|
|||||||
public boolean hasPermission(EntityPlayer player) {
|
public boolean hasPermission(EntityPlayer player) {
|
||||||
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
|
return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFilterSlots() {
|
||||||
|
return new int[]{0,9};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +1,28 @@
|
|||||||
package com.hbm.tileentity.network;
|
package com.hbm.tileentity.network;
|
||||||
|
|
||||||
|
import com.hbm.blocks.network.FluidDuctBase;
|
||||||
|
import com.hbm.blocks.network.IBlockFluidDuct;
|
||||||
|
import com.hbm.extprop.HbmPlayerProps;
|
||||||
|
import com.hbm.handler.HbmKeybinds;
|
||||||
import com.hbm.inventory.fluid.FluidType;
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
|
|
||||||
import api.hbm.fluid.IFluidConductor;
|
import api.hbm.fluid.IFluidConductor;
|
||||||
import api.hbm.fluid.IPipeNet;
|
import api.hbm.fluid.IPipeNet;
|
||||||
import api.hbm.fluid.PipeNet;
|
import api.hbm.fluid.PipeNet;
|
||||||
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.NetworkManager;
|
import net.minecraft.network.NetworkManager;
|
||||||
import net.minecraft.network.Packet;
|
import net.minecraft.network.Packet;
|
||||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.WorldServer;
|
import net.minecraft.world.WorldServer;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor {
|
public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor, IFluidCopiable {
|
||||||
|
|
||||||
protected IPipeNet network;
|
protected IPipeNet network;
|
||||||
protected FluidType type = Fluids.NONE;
|
protected FluidType type = Fluids.NONE;
|
||||||
@ -165,4 +173,36 @@ public class TileEntityPipeBaseNT extends TileEntity implements IFluidConductor
|
|||||||
super.onChunkUnload();
|
super.onChunkUnload();
|
||||||
this.isLoaded = false;
|
this.isLoaded = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFluidIDToCopy() {
|
||||||
|
return new int[]{ type.getID() };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void pasteSettings(NBTTagCompound nbt, int index, World world, EntityPlayer player, int x, int y, int z) {
|
||||||
|
int[] ids = nbt.getIntArray("fluidID");
|
||||||
|
if(ids.length > 0) {
|
||||||
|
int id;
|
||||||
|
if (index < ids.length)
|
||||||
|
id = ids[index];
|
||||||
|
else
|
||||||
|
id = 0;
|
||||||
|
|
||||||
|
FluidType fluid = Fluids.fromID(id);
|
||||||
|
|
||||||
|
if(HbmPlayerProps.getData(player).getKeyPressed(HbmKeybinds.EnumKeybind.TOOL_CTRL)){
|
||||||
|
IBlockFluidDuct pipe = (IBlockFluidDuct)world.getBlock(x, y, z);
|
||||||
|
pipe.changeTypeRecursively(world, x, y, z, getType(), fluid, 64);
|
||||||
|
} else {
|
||||||
|
this.setType(fluid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -131,4 +131,9 @@ public class TileEntityRadioTorchCounter extends TileEntityMachineBase implement
|
|||||||
setFilterContents(data);
|
setFilterContents(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getFilterSlots() {
|
||||||
|
return new int[]{0, slots.length};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.hbm.packet.PacketDispatcher;
|
|||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
|
|
||||||
import api.hbm.fluid.IFluidStandardReceiver;
|
import api.hbm.fluid.IFluidStandardReceiver;
|
||||||
|
import com.hbm.tileentity.IFluidCopiable;
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
@ -30,7 +31,7 @@ import net.minecraft.util.Vec3;
|
|||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidStandardReceiver {
|
public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFluidStandardReceiver, IFluidCopiable {
|
||||||
|
|
||||||
public FluidTank tank;
|
public FluidTank tank;
|
||||||
|
|
||||||
@ -228,4 +229,9 @@ public class TileEntityTurretFritz extends TileEntityTurretBaseNT implements IFl
|
|||||||
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) {
|
||||||
return new GUITurretFritz(player.inventory, this);
|
return new GUITurretFritz(player.inventory, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidTank getTankToPaste() {
|
||||||
|
return tank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,9 +4,8 @@ import java.lang.reflect.Field;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.text.NumberFormat;
|
import java.text.NumberFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
import java.util.function.ToIntFunction;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnegative;
|
import javax.annotation.Nonnegative;
|
||||||
|
|
||||||
@ -206,7 +205,22 @@ public class BobMathUtil {
|
|||||||
double delta = (beta - alpha + 180) % 360 - 180;
|
double delta = (beta - alpha + 180) % 360 - 180;
|
||||||
return delta < -180 ? delta + 360 : delta;
|
return delta < -180 ? delta + 360 : delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// I am sick of trying to remember the ridiculous quirks of Java 8
|
||||||
|
// so I wrote this thing that can shit any int-ish list-ish into a regular fucking int[]
|
||||||
|
// made by mellow, thrown here by 70k
|
||||||
|
public static int[] intCollectionToArray(Collection<Integer> in) {
|
||||||
|
return intCollectionToArray(in, i -> (int)i);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int[] intCollectionToArray(Collection<Integer> in, ToIntFunction<? super Object> mapper) {
|
||||||
|
return Arrays.stream(in.toArray()).mapToInt(mapper).toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int[] collectionToIntArray(Collection<? extends Object> in, ToIntFunction<? super Object> mapper) {
|
||||||
|
return Arrays.stream(in.toArray()).mapToInt(mapper).toArray();
|
||||||
|
}
|
||||||
|
|
||||||
/** Soft peak sine */
|
/** Soft peak sine */
|
||||||
public static double sps(double x) {
|
public static double sps(double x) {
|
||||||
return Math.sin(Math.PI / 2D * Math.cos(x));
|
return Math.sin(Math.PI / 2D * Math.cos(x));
|
||||||
|
|||||||
76
src/main/java/com/hbm/util/Either.java
Normal file
76
src/main/java/com/hbm/util/Either.java
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
package com.hbm.util;
|
||||||
|
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a value that is either of generic type L or R
|
||||||
|
* @author martinthedragon
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public final class Either<L, R> {
|
||||||
|
public static <L, R> Either<L, R> left(L value) {
|
||||||
|
return new Either<>(value, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <L, R> Either<L, R> right(R value) {
|
||||||
|
return new Either<>(value, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private final Object value;
|
||||||
|
private final boolean isLeft;
|
||||||
|
|
||||||
|
private Either(Object value, boolean isLeft) {
|
||||||
|
this.value = value;
|
||||||
|
this.isLeft = isLeft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLeft() {
|
||||||
|
return isLeft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isRight() {
|
||||||
|
return !isLeft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public L left() {
|
||||||
|
if(isLeft)
|
||||||
|
return (L) value;
|
||||||
|
else
|
||||||
|
throw new IllegalStateException("Tried accessing value as the L type, but was R type");
|
||||||
|
}
|
||||||
|
|
||||||
|
public R right() {
|
||||||
|
if(!isLeft)
|
||||||
|
return (R) value;
|
||||||
|
else
|
||||||
|
throw new IllegalStateException("Tried accessing value as the R type, but was L type");
|
||||||
|
}
|
||||||
|
|
||||||
|
public L leftOrNull() {
|
||||||
|
return isLeft ? (L) value : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public R rightOrNull() {
|
||||||
|
return !isLeft ? (R) value : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public <V> V cast() {
|
||||||
|
return (V) value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> T run(Function<L, T> leftFunc, Function<R, T> rightFunc) {
|
||||||
|
return isLeft ? leftFunc.apply((L) value) : rightFunc.apply((R) value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> T runLeftOrNull(Function<L, T> func) {
|
||||||
|
return isLeft ? func.apply((L) value) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> T runRightOrNull(Function<R, T> func) {
|
||||||
|
return !isLeft ? func.apply((R) value) : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public <V, T> T runCasting(Function<V, T> func) {
|
||||||
|
return func.apply((V) value);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -860,6 +860,17 @@ container.wasteDrum=Spent Fuel Pool Drum
|
|||||||
container.watzPowerplant=Watz Power Plant
|
container.watzPowerplant=Watz Power Plant
|
||||||
container.zirnox=ZIRNOX Nuclear Reactor
|
container.zirnox=ZIRNOX Nuclear Reactor
|
||||||
|
|
||||||
|
copytool.filter=Filter
|
||||||
|
copytool.invertRedstone=Redstone Inverted
|
||||||
|
copytool.invertFilter=Filter Inverted
|
||||||
|
copytool.orientation=Orientation
|
||||||
|
copytool.pattern0=Red Side
|
||||||
|
copytool.pattern1=Orange Side
|
||||||
|
copytool.pattern2=Yellow Side
|
||||||
|
copytool.pattern3=Green Side
|
||||||
|
copytool.pattern4=Blue Side
|
||||||
|
copytool.pattern5=Purple Side
|
||||||
|
|
||||||
crucible.aa=Advanced Alloy Production
|
crucible.aa=Advanced Alloy Production
|
||||||
crucible.abronze=Arsenic Bronze Production
|
crucible.abronze=Arsenic Bronze Production
|
||||||
crucible.bbronze=Bismuth Bronze Production
|
crucible.bbronze=Bismuth Bronze Production
|
||||||
@ -1354,6 +1365,8 @@ hbm.key.dash=Dash (Unbind from Crouch in config)
|
|||||||
hbm.key.toggleBack=Toggle Jetpack
|
hbm.key.toggleBack=Toggle Jetpack
|
||||||
hbm.key.toggleHUD=Toggle HUD
|
hbm.key.toggleHUD=Toggle HUD
|
||||||
hbm.key.reload=Reload
|
hbm.key.reload=Reload
|
||||||
|
hbm.key.copyToolAlt=Copy Tool: Switch Paste
|
||||||
|
hbm.key.copyToolCtrl=Copy Tool: Paste to Pipes
|
||||||
|
|
||||||
hbmfluid.amat=Antimatter
|
hbmfluid.amat=Antimatter
|
||||||
hbmfluid.aromatics=Aromatic Hydrocarbons
|
hbmfluid.aromatics=Aromatic Hydrocarbons
|
||||||
@ -4285,6 +4298,7 @@ item.seg_20.name=Size 20 Connector
|
|||||||
item.serum.name=Serum
|
item.serum.name=Serum
|
||||||
item.servo_set.name=Servo Set
|
item.servo_set.name=Servo Set
|
||||||
item.servo_set_desh.name=Desh Servo Set
|
item.servo_set_desh.name=Desh Servo Set
|
||||||
|
item.settings_tool.name=Settings Tool
|
||||||
item.shackles.name=Shackles
|
item.shackles.name=Shackles
|
||||||
item.shellntm.name=%s Shell
|
item.shellntm.name=%s Shell
|
||||||
item.shimmer_axe.name=Shimmer Axe
|
item.shimmer_axe.name=Shimmer Axe
|
||||||
|
|||||||
BIN
src/main/resources/assets/hbm/textures/items/settings_tool.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/settings_tool.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 356 B |
Loading…
x
Reference in New Issue
Block a user