Network card + security card
This commit is contained in:
@@ -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
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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)));
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
@@ -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",
|
||||
|
@@ -13,7 +13,7 @@
|
||||
"item": "minecraft:paper"
|
||||
},
|
||||
"A": {
|
||||
"item": "#advanced_processor"
|
||||
"item": "refinedstorage:advanced_processor"
|
||||
}
|
||||
},
|
||||
"result": {
|
@@ -13,7 +13,7 @@
|
||||
"item": "refinedstorage:network_card"
|
||||
},
|
||||
"A": {
|
||||
"item": "#advanced_processor"
|
||||
"item": "refinedstorage:advanced_processor"
|
||||
}
|
||||
},
|
||||
"result": {
|
Reference in New Issue
Block a user