Network card + security card

This commit is contained in:
raoulvdberge
2019-09-12 23:16:47 +02:00
parent 4743da6d5d
commit 5f8dffbedf
8 changed files with 108 additions and 82 deletions

View File

@@ -43,6 +43,9 @@ public final class RS {
e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.ADVANCED)); e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.ADVANCED));
e.getRegistry().register(new ItemSilicon()); e.getRegistry().register(new ItemSilicon());
e.getRegistry().register(new ItemSecurityCard());
e.getRegistry().register(new ItemNetworkCard());
} }
/* TODO /* TODO

View File

@@ -33,10 +33,12 @@ public final class RSItems {
public static final ItemUpgrade UPGRADE = new ItemUpgrade(); public static final ItemUpgrade UPGRADE = new ItemUpgrade();
public static final ItemStorageHousing STORAGE_HOUSING = new ItemStorageHousing(); public static final ItemStorageHousing STORAGE_HOUSING = new ItemStorageHousing();
public static final ItemFilter FILTER = new ItemFilter(); 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 ItemFluidStorageDisk FLUID_STORAGE_DISK = new ItemFluidStorageDisk();
public static final ItemFluidStoragePart FLUID_STORAGE_PART = new ItemFluidStoragePart(); 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 ItemCuttingTool CUTTING_TOOL = new ItemCuttingTool();
public static final ItemCover COVER = new ItemCover(); public static final ItemCover COVER = new ItemCover();
public static final ItemHollowCover HOLLOW_COVER = new ItemHollowCover(); public static final ItemHollowCover HOLLOW_COVER = new ItemHollowCover();

View File

@@ -25,12 +25,12 @@ public class GuiSecurityManager extends GuiBase<ContainerSecurityManager> {
int padding = 15; int padding = 15;
permissions[0] = addCheckBox(x + 7, y + 93, I18n.format("gui.refinedstorage:security_manager.permission.0"), 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[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[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[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[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[5] = addCheckBox(permissions[4].x, permissions[4].y + padding, I18n.format("gui.refinedstorage.security_manager.permission.5"), false);
} }
@Override @Override

View File

@@ -1,66 +1,78 @@
package com.raoulvdberge.refinedstorage.item; package com.raoulvdberge.refinedstorage.item;
import com.raoulvdberge.refinedstorage.RS; 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_X = "ReceiverX";
private static final String NBT_RECEIVER_Y = "ReceiverY"; private static final String NBT_RECEIVER_Y = "ReceiverY";
private static final String NBT_RECEIVER_Z = "ReceiverZ"; private static final String NBT_RECEIVER_Z = "ReceiverZ";
private static final String NBT_DIMENSION = "Dimension"; private static final String NBT_DIMENSION = "Dimension";
public ItemNetworkCard() { public ItemNetworkCard() {
super(new ItemInfo(RS.ID, "network_card")); super(new Item.Properties().group(RS.MAIN_GROUP).maxStackSize(1));
//setMaxStackSize(1); this.setRegistryName(RS.ID, "network_card");
}
/* TODO
@Override
@SideOnly(Side.CLIENT)
public void registerModels(IModelRegistration modelRegistration) {
modelRegistration.setModel(this, 0, new ModelResourceLocation(info.getId(), "inventory"));
} }
@Override @Override
public EnumActionResult onItemUse(PlayerEntity player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { public ActionResultType onItemUse(ItemUseContext ctx) {
Block block = world.getBlockState(pos).getBlock(); Block block = ctx.getWorld().getBlockState(ctx.getPos()).getBlock();
if (block == RSBlocks.NETWORK_RECEIVER) { if (block == RSBlocks.NETWORK_RECEIVER) {
CompoundNBT tag = new CompoundNBT(); CompoundNBT tag = new CompoundNBT();
tag.putInt(NBT_RECEIVER_X, pos.getX()); tag.putInt(NBT_RECEIVER_X, ctx.getPos().getX());
tag.putInt(NBT_RECEIVER_Y, pos.getY()); tag.putInt(NBT_RECEIVER_Y, ctx.getPos().getY());
tag.putInt(NBT_RECEIVER_Z, pos.getZ()); tag.putInt(NBT_RECEIVER_Z, ctx.getPos().getZ());
tag.putInt(NBT_DIMENSION, world.provider.getDimension()); 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 @Override
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) { public void addInformation(ItemStack stack, @Nullable World world, List<ITextComponent> tooltip, ITooltipFlag flag) {
super.addInformation(stack, world, tooltip, flag); super.addInformation(stack, world, tooltip, flag);
BlockPos pos = getReceiver(stack); BlockPos pos = getReceiver(stack);
if (pos != null) { 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) { 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)) { 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.getTagCompound().getInteger(NBT_RECEIVER_X), stack.getTagCompound().getInteger(NBT_RECEIVER_Y), stack.getTagCompound().getInteger(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; return null;
} }
public static int getDimension(ItemStack stack) { @Nullable
return (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_DIMENSION)) ? stack.getTagCompound().getInteger(NBT_DIMENSION) : 0; public static ResourceLocation getDimension(ItemStack stack) {
}*/ return (stack.hasTag() && stack.getTag().contains(NBT_DIMENSION)) ? ResourceLocation.tryCreate(stack.getTag().getString(NBT_DIMENSION)) : null;
}
} }

