From 5f8dffbedfa67ea063badcef8bbca7df3937d7ca Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Thu, 12 Sep 2019 23:16:47 +0200 Subject: [PATCH] Network card + security card --- .../com/raoulvdberge/refinedstorage/RS.java | 3 + .../raoulvdberge/refinedstorage/RSItems.java | 6 +- .../gui/GuiSecurityManager.java | 12 ++-- .../refinedstorage/item/ItemNetworkCard.java | 64 ++++++++++------- .../refinedstorage/item/ItemSecurityCard.java | 69 +++++++++++-------- .../assets/refinedstorage/lang/en_us.json | 32 ++++----- .../refinedstorage/recipes/network_card.json | 2 +- .../refinedstorage/recipes/security_card.json | 2 +- 8 files changed, 108 insertions(+), 82 deletions(-) rename src/main/resources/{assets => data}/refinedstorage/recipes/network_card.json (85%) rename src/main/resources/{assets => data}/refinedstorage/recipes/security_card.json (86%) diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RS.java b/src/main/java/com/raoulvdberge/refinedstorage/RS.java index d9e27b7dd..a9fa92dda 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RS.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RS.java @@ -43,6 +43,9 @@ public final class RS { e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.ADVANCED)); e.getRegistry().register(new ItemSilicon()); + + e.getRegistry().register(new ItemSecurityCard()); + e.getRegistry().register(new ItemNetworkCard()); } /* TODO diff --git a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java index cfb699034..6a129ac33 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/RSItems.java @@ -33,10 +33,12 @@ public final class RSItems { public static final ItemUpgrade UPGRADE = new ItemUpgrade(); public static final ItemStorageHousing STORAGE_HOUSING = new ItemStorageHousing(); public static final ItemFilter FILTER = new ItemFilter(); - public static final ItemNetworkCard NETWORK_CARD = new ItemNetworkCard(); + @ObjectHolder(RS.ID + ":network_card") + public static final ItemNetworkCard NETWORK_CARD = null; public static final ItemFluidStorageDisk FLUID_STORAGE_DISK = new ItemFluidStorageDisk(); public static final ItemFluidStoragePart FLUID_STORAGE_PART = new ItemFluidStoragePart(); - public static final ItemSecurityCard SECURITY_CARD = new ItemSecurityCard(); + @ObjectHolder(RS.ID + ":security_card") + public static final ItemSecurityCard SECURITY_CARD = null; public static final ItemCuttingTool CUTTING_TOOL = new ItemCuttingTool(); public static final ItemCover COVER = new ItemCover(); public static final ItemHollowCover HOLLOW_COVER = new ItemHollowCover(); diff --git a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java index 2f70fe9fa..9031ccee2 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/gui/GuiSecurityManager.java @@ -25,12 +25,12 @@ public class GuiSecurityManager extends GuiBase { int padding = 15; - permissions[0] = addCheckBox(x + 7, y + 93, I18n.format("gui.refinedstorage:security_manager.permission.0"), false); - permissions[1] = addCheckBox(permissions[0].x, permissions[0].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.1"), false); - permissions[2] = addCheckBox(permissions[1].x, permissions[1].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.2"), false); - permissions[3] = addCheckBox(permissions[0].x + 90, permissions[0].y, I18n.format("gui.refinedstorage:security_manager.permission.3"), false); - permissions[4] = addCheckBox(permissions[3].x, permissions[3].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.4"), false); - permissions[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, I18n.format("gui.refinedstorage:security_manager.permission.5"), false); + permissions[0] = addCheckBox(x + 7, y + 93, I18n.format("gui.refinedstorage.security_manager.permission.0"), false); + permissions[1] = addCheckBox(permissions[0].x, permissions[0].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.1"), false); + permissions[2] = addCheckBox(permissions[1].x, permissions[1].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.2"), false); + permissions[3] = addCheckBox(permissions[0].x + 90, permissions[0].y, I18n.format("gui.refinedstorage.security_manager.permission.3"), false); + permissions[4] = addCheckBox(permissions[3].x, permissions[3].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.4"), false); + permissions[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.5"), false); } @Override diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java index 0aafe8b3e..3feefd824 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemNetworkCard.java @@ -1,66 +1,78 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.item.info.ItemInfo; +import com.raoulvdberge.refinedstorage.RSBlocks; +import net.minecraft.block.Block; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUseContext; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.Style; +import net.minecraft.util.text.TextFormatting; +import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.world.World; -public class ItemNetworkCard extends ItemBase { +import javax.annotation.Nullable; +import java.util.List; + +public class ItemNetworkCard extends Item { private static final String NBT_RECEIVER_X = "ReceiverX"; private static final String NBT_RECEIVER_Y = "ReceiverY"; private static final String NBT_RECEIVER_Z = "ReceiverZ"; private static final String NBT_DIMENSION = "Dimension"; public ItemNetworkCard() { - super(new ItemInfo(RS.ID, "network_card")); + super(new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1)); - //setMaxStackSize(1); - } -/* TODO - @Override - @SideOnly(Side.CLIENT) - public void registerModels(IModelRegistration modelRegistration) { - modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory")); + this.setRegistryName(RS.ID, "network_card"); } @Override - public EnumActionResult onItemUse(PlayerEntity player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { - Block block = world.getBlockState(pos).getBlock(); + public ActionResultType onItemUse(ItemUseContext ctx) { + Block block = ctx.getWorld().getBlockState(ctx.getPos()).getBlock(); if (block == RSBlocks.NETWORK_RECEIVER) { CompoundNBT tag = new CompoundNBT(); - tag.putInt(NBT_RECEIVER_X, pos.getX()); - tag.putInt(NBT_RECEIVER_Y, pos.getY()); - tag.putInt(NBT_RECEIVER_Z, pos.getZ()); - tag.putInt(NBT_DIMENSION, world.provider.getDimension()); + tag.putInt(NBT_RECEIVER_X, ctx.getPos().getX()); + tag.putInt(NBT_RECEIVER_Y, ctx.getPos().getY()); + tag.putInt(NBT_RECEIVER_Z, ctx.getPos().getZ()); + tag.putString(NBT_DIMENSION, ctx.getWorld().getDimension().getType().getRegistryName().toString()); - player.getHeldItem(hand).setTagCompound(tag); + ctx.getPlayer().getHeldItem(ctx.getHand()).setTag(tag); - return EnumActionResult.SUCCESS; + return ActionResultType.SUCCESS; } - return EnumActionResult.PASS; + return ActionResultType.PASS; } @Override - public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { super.addInformation(stack, world, tooltip, flag); BlockPos pos = getReceiver(stack); if (pos != null) { - tooltip.add(I18n.format("misc.refinedstorage:network_card.tooltip", pos.getX(), pos.getY(), pos.getZ())); + tooltip.add(new TranslationTextComponent("misc.refinedstorage.network_card.tooltip", pos.getX(), pos.getY(), pos.getZ()).setStyle(new Style().setColor(TextFormatting.GRAY))); } } public static BlockPos getReceiver(ItemStack stack) { - if (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_RECEIVER_X) && stack.getTagCompound().hasKey(NBT_RECEIVER_Y) && stack.getTagCompound().hasKey(NBT_RECEIVER_Z)) { - return new BlockPos(stack.getTagCompound().getInteger(NBT_RECEIVER_X), stack.getTagCompound().getInteger(NBT_RECEIVER_Y), stack.getTagCompound().getInteger(NBT_RECEIVER_Z)); + if (stack.hasTag() && stack.getTag().contains(NBT_RECEIVER_X) && stack.getTag().contains(NBT_RECEIVER_Y) && stack.getTag().contains(NBT_RECEIVER_Z)) { + return new BlockPos(stack.getTag().getInt(NBT_RECEIVER_X), stack.getTag().getInt(NBT_RECEIVER_Y), stack.getTag().getInt(NBT_RECEIVER_Z)); } return null; } - public static int getDimension(ItemStack stack) { - return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_DIMENSION)) ? stack.getTagCompound().getInteger(NBT_DIMENSION) : 0; - }*/ + @Nullable + public static ResourceLocation getDimension(ItemStack stack) { + return (stack.hasTag() && stack.getTag().contains(NBT_DIMENSION)) ? ResourceLocation.tryCreate(stack.getTag().getString(NBT_DIMENSION)) : null; + } } diff --git a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemSecurityCard.java b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemSecurityCard.java index a42d764e7..c85eb37f3 100755 --- a/src/main/java/com/raoulvdberge/refinedstorage/item/ItemSecurityCard.java +++ b/src/main/java/com/raoulvdberge/refinedstorage/item/ItemSecurityCard.java @@ -1,45 +1,54 @@ package com.raoulvdberge.refinedstorage.item; import com.raoulvdberge.refinedstorage.RS; -import com.raoulvdberge.refinedstorage.item.info.ItemInfo; +import com.raoulvdberge.refinedstorage.api.network.security.Permission; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ActionResult; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Hand; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.text.*; +import net.minecraft.world.World; -public class ItemSecurityCard extends ItemBase { +import javax.annotation.Nullable; +import java.util.List; +import java.util.UUID; + +public class ItemSecurityCard extends Item { private static final String NBT_OWNER = "Owner"; private static final String NBT_OWNER_NAME = "OwnerName"; private static final String NBT_PERMISSION = "Permission_%d"; public ItemSecurityCard() { - super(new ItemInfo(RS.ID, "security_card")); + super(new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1)); - //setMaxStackSize(1); + this.setRegistryName(RS.ID, "security_card"); - //addPropertyOverride(new ResourceLocation("active"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f); - } - /* TODO - @Override - @SideOnly(Side.CLIENT) - public void registerModels(IModelRegistration modelRegistration) { - modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory")); + addPropertyOverride(new ResourceLocation("active"), (stack, world, entity) -> (entity != null && isValid(stack)) ? 1.0f : 0.0f); } @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, EnumHand hand) { + public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { ItemStack stack = player.getHeldItem(hand); if (!world.isRemote) { - stack.setTagCompound(new CompoundNBT()); + stack.setTag(new CompoundNBT()); - stack.getTagCompound().setString(NBT_OWNER, player.getGameProfile().getId().toString()); - stack.getTagCompound().setString(NBT_OWNER_NAME, player.getGameProfile().getName()); + stack.getTag().putString(NBT_OWNER, player.getGameProfile().getId().toString()); + stack.getTag().putString(NBT_OWNER_NAME, player.getGameProfile().getName()); } - return ActionResult.newResult(EnumActionResult.SUCCESS, stack); + return ActionResult.newResult(ActionResultType.SUCCESS, stack); } @Nullable public static UUID getOwner(ItemStack stack) { - if (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_OWNER)) { - return UUID.fromString(stack.getTagCompound().getString(NBT_OWNER)); + if (stack.hasTag() && stack.getTag().contains(NBT_OWNER)) { + return UUID.fromString(stack.getTag().getString(NBT_OWNER)); } return null; @@ -48,37 +57,37 @@ public class ItemSecurityCard extends ItemBase { public static boolean hasPermission(ItemStack stack, Permission permission) { String id = String.format(NBT_PERMISSION, permission.getId()); - if (stack.hasTagCompound() && stack.getTagCompound().hasKey(id)) { - return stack.getTagCompound().getBoolean(id); + if (stack.hasTag() && stack.getTag().contains(id)) { + return stack.getTag().getBoolean(id); } - return true; + return false; } public static void setPermission(ItemStack stack, Permission permission, boolean state) { - if (!stack.hasTagCompound()) { - stack.setTagCompound(new CompoundNBT()); + if (!stack.hasTag()) { + stack.setTag(new CompoundNBT()); } - stack.getTagCompound().putBoolean(String.format(NBT_PERMISSION, permission.getId()), state); + stack.getTag().putBoolean(String.format(NBT_PERMISSION, permission.getId()), state); } public static boolean isValid(ItemStack stack) { - return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_OWNER); + return stack.hasTag() && stack.getTag().contains(NBT_OWNER); } @Override - public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { + public void addInformation(ItemStack stack, @Nullable World world, List tooltip, ITooltipFlag flag) { super.addInformation(stack, world, tooltip, flag); - if (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_OWNER_NAME)) { - tooltip.add(I18n.format("item.refinedstorage:security_card.owner", stack.getTagCompound().getString(NBT_OWNER_NAME))); + if (stack.hasTag() && stack.getTag().contains(NBT_OWNER_NAME)) { + tooltip.add(new TranslationTextComponent("item.refinedstorage.security_card.owner", stack.getTag().getString(NBT_OWNER_NAME)).setStyle(new Style().setColor(TextFormatting.GRAY))); } for (Permission permission : Permission.values()) { if (hasPermission(stack, permission)) { - tooltip.add("- " + I18n.format("gui.refinedstorage:security_manager.permission." + permission.getId())); + tooltip.add(new StringTextComponent("- ").appendSibling(new TranslationTextComponent("gui.refinedstorage.security_manager.permission." + permission.getId())).setStyle(new Style().setColor(TextFormatting.GRAY))); } } - }*/ + } } diff --git a/src/main/resources/assets/refinedstorage/lang/en_us.json b/src/main/resources/assets/refinedstorage/lang/en_us.json index 3c47fab65..21243615a 100644 --- a/src/main/resources/assets/refinedstorage/lang/en_us.json +++ b/src/main/resources/assets/refinedstorage/lang/en_us.json @@ -70,18 +70,18 @@ "gui.refinedstorage:writer": "Writer", "gui.refinedstorage:security_manager": "Security Manager", "gui.refinedstorage:security_manager.configure": "Configure", - "gui.refinedstorage:security_manager.permission.0": "Insert", - "gui.refinedstorage:security_manager.permission.0.tooltip": "Inserting items to the network", - "gui.refinedstorage:security_manager.permission.1": "Extract", - "gui.refinedstorage:security_manager.permission.1.tooltip": "Extracting items from the network", - "gui.refinedstorage:security_manager.permission.2": "Autocrafting", - "gui.refinedstorage:security_manager.permission.2.tooltip": "Starting, cancelling and viewing crafting tasks", - "gui.refinedstorage:security_manager.permission.3": "Modify", - "gui.refinedstorage:security_manager.permission.3.tooltip": "Opening block GUIs", - "gui.refinedstorage:security_manager.permission.4": "Build", - "gui.refinedstorage:security_manager.permission.4.tooltip": "Adding or removing devices to or from the network", - "gui.refinedstorage:security_manager.permission.5": "Security", - "gui.refinedstorage:security_manager.permission.5.tooltip": "Ability to change security options", + "gui.refinedstorage.security_manager.permission.0": "Insert", + "gui.refinedstorage.security_manager.permission.0.tooltip": "Inserting items to the network", + "gui.refinedstorage.security_manager.permission.1": "Extract", + "gui.refinedstorage.security_manager.permission.1.tooltip": "Extracting items from the network", + "gui.refinedstorage.security_manager.permission.2": "Autocrafting", + "gui.refinedstorage.security_manager.permission.2.tooltip": "Starting, cancelling and viewing crafting tasks", + "gui.refinedstorage.security_manager.permission.3": "Modify", + "gui.refinedstorage.security_manager.permission.3.tooltip": "Opening block GUIs", + "gui.refinedstorage.security_manager.permission.4": "Build", + "gui.refinedstorage.security_manager.permission.4.tooltip": "Adding or removing devices to or from the network", + "gui.refinedstorage.security_manager.permission.5": "Security", + "gui.refinedstorage.security_manager.permission.5.tooltip": "Ability to change security options", "gui.refinedstorage:storage_monitor": "Storage Monitor", "gui.refinedstorage:portable_grid": "Portable Grid", "gui.refinedstorage:crafter_manager": "Crafter Manager", @@ -96,7 +96,7 @@ "misc.refinedstorage:network_item.tooltip": "Linked to %d, %d, %d.", "misc.refinedstorage:network_item.out_of_range": "There is no Wireless Transmitter in range.", "misc.refinedstorage:network_item.not_found": "Controller not found.", - "misc.refinedstorage:network_card.tooltip": "Linked to %d, %d, %d.", + "misc.refinedstorage.network_card.tooltip": "Linked to %d, %d, %d.", "misc.refinedstorage:pattern.inputs": "Inputs", "misc.refinedstorage:pattern.outputs": "Outputs", "misc.refinedstorage:pattern.invalid": "Invalid pattern", @@ -269,10 +269,10 @@ "item.refinedstorage:upgrade.9": "Fortune Upgrade", "item.refinedstorage:storage_housing": "Storage Housing", "item.refinedstorage:filter": "Filter", - "item.refinedstorage:network_card": "Network Card", + "item.refinedstorage.network_card": "Network Card", "item.refinedstorage:wrench": "Wrench", - "item.refinedstorage:security_card": "Security Card", - "item.refinedstorage:security_card.owner": "Bound to: %s", + "item.refinedstorage.security_card": "Security Card", + "item.refinedstorage.security_card.owner": "Bound to: %s", "item.refinedstorage:cutting_tool": "Cutting Tool", "item.refinedstorage:cover": "Cover", "item.refinedstorage:hollow_cover": "Hollow Cover", diff --git a/src/main/resources/assets/refinedstorage/recipes/network_card.json b/src/main/resources/data/refinedstorage/recipes/network_card.json similarity index 85% rename from src/main/resources/assets/refinedstorage/recipes/network_card.json rename to src/main/resources/data/refinedstorage/recipes/network_card.json index 4b81a6290..cd26ca3a0 100644 --- a/src/main/resources/assets/refinedstorage/recipes/network_card.json +++ b/src/main/resources/data/refinedstorage/recipes/network_card.json @@ -13,7 +13,7 @@ "item": "minecraft:paper" }, "A": { - "item": "#advanced_processor" + "item": "refinedstorage:advanced_processor" } }, "result": { diff --git a/src/main/resources/assets/refinedstorage/recipes/security_card.json b/src/main/resources/data/refinedstorage/recipes/security_card.json similarity index 86% rename from src/main/resources/assets/refinedstorage/recipes/security_card.json rename to src/main/resources/data/refinedstorage/recipes/security_card.json index 527e64768..b8d01d3b8 100644 --- a/src/main/resources/assets/refinedstorage/recipes/security_card.json +++ b/src/main/resources/data/refinedstorage/recipes/security_card.json @@ -13,7 +13,7 @@ "item": "refinedstorage:network_card" }, "A": { - "item": "#advanced_processor" + "item": "refinedstorage:advanced_processor" } }, "result": {