aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/forestry/bees
diff options
context:
space:
mode:
authordraknyte1 <draknyte1@hotmail.com>2016-11-02 15:49:00 +1000
committerdraknyte1 <draknyte1@hotmail.com>2016-11-02 15:49:00 +1000
commitd594987b2cfdefa447ee585a68d4a4bef4ece3a5 (patch)
tree814813fc14ce5dcd8dfa7aeaecd939ac42d12877 /src/Java/gtPlusPlus/xmod/forestry/bees
parent26292158575a0f0acb51ae50715887f871d2b5a0 (diff)
parent49a520da5da01594b5c42652d9db5c7c04e49ad8 (diff)
downloadGT5-Unofficial-d594987b2cfdefa447ee585a68d4a4bef4ece3a5.tar.gz
GT5-Unofficial-d594987b2cfdefa447ee585a68d4a4bef4ece3a5.tar.bz2
GT5-Unofficial-d594987b2cfdefa447ee585a68d4a4bef4ece3a5.zip
Merge branch 'master' of https://github.com/draknyte1/GTplusplus
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/forestry/bees')
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/alveary/AlvearyBeeListener.java18
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/alveary/IAlvearyFrameHousing.java9
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/alveary/TileAlvearyFrameHousing.java193
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/alveary/gui/InventoryFrameHousing.java102
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/recipe/FR_Gregtech_Recipes.java32
5 files changed, 270 insertions, 84 deletions
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/AlvearyBeeListener.java b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/AlvearyBeeListener.java
new file mode 100644
index 0000000000..6736c54309
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/AlvearyBeeListener.java
@@ -0,0 +1,18 @@
+package gtPlusPlus.xmod.forestry.bees.alveary;
+
+import forestry.api.apiculture.DefaultBeeListener;
+import gtPlusPlus.xmod.forestry.bees.alveary.gui.InventoryFrameHousing;
+
+public class AlvearyBeeListener extends DefaultBeeListener {
+ private final IAlvearyFrameHousing apiary;
+
+ public AlvearyBeeListener(IAlvearyFrameHousing apiary) {
+ this.apiary = apiary;
+ }
+
+ @Override
+ public void wearOutEquipment(int amount) {
+ InventoryFrameHousing apiaryInventory = apiary.getAlvearyInventory();
+ apiaryInventory.wearOutFrames(apiary, amount);
+ }
+}
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/IAlvearyFrameHousing.java b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/IAlvearyFrameHousing.java
new file mode 100644
index 0000000000..6eeefa2696
--- /dev/null
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/IAlvearyFrameHousing.java
@@ -0,0 +1,9 @@
+package gtPlusPlus.xmod.forestry.bees.alveary;
+
+import forestry.api.apiculture.IBeeHousing;
+import gtPlusPlus.xmod.forestry.bees.alveary.gui.InventoryFrameHousing;
+
+public interface IAlvearyFrameHousing extends IBeeHousing {
+ InventoryFrameHousing getAlvearyInventory();
+ void wearOutFrames(IBeeHousing beeHousing, int amount);
+}
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/TileAlvearyFrameHousing.java b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/TileAlvearyFrameHousing.java
index 12f97b5f0c..794b5d1be8 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/TileAlvearyFrameHousing.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/TileAlvearyFrameHousing.java
@@ -14,13 +14,19 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import forestry.api.apiculture.BeeManager;
+import forestry.api.apiculture.DefaultBeeListener;
import forestry.api.apiculture.IBee;
import forestry.api.apiculture.IBeeHousing;
+import forestry.api.apiculture.IBeeListener;
import forestry.api.apiculture.IBeeModifier;
import forestry.api.apiculture.IBeekeepingMode;
import forestry.api.apiculture.IHiveFrame;
+import forestry.api.arboriculture.EnumGermlingType;
+import forestry.api.genetics.AlleleManager;
+import forestry.api.genetics.IIndividual;
+import forestry.api.genetics.ISpeciesRoot;
import forestry.api.multiblock.IAlvearyComponent;
-import forestry.apiculture.ApiaryBeeModifier;
+import forestry.apiculture.AlvearyBeeModifier;
import forestry.apiculture.multiblock.MultiblockLogicAlveary;
import forestry.apiculture.network.packets.PacketActiveUpdate;
import forestry.apiculture.worldgen.Hive;
@@ -32,15 +38,17 @@ import forestry.core.inventory.wrappers.InventoryIterator;
import forestry.core.proxy.Proxies;
import forestry.core.tiles.IActivatable;
import forestry.core.utils.ItemStackUtil;
+import gtPlusPlus.core.util.Utils;
import gtPlusPlus.xmod.forestry.bees.alveary.gui.CONTAINER_FrameHousing;
import gtPlusPlus.xmod.forestry.bees.alveary.gui.GUI_FrameHousing;
import gtPlusPlus.xmod.forestry.bees.alveary.gui.InventoryFrameHousing;
public class TileAlvearyFrameHousing
extends FR_TileAlveary
-implements ISidedFrameWearingInventory, IActivatable, IAlvearyComponent.Active, IAlvearyComponent.BeeModifier
+implements ISidedFrameWearingInventory, IActivatable, IAlvearyComponent.Active, IAlvearyComponent.BeeModifier, IAlvearyFrameHousing, IAlvearyComponent.BeeListener
{
private final InventoryFrameHousing inventory;
+ private final IBeeListener beeListener;
private final Stack<ItemStack> pendingSpawns = new Stack<ItemStack>();
private boolean active;
@@ -48,6 +56,7 @@ implements ISidedFrameWearingInventory, IActivatable, IAlvearyComponent.Active,
{
super(FR_BlockAlveary.Type.FRAME);
this.inventory = new InventoryFrameHousing(this);
+ this.beeListener = new AlvearyFrameHousingBeeListener(this.inventory);
}
@@ -66,17 +75,23 @@ implements ISidedFrameWearingInventory, IActivatable, IAlvearyComponent.Active,
@Override
public void updateServer(int tickCount)
{
-
+
if (getInternalInventory() == null) {
return;
}
-
+
if (this.inventory.getStackInSlot(0) != null)
{
- setActive(true);
- if (tickCount % 1000 == 0) {
- wearOutFrames(this, 1);
+ if (((MultiblockLogicAlveary)getMultiblockLogic()).getController().getBeekeepingLogic().canWork()){
+ setActive(true);
+ if (tickCount % 1000 == 0) {
+ wearOutFrames(this, 1);
+ }
}
+ else {
+ Utils.LOG_INFO("Cannot work - Probably no queen alive.");
+ }
+
}
else
{
@@ -85,7 +100,7 @@ implements ISidedFrameWearingInventory, IActivatable, IAlvearyComponent.Active,
if (tickCount % 500 != 0) {
return;
}
-
+
}
@Override
@@ -224,50 +239,51 @@ implements ISidedFrameWearingInventory, IActivatable, IAlvearyComponent.Active,
{
return new CONTAINER_FrameHousing(this, player);
}
-
- private final IBeeModifier beeModifier = new ApiaryBeeModifier();
- //private final IBeeListener beeListener = new ApiaryBeeListener(this);
+
+ private final IBeeModifier beeModifier = new AlvearyBeeModifier();
+ //private final IBeeListener beeListener = new AlvearyBeeListener(this);
+ private final Iterable<IBeeListener> beeListenerList = ((MultiblockLogicAlveary)getMultiblockLogic()).getController().getBeeListeners();
@Override
public Collection<IBeeModifier> getBeeModifiers()
- {
- List<IBeeModifier> beeModifiers = new ArrayList<IBeeModifier>();
-
- beeModifiers.add(this.beeModifier);
- for (IHiveFrame frame : getFrames(this.inventory)) {
- beeModifiers.add(frame.getBeeModifier());
- }
- return beeModifiers;
- }
-
+ {
+ List<IBeeModifier> beeModifiers = new ArrayList<IBeeModifier>();
+
+ beeModifiers.add(this.beeModifier);
+ for (IHiveFrame frame : getFrames(this.inventory)) {
+ beeModifiers.add(frame.getBeeModifier());
+ }
+ return beeModifiers;
+ }
+
public Collection<IHiveFrame> getFrames(IInventory inventory)
- {
- Collection<IHiveFrame> hiveFrames = new ArrayList<IHiveFrame>(inventory.getSizeInventory());
- for (int i = 0; i < inventory.getSizeInventory(); i++)
- {
- ItemStack stackInSlot = getStackInSlot(i);
- if (stackInSlot != null)
- {
- Item itemInSlot = stackInSlot.getItem();
- if ((itemInSlot instanceof IHiveFrame)) {
- hiveFrames.add((IHiveFrame)itemInSlot);
- }
- }
- }
- return hiveFrames;
- }
+ {
+ Collection<IHiveFrame> hiveFrames = new ArrayList<IHiveFrame>(inventory.getSizeInventory());
+ for (int i = 0; i < inventory.getSizeInventory(); i++)
+ {
+ ItemStack stackInSlot = getStackInSlot(i);
+ if (stackInSlot != null)
+ {
+ Item itemInSlot = stackInSlot.getItem();
+ if ((itemInSlot instanceof IHiveFrame)) {
+ hiveFrames.add((IHiveFrame)itemInSlot);
+ }
+ }
+ }
+ return hiveFrames;
+ }
@Override
public IBeeModifier getBeeModifier() {
- List<IBeeModifier> beeModifiers = new ArrayList<IBeeModifier>();
-
- beeModifiers.add(this.beeModifier);
- for (IHiveFrame frame : getFrames(this.inventory)) {
- beeModifiers.add(frame.getBeeModifier());
- }
- return beeModifiers.get(0);
- }
-
+ List<IBeeModifier> beeModifiers = new ArrayList<IBeeModifier>();
+
+ //beeModifiers.add(this.beeModifier);
+ for (IHiveFrame frame : getFrames(this.inventory)) {
+ beeModifiers.add(frame.getBeeModifier());
+ }
+ return beeModifiers.get(0);
+ }
+
private ItemStack getQueenStack()
{
ItemStack queenStack = ((MultiblockLogicAlveary)getMultiblockLogic()).getController().getBeeInventory().getQueen();
@@ -276,26 +292,69 @@ implements ISidedFrameWearingInventory, IActivatable, IAlvearyComponent.Active,
@Override
public void wearOutFrames(IBeeHousing beeHousing, int amount)
- {
- IBeekeepingMode beekeepingMode = BeeManager.beeRoot.getBeekeepingMode(beeHousing.getWorld());
- int wear = Math.round(amount * beekeepingMode.getWearModifier());
- for (int i = 0; i < this.inventory.getSizeInventory(); i++)
- {
- ItemStack hiveFrameStack = getStackInSlot(i);
- if (hiveFrameStack != null)
- {
- Item hiveFrameItem = hiveFrameStack.getItem();
- if ((hiveFrameItem instanceof IHiveFrame))
- {
- IHiveFrame hiveFrame = (IHiveFrame)hiveFrameItem;
-
- ItemStack queenStack = getQueenStack();
- IBee queen = BeeManager.beeRoot.getMember(queenStack);
- ItemStack usedFrame = hiveFrame.frameUsed(beeHousing, hiveFrameStack, queen, wear);
-
- setInventorySlotContents(i, usedFrame);
- }
- }
- }
- }
+ {
+ IBeekeepingMode beekeepingMode = BeeManager.beeRoot.getBeekeepingMode(beeHousing.getWorld());
+ int wear = Math.round(amount * beekeepingMode.getWearModifier());
+ for (int i = 0; i < this.inventory.getSizeInventory(); i++)
+ {
+ ItemStack hiveFrameStack = getStackInSlot(i);
+ if (hiveFrameStack != null)
+ {
+ Item hiveFrameItem = hiveFrameStack.getItem();
+ if ((hiveFrameItem instanceof IHiveFrame))
+ {
+ IHiveFrame hiveFrame = (IHiveFrame)hiveFrameItem;
+ Utils.LOG_INFO("Wearing out frame by "+amount);
+ ItemStack queenStack = getQueenStack();
+ IBee queen = BeeManager.beeRoot.getMember(queenStack);
+ ItemStack usedFrame = hiveFrame.frameUsed(beeHousing, hiveFrameStack, queen, wear);
+
+ //((MultiblockLogicAlveary)getMultiblockLogic()).getController().getBeeListeners().
+
+ setInventorySlotContents(i, usedFrame);
+ }
+ }
+ }
+ }
+
+ @Override
+ public InventoryFrameHousing getAlvearyInventory() {
+ return inventory;
+ }
+
+ @Override
+ public IBeeListener getBeeListener() {
+ return beeListener;
+ }
+
+ static class AlvearyFrameHousingBeeListener
+ extends DefaultBeeListener
+ {
+ private final InventoryFrameHousing inventory;
+
+ public AlvearyFrameHousingBeeListener(InventoryFrameHousing inventory)
+ {
+ this.inventory = inventory;
+ }
+
+ @Override
+ public boolean onPollenRetrieved(IIndividual pollen)
+ {
+ /*if (!((Object) this.inventory).canStorePollen()) {
+ return false;
+ }*/
+ ISpeciesRoot speciesRoot = AlleleManager.alleleRegistry.getSpeciesRoot(pollen.getClass());
+
+ ItemStack pollenStack = speciesRoot.getMemberStack(pollen, EnumGermlingType.POLLEN.ordinal());
+ if (pollenStack != null)
+ {
+ // ((Object) this.inventory).storePollenStack(pollenStack);
+ return true;
+ }
+ return false;
+ }
+ }
+
+
+
}
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/gui/InventoryFrameHousing.java b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/gui/InventoryFrameHousing.java
index 406c3c47cb..9d6dd06f2d 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/gui/InventoryFrameHousing.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/alveary/gui/InventoryFrameHousing.java
@@ -1,16 +1,36 @@
package gtPlusPlus.xmod.forestry.bees.alveary.gui;
import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChunkCoordinates;
+import net.minecraft.util.Vec3;
+import net.minecraft.world.World;
+import net.minecraft.world.biome.BiomeGenBase;
+
+import com.mojang.authlib.GameProfile;
+
import forestry.api.apiculture.BeeManager;
+import forestry.api.apiculture.IBeeHousing;
+import forestry.api.apiculture.IBeeHousingInventory;
+import forestry.api.apiculture.IBeeListener;
+import forestry.api.apiculture.IBeeModifier;
+import forestry.api.apiculture.IBeekeepingLogic;
+import forestry.api.core.EnumHumidity;
+import forestry.api.core.EnumTemperature;
+import forestry.api.core.IErrorLogic;
import forestry.core.inventory.InventoryAdapterTile;
import forestry.core.utils.ItemStackUtil;
+import gtPlusPlus.xmod.forestry.bees.alveary.IAlvearyFrameHousing;
import gtPlusPlus.xmod.forestry.bees.alveary.TileAlvearyFrameHousing;
-public class InventoryFrameHousing extends InventoryAdapterTile<TileAlvearyFrameHousing>
+public class InventoryFrameHousing extends InventoryAdapterTile<TileAlvearyFrameHousing> implements IAlvearyFrameHousing
{
+
+ TileAlvearyFrameHousing alvearyFrame;
+
public InventoryFrameHousing(TileAlvearyFrameHousing alvearyFrame)
{
super(alvearyFrame, 1, "FrameHousingInv");
+ this.alvearyFrame = alvearyFrame;
}
@Override
@@ -18,4 +38,84 @@ public class InventoryFrameHousing extends InventoryAdapterTile<TileAlvearyFrame
{
return ItemStackUtil.containsItemStack(BeeManager.inducers.keySet(), itemStack);
}
+
+ @Override
+ public boolean canBlockSeeTheSky() {
+ return alvearyFrame.canBlockSeeTheSky();
+ }
+
+ @Override
+ public Vec3 getBeeFXCoordinates() {
+ return alvearyFrame.getBeeFXCoordinates();
+ }
+
+ @Override
+ public IBeeHousingInventory getBeeInventory() {
+ return alvearyFrame.getBeeInventory();
+ }
+
+ @Override
+ public Iterable<IBeeListener> getBeeListeners() {
+ return alvearyFrame.getBeeListeners();
+ }
+
+ @Override
+ public Iterable<IBeeModifier> getBeeModifiers() {
+ return alvearyFrame.getBeeModifiers();
+ }
+
+ @Override
+ public IBeekeepingLogic getBeekeepingLogic() {
+ return alvearyFrame.getBeekeepingLogic();
+ }
+
+ @Override
+ public BiomeGenBase getBiome() {
+ return alvearyFrame.getBiome();
+ }
+
+ @Override
+ public int getBlockLightValue() {
+ return alvearyFrame.getBlockLightValue();
+ }
+
+ @Override
+ public EnumHumidity getHumidity() {
+ return alvearyFrame.getHumidity();
+ }
+
+ @Override
+ public GameProfile getOwner() {
+ return alvearyFrame.getOwner();
+ }
+
+ @Override
+ public EnumTemperature getTemperature() {
+ return alvearyFrame.getTemperature();
+ }
+
+ @Override
+ public World getWorld() {
+ return alvearyFrame.getWorld();
+ }
+
+ @Override
+ public ChunkCoordinates getCoordinates() {
+ return alvearyFrame.getCoordinates();
+ }
+
+ @Override
+ public IErrorLogic getErrorLogic() {
+ return alvearyFrame.getErrorLogic();
+ }
+
+ @Override
+ public InventoryFrameHousing getAlvearyInventory() {
+ return this;
+ }
+
+ @Override
+ public void wearOutFrames(IBeeHousing beeHousing, int amount) {
+ alvearyFrame.wearOutFrames(beeHousing, amount);
+ }
}
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/recipe/FR_Gregtech_Recipes.java b/src/Java/gtPlusPlus/xmod/forestry/bees/recipe/FR_Gregtech_Recipes.java
index 95049df43b..ced6dd1d27 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/recipe/FR_Gregtech_Recipes.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/recipe/FR_Gregtech_Recipes.java
@@ -1,8 +1,8 @@
package gtPlusPlus.xmod.forestry.bees.recipe;
import gtPlusPlus.core.lib.LoadedMods;
-import gtPlusPlus.core.util.item.UtilsItems;
-import gtPlusPlus.core.util.recipe.UtilsRecipe;
+import gtPlusPlus.core.util.item.ItemUtils;
+import gtPlusPlus.core.util.recipe.RecipeUtils;
import gtPlusPlus.xmod.forestry.bees.items.FR_ItemRegistry;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -16,17 +16,17 @@ public class FR_Gregtech_Recipes {
private static String rod_Uranium = "stickUranium";
private static String rod_LongUranium = "stickLongUranium";
private static String foil_Uranium235 = "foilUranium235";
- private static ItemStack hiveFrameAccelerated = UtilsItems.getSimpleStack(FR_ItemRegistry.hiveFrameAccelerated);
- private static ItemStack hiveFrameMutagenic = UtilsItems.getSimpleStack(FR_ItemRegistry.hiveFrameMutagenic);
+ private static ItemStack hiveFrameAccelerated = ItemUtils.getSimpleStack(FR_ItemRegistry.hiveFrameAccelerated);
+ private static ItemStack hiveFrameMutagenic = ItemUtils.getSimpleStack(FR_ItemRegistry.hiveFrameMutagenic);
- private static ItemStack hiveFrameCocoa = UtilsItems.getSimpleStack(FR_ItemRegistry.hiveFrameCocoa);
- private static ItemStack hiveFrameCaged = UtilsItems.getSimpleStack(FR_ItemRegistry.hiveFrameCaged);
- private static ItemStack hiveFrameSoul = UtilsItems.getSimpleStack(FR_ItemRegistry.hiveFrameSoul);
- private static ItemStack hiveFrameClay = UtilsItems.getSimpleStack(FR_ItemRegistry.hiveFrameClay);
- private static ItemStack hiveFrameNova = UtilsItems.getSimpleStack(FR_ItemRegistry.hiveFrameNova);
+ private static ItemStack hiveFrameCocoa = ItemUtils.getSimpleStack(FR_ItemRegistry.hiveFrameCocoa);
+ private static ItemStack hiveFrameCaged = ItemUtils.getSimpleStack(FR_ItemRegistry.hiveFrameCaged);
+ private static ItemStack hiveFrameSoul = ItemUtils.getSimpleStack(FR_ItemRegistry.hiveFrameSoul);
+ private static ItemStack hiveFrameClay = ItemUtils.getSimpleStack(FR_ItemRegistry.hiveFrameClay);
+ private static ItemStack hiveFrameNova = ItemUtils.getSimpleStack(FR_ItemRegistry.hiveFrameNova);
- private static ItemStack hiveFrameImpregnated = UtilsItems.getItemStack("Forestry:frameImpregnated", 1);
+ private static ItemStack hiveFrameImpregnated = ItemUtils.getItemStack("Forestry:frameImpregnated", 1);
private static ItemStack blockSoulSand = new ItemStack(Blocks.soul_sand, 1);
private static ItemStack blockIronBars = new ItemStack (Blocks.iron_bars, 1);
private static ItemStack itemClayDust = new ItemStack(Items.clay_ball, 1);
@@ -36,13 +36,13 @@ public class FR_Gregtech_Recipes {
public static void registerItems(){
//Magic Bee Like Frames
- UtilsRecipe.recipeBuilder(
+ RecipeUtils.recipeBuilder(
rod_LongElectrumFlux, rod_ElectrumFlux, rod_LongElectrumFlux,
rod_LongElectrumFlux, foil_Electrum, rod_LongElectrumFlux,
rod_ElectrumFlux, rod_ElectrumFlux, rod_ElectrumFlux,
hiveFrameAccelerated);
- UtilsRecipe.recipeBuilder(
+ RecipeUtils.recipeBuilder(
rod_LongUranium, rod_Uranium, rod_LongUranium,
rod_LongUranium, foil_Uranium235, rod_LongUranium,
rod_Uranium, rod_Uranium, rod_Uranium,
@@ -50,25 +50,25 @@ public class FR_Gregtech_Recipes {
if (!LoadedMods.ExtraBees){
//Extra Bee Like Frames
- UtilsRecipe.recipeBuilder(
+ RecipeUtils.recipeBuilder(
null, itemCocoaBeans, null,
itemCocoaBeans, hiveFrameImpregnated, itemCocoaBeans,
null, itemCocoaBeans, null,
hiveFrameCocoa);
- UtilsRecipe.recipeBuilder(
+ RecipeUtils.recipeBuilder(
hiveFrameImpregnated, blockIronBars, null,
null, null, null,
null, null, null,
hiveFrameCaged);
- UtilsRecipe.recipeBuilder(
+ RecipeUtils.recipeBuilder(
hiveFrameImpregnated, blockSoulSand, null,
null, null, null,
null, null, null,
hiveFrameSoul);
- UtilsRecipe.recipeBuilder(
+ RecipeUtils.recipeBuilder(
null, itemClayDust, null,
itemClayDust, hiveFrameImpregnated, itemClayDust,
null, itemClayDust, null,