aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java55
-rw-r--r--src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockGtBlock.java62
-rw-r--r--src/main/java/gtPlusPlus/xmod/bartcrops/LoaderOfTheCrops.java2
-rw-r--r--src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java2
-rw-r--r--src/main/java/gtPlusPlus/xmod/bartcrops/crops/Crop_Force.java53
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java42
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java1
-rw-r--r--src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.1.pngbin0 -> 209 bytes
-rw-r--r--src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.2.pngbin0 -> 547 bytes
-rw-r--r--src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.3.pngbin0 -> 782 bytes
-rw-r--r--src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.4.pngbin0 -> 701 bytes
-rw-r--r--src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.5.pngbin0 -> 925 bytes
12 files changed, 162 insertions, 55 deletions
diff --git a/src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java b/src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java
index c0113e869b..035b13dfbf 100644
--- a/src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java
+++ b/src/main/java/gtPlusPlus/core/block/base/BlockBaseModular.java
@@ -6,28 +6,27 @@ import java.util.Map;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.IBlockAccess;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.TextureSet;
+import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_OreDictUnificator;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.item.base.itemblock.ItemBlockGtBlock;
-import gtPlusPlus.core.item.base.itemblock.ItemBlockGtFrameBox;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.IBlockAccess;
public class BlockBaseModular extends BasicBlock {
protected Material blockMaterial;
protected int blockColour;
- protected BlockTypes thisBlock;
+ public BlockTypes thisBlock;
protected String thisBlockMaterial;
protected final String thisBlockType;
@@ -42,7 +41,7 @@ public class BlockBaseModular extends BasicBlock {
registerComponent();
}
- protected BlockBaseModular(final String unlocalizedName, final String blockMaterial,
+ protected BlockBaseModular(final String unlocalizedName, final String blockMaterialString,
final net.minecraft.block.material.Material vanillaMaterial, final BlockTypes blockType, final int colour,
final int miningLevel) {
super(blockType, unlocalizedName, vanillaMaterial, miningLevel);
@@ -50,33 +49,20 @@ public class BlockBaseModular extends BasicBlock {
this.setBlockTextureName(CORE.MODID + ":" + blockType.getTexture());
this.blockColour = colour;
this.thisBlock = blockType;
- this.thisBlockMaterial = blockMaterial;
+ this.thisBlockMaterial = blockMaterialString;
this.thisBlockType = blockType.name().toUpperCase();
this.setBlockName(this.GetProperName());
int fx = getBlockTypeMeta();
+ //ItemBlockGtBlock.sNameCache.put("block."+blockMaterial.getUnlocalizedName()+"."+this.thisBlock.name().toLowerCase(), GetProperName());
+ GameRegistry.registerBlock(this, ItemBlockGtBlock.class, Utils.sanitizeString(blockType.getTexture() + unlocalizedName));
if (fx == 0) {
- GameRegistry.registerBlock(this, ItemBlockGtBlock.class,
- Utils.sanitizeString(blockType.getTexture() + unlocalizedName));
- GT_OreDictUnificator.registerOre(
- "block" + getUnlocalizedName().replace("tile.block", "").replace("tile.", "").replace("of", "")
- .replace("Of", "").replace("Block", "").replace("-", "").replace("_", "").replace(" ", ""),
- ItemUtils.getSimpleStack(this));
+ GT_OreDictUnificator.registerOre("block" + thisBlockMaterial.replace(" ", ""), ItemUtils.getSimpleStack(this));
}
else if (fx == 1) {
- GameRegistry.registerBlock(this, ItemBlockGtBlock.class,
- Utils.sanitizeString(blockType.getTexture() + unlocalizedName));
- GT_OreDictUnificator.registerOre(
- "frameGt" + getUnlocalizedName().replace("tile.", "").replace("tile.BlockGtFrame", "")
- .replace("-", "").replace("_", "").replace(" ", "").replace("FrameBox", ""),
- ItemUtils.getSimpleStack(this));
+ GT_OreDictUnificator.registerOre("frameGt" + thisBlockMaterial.replace(" ", ""), ItemUtils.getSimpleStack(this));
}
else if (fx == 2) {
- GameRegistry.registerBlock(this, ItemBlockGtBlock.class,
- Utils.sanitizeString(blockType.getTexture() + unlocalizedName));
- GT_OreDictUnificator.registerOre(
- "block" + getUnlocalizedName().replace("tile.block", "").replace("tile.", "").replace("of", "")
- .replace("Of", "").replace("Block", "").replace("-", "").replace("_", "").replace(" ", ""),
- ItemUtils.getSimpleStack(this));
+ GT_OreDictUnificator.registerOre("frameGt" + thisBlockMaterial.replace(" ", ""), ItemUtils.getSimpleStack(this));
}
}
@@ -135,7 +121,7 @@ public class BlockBaseModular extends BasicBlock {
}
public String GetProperName() {
- String tempIngot;
+ String tempIngot = null;
if (this.thisBlock == BlockTypes.STANDARD) {
tempIngot = "Block of " + this.thisBlockMaterial;
}
@@ -145,14 +131,21 @@ public class BlockBaseModular extends BasicBlock {
else if (this.thisBlock == BlockTypes.ORE) {
tempIngot = this.thisBlockMaterial + " Ore [Old]";
}
- else {
-
- tempIngot = this.getUnlocalizedName().replace("tile.blockGt", "ingot");
- }
return tempIngot;
}
@Override
+ public String getLocalizedName() {
+ String aFormattedLangName = GetProperName();
+ return GT_LanguageManager.addStringLocalization("block."+blockMaterial.getUnlocalizedName()+"."+this.thisBlock.name().toLowerCase()+".name", aFormattedLangName);
+ }
+
+ @Override
+ public String getUnlocalizedName() {
+ return "block."+blockMaterial.getUnlocalizedName()+"."+this.thisBlock.name().toLowerCase();
+ }
+
+ @Override
public boolean isOpaqueCube() {
return false;
}
diff --git a/src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockGtBlock.java b/src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockGtBlock.java
index 396689ef63..af6f036942 100644
--- a/src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockGtBlock.java
+++ b/src/main/java/gtPlusPlus/core/item/base/itemblock/ItemBlockGtBlock.java
@@ -1,30 +1,35 @@
package gtPlusPlus.core.item.base.itemblock;
+import java.util.HashMap;
import java.util.List;
-import net.minecraft.block.Block;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemBlock;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.EnumChatFormatting;
-import net.minecraft.world.World;
-
+import gregtech.api.util.GT_LanguageManager;
+import gtPlusPlus.core.block.base.BasicBlock.BlockTypes;
+import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.block.base.BlockBaseModular;
import gtPlusPlus.core.block.base.BlockBaseOre;
import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialStack;
-import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.EntityUtils;
import gtPlusPlus.core.util.sys.KeyboardUtils;
+import net.minecraft.block.Block;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.world.World;
public class ItemBlockGtBlock extends ItemBlock {
+ public static HashMap<String, String> sNameCache = new HashMap<String, String>();
+
protected final int blockColour;
private int sRadiation;
private Material mMaterial;
+ protected BlockTypes thisBlockType;
private final Block thisBlock;
private boolean isOre = false;
@@ -50,15 +55,46 @@ public class ItemBlockGtBlock extends ItemBlock {
if (block instanceof BlockBaseModular){
BlockBaseModular g = (BlockBaseModular) block;
this.mMaterial = g.getMaterialEx();
+ this.thisBlockType = g.thisBlock;
}
else {
this.mMaterial = null;
+ this.thisBlockType = BlockTypes.STANDARD;
}
- // GT_OreDictUnificator.registerOre("block"+block.getUnlocalizedName().replace("tile.block",
- // "").replace("tile.", "").replace("of", "").replace("Of", "").replace("Block",
- // "").replace("-", "").replace("_", "").replace(" ", ""),
- // ItemUtils.getSimpleStack(this));
+ }
+
+ public int getBlockTypeMeta() {
+ if (this.thisBlockType.equals(BlockTypes.STANDARD)) {
+ return 0;
+ }
+ else if (this.thisBlockType.equals(BlockTypes.FRAME)) {
+ return 1;
+ }
+ else if (this.thisBlockType.equals(BlockTypes.ORE)) {
+ return 2;
+ }
+ return 0;
+ }
+
+ public String getUnlocalizedBlockName() {
+ return "block."+mMaterial.getUnlocalizedName()+"."+this.thisBlockType.name().toLowerCase();
+ }
+
+ public String GetProperName() {
+ String tempIngot = sNameCache.get(getUnlocalizedBlockName());
+ if (tempIngot == null) {
+ tempIngot = "BAD.UNLOCAL.NAME";
+ }
+ return tempIngot;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack stack) {
+ return this.thisBlock.getLocalizedName();
+ //Logger.INFO("Unlocal Name: "+this.getUnlocalizedName());
+ //String aFormattedLangName = GetProperName();
+ //return GT_LanguageManager.addStringLocalization("block."+mMaterial.getUnlocalizedName()+"."+this.thisBlockType.name().toLowerCase()+".name", aFormattedLangName);
}
public int getRenderColor(final int aMeta) {
diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/LoaderOfTheCrops.java b/src/main/java/gtPlusPlus/xmod/bartcrops/LoaderOfTheCrops.java
index 48813310d2..033aaac663 100644
--- a/src/main/java/gtPlusPlus/xmod/bartcrops/LoaderOfTheCrops.java
+++ b/src/main/java/gtPlusPlus/xmod/bartcrops/LoaderOfTheCrops.java
@@ -5,6 +5,7 @@ import java.util.List;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.xmod.bartcrops.crops.Crop_Force;
import gtPlusPlus.xmod.bartcrops.crops.Crop_Hemp;
import ic2.api.crops.CropCard;
import ic2.api.crops.Crops;
@@ -48,6 +49,7 @@ public class LoaderOfTheCrops {
List<LoaderOfTheCrops> p = new ArrayList<LoaderOfTheCrops>();
p.add(new LoaderOfTheCrops(new Crop_Hemp(), new ItemStack(Item.getItemById(111), 3)));
+ p.add(new LoaderOfTheCrops(new Crop_Force(), new ItemStack(Item.getItemById(111), 3)));
return p;
}
diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java
index ca2a044564..0f590dcf2b 100644
--- a/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java
+++ b/src/main/java/gtPlusPlus/xmod/bartcrops/abstracts/BaseCrop.java
@@ -14,10 +14,10 @@ import net.minecraft.util.IIcon;
import speiger.src.crops.api.ICropCardInfo;
public abstract class BaseCrop extends CropCard implements ICropCardInfo {
+
@SideOnly(Side.CLIENT)
public void registerSprites(IIconRegister iconRegister) {
this.textures = new IIcon[this.maxSize()];
-
for (int i = 1; i <= this.textures.length; ++i) {
this.textures[i - 1] = iconRegister.registerIcon(CORE.MODID+":crop/blockCrop." + this.name() + "." + i);
}
diff --git a/src/main/java/gtPlusPlus/xmod/bartcrops/crops/Crop_Force.java b/src/main/java/gtPlusPlus/xmod/bartcrops/crops/Crop_Force.java
new file mode 100644
index 0000000000..06238a4589
--- /dev/null
+++ b/src/main/java/gtPlusPlus/xmod/bartcrops/crops/Crop_Force.java
@@ -0,0 +1,53 @@
+package gtPlusPlus.xmod.bartcrops.crops;
+
+import gtPlusPlus.core.material.ELEMENT.STANDALONE;
+import gtPlusPlus.core.util.math.MathUtils;
+import gtPlusPlus.preloader.CORE_Preloader;
+import gtPlusPlus.xmod.bartcrops.abstracts.BaseAestheticCrop;
+import ic2.api.crops.ICropTile;
+import net.minecraft.item.ItemStack;
+
+public class Crop_Force extends BaseAestheticCrop {
+
+ public int tier() {
+ return 4;
+ }
+
+ public String name() {
+ return "Force";
+ }
+
+ public String discoveredBy() {
+ return "Alkalus";
+ }
+
+ public int growthDuration(ICropTile crop) {
+ int ret = 800;
+
+ /*if (crop.isBlockBelow(Blocks.dirt) || crop.isBlockBelow(Blocks.flowing_water)) {
+ ret = 225;
+ }*/
+
+ if (CORE_Preloader.DEBUG_MODE) {
+ ret = 1;
+ }
+
+ return ret;
+ }
+
+ public String[] attributes() {
+ return new String[]{"Power", "Soil", "Yellow", "Gold"};
+ }
+
+ public ItemStack getGain(ICropTile crop) {
+ ItemStack ret = this.getDisplayItem();
+ if (MathUtils.randInt(0, 10) > 8) {
+ ret = STANDALONE.FORCE.getNugget(MathUtils.randInt(4, 8));
+ }
+ return ret;
+ }
+
+ public ItemStack getDisplayItem() {
+ return STANDALONE.FORCE.getNugget(0);
+ }
+} \ No newline at end of file
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
index ffaa77a0be..c5e33c088d 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaWirelessCharger.java
@@ -1,20 +1,13 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
+import java.util.*;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.minecraft.BlockPos;
@@ -24,12 +17,18 @@ import gtPlusPlus.core.util.minecraft.PlayerUtils;
import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMetaTileEntity;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import gtPlusPlus.xmod.gregtech.common.helpers.ChargingHelper;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
private boolean mHasBeenMapped = false;
private int mCurrentDimension = 0;
public int mMode = 0;
+ public boolean mLocked = true;
public GregtechMetaWirelessCharger(final int aID, final String aName, final String aNameRegional, final int aTier, final String aDescription, final int aSlotCount) {
super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription);
@@ -42,6 +41,9 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
@Override
public String[] getDescription() {
return new String[] {this.mDescription,
+ "Can be locked to the owner by sneaking with a screwdriver",
+ "Can also be locked with a lock upgrade",
+ "",
"3 Modes, Long-Range, Local and Mixed.",
"Long-Range: Can supply 2A of power to a single player up to "+(GT_Values.V[this.mTier]*4)+"m away.",
"Local: Can supply several Amps to each player within "+this.mTier*20+"m.",
@@ -150,6 +152,11 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
mWirelessChargingMap.clear();
mLocalChargingMap.clear();
+ if (aPlayer.isSneaking()) {
+ mLocked = !mLocked;
+ PlayerUtils.messagePlayer(aPlayer, mLocked ? "Locked to owner." : "Unlocked.");
+ }
+
if (!this.getBaseMetaTileEntity().getWorld().playerEntities.isEmpty()){
for (Object mTempPlayer : this.getBaseMetaTileEntity().getWorld().playerEntities){
if (mTempPlayer instanceof EntityPlayer || mTempPlayer instanceof EntityPlayerMP){
@@ -348,12 +355,14 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
@Override
public void saveNBTData(final NBTTagCompound aNBT) {
+ aNBT.setBoolean("mLocked", this.mLocked);
aNBT.setInteger("mMode", this.mMode);
aNBT.setInteger("mCurrentDimension", this.mCurrentDimension);
}
@Override
public void loadNBTData(final NBTTagCompound aNBT) {
+ this.mLocked = aNBT.getBoolean("mLocked");
this.mMode = aNBT.getInteger("mMode");
this.mCurrentDimension = aNBT.getInteger("mCurrentDimension");
}
@@ -366,6 +375,19 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
private Map<EntityPlayer, UUID> mWirelessChargingMap = new HashMap<EntityPlayer, UUID>();
private Map<UUID, EntityPlayer> mLocalChargingMap = new HashMap<UUID, EntityPlayer>();
+
+ private boolean isValidPlayer(EntityPlayer aPlayer) {
+ BaseMetaTileEntity aTile = (BaseMetaTileEntity) this.getBaseMetaTileEntity();
+ if (mLocked || ( aTile != null && aTile.privateAccess())) {
+ if (aPlayer.getUniqueID().equals(getBaseMetaTileEntity().getOwnerUuid())){
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ return true;
+ }
@Override
public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) {
@@ -389,7 +411,7 @@ public class GregtechMetaWirelessCharger extends GregtechMetaTileEntity {
if (this.mMode == 1 || this.mMode == 2){
int tempRange = (this.mMode == 1 ? this.mTier*20 : this.mTier*10);
if (getDistanceBetweenTwoPositions(getTileEntityPosition(), getPositionOfEntity(mTemp)) < tempRange){
- if (!mLocalChargingMap.containsKey(mTemp.getPersistentID())){
+ if (isValidPlayer(mTemp) && !mLocalChargingMap.containsKey(mTemp.getPersistentID())){
mLocalChargingMap.put(mTemp.getPersistentID(), mTemp);
ChargingHelper.addValidPlayer(mTemp, this);
//PlayerUtils.messagePlayer(mTemp, "You have entered charging range. ["+tempRange+"m - Local].");
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java
index ecd4882516..7514a3dea6 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java
@@ -362,6 +362,7 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas
this.mOutputItems = outputs;
this.mOutputFluids = new FluidStack[] {tRecipe.getFluidOutput(0)};
+ this.updateSlots();
return true;
}
}
diff --git a/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.1.png b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.1.png
new file mode 100644
index 0000000000..87b1b2b7d3
--- /dev/null
+++ b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.1.png
Binary files differ
diff --git a/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.2.png b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.2.png
new file mode 100644
index 0000000000..631045a936
--- /dev/null
+++ b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.2.png
Binary files differ
diff --git a/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.3.png b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.3.png
new file mode 100644
index 0000000000..e987c60374
--- /dev/null
+++ b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.3.png
Binary files differ
diff --git a/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.4.png b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.4.png
new file mode 100644
index 0000000000..67965b0c01
--- /dev/null
+++ b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.4.png
Binary files differ
diff --git a/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.5.png b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.5.png
new file mode 100644
index 0000000000..c587e84b78
--- /dev/null
+++ b/src/main/resources/assets/miscutils/textures/blocks/crop/blockCrop.Force.5.png
Binary files differ