View File

@@ -1,45 +1,54 @@
package com.raoulvdberge.refinedstorage.item; package com.raoulvdberge.refinedstorage.item;
import com.raoulvdberge.refinedstorage.RS; 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 = "Owner";
private static final String NBT_OWNER_NAME = "OwnerName"; private static final String NBT_OWNER_NAME = "OwnerName";
private static final String NBT_PERMISSION = "Permission_%d"; private static final String NBT_PERMISSION = "Permission_%d";
public ItemSecurityCard() { 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); 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"));
} }
@Override @Override
public ActionResult<ItemStack> onItemRightClick(World world, PlayerEntity player, EnumHand hand) { public ActionResult<ItemStack> onItemRightClick(World world, PlayerEntity player, Hand hand) {
ItemStack stack = player.getHeldItem(hand); ItemStack stack = player.getHeldItem(hand);
if (!world.isRemote) { if (!world.isRemote) {
stack.setTagCompound(new CompoundNBT()); stack.setTag(new CompoundNBT());
stack.getTagCompound().setString(NBT_OWNER, player.getGameProfile().getId().toString()); stack.getTag().putString(NBT_OWNER, player.getGameProfile().getId().toString());
stack.getTagCompound().setString(NBT_OWNER_NAME, player.getGameProfile().getName()); stack.getTag().putString(NBT_OWNER_NAME, player.getGameProfile().getName());
} }
return ActionResult.newResult(EnumActionResult.SUCCESS, stack); return ActionResult.newResult(ActionResultType.SUCCESS, stack);
} }
@Nullable @Nullable
public static UUID getOwner(ItemStack stack) { public static UUID getOwner(ItemStack stack) {
if (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_OWNER)) { if (stack.hasTag() && stack.getTag().contains(NBT_OWNER)) {
return UUID.fromString(stack.getTagCompound().getString(NBT_OWNER)); return UUID.fromString(stack.getTag().getString(NBT_OWNER));
} }
return null; return null;
@@ -48,37 +57,37 @@ public class ItemSecurityCard extends ItemBase {
public static boolean hasPermission(ItemStack stack, Permission permission) { public static boolean hasPermission(ItemStack stack, Permission permission) {
String id = String.format(NBT_PERMISSION, permission.getId()); String id = String.format(NBT_PERMISSION, permission.getId());
if (stack.hasTagCompound() && stack.getTagCompound().hasKey(id)) { if (stack.hasTag() && stack.getTag().contains(id)) {
return stack.getTagCompound().getBoolean(id); return stack.getTag().getBoolean(id);
} }
return true; return false;
} }
public static void setPermission(ItemStack stack, Permission permission, boolean state) { public static void setPermission(ItemStack stack, Permission permission, boolean state) {
if (!stack.hasTagCompound()) { if (!stack.hasTag()) {
stack.setTagCompound(new CompoundNBT()); 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) { public static boolean isValid(ItemStack stack) {
return stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_OWNER); return stack.hasTag() && stack.getTag().contains(NBT_OWNER);
} }
@Override @Override
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag) { public void addInformation(ItemStack stack, @Nullable World world, List<ITextComponent> tooltip, ITooltipFlag flag) {
super.addInformation(stack, world, tooltip, flag); super.addInformation(stack, world, tooltip, flag);
if (stack.hasTagCompound() && stack.getTagCompound().hasKey(NBT_OWNER_NAME)) { if (stack.hasTag() && stack.getTag().contains(NBT_OWNER_NAME)) {
tooltip.add(I18n.format("item.refinedstorage:security_card.owner", stack.getTagCompound().getString(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()) { for (Permission permission : Permission.values()) {
if (hasPermission(stack, permission)) { 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)));
}
} }
} }
}*/
} }

View File

@@ -70,18 +70,18 @@
"gui.refinedstorage:writer": "Writer", "gui.refinedstorage:writer": "Writer",
"gui.refinedstorage:security_manager": "Security Manager", "gui.refinedstorage:security_manager": "Security Manager",
"gui.refinedstorage:security_manager.configure": "Configure", "gui.refinedstorage:security_manager.configure": "Configure",
"gui.refinedstorage:security_manager.permission.0": "Insert", "gui.refinedstorage.security_manager.permission.0": "Insert",
"gui.refinedstorage:security_manager.permission.0.tooltip": "Inserting items to the network", "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": "Extract",
"gui.refinedstorage:security_manager.permission.1.tooltip": "Extracting items from the network", "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": "Autocrafting",
"gui.refinedstorage:security_manager.permission.2.tooltip": "Starting, cancelling and viewing crafting tasks", "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": "Modify",
"gui.refinedstorage:security_manager.permission.3.tooltip": "Opening block GUIs", "gui.refinedstorage.security_manager.permission.3.tooltip": "Opening block GUIs",
"gui.refinedstorage:security_manager.permission.4": "Build", "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.4.tooltip": "Adding or removing devices to or from the network",
"gui.refinedstorage:security_manager.permission.5": "Security", "gui.refinedstorage.security_manager.permission.5": "Security",
"gui.refinedstorage:security_manager.permission.5.tooltip": "Ability to change security options", "gui.refinedstorage.security_manager.permission.5.tooltip": "Ability to change security options",
"gui.refinedstorage:storage_monitor": "Storage Monitor", "gui.refinedstorage:storage_monitor": "Storage Monitor",
"gui.refinedstorage:portable_grid": "Portable Grid", "gui.refinedstorage:portable_grid": "Portable Grid",
"gui.refinedstorage:crafter_manager": "Crafter Manager", "gui.refinedstorage:crafter_manager": "Crafter Manager",
@@ -96,7 +96,7 @@
"misc.refinedstorage:network_item.tooltip": "Linked to %d, %d, %d.", "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.out_of_range": "There is no Wireless Transmitter in range.",
"misc.refinedstorage:network_item.not_found": "Controller not found.", "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.inputs": "Inputs",
"misc.refinedstorage:pattern.outputs": "Outputs", "misc.refinedstorage:pattern.outputs": "Outputs",
"misc.refinedstorage:pattern.invalid": "Invalid pattern", "misc.refinedstorage:pattern.invalid": "Invalid pattern",
@@ -269,10 +269,10 @@
"item.refinedstorage:upgrade.9": "Fortune Upgrade", "item.refinedstorage:upgrade.9": "Fortune Upgrade",
"item.refinedstorage:storage_housing": "Storage Housing", "item.refinedstorage:storage_housing": "Storage Housing",
"item.refinedstorage:filter": "Filter", "item.refinedstorage:filter": "Filter",
"item.refinedstorage:network_card": "Network Card", "item.refinedstorage.network_card": "Network Card",
"item.refinedstorage:wrench": "Wrench", "item.refinedstorage:wrench": "Wrench",
"item.refinedstorage:security_card": "Security Card", "item.refinedstorage.security_card": "Security Card",
"item.refinedstorage:security_card.owner": "Bound to: %s", "item.refinedstorage.security_card.owner": "Bound to: %s",
"item.refinedstorage:cutting_tool": "Cutting Tool", "item.refinedstorage:cutting_tool": "Cutting Tool",
"item.refinedstorage:cover": "Cover", "item.refinedstorage:cover": "Cover",
"item.refinedstorage:hollow_cover": "Hollow Cover", "item.refinedstorage:hollow_cover": "Hollow Cover",

View File

@@ -13,7 +13,7 @@
"item": "minecraft:paper" "item": "minecraft:paper"
}, },
"A": { "A": {
"item": "#advanced_processor" "item": "refinedstorage:advanced_processor"
} }
}, },
"result": { "result": {

View File

@@ -13,7 +13,7 @@
"item": "refinedstorage:network_card" "item": "refinedstorage:network_card"
}, },
"A": { "A": {
"item": "#advanced_processor" "item": "refinedstorage:advanced_processor"
} }
}, },
"result": { "result": {