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 ItemSilicon());
e.getRegistry().register(new ItemSecurityCard());
e.getRegistry().register(new ItemNetworkCard());
}
/* TODO

View File

@@ -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();

View File

@@ -25,12 +25,12 @@ public class GuiSecurityManager extends GuiBase<ContainerSecurityManager> {
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

View File

@@ -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<String> tooltip, ITooltipFlag flag) {
public void addInformation(ItemStack stack, @Nullable World world, List<ITextComponent> 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;
}
}

View File

@@ -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<ItemStack> onItemRightClick(World world, PlayerEntity player, EnumHand hand) {
public ActionResult<ItemStack> 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<String> tooltip, ITooltipFlag flag) {
public void addInformation(ItemStack stack, @Nullable World world, List<ITextComponent> 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)));
}
}
}*/
}
}

View File

@@ -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",

View File

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

View File

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