@Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); facing = ReconfigurableHelper.getFacingFromNBT(nbt); sideCache = ReconfigurableHelper.getSideCacheFromNBT(nbt, getDefaultSides()); for (int i = 0; i < 6; i++) { if (sideCache[i] >= getNumConfig(i)) { sideCache[i] = 0; } } }
@Override public ItemStack setDefaultTag(ItemStack stack, int level) { ReconfigurableHelper.setFacing(stack, 3); ReconfigurableHelper.setSideCache(stack, TileDeviceBase.SIDE_CONFIGS[ItemHelper.getItemDamage(stack)].defaultSides); RedstoneControlHelper.setControl(stack, ControlMode.DISABLED); EnergyHelper.setDefaultEnergyTag(stack, 0); return stack; }
@Override protected boolean writePortableTagInternal(EntityPlayer player, NBTTagCompound tag) { ReconfigurableHelper.setItemStackTagReconfig(tag, this); tag.setBoolean("EnableIn", enableAutoInput); tag.setBoolean("EnableOut", enableAutoOutput); return super.writePortableTagInternal(player, tag); }
@Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase living, ItemStack stack) { if (stack.getTagCompound() != null) { TileDeviceBase tile = (TileDeviceBase) world.getTileEntity(pos); int facing = BlockHelper.determineXZPlaceFacing(living); int storedFacing = ReconfigurableHelper.getFacing(stack); byte[] sideCache = ReconfigurableHelper.getSideCache(stack, tile.getDefaultSides()); tile.sideCache[0] = sideCache[0]; tile.sideCache[1] = sideCache[1]; tile.sideCache[facing] = sideCache[storedFacing]; tile.sideCache[BlockHelper.getLeftSide(facing)] = sideCache[BlockHelper.getLeftSide(storedFacing)]; tile.sideCache[BlockHelper.getRightSide(facing)] = sideCache[BlockHelper.getRightSide(storedFacing)]; tile.sideCache[BlockHelper.getOppositeSide(facing)] = sideCache[BlockHelper.getOppositeSide(storedFacing)]; } super.onBlockPlacedBy(world, pos, state, living, stack); }
@Override public ItemStack setDefaultTag(ItemStack stack, int level) { ReconfigurableHelper.setFacing(stack, 3); stack.getTagCompound().setByte("Level", (byte) level); return stack; }
@Override public ItemStack setCreativeTag(ItemStack stack) { if (stack.getTagCompound() == null) { setDefaultTag(stack, CoreProps.LEVEL_MAX); } ReconfigurableHelper.setSideCache(stack, TileCell.CREATIVE_SIDES); EnergyHelper.setDefaultEnergyTag(stack, TileCell.CAPACITY[CoreProps.LEVEL_MAX]); stack.getTagCompound().setBoolean("Creative", true); return stack; }
@Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase living, ItemStack stack) { if (stack.getTagCompound() != null) { TileApparatusBase tile = (TileApparatusBase) world.getTileEntity(pos); tile.readAugmentsFromNBT(stack.getTagCompound()); tile.updateAugmentStatus(); tile.setEnergyStored(stack.getTagCompound().getInteger(CoreProps.ENERGY)); int facing = BlockHelper.determineXZPlaceFacing(living); int storedFacing = ReconfigurableHelper.getFacing(stack); byte[] sideCache = ReconfigurableHelper.getSideCache(stack, tile.getDefaultSides()); tile.sideCache[0] = sideCache[0]; tile.sideCache[1] = sideCache[1]; tile.sideCache[facing] = sideCache[storedFacing]; tile.sideCache[BlockHelper.getLeftSide(facing)] = sideCache[BlockHelper.getLeftSide(storedFacing)]; tile.sideCache[BlockHelper.getRightSide(facing)] = sideCache[BlockHelper.getRightSide(storedFacing)]; tile.sideCache[BlockHelper.getOppositeSide(facing)] = sideCache[BlockHelper.getOppositeSide(storedFacing)]; } super.onBlockPlacedBy(world, pos, state, living, stack); }
@Override public ItemStack setDefaultTag(ItemStack stack, int level) { ReconfigurableHelper.setFacing(stack, 3); stack.getTagCompound().setByte("Level", (byte) level); return stack; }
@Override public ItemStack setDefaultTag(ItemStack stack, int level) { ReconfigurableHelper.setFacing(stack, 3); ReconfigurableHelper.setSideCache(stack, TileMachineBase.SIDE_CONFIGS[ItemHelper.getItemDamage(stack)].defaultSides); RedstoneControlHelper.setControl(stack, ControlMode.DISABLED); EnergyHelper.setDefaultEnergyTag(stack, 0); stack.getTagCompound().setByte("Level", (byte) level); return stack; }
@Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase living, ItemStack stack) { if (stack.getTagCompound() != null) { TileMachineBase tile = (TileMachineBase) world.getTileEntity(pos); tile.setLevel(stack.getTagCompound().getByte("Level")); tile.readAugmentsFromNBT(stack.getTagCompound()); tile.updateAugmentStatus(); tile.setEnergyStored(stack.getTagCompound().getInteger(CoreProps.ENERGY)); int facing = BlockHelper.determineXZPlaceFacing(living); int storedFacing = ReconfigurableHelper.getFacing(stack); byte[] sideCache = ReconfigurableHelper.getSideCache(stack, tile.getDefaultSides()); for (int i = 0; i < sideCache.length; i++) { if (sideCache[i] >= tile.getNumConfig(i)) { sideCache[i] = 0; } } tile.sideCache[0] = sideCache[0]; tile.sideCache[1] = sideCache[1]; tile.sideCache[facing] = 0; tile.sideCache[BlockHelper.getLeftSide(facing)] = sideCache[BlockHelper.getLeftSide(storedFacing)]; tile.sideCache[BlockHelper.getRightSide(facing)] = sideCache[BlockHelper.getRightSide(storedFacing)]; tile.sideCache[BlockHelper.getOppositeSide(facing)] = sideCache[BlockHelper.getOppositeSide(storedFacing)]; } super.onBlockPlacedBy(world, pos, state, living, stack); }
@Override protected boolean readPortableTagInternal(EntityPlayer player, NBTTagCompound tag) { int storedFacing = ReconfigurableHelper.getFacingFromNBT(tag); byte[] storedSideCache = ReconfigurableHelper.getSideCacheFromNBT(tag, getDefaultSides()); sideCache[0] = storedSideCache[0]; sideCache[1] = storedSideCache[1]; sideCache[facing] = storedSideCache[storedFacing]; sideCache[BlockHelper.getLeftSide(facing)] = storedSideCache[BlockHelper.getLeftSide(storedFacing)]; sideCache[BlockHelper.getRightSide(facing)] = storedSideCache[BlockHelper.getRightSide(storedFacing)]; sideCache[BlockHelper.getOppositeSide(facing)] = storedSideCache[BlockHelper.getOppositeSide(storedFacing)]; for (int i = 0; i < 6; i++) { if (sideCache[i] >= getNumConfig(i)) { sideCache[i] = 0; } } if (hasAutoInput) { enableAutoInput = tag.getBoolean("EnableIn"); } if (hasAutoOutput) { enableAutoOutput = tag.getBoolean("EnableOut"); } if (hasRedstoneControl) { super.readPortableTagInternal(player, tag); } return true; }
@Override public ItemStack setDefaultTag(ItemStack stack, int level) { ReconfigurableHelper.setFacing(stack, 1); RedstoneControlHelper.setControl(stack, ControlMode.DISABLED); EnergyHelper.setDefaultEnergyTag(stack, 0); stack.getTagCompound().setByte("Level", (byte) level); return stack; }
public NBTTagCompound getItemStackTag(IBlockAccess world, BlockPos pos) { TileEntity tile = world.getTileEntity(pos); NBTTagCompound retTag = new NBTTagCompound(); if (tile instanceof TileNameable && (!((TileNameable) tile).customName.isEmpty())) { retTag = ItemHelper.setItemStackTagName(retTag, ((TileNameable) tile).customName); } if (tile instanceof TileAugmentableSecure) { retTag.setBoolean(CoreProps.CREATIVE, ((TileAugmentableSecure) tile).isCreative); retTag.setByte(CoreProps.LEVEL, (byte) ((TileAugmentableSecure) tile).getLevel()); if (((TileAugmentableSecure) tile).isSecured()) { retTag = SecurityHelper.setItemStackTagSecure(retTag, (ISecurable) tile); } } if (tile instanceof IAugmentable) { retTag = AugmentHelper.setItemStackTagAugments(retTag, (IAugmentable) tile); } if (tile instanceof IRedstoneControl) { retTag = RedstoneControlHelper.setItemStackTagRS(retTag, (IRedstoneControl) tile); } if (tile instanceof TileReconfigurable) { retTag = ReconfigurableHelper.setItemStackTagReconfig(retTag, (TileReconfigurable) tile); } if (tile instanceof IEnergyHandler) { retTag.setInteger(CoreProps.ENERGY, ((IEnergyHandler) tile).getEnergyStored(null)); } return retTag; }
@Override public ItemStack setDefaultTag(ItemStack stack, int level) { ReconfigurableHelper.setFacing(stack, 3); ReconfigurableHelper.setSideCache(stack, TileApparatusBase.SIDE_CONFIGS[ItemHelper.getItemDamage(stack)].defaultSides); RedstoneControlHelper.setControl(stack, ControlMode.DISABLED); EnergyHelper.setDefaultEnergyTag(stack, 0); stack.getTagCompound().setByte("Level", (byte) level); return stack; }
@Override public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase living, ItemStack stack) { if (stack.getTagCompound() != null) { TileCell tile = (TileCell) world.getTileEntity(pos); tile.isCreative = (stack.getTagCompound().getBoolean("Creative")); tile.enchantHolding = (byte) MathHelper.clamp(EnchantmentHelper.getEnchantmentLevel(CoreEnchantments.holding, stack), 0, CoreEnchantments.holding.getMaxLevel()); tile.setLevel(stack.getTagCompound().getByte("Level")); tile.amountRecv = stack.getTagCompound().getInteger("Recv"); tile.amountSend = stack.getTagCompound().getInteger("Send"); tile.setEnergyStored(stack.getTagCompound().getInteger(CoreProps.ENERGY)); int facing = BlockHelper.determineXZPlaceFacing(living); int storedFacing = ReconfigurableHelper.getFacing(stack); byte[] sideCache = ReconfigurableHelper.getSideCache(stack, tile.getDefaultSides()); tile.sideCache[0] = sideCache[0]; tile.sideCache[1] = sideCache[1]; tile.sideCache[facing] = sideCache[storedFacing]; tile.sideCache[BlockHelper.getLeftSide(facing)] = sideCache[BlockHelper.getLeftSide(storedFacing)]; tile.sideCache[BlockHelper.getRightSide(facing)] = sideCache[BlockHelper.getRightSide(storedFacing)]; tile.sideCache[BlockHelper.getOppositeSide(facing)] = sideCache[BlockHelper.getOppositeSide(storedFacing)]; } super.onBlockPlacedBy(world, pos, state, living, stack); }
@Override public ItemStack setDefaultTag(ItemStack stack, int level) { ReconfigurableHelper.setFacing(stack, 3); ReconfigurableHelper.setSideCache(stack, TileCell.DEFAULT_SIDES); RedstoneControlHelper.setControl(stack, ControlMode.DISABLED); EnergyHelper.setDefaultEnergyTag(stack, 0); stack.getTagCompound().setByte("Level", (byte) level); stack.getTagCompound().setInteger("Send", TileCell.SEND[level]); stack.getTagCompound().setInteger("Recv", TileCell.RECV[level]); return stack; }