Pattern and wrench
This commit is contained in:
@@ -60,12 +60,9 @@ public final class RS {
|
||||
e.getRegistry().register(new ItemQuartzEnrichedIron());
|
||||
e.getRegistry().register(new ItemProcessorBinding());
|
||||
|
||||
e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.RAW_BASIC));
|
||||
e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.RAW_IMPROVED));
|
||||
e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.RAW_ADVANCED));
|
||||
e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.BASIC));
|
||||
e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.IMPROVED));
|
||||
e.getRegistry().register(new ItemProcessor(ItemProcessor.Type.ADVANCED));
|
||||
for (ItemProcessor.Type type : ItemProcessor.Type.values()) {
|
||||
e.getRegistry().register(new ItemProcessor(type));
|
||||
}
|
||||
|
||||
e.getRegistry().register(new ItemSilicon());
|
||||
|
||||
@@ -94,6 +91,9 @@ public final class RS {
|
||||
for (ItemUpgrade.Type type : ItemUpgrade.Type.values()) {
|
||||
e.getRegistry().register(new ItemUpgrade(type));
|
||||
}
|
||||
|
||||
e.getRegistry().register(new ItemWrench());
|
||||
e.getRegistry().register(new ItemPattern());
|
||||
}
|
||||
|
||||
/* TODO
|
||||
|
||||
@@ -22,6 +22,14 @@ public final class RSItems {
|
||||
@ObjectHolder(RS.ID + ":processor_binding")
|
||||
public static final ItemProcessorBinding PROCESSOR_BINDING = null;
|
||||
|
||||
@ObjectHolder(RS.ID + ":wrench")
|
||||
public static final ItemWrench WRENCH = null;
|
||||
|
||||
@ObjectHolder(RS.ID + ":pattern")
|
||||
public static final ItemPattern PATTERN = null;
|
||||
|
||||
public static final ItemFilter FILTER = new ItemFilter();
|
||||
|
||||
@ObjectHolder(RS.ID + ":raw_basic_processor")
|
||||
public static final ItemProcessor RAW_BASIC_PROCESSOR = null;
|
||||
@ObjectHolder(RS.ID + ":raw_improved_processor")
|
||||
@@ -56,9 +64,6 @@ public final class RSItems {
|
||||
@ObjectHolder(RS.ID + ":creative_storage_disk")
|
||||
public static final ItemStorageDisk CREATIVE_STORAGE_DISK = null;
|
||||
|
||||
public static final ItemPattern PATTERN = new ItemPattern();
|
||||
public static final ItemFilter FILTER = new ItemFilter();
|
||||
|
||||
@ObjectHolder(RS.ID + ":upgrade")
|
||||
public static final ItemUpgrade UPGRADE = null;
|
||||
@ObjectHolder(RS.ID + ":speed_upgrade")
|
||||
@@ -112,5 +117,4 @@ public final class RSItems {
|
||||
|
||||
public static final ItemCover COVER = new ItemCover();
|
||||
public static final ItemHollowCover HOLLOW_COVER = new ItemHollowCover();
|
||||
public static final ItemWrench WRENCH = new ItemWrench();
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public class GuiGrid extends GuiBase<ContainerGrid> implements IResizableDisplay
|
||||
addSideButton(new SideButtonGridSize(this, () -> grid.getSize(), size -> grid.onSizeChanged(size)));
|
||||
|
||||
if (grid.getGridType() == GridType.PATTERN) {
|
||||
processingPattern = addCheckBox(x + 7, y + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage:processing"), TileGrid.PROCESSING_PATTERN.getValue());
|
||||
processingPattern = addCheckBox(x + 7, y + getTopHeight() + (getVisibleRows() * 18) + 60, t("misc.refinedstorage.processing"), TileGrid.PROCESSING_PATTERN.getValue());
|
||||
|
||||
boolean showOredict = true;
|
||||
if (((NetworkNodeGrid) grid).isProcessingPattern() && ((NetworkNodeGrid) grid).getType() == IType.FLUIDS) {
|
||||
|
||||
@@ -26,7 +26,7 @@ import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ItemFluidStorageDisk extends ItemBase implements IStorageDiskProvider {
|
||||
public class ItemFluidStorageDisk extends Item implements IStorageDiskProvider {
|
||||
private static final String NBT_ID = "Id";
|
||||
|
||||
private final FluidStorageType type;
|
||||
|
||||
@@ -1,28 +1,55 @@
|
||||
package com.raoulvdberge.refinedstorage.item;
|
||||
|
||||
import com.raoulvdberge.refinedstorage.RS;
|
||||
import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPattern;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternContainer;
|
||||
import com.raoulvdberge.refinedstorage.api.autocrafting.ICraftingPatternProvider;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.CraftingPattern;
|
||||
import com.raoulvdberge.refinedstorage.item.info.ItemInfo;
|
||||
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
||||
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
|
||||
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.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;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class ItemPattern extends ItemBase/* implements ICraftingPatternProvider */ {
|
||||
private static Map<ItemStack, CraftingPattern> PATTERN_CACHE = new HashMap<>();
|
||||
public class ItemPattern extends Item implements ICraftingPatternProvider {
|
||||
private static Map<ItemStack, CraftingPattern> CACHE = new HashMap<>();
|
||||
|
||||
private static final String NBT_VERSION = "Version";
|
||||
public static final String NBT_INPUT_SLOT = "Input_%d";
|
||||
public static final String NBT_OUTPUT_SLOT = "Output_%d";
|
||||
private static final String NBT_INPUT_SLOT = "Input_%d";
|
||||
private static final String NBT_OUTPUT_SLOT = "Output_%d";
|
||||
private static final String NBT_FLUID_INPUT_SLOT = "FluidInput_%d";
|
||||
private static final String NBT_FLUID_OUTPUT_SLOT = "FluidOutput_%d";
|
||||
private static final String NBT_OREDICT = "Oredict";
|
||||
public static final String NBT_PROCESSING = "Processing";
|
||||
private static final String NBT_OREDICT = "Oredict"; // TODO - Rename since oredict is gone
|
||||
private static final String NBT_PROCESSING = "Processing";
|
||||
|
||||
private static final int VERSION = 1;
|
||||
|
||||
public ItemPattern() {
|
||||
super(new ItemInfo(RS.ID, "pattern"));
|
||||
super(new Item.Properties().group(RS.MAIN_GROUP));
|
||||
|
||||
this.setRegistryName(RS.ID, "pattern");
|
||||
}
|
||||
/*
|
||||
|
||||
/* TODO - Pattern rendering
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerModels(IModelRegistration modelRegistration) {
|
||||
@@ -31,176 +58,62 @@ public class ItemPattern extends ItemBase/* implements ICraftingPatternProvider
|
||||
modelRegistration.addBakedModelOverride(info.getId(), BakedModelPattern::new);
|
||||
|
||||
modelRegistration.addItemColor(this, new ItemColorPattern());
|
||||
}
|
||||
}*/
|
||||
|
||||
public static CraftingPattern getPatternFromCache(World world, ItemStack stack) {
|
||||
if (!PATTERN_CACHE.containsKey(stack)) {
|
||||
PATTERN_CACHE.put(stack, new CraftingPattern(world, null, stack));
|
||||
public static CraftingPattern fromCache(World world, ItemStack stack) {
|
||||
if (!CACHE.containsKey(stack)) {
|
||||
CACHE.put(stack, new CraftingPattern(world, null, stack));
|
||||
}
|
||||
|
||||
return PATTERN_CACHE.get(stack);
|
||||
return CACHE.get(stack);
|
||||
}
|
||||
|
||||
@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()) {
|
||||
if (!stack.hasTag()) {
|
||||
return;
|
||||
}
|
||||
|
||||
ICraftingPattern pattern = getPatternFromCache(world, stack);
|
||||
ICraftingPattern pattern = fromCache(world, stack);
|
||||
|
||||
Style yellow = new Style().setColor(TextFormatting.YELLOW);
|
||||
Style blue = new Style().setColor(TextFormatting.BLUE);
|
||||
Style red = new Style().setColor(TextFormatting.RED);
|
||||
|
||||
if (pattern.isValid()) {
|
||||
if (GuiScreen.isShiftKeyDown() || isProcessing(stack)) {
|
||||
tooltip.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.inputs") + TextFormatting.RESET);
|
||||
if (ContainerScreen.hasShiftDown() || isProcessing(stack)) {
|
||||
tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.inputs").setStyle(yellow));
|
||||
|
||||
RenderUtils.addCombinedItemsToTooltip(tooltip, true, pattern.getInputs().stream().map(i -> i.size() > 0 ? i.get(0) : ItemStack.EMPTY).collect(Collectors.toList()));
|
||||
RenderUtils.addCombinedFluidsToTooltip(tooltip, true, pattern.getFluidInputs());
|
||||
|
||||
tooltip.add(TextFormatting.YELLOW + I18n.format("misc.refinedstorage:pattern.outputs") + TextFormatting.RESET);
|
||||
tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.outputs").setStyle(yellow));
|
||||
}
|
||||
|
||||
RenderUtils.addCombinedItemsToTooltip(tooltip, true, pattern.getOutputs());
|
||||
RenderUtils.addCombinedFluidsToTooltip(tooltip, true, pattern.getFluidOutputs());
|
||||
|
||||
if (isOredict(stack)) {
|
||||
tooltip.add(TextFormatting.BLUE + I18n.format("misc.refinedstorage:pattern.oredict") + TextFormatting.RESET);
|
||||
tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.oredict").setStyle(blue));
|
||||
}
|
||||
|
||||
if (isProcessing(stack)) {
|
||||
tooltip.add(TextFormatting.BLUE + I18n.format("misc.refinedstorage:processing") + TextFormatting.RESET);
|
||||
tooltip.add(new TranslationTextComponent("misc.refinedstorage.processing").setStyle(blue));
|
||||
}
|
||||
} else {
|
||||
tooltip.add(TextFormatting.RED + I18n.format("misc.refinedstorage:pattern.invalid") + TextFormatting.RESET);
|
||||
tooltip.add(new TranslationTextComponent("misc.refinedstorage.pattern.invalid").setStyle(red));
|
||||
}
|
||||
}
|
||||
|
||||
public static void setInputSlot(ItemStack pattern, int slot, ItemStack stack) {
|
||||
if (!pattern.hasTagCompound()) {
|
||||
pattern.setTagCompound(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTagCompound().put(String.format(NBT_INPUT_SLOT, slot), stack.serializeNBT());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ItemStack getInputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_INPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTagCompound() || !pattern.getTagCompound().hasKey(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
ItemStack stack = new ItemStack(pattern.getTagCompound().getCompound(id));
|
||||
if (stack.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
public static void setOutputSlot(ItemStack pattern, int slot, ItemStack stack) {
|
||||
if (!pattern.hasTagCompound()) {
|
||||
pattern.setTagCompound(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTagCompound().put(String.format(NBT_OUTPUT_SLOT, slot), stack.serializeNBT());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ItemStack getOutputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_OUTPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTagCompound() || !pattern.getTagCompound().hasKey(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
ItemStack stack = new ItemStack(pattern.getTagCompound().getCompound(id));
|
||||
if (stack.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
public static void setFluidInputSlot(ItemStack pattern, int slot, FluidStack stack) {
|
||||
if (!pattern.hasTagCompound()) {
|
||||
pattern.setTagCompound(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTagCompound().put(String.format(NBT_FLUID_INPUT_SLOT, slot), stack.writeToNBT(new CompoundNBT()));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FluidStack getFluidInputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_FLUID_INPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTagCompound() || !pattern.getTagCompound().hasKey(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return FluidStack.loadFluidStackFromNBT(pattern.getTagCompound().getCompound(id));
|
||||
}
|
||||
|
||||
public static void setFluidOutputSlot(ItemStack pattern, int slot, FluidStack stack) {
|
||||
if (!pattern.hasTagCompound()) {
|
||||
pattern.setTagCompound(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTagCompound().put(String.format(NBT_FLUID_OUTPUT_SLOT, slot), stack.writeToNBT(new CompoundNBT()));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FluidStack getFluidOutputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_FLUID_OUTPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTagCompound() || !pattern.getTagCompound().hasKey(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return FluidStack.loadFluidStackFromNBT(pattern.getTagCompound().getCompound(id));
|
||||
}
|
||||
|
||||
public static boolean isProcessing(ItemStack pattern) {
|
||||
return pattern.hasTagCompound() && pattern.getTagCompound().hasKey(NBT_PROCESSING) && pattern.getTagCompound().getBoolean(NBT_PROCESSING);
|
||||
}
|
||||
|
||||
public static void setProcessing(ItemStack pattern, boolean processing) {
|
||||
if (!pattern.hasTagCompound()) {
|
||||
pattern.setTagCompound(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTagCompound().putBoolean(NBT_PROCESSING, processing);
|
||||
}
|
||||
|
||||
public static boolean isOredict(ItemStack pattern) {
|
||||
return pattern.hasTagCompound() && pattern.getTagCompound().hasKey(NBT_OREDICT) && pattern.getTagCompound().getBoolean(NBT_OREDICT);
|
||||
}
|
||||
|
||||
public static void setOredict(ItemStack pattern, boolean oredict) {
|
||||
if (!pattern.hasTagCompound()) {
|
||||
pattern.setTagCompound(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTagCompound().putBoolean(NBT_OREDICT, oredict);
|
||||
}
|
||||
|
||||
public static void setVersion(ItemStack pattern) {
|
||||
if (!pattern.hasTagCompound()) {
|
||||
pattern.setTagCompound(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTagCompound().setString(NBT_VERSION, RS.VERSION);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActionResult<ItemStack> onItemRightClick(World world, PlayerEntity player, EnumHand hand) {
|
||||
public ActionResult<ItemStack> onItemRightClick(World world, PlayerEntity player, Hand hand) {
|
||||
if (!world.isRemote && player.isSneaking()) {
|
||||
return new ActionResult<>(EnumActionResult.SUCCESS, new ItemStack(RSItems.PATTERN, player.getHeldItem(hand).getCount()));
|
||||
return new ActionResult<>(ActionResultType.SUCCESS, new ItemStack(RSItems.PATTERN, player.getHeldItem(hand).getCount()));
|
||||
}
|
||||
|
||||
return new ActionResult<>(EnumActionResult.PASS, player.getHeldItem(hand));
|
||||
return new ActionResult<>(ActionResultType.PASS, player.getHeldItem(hand));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -209,12 +122,121 @@ public class ItemPattern extends ItemBase/* implements ICraftingPatternProvider
|
||||
return new CraftingPattern(world, container, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isSelected) {
|
||||
super.onUpdate(stack, world, entity, slot, isSelected);
|
||||
|
||||
if (!world.isRemote) {
|
||||
API.instance().getOneSixMigrationHelper().migratePattern(stack);
|
||||
public static void setInputSlot(ItemStack pattern, int slot, ItemStack stack) {
|
||||
if (!pattern.hasTag()) {
|
||||
pattern.setTag(new CompoundNBT());
|
||||
}
|
||||
}*/
|
||||
|
||||
pattern.getTag().put(String.format(NBT_INPUT_SLOT, slot), stack.serializeNBT());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ItemStack getInputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_INPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTag() || !pattern.getTag().contains(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
ItemStack stack = ItemStack.read(pattern.getTag().getCompound(id));
|
||||
if (stack.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
public static void setOutputSlot(ItemStack pattern, int slot, ItemStack stack) {
|
||||
if (!pattern.hasTag()) {
|
||||
pattern.setTag(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTag().put(String.format(NBT_OUTPUT_SLOT, slot), stack.serializeNBT());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ItemStack getOutputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_OUTPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTag() || !pattern.getTag().contains(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
ItemStack stack = ItemStack.read(pattern.getTag().getCompound(id));
|
||||
if (stack.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
public static void setFluidInputSlot(ItemStack pattern, int slot, FluidStack stack) {
|
||||
if (!pattern.hasTag()) {
|
||||
pattern.setTag(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTag().put(String.format(NBT_FLUID_INPUT_SLOT, slot), stack.writeToNBT(new CompoundNBT()));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FluidStack getFluidInputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_FLUID_INPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTag() || !pattern.getTag().contains(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return FluidStack.loadFluidStackFromNBT(pattern.getTag().getCompound(id));
|
||||
}
|
||||
|
||||
public static void setFluidOutputSlot(ItemStack pattern, int slot, FluidStack stack) {
|
||||
if (!pattern.hasTag()) {
|
||||
pattern.setTag(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTag().put(String.format(NBT_FLUID_OUTPUT_SLOT, slot), stack.writeToNBT(new CompoundNBT()));
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FluidStack getFluidOutputSlot(ItemStack pattern, int slot) {
|
||||
String id = String.format(NBT_FLUID_OUTPUT_SLOT, slot);
|
||||
|
||||
if (!pattern.hasTag() || !pattern.getTag().contains(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return FluidStack.loadFluidStackFromNBT(pattern.getTag().getCompound(id));
|
||||
}
|
||||
|
||||
public static boolean isProcessing(ItemStack pattern) {
|
||||
return pattern.hasTag() && pattern.getTag().contains(NBT_PROCESSING) && pattern.getTag().getBoolean(NBT_PROCESSING);
|
||||
}
|
||||
|
||||
public static void setProcessing(ItemStack pattern, boolean processing) {
|
||||
if (!pattern.hasTag()) {
|
||||
pattern.setTag(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTag().putBoolean(NBT_PROCESSING, processing);
|
||||
}
|
||||
|
||||
public static boolean isOredict(ItemStack pattern) {
|
||||
return pattern.hasTag() && pattern.getTag().contains(NBT_OREDICT) && pattern.getTag().getBoolean(NBT_OREDICT);
|
||||
}
|
||||
|
||||
public static void setOredict(ItemStack pattern, boolean oredict) {
|
||||
if (!pattern.hasTag()) {
|
||||
pattern.setTag(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTag().putBoolean(NBT_OREDICT, oredict);
|
||||
}
|
||||
|
||||
public static void setVersion(ItemStack pattern) {
|
||||
if (!pattern.hasTag()) {
|
||||
pattern.setTag(new CompoundNBT());
|
||||
}
|
||||
|
||||
pattern.getTag().putInt(NBT_VERSION, VERSION);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.raoulvdberge.refinedstorage.RSItems;
|
||||
import com.raoulvdberge.refinedstorage.apiimpl.storage.ItemStorageType;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class ItemStoragePart extends ItemBase {
|
||||
public class ItemStoragePart extends Item {
|
||||
public ItemStoragePart(ItemStorageType type) {
|
||||
super(new Item.Properties().group(RS.MAIN_GROUP));
|
||||
|
||||
|
||||
@@ -1,43 +1,47 @@
|
||||
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 com.raoulvdberge.refinedstorage.tile.TileNode;
|
||||
import com.raoulvdberge.refinedstorage.util.WorldUtils;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemUseContext;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ActionResultType;
|
||||
import net.minecraft.util.Rotation;
|
||||
|
||||
public class ItemWrench extends ItemBase {
|
||||
public class ItemWrench extends Item {
|
||||
public ItemWrench() {
|
||||
super(new ItemInfo(RS.ID, "wrench"));
|
||||
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, "wrench");
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnumActionResult onItemUse(PlayerEntity player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
|
||||
if (!player.isSneaking()) {
|
||||
return EnumActionResult.FAIL;
|
||||
public ActionResultType onItemUse(ItemUseContext ctx) {
|
||||
if (!ctx.getPlayer().isSneaking()) {
|
||||
return ActionResultType.FAIL;
|
||||
}
|
||||
|
||||
if (world.isRemote) {
|
||||
return EnumActionResult.SUCCESS;
|
||||
if (ctx.getWorld().isRemote) {
|
||||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
|
||||
TileEntity tile = world.getTileEntity(pos);
|
||||
TileEntity tile = ctx.getWorld().getTileEntity(ctx.getPos());
|
||||
|
||||
if (tile instanceof TileNode && ((TileNode) tile).getNode().getNetwork() != null && !((TileNode) tile).getNode().getNetwork().getSecurityManager().hasPermission(Permission.BUILD, player)) {
|
||||
WorldUtils.sendNoPermissionMessage(player);
|
||||
// TODO - Better INetworkNode check
|
||||
if (tile instanceof TileNode &&
|
||||
((TileNode) tile).getNode().getNetwork() != null &&
|
||||
!((TileNode) tile).getNode().getNetwork().getSecurityManager().hasPermission(Permission.BUILD, ctx.getPlayer())) {
|
||||
WorldUtils.sendNoPermissionMessage(ctx.getPlayer());
|
||||
|
||||
return EnumActionResult.FAIL;
|
||||
return ActionResultType.FAIL;
|
||||
}
|
||||
|
||||
IBlockState state = world.getBlockState(pos);
|
||||
|
||||
Block block = state.getBlock();
|
||||
BlockState state = ctx.getWorld().getBlockState(ctx.getPos());
|
||||
|
||||
/* TODO - Covers
|
||||
if (block instanceof BlockCable && tile instanceof TileNode && ((TileNode) tile).getNode() instanceof ICoverable) {
|
||||
CoverManager manager = ((ICoverable) ((TileNode) tile).getNode()).getCoverManager();
|
||||
|
||||
@@ -63,13 +67,13 @@ public class ItemWrench extends ItemBase {
|
||||
|
||||
InventoryHelper.spawnItemStack(world, pos.getX(), pos.getY(), pos.getZ(), cover);
|
||||
|
||||
return EnumActionResult.SUCCESS;
|
||||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
block.rotateBlock(world, pos, player.getHorizontalFacing().getOpposite());
|
||||
ctx.getWorld().setBlockState(ctx.getPos(), state.rotate(Rotation.CLOCKWISE_90));
|
||||
|
||||
return EnumActionResult.SUCCESS;
|
||||
}*/
|
||||
return ActionResultType.SUCCESS;
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import net.minecraft.util.BlockRenderLayer;
|
||||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.text.ITextComponent;
|
||||
import net.minecraft.util.text.StringTextComponent;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import net.minecraftforge.client.ForgeHooksClient;
|
||||
import net.minecraftforge.client.MinecraftForgeClient;
|
||||
@@ -235,14 +236,14 @@ public final class RenderUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static void addCombinedItemsToTooltip(List<String> tooltip, boolean displayAmount, List<ItemStack> stacks) {
|
||||
public static void addCombinedItemsToTooltip(List<ITextComponent> tooltip, boolean displayAmount, List<ItemStack> stacks) {
|
||||
Set<Integer> combinedIndices = new HashSet<>();
|
||||
|
||||
for (int i = 0; i < stacks.size(); ++i) {
|
||||
if (!stacks.get(i).isEmpty() && !combinedIndices.contains(i)) {
|
||||
ItemStack stack = stacks.get(i);
|
||||
|
||||
String data = stack.getDisplayName().getString(); // TODO does this work
|
||||
ITextComponent data = stack.getDisplayName();
|
||||
|
||||
int amount = stack.getCount();
|
||||
|
||||
@@ -254,21 +255,23 @@ public final class RenderUtils {
|
||||
}
|
||||
}
|
||||
|
||||
data = (displayAmount ? (String.valueOf(amount) + "x ") : "") + data;
|
||||
if (displayAmount) {
|
||||
data = new StringTextComponent(amount + "x ").appendSibling(data);
|
||||
}
|
||||
|
||||
tooltip.add(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void addCombinedFluidsToTooltip(List<String> tooltip, boolean showMb, NonNullList<FluidStack> stacks) {
|
||||
public static void addCombinedFluidsToTooltip(List<ITextComponent> tooltip, boolean displayMb, NonNullList<FluidStack> stacks) {
|
||||
Set<Integer> combinedIndices = new HashSet<>();
|
||||
|
||||
for (int i = 0; i < stacks.size(); ++i) {
|
||||
if (!combinedIndices.contains(i)) {
|
||||
FluidStack stack = stacks.get(i);
|
||||
|
||||
String data = stack.getDisplayName().getString(); // TODO does this work
|
||||
ITextComponent data = stack.getDisplayName();
|
||||
|
||||
int amount = stack.getAmount();
|
||||
|
||||
@@ -280,7 +283,11 @@ public final class RenderUtils {
|
||||
}
|
||||
}
|
||||
|
||||
tooltip.add((showMb ? (API.instance().getQuantityFormatter().formatInBucketForm(amount) + " ") : "") + data);
|
||||
if (displayMb) {
|
||||
data = new StringTextComponent(API.instance().getQuantityFormatter().formatInBucketForm(amount) + " ").appendSibling(data);
|
||||
}
|
||||
|
||||
tooltip.add(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,10 +97,10 @@
|
||||
"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:pattern.inputs": "Inputs",
|
||||
"misc.refinedstorage:pattern.outputs": "Outputs",
|
||||
"misc.refinedstorage:pattern.invalid": "Invalid pattern",
|
||||
"misc.refinedstorage:pattern.oredict": "Uses ore dictionary",
|
||||
"misc.refinedstorage.pattern.inputs": "Inputs",
|
||||
"misc.refinedstorage.pattern.outputs": "Outputs",
|
||||
"misc.refinedstorage.pattern.invalid": "Invalid pattern",
|
||||
"misc.refinedstorage.pattern.oredict": "Uses ore dictionary",
|
||||
"misc.refinedstorage:security.no_permission": "You have no permission to perform that action.",
|
||||
"misc.refinedstorage:start": "Start",
|
||||
"misc.refinedstorage:clear": "Clear",
|
||||
@@ -108,7 +108,7 @@
|
||||
"misc.refinedstorage:cancel_all": "Cancel All",
|
||||
"misc.refinedstorage:priority": "Priority",
|
||||
"misc.refinedstorage:oredict": "Oredict",
|
||||
"misc.refinedstorage:processing": "Processing",
|
||||
"misc.refinedstorage.processing": "Processing",
|
||||
"misc.refinedstorage:reader_writer.redstone": "Redstone strength: %d",
|
||||
"misc.refinedstorage:total": "%s total",
|
||||
"misc.refinedstorage:last_modified.just_now": "Last modified just now by %s",
|
||||
@@ -255,7 +255,7 @@
|
||||
"item.refinedstorage.256k_fluid_storage_part": "256k Fluid Storage Part",
|
||||
"item.refinedstorage.1024k_fluid_storage_part": "1024k Fluid Storage Part",
|
||||
"item.refinedstorage.4096k_fluid_storage_part": "4096k Fluid Storage Part",
|
||||
"item.refinedstorage:pattern": "Pattern",
|
||||
"item.refinedstorage.pattern": "Pattern",
|
||||
"item.refinedstorage.upgrade": "Upgrade",
|
||||
"item.refinedstorage.range_upgrade": "Range Upgrade",
|
||||
"item.refinedstorage.speed_upgrade": "Speed Upgrade",
|
||||
@@ -268,7 +268,7 @@
|
||||
"item.refinedstorage.storage_housing": "Storage Housing",
|
||||
"item.refinedstorage:filter": "Filter",
|
||||
"item.refinedstorage.network_card": "Network Card",
|
||||
"item.refinedstorage:wrench": "Wrench",
|
||||
"item.refinedstorage.wrench": "Wrench",
|
||||
"item.refinedstorage.security_card": "Security Card",
|
||||
"item.refinedstorage.security_card.owner": "Bound to: %s",
|
||||
"item.refinedstorage.cutting_tool": "Cutting Tool",
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
],
|
||||
"key": {
|
||||
"G": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "blockGlass"
|
||||
"tag": "forge:glass"
|
||||
},
|
||||
"R": {
|
||||
"item": "minecraft:redstone"
|
||||
@@ -10,7 +10,7 @@
|
||||
"item": "refinedstorage:quartz_enriched_iron"
|
||||
},
|
||||
"P": {
|
||||
"item": "#basic_processor"
|
||||
"item": "refinedstorage:basic_processor"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
Reference in New Issue
Block a user