Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94f751d78a | ||
|
|
f6feca096f | ||
|
|
649f38efb8 | ||
|
|
e4e221b9fd | ||
|
|
d7f063eec8 | ||
|
|
aa988a3be7 | ||
|
|
18f2a027bc | ||
|
|
7ca34e52d6 | ||
|
|
7f83b5b909 |
No files matched your search
@@ -7,5 +7,5 @@ jei_version=3.7.3.221
|
||||
ic2_version=2.6.5-ex110
|
||||
|
||||
version_major=5
|
||||
version_minor=1
|
||||
version_patch=12
|
||||
version_minor=2
|
||||
version_patch=0
|
||||
@@ -5,43 +5,41 @@
|
||||
******************************************************************************/
|
||||
package forestry.api.storage;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public interface IBackpackDefinition extends Predicate<ItemStack> {
|
||||
|
||||
/**
|
||||
* To make your own backpack, create a backpack definition and register it with
|
||||
* {@link IBackpackInterface#registerBackpackDefinition(String, IBackpackDefinition)}.
|
||||
*/
|
||||
public interface IBackpackDefinition {
|
||||
/**
|
||||
* @return Human-readable name of the backpack.
|
||||
*/
|
||||
@Nonnull
|
||||
String getName(ItemStack backpack);
|
||||
|
||||
/**
|
||||
* @return Primary colour for the backpack icon.
|
||||
* @return Primary color for the backpack icon.
|
||||
*/
|
||||
int getPrimaryColour();
|
||||
|
||||
/**
|
||||
* @return Secondary colour for backpack icon.
|
||||
* @return Secondary color for backpack icon, normally white.
|
||||
*/
|
||||
int getSecondaryColour();
|
||||
|
||||
/**
|
||||
* Adds an item as valid for this backpack.
|
||||
* Filters items that can be put into a backpack.
|
||||
*
|
||||
* @param validItem
|
||||
* For Backpack Implementers: you can create a new filter with
|
||||
* {@link IBackpackInterface#createBackpackFilter()} or
|
||||
* {@link IBackpackInterface#createNaturalistBackpackFilter(String)}
|
||||
* or implement your own.
|
||||
*
|
||||
* @return the backpack's item filter.
|
||||
*/
|
||||
void addValidItem(ItemStack validItem);
|
||||
|
||||
void addValidItems(List<ItemStack> validItems);
|
||||
|
||||
void addValidOreDictName(String oreDictName);
|
||||
|
||||
/**
|
||||
* Returns true if the ItemStack is a valid item for this backpack type.
|
||||
*/
|
||||
@Override
|
||||
boolean test(ItemStack itemstack);
|
||||
|
||||
@Nonnull
|
||||
IBackpackFilter getFilter();
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package forestry.api.storage;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
/**
|
||||
* Filters items that can be put into a backpack.
|
||||
* You can get a specific backpack's filter with {@link IBackpackDefinition#getFilter()}.
|
||||
* <p>
|
||||
* For Backpack Implementers: you can create a new filter with {@link IBackpackInterface#createBackpackFilter()} or implement your own.
|
||||
*
|
||||
* @see IBackpackFilterConfigurable
|
||||
*/
|
||||
public interface IBackpackFilter extends Predicate<ItemStack> {
|
||||
/**
|
||||
* Returns true if the ItemStack is a valid item for this backpack filter.
|
||||
*/
|
||||
@Override
|
||||
boolean test(ItemStack itemstack);
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package forestry.api.storage;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
/**
|
||||
* A configurable backpack filter. Useful for implementers of {@link IBackpackDefinition}.
|
||||
* Get a new instance from {@link IBackpackInterface#createBackpackFilter()}.
|
||||
*/
|
||||
public interface IBackpackFilterConfigurable extends IBackpackFilter {
|
||||
/**
|
||||
* Adds an item as valid for this backpack to pick up.
|
||||
*/
|
||||
void acceptItem(ItemStack validItem);
|
||||
|
||||
/**
|
||||
* Adds an item as invalid for this backpack, used to make exceptions to oreDictionary matches.
|
||||
*
|
||||
* @see #acceptOreDictName(String)
|
||||
*/
|
||||
void rejectItem(ItemStack invalidItem);
|
||||
|
||||
/**
|
||||
* Adds an ore dictionary name as valid for this backpack.
|
||||
* The backpack will pick up any item that has this oreDictName.
|
||||
*
|
||||
* @see OreDictionary
|
||||
*/
|
||||
void acceptOreDictName(String oreDictName);
|
||||
|
||||
/**
|
||||
* Removes an ore dictionary name as valid for this backpack.
|
||||
* The backpack will not pick up any item that has this oreDictName.
|
||||
*
|
||||
* @see OreDictionary
|
||||
*/
|
||||
void rejectOreDictName(String oreDictName);
|
||||
|
||||
/**
|
||||
* Clear all the rules from this filter.
|
||||
*/
|
||||
void clear();
|
||||
}
|
||||
@@ -8,31 +8,81 @@ package forestry.api.storage;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import forestry.api.genetics.ISpeciesRoot;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.fml.common.registry.IForgeRegistryEntry;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
/**
|
||||
* The Backpack Interface allows you to add items to Forestry backpacks or create your own backpacks.
|
||||
* <p>
|
||||
* To create your own backpack, create an {@link IBackpackDefinition}.
|
||||
* Backpack definitions have a filter, which you can create here with
|
||||
* {@link #createBackpackFilter()}
|
||||
* or {@link #createNaturalistBackpackFilter(String)}
|
||||
* or create your own.
|
||||
* <p>
|
||||
* After you've registered your backpack definition, create the item with
|
||||
* {@link #createBackpack(String, EnumBackpackType)}
|
||||
* or {@link #createNaturalistBackpack(String, ISpeciesRoot)}
|
||||
* and then register the returned item with {@link GameRegistry#register(IForgeRegistryEntry)} like any other item.
|
||||
*/
|
||||
public interface IBackpackInterface {
|
||||
/**
|
||||
* Get a backpack with a given uid so you can add items to it or get information about it.
|
||||
* returns null if there is no backpack for the given uid.
|
||||
* Add an accepted item to a Forestry backpack.
|
||||
*
|
||||
* @param backpackUid The unique ID of the Forestry backpack. See {@link BackpackManager} for valid UIDs.
|
||||
* @param itemStack The itemStack that the backpack should accept.
|
||||
* {@link OreDictionary#WILDCARD_VALUE} can be used for meta value.
|
||||
*/
|
||||
void addItemToForestryBackpack(@Nonnull String backpackUid, @Nonnull ItemStack itemStack);
|
||||
|
||||
/**
|
||||
* Register a backpack definition with a given uid.
|
||||
*/
|
||||
void registerBackpackDefinition(@Nonnull String backpackUid, @Nonnull IBackpackDefinition definition);
|
||||
|
||||
/**
|
||||
* Get a backpack definition with a given uid.
|
||||
*/
|
||||
@Nullable
|
||||
IBackpackDefinition getBackpack(@Nonnull String uid);
|
||||
IBackpackDefinition getBackpackDefinition(@Nonnull String backpackUid);
|
||||
|
||||
/**
|
||||
* Register a backpack with a given uid
|
||||
*/
|
||||
void registerBackpack(@Nonnull String uid, @Nonnull IBackpackDefinition definition);
|
||||
|
||||
/**
|
||||
* Adds a backpack with the given definition and type, returning the item.
|
||||
* Creates a backpack with the given UID and type, returning the item.
|
||||
* The backpack's definition must first be registered with {@link #registerBackpackDefinition(String, IBackpackDefinition)}.
|
||||
*
|
||||
* @param definition
|
||||
* Definition of backpack behaviour.
|
||||
* @param type
|
||||
* Type of backpack.
|
||||
* @param backpackUid The unique ID of the backpack.
|
||||
* @param type Type of backpack.
|
||||
* @return Created backpack item.
|
||||
*/
|
||||
@Nonnull
|
||||
Item createBackpack(@Nonnull IBackpackDefinition definition, @Nonnull EnumBackpackType type);
|
||||
Item createBackpack(@Nonnull String backpackUid, @Nonnull EnumBackpackType type);
|
||||
|
||||
/**
|
||||
* Create a backpack that can hold items from a specific {@link ISpeciesRoot}.
|
||||
* The backpack's definition must first be registered with {@link #registerBackpackDefinition(String, IBackpackDefinition)}.
|
||||
*
|
||||
* @param backpackUid The unique ID of the backpack.
|
||||
* @param speciesRoot The species root.
|
||||
* @return Created backpack item.
|
||||
*/
|
||||
Item createNaturalistBackpack(@Nonnull String backpackUid, @Nonnull ISpeciesRoot speciesRoot);
|
||||
|
||||
/**
|
||||
* Makes a new configurable backpack filter. Useful for implementing {@link IBackpackDefinition}.
|
||||
*/
|
||||
IBackpackFilterConfigurable createBackpackFilter();
|
||||
|
||||
/**
|
||||
* Makes a new naturalist backpack filter. Only accepts items from a specific {@link ISpeciesRoot}.
|
||||
* Useful for implementing {@link IBackpackDefinition} for naturalist's backpacks.
|
||||
*
|
||||
* @param speciesRootUid The species root's unique ID. See {@link ISpeciesRoot#getUID()}.
|
||||
* @return a new backpack filter for the specified species root
|
||||
* @see #createNaturalistBackpack(String, ISpeciesRoot)
|
||||
*/
|
||||
IBackpackFilter createNaturalistBackpackFilter(String speciesRootUid);
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* This work (the API) is licensed under the "MIT" License, see LICENSE.txt for details.
|
||||
******************************************************************************/
|
||||
@API(apiVersion = "3.0.0", owner = "ForestryAPI|core", provides = "ForestryAPI|storage")
|
||||
@API(apiVersion = "4.0.0", owner = "ForestryAPI|core", provides = "ForestryAPI|storage")
|
||||
package forestry.api.storage;
|
||||
|
||||
import net.minecraftforge.fml.common.API;
|
||||
@@ -104,6 +104,8 @@ public class RenderEscritoire extends TileEntitySpecialRenderer<TileEscritoire>
|
||||
rendermanager.doRenderEntity(dummyEntityItem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F, false);
|
||||
}
|
||||
GlStateManager.popMatrix();
|
||||
|
||||
dummyEntityItem.worldObj = null; // prevent leaking the world object
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,8 +50,8 @@ public class TextureManager implements ITextureManager {
|
||||
|
||||
public static void initDefaultSprites() {
|
||||
String[] defaultIconNames = new String[]{"habitats/desert", "habitats/end", "habitats/forest", "habitats/hills", "habitats/jungle", "habitats/mushroom",
|
||||
"habitats/nether", "habitats/ocean", "habitats/plains", "habitats/snow", "habitats/swamp", "habitats/taiga", "misc/access.private",
|
||||
"misc/access.viewable", "misc/access.shared", "misc/energy", "misc/hint",
|
||||
"habitats/nether", "habitats/ocean", "habitats/plains", "habitats/snow", "habitats/swamp", "habitats/taiga",
|
||||
"misc/access.shared", "misc/energy", "misc/hint",
|
||||
"analyzer/anything", "analyzer/bee", "analyzer/cave", "analyzer/closed", "analyzer/drone", "analyzer/flyer",
|
||||
"analyzer/item", "analyzer/nocturnal", "analyzer/princess", "analyzer/pure_breed", "analyzer/pure_cave",
|
||||
"analyzer/pure_flyer", "analyzer/pure_nocturnal", "analyzer/queen",
|
||||
|
||||
@@ -231,7 +231,7 @@ public class EntityButterfly extends EntityCreature implements IEntityButterfly
|
||||
|
||||
BlockPos posBelow = pos.down();
|
||||
IBlockState blockStateBelow = worldObj.getBlockState(posBelow);
|
||||
Block blockBelow = blockState.getBlock();
|
||||
Block blockBelow = blockStateBelow.getBlock();
|
||||
if (blockBelow.isLeaves(blockStateBelow, worldObj, posBelow)) {
|
||||
weight += 2.5f;
|
||||
} else if (blockBelow instanceof BlockFence) {
|
||||
|
||||
@@ -51,7 +51,7 @@ public class ModelButterflyItem extends BlankItemModel {
|
||||
ImmutableMap.Builder<String, String> textures = ImmutableMap.builder();
|
||||
textures.put("butterfly", butterfly.getGenome().getSecondary().getItemTexture());
|
||||
IModel retexturedModel = ModelProcessingHelper.retexture(modelButterfly, textures.build());
|
||||
return new TRSRBakedModel(retexturedModel.bake(ModelRotation.X0_Y0, DefaultVertexFormats.ITEM, textureGetter), -0.03125F, 0.0F, -0.03125F, butterfly.getSize() * 1.5F);
|
||||
return new TRSRBakedModel(retexturedModel.bake(ModelRotation.X0_Y0, DefaultVertexFormats.ITEM, textureGetter), -0.03125F, 0.5F, -0.03125F, butterfly.getSize() * 1.5F);
|
||||
}
|
||||
|
||||
private class ButterflyItemOverrideList extends ItemOverrideList {
|
||||
|
||||
@@ -13,19 +13,7 @@ package forestry.plugins.compat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
import net.minecraftforge.fml.common.event.FMLInterModComms;
|
||||
import net.minecraftforge.fml.common.registry.ForgeRegistries;
|
||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
import forestry.api.core.ForestryAPI;
|
||||
import forestry.api.farming.Farmables;
|
||||
import forestry.api.recipes.RecipeManagers;
|
||||
import forestry.api.storage.BackpackManager;
|
||||
import forestry.core.PluginCore;
|
||||
@@ -35,11 +23,17 @@ import forestry.core.recipes.RecipeUtil;
|
||||
import forestry.core.utils.ItemStackUtil;
|
||||
import forestry.core.utils.Log;
|
||||
import forestry.core.utils.ModUtil;
|
||||
import forestry.farming.logic.FarmableBasicAgricraft;
|
||||
import forestry.farming.logic.FarmableGE;
|
||||
import forestry.plugins.BlankForestryPlugin;
|
||||
import forestry.plugins.ForestryPlugin;
|
||||
import forestry.plugins.ForestryPluginUids;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.fml.common.event.FMLInterModComms;
|
||||
import net.minecraftforge.fml.common.registry.ForgeRegistries;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
@ForestryPlugin(pluginID = ForestryPluginUids.BIOMES_O_PLENTY, name = "BiomesOPlenty", author = "Nirek", url = Constants.URL, unlocalizedDescription = "for.plugin.biomesoplenty.description")
|
||||
public class PluginBiomesOPlenty extends BlankForestryPlugin {
|
||||
@@ -235,10 +229,15 @@ public class PluginBiomesOPlenty extends BlankForestryPlugin {
|
||||
for (String blockName : blockNames) {
|
||||
Block block = ForgeRegistries.BLOCKS.getValue(new ResourceLocation(BoP, blockName));
|
||||
if (block != null) {
|
||||
ItemStack blockStack = new ItemStack(block, 1, OreDictionary.WILDCARD_VALUE);
|
||||
BackpackManager.backpackInterface.getBackpack(backpackUid).addValidItem(blockStack);
|
||||
Item item = Item.getItemFromBlock(block);
|
||||
if (item != null) {
|
||||
ItemStack blockStack = new ItemStack(item, 1, OreDictionary.WILDCARD_VALUE);
|
||||
BackpackManager.backpackInterface.addItemToForestryBackpack(backpackUid, blockStack);
|
||||
} else {
|
||||
Log.warning("Could not find an item for block: {}", blockName);
|
||||
}
|
||||
} else {
|
||||
Log.warning("Missing block: ", blockName);
|
||||
Log.warning("Missing block: {}", blockName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,19 +10,10 @@
|
||||
******************************************************************************/
|
||||
package forestry.plugins.compat;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fml.common.Optional;
|
||||
import net.minecraftforge.fml.common.event.FMLInterModComms;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import forestry.api.circuits.ChipsetManager;
|
||||
import forestry.api.circuits.CircuitSocketType;
|
||||
import forestry.api.circuits.ICircuitLayout;
|
||||
@@ -32,7 +23,6 @@ import forestry.api.fuels.EngineBronzeFuel;
|
||||
import forestry.api.fuels.FuelManager;
|
||||
import forestry.api.recipes.RecipeManagers;
|
||||
import forestry.api.storage.BackpackManager;
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.api.storage.ICrateRegistry;
|
||||
import forestry.api.storage.StorageManager;
|
||||
import forestry.apiculture.PluginApiculture;
|
||||
@@ -61,10 +51,15 @@ import forestry.farming.logic.FarmableBasicIC2Crop;
|
||||
import forestry.plugins.BlankForestryPlugin;
|
||||
import forestry.plugins.ForestryPlugin;
|
||||
import forestry.plugins.ForestryPluginUids;
|
||||
|
||||
import ic2.api.item.IC2Items;
|
||||
import ic2.api.recipe.RecipeInputItemStack;
|
||||
import ic2.api.recipe.Recipes;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fml.common.Optional;
|
||||
import net.minecraftforge.fml.common.event.FMLInterModComms;
|
||||
|
||||
@ForestryPlugin(pluginID = ForestryPluginUids.INDUSTRIALCRAFT2, name = "IndustrialCraft2", author = "SirSengir", url = Constants.URL, unlocalizedDescription = "for.plugin.ic2.description")
|
||||
public class PluginIC2 extends BlankForestryPlugin {
|
||||
@@ -153,21 +148,18 @@ public class PluginIC2 extends BlankForestryPlugin {
|
||||
return;
|
||||
}
|
||||
|
||||
IBackpackDefinition forester = BackpackManager.backpackInterface.getBackpack(BackpackManager.FORESTER_UID);
|
||||
if (forester != null) {
|
||||
if (resin != null) {
|
||||
forester.addValidItem(resin);
|
||||
}
|
||||
if (rubber != null) {
|
||||
forester.addValidItem(rubber);
|
||||
}
|
||||
if (rubberSapling != null) {
|
||||
forester.addValidItem(rubberSapling);
|
||||
}
|
||||
ItemStack rubberLeaves = IC2Items.getItem("leaves");
|
||||
if (rubberLeaves != null) {
|
||||
forester.addValidItem(rubberLeaves);
|
||||
}
|
||||
if (resin != null) {
|
||||
BackpackManager.backpackInterface.addItemToForestryBackpack(BackpackManager.FORESTER_UID, resin);
|
||||
}
|
||||
if (rubber != null) {
|
||||
BackpackManager.backpackInterface.addItemToForestryBackpack(BackpackManager.FORESTER_UID, rubber);
|
||||
}
|
||||
if (rubberSapling != null) {
|
||||
BackpackManager.backpackInterface.addItemToForestryBackpack(BackpackManager.FORESTER_UID, rubberSapling);
|
||||
}
|
||||
ItemStack rubberLeaves = IC2Items.getItem("leaves");
|
||||
if (rubberLeaves != null) {
|
||||
BackpackManager.backpackInterface.addItemToForestryBackpack(BackpackManager.FORESTER_UID, rubberLeaves);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,55 +11,47 @@
|
||||
package forestry.storage;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.awt.Color;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.awt.*;
|
||||
|
||||
import forestry.api.storage.BackpackManager;
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.api.storage.IBackpackFilter;
|
||||
import forestry.core.utils.Translator;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
import forestry.api.genetics.AlleleManager;
|
||||
import forestry.api.genetics.ISpeciesRoot;
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.core.utils.ItemStackUtil;
|
||||
import forestry.core.utils.Translator;
|
||||
|
||||
public class BackpackDefinition implements IBackpackDefinition {
|
||||
|
||||
private final int primaryColor;
|
||||
private final int secondaryColor;
|
||||
|
||||
private final Set<String> validItemStacks = new HashSet<>();
|
||||
private final Set<Integer> validOreIds = new HashSet<>();
|
||||
|
||||
public BackpackDefinition(@Nonnull Color primaryColor) {
|
||||
this(primaryColor, new Color(0xffffff));
|
||||
}
|
||||
@Nonnull
|
||||
private final IBackpackFilter filter;
|
||||
|
||||
public BackpackDefinition(@Nonnull Color primaryColor, @Nonnull Color secondaryColor) {
|
||||
this(primaryColor, secondaryColor, BackpackManager.backpackInterface.createBackpackFilter());
|
||||
}
|
||||
|
||||
public BackpackDefinition(@Nonnull Color primaryColor, @Nonnull Color secondaryColor, @Nonnull IBackpackFilter filter) {
|
||||
this.primaryColor = primaryColor.getRGB();
|
||||
this.secondaryColor = secondaryColor.getRGB();
|
||||
this.filter = filter;
|
||||
}
|
||||
|
||||
public Set<Integer> getValidOreIds() {
|
||||
return validOreIds;
|
||||
}
|
||||
|
||||
public Set<String> getValidItemStacks() {
|
||||
return validItemStacks;
|
||||
@Override
|
||||
@Nonnull
|
||||
public IBackpackFilter getFilter() {
|
||||
return filter;
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public String getName(ItemStack backpack) {
|
||||
Item item = backpack.getItem();
|
||||
String display = Translator.translateToLocal(item.getUnlocalizedNameInefficiently(backpack) + ".name").trim();
|
||||
|
||||
if (backpack.hasTagCompound() && backpack.getTagCompound().hasKey("display", 10)) {
|
||||
NBTTagCompound nbt = backpack.getTagCompound().getCompoundTag("display");
|
||||
NBTTagCompound tagCompound = backpack.getTagCompound();
|
||||
if (tagCompound != null && tagCompound.hasKey("display", 10)) {
|
||||
NBTTagCompound nbt = tagCompound.getCompoundTag("display");
|
||||
|
||||
if (nbt.hasKey("Name", 8)) {
|
||||
display = nbt.getString("Name");
|
||||
@@ -78,89 +70,4 @@ public class BackpackDefinition implements IBackpackDefinition {
|
||||
public int getSecondaryColour() {
|
||||
return secondaryColor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addValidItem(ItemStack validItem) {
|
||||
String itemStackString = ItemStackUtil.getStringForItemStack(validItem);
|
||||
if (itemStackString != null) {
|
||||
this.validItemStacks.add(itemStackString);
|
||||
}
|
||||
}
|
||||
|
||||
public void clearAllValid() {
|
||||
validItemStacks.clear();
|
||||
validOreIds.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addValidItems(List<ItemStack> validItems) {
|
||||
for (ItemStack validItem : validItems) {
|
||||
addValidItem(validItem);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addValidOreDictName(String oreDictName) {
|
||||
if (OreDictionary.doesOreNameExist(oreDictName)) {
|
||||
int oreId = OreDictionary.getOreID(oreDictName);
|
||||
validOreIds.add(oreId);
|
||||
}
|
||||
}
|
||||
|
||||
public void addValidOreDictNames(List<String> oreDictNames) {
|
||||
for (String oreDictName : oreDictNames) {
|
||||
addValidOreDictName(oreDictName);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(ItemStack itemStack) {
|
||||
if (itemStack == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Item item = itemStack.getItem();
|
||||
if (item == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
String itemStackStringWild = ItemStackUtil.getItemNameFromRegistryAsString(item);
|
||||
if (validItemStacks.contains(itemStackStringWild)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
int meta = itemStack.getItemDamage();
|
||||
if (meta != OreDictionary.WILDCARD_VALUE) {
|
||||
String itemStackString = itemStackStringWild + ':' + meta;
|
||||
if (validItemStacks.contains(itemStackString)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
int[] oreIds = OreDictionary.getOreIDs(itemStack);
|
||||
for (int oreId : oreIds) {
|
||||
if (validOreIds.contains(oreId)) {
|
||||
validItemStacks.add(itemStackStringWild);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static class BackpackDefinitionNaturalist extends BackpackDefinition {
|
||||
@Nonnull
|
||||
private final String speciesRootUid;
|
||||
|
||||
public BackpackDefinitionNaturalist(@Nonnull Color primaryColor, @Nonnull String speciesRootUid) {
|
||||
super(primaryColor);
|
||||
this.speciesRootUid = speciesRootUid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(ItemStack itemStack) {
|
||||
ISpeciesRoot speciesRoot = AlleleManager.alleleRegistry.getSpeciesRoot(speciesRootUid);
|
||||
return speciesRoot.isMember(itemStack);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
package forestry.storage;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import forestry.api.storage.IBackpackFilterConfigurable;
|
||||
import forestry.core.utils.ItemStackUtil;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
public class BackpackFilter implements IBackpackFilterConfigurable {
|
||||
private final Set<String> acceptedItemStacks = new HashSet<>();
|
||||
private final Set<String> rejectedItemStacks = new HashSet<>();
|
||||
private final Set<Integer> validOreIds = new HashSet<>();
|
||||
|
||||
@Override
|
||||
public void acceptItem(ItemStack validItem) {
|
||||
String itemStackString = ItemStackUtil.getStringForItemStack(validItem);
|
||||
if (itemStackString != null) {
|
||||
this.acceptedItemStacks.add(itemStackString);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void acceptOreDictName(String oreDictName) {
|
||||
if (OreDictionary.doesOreNameExist(oreDictName)) {
|
||||
int oreId = OreDictionary.getOreID(oreDictName);
|
||||
this.validOreIds.add(oreId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rejectOreDictName(String oreDictName) {
|
||||
if (OreDictionary.doesOreNameExist(oreDictName)) {
|
||||
int oreId = OreDictionary.getOreID(oreDictName);
|
||||
this.validOreIds.remove(oreId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rejectItem(ItemStack invalidItem) {
|
||||
String itemStackString = ItemStackUtil.getStringForItemStack(invalidItem);
|
||||
if (itemStackString != null) {
|
||||
this.rejectedItemStacks.add(itemStackString);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
acceptedItemStacks.clear();
|
||||
rejectedItemStacks.clear();
|
||||
validOreIds.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(ItemStack itemStack) {
|
||||
if (itemStack == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Item item = itemStack.getItem();
|
||||
if (item == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
String itemStackStringWild = ItemStackUtil.getItemNameFromRegistryAsString(item);
|
||||
if (rejectedItemStacks.contains(itemStackStringWild)) {
|
||||
return false;
|
||||
}
|
||||
if (acceptedItemStacks.contains(itemStackStringWild)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
int meta = itemStack.getMetadata();
|
||||
if (meta != OreDictionary.WILDCARD_VALUE) {
|
||||
String itemStackString = itemStackStringWild + ':' + meta;
|
||||
if (rejectedItemStacks.contains(itemStackString)) {
|
||||
return false;
|
||||
}
|
||||
if (acceptedItemStacks.contains(itemStackString)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
int[] oreIds = OreDictionary.getOreIDs(itemStack);
|
||||
for (int oreId : oreIds) {
|
||||
if (validOreIds.contains(oreId)) {
|
||||
acceptedItemStacks.add(itemStackStringWild);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public Set<Integer> getValidOreIds() {
|
||||
return validOreIds;
|
||||
}
|
||||
|
||||
public Set<String> getAcceptedItemStacks() {
|
||||
return acceptedItemStacks;
|
||||
}
|
||||
|
||||
public Set<String> getRejectedItemStacks() {
|
||||
return rejectedItemStacks;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package forestry.storage;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import forestry.api.genetics.AlleleManager;
|
||||
import forestry.api.genetics.ISpeciesRoot;
|
||||
import forestry.api.storage.IBackpackFilter;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class BackpackFilterNaturalist implements IBackpackFilter {
|
||||
@Nonnull
|
||||
private final String speciesRootUid;
|
||||
|
||||
public BackpackFilterNaturalist(@Nonnull String speciesRootUid) {
|
||||
this.speciesRootUid = speciesRootUid;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean test(ItemStack itemStack) {
|
||||
ISpeciesRoot speciesRoot = AlleleManager.alleleRegistry.getSpeciesRoot(speciesRootUid);
|
||||
return speciesRoot.isMember(itemStack);
|
||||
}
|
||||
}
|
||||
@@ -15,33 +15,108 @@ import javax.annotation.Nullable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import forestry.api.genetics.ISpeciesRoot;
|
||||
import forestry.api.storage.EnumBackpackType;
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.api.storage.IBackpackFilter;
|
||||
import forestry.api.storage.IBackpackFilterConfigurable;
|
||||
import forestry.api.storage.IBackpackInterface;
|
||||
import forestry.core.utils.ItemStackUtil;
|
||||
import forestry.storage.items.ItemBackpack;
|
||||
import forestry.storage.items.ItemBackpackNaturalist;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class BackpackInterface implements IBackpackInterface {
|
||||
/**
|
||||
* Only use this if you know what you are doing. Prefer backpackInterface.
|
||||
*/
|
||||
public final Map<String, IBackpackDefinition> definitions = new HashMap<>();
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IBackpackDefinition getBackpack(@Nonnull String uid) {
|
||||
return definitions.get(uid);
|
||||
private final Map<String, IBackpackDefinition> definitions = new HashMap<>();
|
||||
private final Multimap<String, String> backpackAcceptedItems = HashMultimap.create();
|
||||
|
||||
public Multimap<String, String> getBackpackAcceptedItems() {
|
||||
return backpackAcceptedItems;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBackpack(@Nonnull String uid, @Nonnull IBackpackDefinition definition) {
|
||||
definitions.put(uid, definition);
|
||||
public void addItemToForestryBackpack(@Nullable String backpackUid, @Nullable ItemStack itemStack) {
|
||||
if (backpackUid == null) {
|
||||
throw new NullPointerException("backpackUid must not be null");
|
||||
}
|
||||
if (itemStack == null) {
|
||||
throw new NullPointerException("itemStack must not be null");
|
||||
}
|
||||
if (itemStack.getItem() == null) {
|
||||
throw new NullPointerException("itemStack.getItem() must not be null");
|
||||
}
|
||||
|
||||
String stringForItemStack = ItemStackUtil.getStringForItemStack(itemStack);
|
||||
backpackAcceptedItems.put(backpackUid, stringForItemStack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBackpackDefinition(@Nullable String backpackUid, @Nullable IBackpackDefinition definition) {
|
||||
if (backpackUid == null) {
|
||||
throw new NullPointerException("backpackUid must not be null");
|
||||
}
|
||||
if (definition == null) {
|
||||
throw new NullPointerException("definition must not be null");
|
||||
}
|
||||
definitions.put(backpackUid, definition);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public IBackpackDefinition getBackpackDefinition(@Nullable String backpackUid) {
|
||||
if (backpackUid == null) {
|
||||
throw new NullPointerException("backpackUid must not be null");
|
||||
}
|
||||
return definitions.get(backpackUid);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@Override
|
||||
public Item createBackpack(@Nonnull IBackpackDefinition definition, @Nonnull EnumBackpackType type) {
|
||||
public Item createBackpack(@Nullable String backpackUid, @Nullable EnumBackpackType type) {
|
||||
if (backpackUid == null) {
|
||||
throw new NullPointerException("backpackUid must not be null");
|
||||
}
|
||||
if (type == null) {
|
||||
throw new NullPointerException("type must not be null");
|
||||
}
|
||||
if (type == EnumBackpackType.NATURALIST) {
|
||||
throw new IllegalArgumentException("type must not be NATURALIST. Use createNaturalistBackpack instead.");
|
||||
}
|
||||
|
||||
IBackpackDefinition definition = definitions.get(backpackUid);
|
||||
if (definition == null) {
|
||||
throw new IllegalArgumentException("No backpack definition was registered for UID: " + backpackUid);
|
||||
}
|
||||
return new ItemBackpack(definition, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item createNaturalistBackpack(@Nullable String backpackUid, @Nullable ISpeciesRoot speciesRoot) {
|
||||
if (backpackUid == null) {
|
||||
throw new NullPointerException("backpackUid must not be null");
|
||||
}
|
||||
if (speciesRoot == null) {
|
||||
throw new NullPointerException("speciesRoot must not be null");
|
||||
}
|
||||
|
||||
IBackpackDefinition definition = definitions.get(backpackUid);
|
||||
if (definition == null) {
|
||||
throw new IllegalArgumentException("No backpack definition was registered for UID: " + backpackUid);
|
||||
}
|
||||
return new ItemBackpackNaturalist(speciesRoot, definition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBackpackFilterConfigurable createBackpackFilter() {
|
||||
return new BackpackFilter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBackpackFilter createNaturalistBackpackFilter(String speciesRootUid) {
|
||||
return new BackpackFilterNaturalist(speciesRootUid);
|
||||
}
|
||||
}
|
||||
@@ -10,15 +10,14 @@
|
||||
******************************************************************************/
|
||||
package forestry.storage;
|
||||
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.core.IPickupHandler;
|
||||
import forestry.storage.gui.ContainerBackpack;
|
||||
import forestry.storage.gui.ContainerNaturalistBackpack;
|
||||
import forestry.storage.items.ItemBackpack;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class PickupHandlerStorage implements IPickupHandler {
|
||||
|
||||
@@ -54,7 +53,7 @@ public class PickupHandlerStorage implements IPickupHandler {
|
||||
|
||||
ItemBackpack backpack = (ItemBackpack) pack.getItem();
|
||||
IBackpackDefinition backpackDefinition = backpack.getDefinition();
|
||||
if (backpackDefinition.test(itemstack)) {
|
||||
if (backpackDefinition.getFilter().test(itemstack)) {
|
||||
ItemBackpack.tryStowing(player, pack, itemstack);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,43 +10,25 @@
|
||||
******************************************************************************/
|
||||
package forestry.storage;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.awt.Color;
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import net.minecraftforge.client.event.ModelBakeEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.config.Property;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fml.common.SidedProxy;
|
||||
import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import forestry.Forestry;
|
||||
import forestry.api.core.ForestryAPI;
|
||||
import forestry.api.recipes.RecipeManagers;
|
||||
import forestry.api.storage.BackpackManager;
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.api.storage.IBackpackFilter;
|
||||
import forestry.api.storage.IBackpackFilterConfigurable;
|
||||
import forestry.api.storage.StorageManager;
|
||||
import forestry.apiculture.PluginApiculture;
|
||||
import forestry.apiculture.blocks.BlockRegistryApiculture;
|
||||
@@ -70,6 +52,22 @@ import forestry.plugins.ForestryPlugin;
|
||||
import forestry.plugins.ForestryPluginUids;
|
||||
import forestry.storage.items.ItemRegistryStorage;
|
||||
import forestry.storage.proxy.ProxyStorage;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.client.event.ModelBakeEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.config.Property;
|
||||
import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidRegistry;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fml.common.SidedProxy;
|
||||
import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
@ForestryPlugin(pluginID = ForestryPluginUids.STORAGE, name = "Storage", author = "SirSengir", url = Constants.URL, unlocalizedDescription = "for.plugin.storage.description")
|
||||
public class PluginStorage extends BlankForestryPlugin {
|
||||
@@ -82,8 +80,10 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
|
||||
public static ItemRegistryStorage items;
|
||||
|
||||
private final Multimap<String, String> backpackOreDictRegexpDefaults = HashMultimap.create();
|
||||
private final Multimap<String, String> backpackItemDefaults = HashMultimap.create();
|
||||
private final Multimap<String, String> backpackAcceptedOreDictRegexpDefaults = HashMultimap.create();
|
||||
private final Multimap<String, String> backpackRejectedOreDictRegexpDefaults = HashMultimap.create();
|
||||
private final Multimap<String, String> backpackAcceptedItemDefaults = HashMultimap.create();
|
||||
private final Multimap<String, String> backpackRejectedItemDefaults = HashMultimap.create();
|
||||
|
||||
private final List<String> forestryBackpackUids = Arrays.asList(
|
||||
BackpackManager.MINER_UID,
|
||||
@@ -105,32 +105,34 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
BackpackDefinition definition;
|
||||
|
||||
if (ForestryAPI.enabledPlugins.contains(ForestryPluginUids.APICULTURE)) {
|
||||
definition = new BackpackDefinition.BackpackDefinitionNaturalist(new Color(0xc4923d), "rootBees");
|
||||
BackpackManager.backpackInterface.registerBackpack("apiarist", definition);
|
||||
IBackpackFilter filter = BackpackManager.backpackInterface.createNaturalistBackpackFilter("rootBees");
|
||||
definition = new BackpackDefinition(new Color(0xc4923d), Color.WHITE, filter);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition("apiarist", definition);
|
||||
}
|
||||
|
||||
if (ForestryAPI.enabledPlugins.contains(ForestryPluginUids.LEPIDOPTEROLOGY)) {
|
||||
definition = new BackpackDefinition.BackpackDefinitionNaturalist(new Color(0x995b31), "rootButterflies");
|
||||
BackpackManager.backpackInterface.registerBackpack("lepidopterist", definition);
|
||||
IBackpackFilter filter = BackpackManager.backpackInterface.createNaturalistBackpackFilter("rootButterflies");
|
||||
definition = new BackpackDefinition(new Color(0x995b31), Color.WHITE, filter);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition("lepidopterist", definition);
|
||||
}
|
||||
|
||||
definition = new BackpackDefinition(new Color(0x36187d));
|
||||
BackpackManager.backpackInterface.registerBackpack(BackpackManager.MINER_UID, definition);
|
||||
definition = new BackpackDefinition(new Color(0x36187d), Color.WHITE);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition(BackpackManager.MINER_UID, definition);
|
||||
|
||||
definition = new BackpackDefinition(new Color(0x363cc5));
|
||||
BackpackManager.backpackInterface.registerBackpack(BackpackManager.DIGGER_UID, definition);
|
||||
definition = new BackpackDefinition(new Color(0x363cc5), Color.WHITE);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition(BackpackManager.DIGGER_UID, definition);
|
||||
|
||||
definition = new BackpackDefinition(new Color(0x347427));
|
||||
BackpackManager.backpackInterface.registerBackpack(BackpackManager.FORESTER_UID, definition);
|
||||
definition = new BackpackDefinition(new Color(0x347427), Color.WHITE);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition(BackpackManager.FORESTER_UID, definition);
|
||||
|
||||
definition = new BackpackDefinition(new Color(0x412215));
|
||||
BackpackManager.backpackInterface.registerBackpack(BackpackManager.HUNTER_UID, definition);
|
||||
definition = new BackpackDefinition(new Color(0x412215), Color.WHITE);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition(BackpackManager.HUNTER_UID, definition);
|
||||
|
||||
definition = new BackpackDefinition(new Color(0x7fb8c2));
|
||||
BackpackManager.backpackInterface.registerBackpack(BackpackManager.ADVENTURER_UID, definition);
|
||||
definition = new BackpackDefinition(new Color(0x7fb8c2), Color.WHITE);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition(BackpackManager.ADVENTURER_UID, definition);
|
||||
|
||||
definition = new BackpackDefinition(new Color(0xdd3a3a));
|
||||
BackpackManager.backpackInterface.registerBackpack(BackpackManager.BUILDER_UID, definition);
|
||||
definition = new BackpackDefinition(new Color(0xdd3a3a), Color.WHITE);
|
||||
BackpackManager.backpackInterface.registerBackpackDefinition(BackpackManager.BUILDER_UID, definition);
|
||||
|
||||
proxy.registerCrateModel();
|
||||
}
|
||||
@@ -151,7 +153,13 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
final String newConfig = CONFIG_CATEGORY + ".cfg";
|
||||
|
||||
File configFile = new File(Forestry.instance.getConfigFolder(), newConfig);
|
||||
LocalizedConfiguration config = new LocalizedConfiguration(configFile, "1.0.0");
|
||||
LocalizedConfiguration config = new LocalizedConfiguration(configFile, "2.0.0");
|
||||
if (!config.getDefinedConfigVersion().equals(config.getLoadedConfigVersion())) {
|
||||
boolean deleted = configFile.delete();
|
||||
if (deleted) {
|
||||
config = new LocalizedConfiguration(configFile, "2.0.0");
|
||||
}
|
||||
}
|
||||
|
||||
setDefaultsForConfig();
|
||||
|
||||
@@ -163,7 +171,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
}
|
||||
|
||||
private void setDefaultsForConfig() {
|
||||
backpackOreDictRegexpDefaults.get(BackpackManager.MINER_UID).addAll(Arrays.asList(
|
||||
backpackAcceptedOreDictRegexpDefaults.get(BackpackManager.MINER_UID).addAll(Arrays.asList(
|
||||
"obsidian",
|
||||
"ore[A-Z].*",
|
||||
"dust[A-Z].*",
|
||||
@@ -175,7 +183,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
"denseore[A-Z].*"
|
||||
));
|
||||
|
||||
backpackOreDictRegexpDefaults.get(BackpackManager.DIGGER_UID).addAll(Arrays.asList(
|
||||
backpackAcceptedOreDictRegexpDefaults.get(BackpackManager.DIGGER_UID).addAll(Arrays.asList(
|
||||
"cobblestone",
|
||||
"dirt",
|
||||
"gravel",
|
||||
@@ -185,7 +193,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
"sand"
|
||||
));
|
||||
|
||||
backpackOreDictRegexpDefaults.get(BackpackManager.HUNTER_UID).addAll(Arrays.asList(
|
||||
backpackAcceptedOreDictRegexpDefaults.get(BackpackManager.HUNTER_UID).addAll(Arrays.asList(
|
||||
"bone",
|
||||
"egg",
|
||||
"enderpearl",
|
||||
@@ -197,7 +205,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
"string"
|
||||
));
|
||||
|
||||
backpackOreDictRegexpDefaults.get(BackpackManager.FORESTER_UID).addAll(Arrays.asList(
|
||||
backpackAcceptedOreDictRegexpDefaults.get(BackpackManager.FORESTER_UID).addAll(Arrays.asList(
|
||||
"logWood",
|
||||
"stickWood",
|
||||
"woodStick",
|
||||
@@ -211,7 +219,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
"tree[A-Z].*"
|
||||
));
|
||||
|
||||
backpackOreDictRegexpDefaults.get(BackpackManager.BUILDER_UID).addAll(Arrays.asList(
|
||||
backpackAcceptedOreDictRegexpDefaults.get(BackpackManager.BUILDER_UID).addAll(Arrays.asList(
|
||||
"block[A-Z].*",
|
||||
"paneGlass[A-Z].*",
|
||||
"slabWood[A-Z].*",
|
||||
@@ -234,7 +242,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
"doorWood"
|
||||
));
|
||||
|
||||
backpackItemDefaults.get(BackpackManager.MINER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
backpackAcceptedItemDefaults.get(BackpackManager.MINER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
new ItemStack(Blocks.COAL_ORE),
|
||||
new ItemStack(Items.COAL),
|
||||
PluginCore.items.bronzePickaxe.getItemStack(),
|
||||
@@ -242,7 +250,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
PluginCore.items.brokenBronzePickaxe.getItemStack()
|
||||
)));
|
||||
|
||||
backpackItemDefaults.get(BackpackManager.DIGGER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
backpackAcceptedItemDefaults.get(BackpackManager.DIGGER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
new ItemStack(Blocks.DIRT, 1, OreDictionary.WILDCARD_VALUE),
|
||||
new ItemStack(Items.FLINT),
|
||||
new ItemStack(Blocks.SANDSTONE, 1, 0),
|
||||
@@ -254,7 +262,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
PluginCore.items.brokenBronzeShovel.getItemStack()
|
||||
)));
|
||||
|
||||
backpackItemDefaults.get(BackpackManager.FORESTER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
backpackAcceptedItemDefaults.get(BackpackManager.FORESTER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
new ItemStack(Blocks.RED_MUSHROOM),
|
||||
new ItemStack(Blocks.BROWN_MUSHROOM),
|
||||
new ItemStack(Blocks.RED_FLOWER, 1, OreDictionary.WILDCARD_VALUE),
|
||||
@@ -274,7 +282,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
new ItemStack(Items.APPLE)
|
||||
)));
|
||||
|
||||
backpackItemDefaults.get(BackpackManager.HUNTER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
backpackAcceptedItemDefaults.get(BackpackManager.HUNTER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
new ItemStack(Items.BLAZE_POWDER),
|
||||
new ItemStack(Items.BLAZE_ROD),
|
||||
new ItemStack(Items.ROTTEN_FLESH),
|
||||
@@ -315,7 +323,7 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
new ItemStack(Items.IRON_HORSE_ARMOR)
|
||||
)));
|
||||
|
||||
backpackItemDefaults.get(BackpackManager.BUILDER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
backpackAcceptedItemDefaults.get(BackpackManager.BUILDER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
new ItemStack(Blocks.REDSTONE_TORCH),
|
||||
new ItemStack(Blocks.REDSTONE_LAMP),
|
||||
new ItemStack(Blocks.SEA_LANTERN),
|
||||
@@ -369,24 +377,15 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
|
||||
BlockRegistryApiculture beeBlocks = PluginApiculture.blocks;
|
||||
if (beeBlocks != null) {
|
||||
backpackItemDefaults.get(BackpackManager.BUILDER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
backpackAcceptedItemDefaults.get(BackpackManager.BUILDER_UID).addAll(getItemStrings(Arrays.asList(
|
||||
new ItemStack(beeBlocks.candle, 1, OreDictionary.WILDCARD_VALUE),
|
||||
new ItemStack(beeBlocks.stump, 1, OreDictionary.WILDCARD_VALUE)
|
||||
)));
|
||||
}
|
||||
|
||||
// include everything added via the API
|
||||
for (String backpackUid : forestryBackpackUids) {
|
||||
BackpackDefinition backpackDefinition = (BackpackDefinition) BackpackManager.backpackInterface.getBackpack(backpackUid);
|
||||
|
||||
Collection<String> oreDictDefaults = backpackOreDictRegexpDefaults.get(backpackUid);
|
||||
for (int oreId : backpackDefinition.getValidOreIds()) {
|
||||
String oreName = OreDictionary.getOreName(oreId);
|
||||
oreDictDefaults.add(oreName);
|
||||
}
|
||||
|
||||
backpackItemDefaults.get(backpackUid).addAll(backpackDefinition.getValidItemStacks());
|
||||
}
|
||||
BackpackInterface backpackInterface = (BackpackInterface) BackpackManager.backpackInterface;
|
||||
backpackAcceptedItemDefaults.putAll(backpackInterface.getBackpackAcceptedItems());
|
||||
}
|
||||
|
||||
// Should be ore dicted in Forge at some point.
|
||||
@@ -416,45 +415,91 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
}
|
||||
|
||||
private void handleBackpackConfig(LocalizedConfiguration config, String backpackUid) {
|
||||
BackpackDefinition backpackDefinition = (BackpackDefinition) BackpackManager.backpackInterface.getBackpack(backpackUid);
|
||||
backpackDefinition.clearAllValid();
|
||||
|
||||
{
|
||||
List<String> defaultItemNames = new ArrayList<>(backpackItemDefaults.get(backpackUid));
|
||||
Collections.sort(defaultItemNames);
|
||||
String[] defaultValidItems = defaultItemNames.toArray(new String[defaultItemNames.size()]);
|
||||
|
||||
Property backpackConf = config.get("backpacks." + backpackUid, "item.stacks", defaultValidItems);
|
||||
backpackConf.setComment(Translator.translateToLocalFormatted("for.config.backpacks.item.stacks.format", backpackUid));
|
||||
|
||||
String[] backpackItemList = backpackConf.getStringList();
|
||||
List<ItemStack> backpackItems = ItemStackUtil.parseItemStackStrings(backpackItemList, OreDictionary.WILDCARD_VALUE);
|
||||
backpackDefinition.addValidItems(backpackItems);
|
||||
BackpackDefinition backpackDefinition = (BackpackDefinition) BackpackManager.backpackInterface.getBackpackDefinition(backpackUid);
|
||||
if (backpackDefinition == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
{
|
||||
IBackpackFilter filter = backpackDefinition.getFilter();
|
||||
if (filter instanceof IBackpackFilterConfigurable) {
|
||||
IBackpackFilterConfigurable backpackFilter = (IBackpackFilterConfigurable) filter;
|
||||
backpackFilter.clear();
|
||||
|
||||
List<String> defaultOreRegexpList = new ArrayList<>(backpackOreDictRegexpDefaults.get(backpackUid));
|
||||
Collections.sort(defaultOreRegexpList);
|
||||
String[] defaultOreRegexpNames = defaultOreRegexpList.toArray(new String[defaultOreRegexpList.size()]);
|
||||
// accepted items
|
||||
{
|
||||
List<String> defaultAcceptedItemNames = new ArrayList<>(backpackAcceptedItemDefaults.get(backpackUid));
|
||||
Collections.sort(defaultAcceptedItemNames);
|
||||
String[] defaultValidItems = defaultAcceptedItemNames.toArray(new String[defaultAcceptedItemNames.size()]);
|
||||
|
||||
Property backpackConf = config.get("backpacks." + backpackUid, "ore.dict", defaultOreRegexpNames);
|
||||
backpackConf.setComment(Translator.translateToLocalFormatted("for.config.backpacks.ore.dict.format", backpackUid));
|
||||
Property backpackConf = config.get("backpacks." + backpackUid, "item.stacks.accepted", defaultValidItems);
|
||||
backpackConf.setComment(Translator.translateToLocalFormatted("for.config.backpacks.item.stacks.format", backpackUid));
|
||||
|
||||
List<String> oreDictNameList = new ArrayList<>();
|
||||
for (String name : OreDictionary.getOreNames()) {
|
||||
if (name == null) {
|
||||
Log.error("Found a null oreName in the ore dictionary");
|
||||
} else {
|
||||
for (String regex : backpackConf.getStringList()) {
|
||||
if (name.matches(regex)) {
|
||||
oreDictNameList.add(name);
|
||||
String[] backpackItemList = backpackConf.getStringList();
|
||||
List<ItemStack> backpackItems = ItemStackUtil.parseItemStackStrings(backpackItemList, OreDictionary.WILDCARD_VALUE);
|
||||
for (ItemStack backpackItem : backpackItems) {
|
||||
backpackFilter.acceptItem(backpackItem);
|
||||
}
|
||||
}
|
||||
|
||||
// rejected items
|
||||
{
|
||||
List<String> defaultRejectedItemNames = new ArrayList<>(backpackRejectedItemDefaults.get(backpackUid));
|
||||
Collections.sort(defaultRejectedItemNames);
|
||||
String[] defaultRejectedItems = defaultRejectedItemNames.toArray(new String[defaultRejectedItemNames.size()]);
|
||||
|
||||
Property backpackConf = config.get("backpacks." + backpackUid, "item.stacks.rejected", defaultRejectedItems);
|
||||
backpackConf.setComment(Translator.translateToLocalFormatted("for.config.backpacks.item.stacks.format", backpackUid));
|
||||
|
||||
String[] backpackItemList = backpackConf.getStringList();
|
||||
List<ItemStack> backpackItems = ItemStackUtil.parseItemStackStrings(backpackItemList, OreDictionary.WILDCARD_VALUE);
|
||||
for (ItemStack backpackItem : backpackItems) {
|
||||
backpackFilter.rejectItem(backpackItem);
|
||||
}
|
||||
}
|
||||
|
||||
// accepted oreDict
|
||||
{
|
||||
List<String> defaultOreRegexpList = new ArrayList<>(backpackAcceptedOreDictRegexpDefaults.get(backpackUid));
|
||||
Collections.sort(defaultOreRegexpList);
|
||||
String[] defaultOreRegexpNames = defaultOreRegexpList.toArray(new String[defaultOreRegexpList.size()]);
|
||||
|
||||
Property backpackConf = config.get("backpacks." + backpackUid, "ore.dict.accepted", defaultOreRegexpNames);
|
||||
backpackConf.setComment(Translator.translateToLocalFormatted("for.config.backpacks.ore.dict.format", backpackUid));
|
||||
|
||||
for (String name : OreDictionary.getOreNames()) {
|
||||
if (name == null) {
|
||||
Log.error("Found a null oreName in the ore dictionary");
|
||||
} else {
|
||||
for (String regex : backpackConf.getStringList()) {
|
||||
if (name.matches(regex)) {
|
||||
backpackFilter.acceptOreDictName(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
backpackDefinition.addValidOreDictNames(oreDictNameList);
|
||||
// rejected oreDict
|
||||
{
|
||||
List<String> defaultOreRegexpList = new ArrayList<>(backpackRejectedOreDictRegexpDefaults.get(backpackUid));
|
||||
Collections.sort(defaultOreRegexpList);
|
||||
String[] defaultOreRegexpNames = defaultOreRegexpList.toArray(new String[defaultOreRegexpList.size()]);
|
||||
|
||||
Property backpackConf = config.get("backpacks." + backpackUid, "ore.dict.rejected", defaultOreRegexpNames);
|
||||
backpackConf.setComment(Translator.translateToLocalFormatted("for.config.backpacks.ore.dict.format", backpackUid));
|
||||
|
||||
for (String name : OreDictionary.getOreNames()) {
|
||||
if (name == null) {
|
||||
Log.error("Found a null oreName in the ore dictionary");
|
||||
} else {
|
||||
for (String regex : backpackConf.getStringList()) {
|
||||
if (name.matches(regex)) {
|
||||
backpackFilter.rejectOreDictName(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -497,14 +542,20 @@ public class PluginStorage extends BlankForestryPlugin {
|
||||
return true;
|
||||
}
|
||||
|
||||
IBackpackDefinition backpackDefinition = BackpackManager.backpackInterface.getBackpack(tokens[0]);
|
||||
IBackpackDefinition backpackDefinition = BackpackManager.backpackInterface.getBackpackDefinition(tokens[0]);
|
||||
if (backpackDefinition == null) {
|
||||
String errorMessage = IMCUtil.getInvalidIMCMessageText(message);
|
||||
Log.warning("%s For non-existent backpack %s.", errorMessage, tokens[0]);
|
||||
Log.warning("{} For non-existent backpack {}.", errorMessage, tokens[0]);
|
||||
return true;
|
||||
}
|
||||
List<ItemStack> itemStacks = ItemStackUtil.parseItemStackStrings(tokens[1], 0);
|
||||
backpackDefinition.addValidItems(itemStacks);
|
||||
IBackpackFilter filter = backpackDefinition.getFilter();
|
||||
if (filter instanceof IBackpackFilterConfigurable) {
|
||||
IBackpackFilterConfigurable backpackFilter = (IBackpackFilterConfigurable) filter;
|
||||
for (ItemStack itemStack : itemStacks) {
|
||||
backpackFilter.acceptItem(itemStack);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
package forestry.storage.inventory;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.core.inventory.ItemInventory;
|
||||
import forestry.storage.items.ItemBackpack;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemInventoryBackpack extends ItemInventory {
|
||||
|
||||
@@ -33,6 +32,6 @@ public class ItemInventoryBackpack extends ItemInventory {
|
||||
|
||||
@Override
|
||||
public boolean canSlotAccept(int slotIndex, ItemStack itemStack) {
|
||||
return backpackDefinition.test(itemStack);
|
||||
return backpackDefinition.getFilter().test(itemStack);
|
||||
}
|
||||
}
|
||||
@@ -14,26 +14,6 @@ import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import net.minecraft.client.renderer.ItemMeshDefinition;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.EnumActionResult;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
import forestry.api.core.IModelManager;
|
||||
import forestry.api.storage.BackpackStowEvent;
|
||||
import forestry.api.storage.EnumBackpackType;
|
||||
@@ -53,6 +33,24 @@ import forestry.storage.gui.ContainerBackpack;
|
||||
import forestry.storage.gui.GuiBackpack;
|
||||
import forestry.storage.gui.GuiBackpackT2;
|
||||
import forestry.storage.inventory.ItemInventoryBackpack;
|
||||
import net.minecraft.client.renderer.ItemMeshDefinition;
|
||||
import net.minecraft.client.renderer.block.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.EnumActionResult;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.EnumHand;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
||||
public class ItemBackpack extends ItemWithGui implements IColoredItem {
|
||||
private final IBackpackDefinition definition;
|
||||
@@ -179,7 +177,7 @@ public class ItemBackpack extends ItemWithGui implements IColoredItem {
|
||||
|
||||
private void receiveFromChest(ItemInventoryBackpack backpackInventory, IItemHandler target) {
|
||||
ItemHandlerInventoryManipulator manipulator = new ItemHandlerInventoryManipulator(target);
|
||||
manipulator.transferStacks(backpackInventory.getItemHandler(), definition);
|
||||
manipulator.transferStacks(backpackInventory.getItemHandler(), definition.getFilter());
|
||||
}
|
||||
|
||||
public int getBackpackSize() {
|
||||
|
||||
@@ -12,9 +12,6 @@ package forestry.storage.items;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import forestry.api.genetics.ISpeciesRoot;
|
||||
import forestry.api.storage.EnumBackpackType;
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
@@ -23,13 +20,15 @@ import forestry.core.gui.GuiHandler;
|
||||
import forestry.core.gui.GuiNaturalistInventory;
|
||||
import forestry.storage.gui.ContainerNaturalistBackpack;
|
||||
import forestry.storage.inventory.ItemInventoryBackpackPaged;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ItemBackpackNaturalist extends ItemBackpack {
|
||||
@Nonnull
|
||||
private final ISpeciesRoot speciesRoot;
|
||||
|
||||
public ItemBackpackNaturalist(@Nonnull ISpeciesRoot speciesRoot, IBackpackDefinition definition, EnumBackpackType type) {
|
||||
super(definition, type);
|
||||
public ItemBackpackNaturalist(@Nonnull ISpeciesRoot speciesRoot, IBackpackDefinition definition) {
|
||||
super(definition, EnumBackpackType.NATURALIST);
|
||||
this.speciesRoot = speciesRoot;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,23 +10,22 @@
|
||||
******************************************************************************/
|
||||
package forestry.storage.items;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
import forestry.api.apiculture.BeeManager;
|
||||
import forestry.api.core.ForestryAPI;
|
||||
import forestry.api.core.Tabs;
|
||||
import forestry.api.lepidopterology.ButterflyManager;
|
||||
import forestry.api.storage.BackpackManager;
|
||||
import forestry.api.storage.EnumBackpackType;
|
||||
import forestry.api.storage.IBackpackDefinition;
|
||||
import forestry.api.storage.IBackpackInterface;
|
||||
import forestry.core.items.ItemCrated;
|
||||
import forestry.core.items.ItemRegistry;
|
||||
import forestry.plugins.ForestryPluginUids;
|
||||
import net.minecraft.item.Item;
|
||||
|
||||
public class ItemRegistryStorage extends ItemRegistry {
|
||||
public final ItemCrated crate;
|
||||
public final ItemBackpackNaturalist apiaristBackpack;
|
||||
public final ItemBackpackNaturalist lepidopteristBackpack;
|
||||
public final Item apiaristBackpack;
|
||||
public final Item lepidopteristBackpack;
|
||||
public final Item minerBackpack;
|
||||
public final Item minerBackpackT2;
|
||||
public final Item diggerBackpack;
|
||||
@@ -45,48 +44,38 @@ public class ItemRegistryStorage extends ItemRegistry {
|
||||
crate = registerItem(new ItemCrated(null, null), "crate");
|
||||
|
||||
// BACKPACKS
|
||||
IBackpackDefinition definition;
|
||||
|
||||
IBackpackInterface backpackInterface = BackpackManager.backpackInterface;
|
||||
|
||||
if (ForestryAPI.enabledPlugins.contains(ForestryPluginUids.APICULTURE)) {
|
||||
definition = BackpackManager.backpackInterface.getBackpack("apiarist");
|
||||
apiaristBackpack = new ItemBackpackNaturalist(BeeManager.beeRoot, definition, EnumBackpackType.NATURALIST);
|
||||
apiaristBackpack = registerItem(backpackInterface.createNaturalistBackpack("apiarist", BeeManager.beeRoot), "apiaristBag");
|
||||
apiaristBackpack.setCreativeTab(Tabs.tabApiculture);
|
||||
registerItem(apiaristBackpack, "apiaristBag");
|
||||
} else {
|
||||
apiaristBackpack = null;
|
||||
}
|
||||
|
||||
if (ForestryAPI.enabledPlugins.contains(ForestryPluginUids.LEPIDOPTEROLOGY)) {
|
||||
definition = BackpackManager.backpackInterface.getBackpack("lepidopterist");
|
||||
lepidopteristBackpack = new ItemBackpackNaturalist(ButterflyManager.butterflyRoot, definition, EnumBackpackType.NATURALIST);
|
||||
lepidopteristBackpack = registerItem(backpackInterface.createNaturalistBackpack("lepidopterist", ButterflyManager.butterflyRoot), "lepidopteristBag");
|
||||
lepidopteristBackpack.setCreativeTab(Tabs.tabLepidopterology);
|
||||
registerItem(lepidopteristBackpack, "lepidopteristBag");
|
||||
} else {
|
||||
lepidopteristBackpack = null;
|
||||
}
|
||||
|
||||
definition = BackpackManager.backpackInterface.getBackpack(BackpackManager.MINER_UID);
|
||||
minerBackpack = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.NORMAL), "minerBag");
|
||||
minerBackpackT2 = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.WOVEN), "minerBagT2");
|
||||
|
||||
definition = BackpackManager.backpackInterface.getBackpack(BackpackManager.DIGGER_UID);
|
||||
diggerBackpack = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.NORMAL), "diggerBag");
|
||||
diggerBackpackT2 = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.WOVEN), "diggerBagT2");
|
||||
|
||||
definition = BackpackManager.backpackInterface.getBackpack(BackpackManager.FORESTER_UID);
|
||||
foresterBackpack = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.NORMAL), "foresterBag");
|
||||
foresterBackpackT2 = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.WOVEN), "foresterBagT2");
|
||||
|
||||
definition = BackpackManager.backpackInterface.getBackpack(BackpackManager.HUNTER_UID);
|
||||
hunterBackpack = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.NORMAL), "hunterBag");
|
||||
hunterBackpackT2 = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.WOVEN), "hunterBagT2");
|
||||
|
||||
definition = BackpackManager.backpackInterface.getBackpack(BackpackManager.ADVENTURER_UID);
|
||||
adventurerBackpack = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.NORMAL), "adventurerBag");
|
||||
adventurerBackpackT2 = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.WOVEN), "adventurerBagT2");
|
||||
|
||||
definition = BackpackManager.backpackInterface.getBackpack(BackpackManager.BUILDER_UID);
|
||||
builderBackpack = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.NORMAL), "builderBag");
|
||||
builderBackpackT2 = registerItem(BackpackManager.backpackInterface.createBackpack(definition, EnumBackpackType.WOVEN), "builderBagT2");
|
||||
|
||||
minerBackpack = registerItem(backpackInterface.createBackpack(BackpackManager.MINER_UID, EnumBackpackType.NORMAL), "minerBag");
|
||||
minerBackpackT2 = registerItem(backpackInterface.createBackpack(BackpackManager.MINER_UID, EnumBackpackType.WOVEN), "minerBagT2");
|
||||
|
||||
diggerBackpack = registerItem(backpackInterface.createBackpack(BackpackManager.DIGGER_UID, EnumBackpackType.NORMAL), "diggerBag");
|
||||
diggerBackpackT2 = registerItem(backpackInterface.createBackpack(BackpackManager.DIGGER_UID, EnumBackpackType.WOVEN), "diggerBagT2");
|
||||
|
||||
foresterBackpack = registerItem(backpackInterface.createBackpack(BackpackManager.FORESTER_UID, EnumBackpackType.NORMAL), "foresterBag");
|
||||
foresterBackpackT2 = registerItem(backpackInterface.createBackpack(BackpackManager.FORESTER_UID, EnumBackpackType.WOVEN), "foresterBagT2");
|
||||
|
||||
hunterBackpack = registerItem(backpackInterface.createBackpack(BackpackManager.HUNTER_UID, EnumBackpackType.NORMAL), "hunterBag");
|
||||
hunterBackpackT2 = registerItem(backpackInterface.createBackpack(BackpackManager.HUNTER_UID, EnumBackpackType.WOVEN), "hunterBagT2");
|
||||
|
||||
adventurerBackpack = registerItem(backpackInterface.createBackpack(BackpackManager.ADVENTURER_UID, EnumBackpackType.NORMAL), "adventurerBag");
|
||||
adventurerBackpackT2 = registerItem(backpackInterface.createBackpack(BackpackManager.ADVENTURER_UID, EnumBackpackType.WOVEN), "adventurerBagT2");
|
||||
|
||||
builderBackpack = registerItem(backpackInterface.createBackpack(BackpackManager.BUILDER_UID, EnumBackpackType.NORMAL), "builderBag");
|
||||
builderBackpackT2 = registerItem(backpackInterface.createBackpack(BackpackManager.BUILDER_UID, EnumBackpackType.WOVEN), "builderBagT2");
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 180 B After Width: | Height: | Size: 189 B |
|
Before Width: | Height: | Size: 221 B |
|
Before Width: | Height: | Size: 221 B |
|
Before Width: | Height: | Size: 180 B After Width: | Height: | Size: 194 B |
|
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 193 B |
|
Before Width: | Height: | Size: 252 B After Width: | Height: | Size: 243 B |
|
Before Width: | Height: | Size: 198 B After Width: | Height: | Size: 195 B |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 236 B |