aboutsummaryrefslogtreecommitdiff
path: root/src/Java
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-02 18:20:28 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-02 18:20:28 +1000
commitaf61708010aef717ecc3537fa115547acb9aa9c7 (patch)
tree663bd3d765daa0fc1d053840dad558ab7bb62dba /src/Java
parent70a0df8a68725c16f0c0b959639b8e82cbbcf3a0 (diff)
downloadGT5-Unofficial-af61708010aef717ecc3537fa115547acb9aa9c7.tar.gz
GT5-Unofficial-af61708010aef717ecc3537fa115547acb9aa9c7.tar.bz2
GT5-Unofficial-af61708010aef717ecc3537fa115547acb9aa9c7.zip
$ More fixes.
Diffstat (limited to 'src/Java')
-rw-r--r--src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java8
-rw-r--r--src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneTest.java17
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/general/redstone/TileEntityRedstoneHandler.java16
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java35
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java10
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java14
6 files changed, 67 insertions, 33 deletions
diff --git a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java
index a021a39ac8..65d89c0577 100644
--- a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java
+++ b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java
@@ -92,17 +92,19 @@ public abstract class BlockGenericRedstone extends BlockContainer {
final TileEntityRedstoneHandler tile = (TileEntityRedstoneHandler) world.getTileEntity(x, y, z);
if (tile != null) {
- if (tile.isScrewdriverable() || player.capabilities.isCreativeMode) {
+ if (tile.isScrewdriverable()) {
if (ItemUtils.isToolScrewdriver(mHandStack)){
mDidTool = tile.onScrewdriverRMB();
+ PlayerUtils.messagePlayer(player, "Adjusted Light level by 0.0625f. "+tile.getLightBrightness());
}
}
- if (tile.isMalletable() || player.capabilities.isCreativeMode) {
+ if (tile.isMalletable()) {
if (ItemUtils.isToolMallet(mHandStack)){
mDidTool = tile.onMalletRMB();
+ PlayerUtils.messagePlayer(player, "Light Mode active: "+mDidTool);
}
}
- if (tile.isWrenchable() || player.capabilities.isCreativeMode) {
+ if (tile.isWrenchable()) {
if (ItemUtils.isToolWrench(mHandStack)){
mDidTool = tile.onWrenchRMB();
}
diff --git a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneTest.java b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneTest.java
index f2a5c3f36a..ad59a83d0c 100644
--- a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneTest.java
+++ b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneTest.java
@@ -10,6 +10,7 @@ import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.tileentities.general.redstone.TileEntityRedstoneHandler;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
+import gtPlusPlus.core.world.explosions.ExplosionHandler;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
@@ -50,15 +51,14 @@ public class BlockGenericRedstoneTest extends BlockGenericRedstone {
@Override
public boolean onScrewdriverRMB() {
- if (this.mLightValue + 1 <= 1) {
- this.mLightValue += 1;
+ if (this.mLightValue + 0.0625f <= 1) {
+ this.mLightValue += 0.0625f;
}
else {
this.mLightValue = 0;
}
- Logger.INFO("Screwdriver | "+this.getLightBrightness());
this.markForUpdate();
- return super.onScrewdriverRMB();
+ return true;
}
@Override
@@ -75,7 +75,8 @@ public class BlockGenericRedstoneTest extends BlockGenericRedstone {
@Override
public boolean onMalletRMB() {
this.mLightMode = Utils.invertBoolean(mLightMode);
- return super.onMalletRMB();
+ this.markForUpdate();
+ return mLightMode;
}
@Override
@@ -91,8 +92,10 @@ public class BlockGenericRedstoneTest extends BlockGenericRedstone {
@Override
public boolean onWrenchRMB() {
- // TODO Auto-generated method stub
- return super.onWrenchRMB();
+ Logger.INFO("Found Wrench");
+ ExplosionHandler explode = new ExplosionHandler();
+ explode.createExplosion(this.worldObj, null, this.xCoord, this.yCoord, this.zCoord, 1f, false, true);
+ return true;
}
@Override
diff --git a/src/Java/gtPlusPlus/core/tileentities/general/redstone/TileEntityRedstoneHandler.java b/src/Java/gtPlusPlus/core/tileentities/general/redstone/TileEntityRedstoneHandler.java
index 152790951a..43f2c15251 100644
--- a/src/Java/gtPlusPlus/core/tileentities/general/redstone/TileEntityRedstoneHandler.java
+++ b/src/Java/gtPlusPlus/core/tileentities/general/redstone/TileEntityRedstoneHandler.java
@@ -1,10 +1,16 @@
package gtPlusPlus.core.tileentities.general.redstone;
+import java.lang.reflect.Field;
+import java.util.HashMap;
+import java.util.Map;
+
import cpw.mods.fml.common.registry.GameRegistry;
import gtPlusPlus.api.interfaces.IToolable;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.minecraft.BlockPos;
import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.minecraft.EntityUtils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
@@ -33,7 +39,9 @@ public abstract class TileEntityRedstoneHandler extends TileEntity implements IT
}
private void registerTileEntity() {
- GameRegistry.registerTileEntity(getTileEntityClass(), getTileEntityNameForRegistration());
+ if (!EntityUtils.isTileEntityRegistered(getTileEntityClass(), getTileEntityNameForRegistration())) {
+ GameRegistry.registerTileEntity(getTileEntityClass(), getTileEntityNameForRegistration());
+ }
}
protected abstract Class<? extends TileEntity> getTileEntityClass();
@@ -109,9 +117,9 @@ public abstract class TileEntityRedstoneHandler extends TileEntity implements IT
mRequiresUpdate = false;
mHasUpdatedRecently = true;
mLastUpdate = System.currentTimeMillis();
- if (mTilePos.world.getBlockLightValue(xCoord, yCoord, zCoord) != getLightBrightness()) {
- mTilePos.getBlockAtPos().setLightLevel(getLightBrightness());
- mTilePos.world.setLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord, (int) (getLightBrightness()/0.625f));
+ if (mTilePos.world.getBlockLightValue(xCoord, yCoord, zCoord) != getLightBrightness()/0.0625f) {
+ mTilePos.getBlockAtPos().setLightLevel(getLightBrightness()/0.0625f);
+ mTilePos.world.setLightValue(EnumSkyBlock.Block, xCoord, yCoord, zCoord, (int) (getLightBrightness()/0.0625f));
mTilePos.world.updateLightByType(EnumSkyBlock.Block, xCoord, yCoord, zCoord);
Logger.INFO("Updating Light");
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java
index 839cb164cb..844bb0bcaf 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java
@@ -1,10 +1,13 @@
package gtPlusPlus.core.util.minecraft;
+import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
import cpw.mods.fml.common.registry.EntityRegistry;
-
+import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.entity.*;
import net.minecraft.entity.player.EntityPlayer;
@@ -16,6 +19,7 @@ import net.minecraft.world.biome.BiomeGenBase;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.api.objects.minecraft.BlockPos;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import ic2.core.IC2Potion;
import ic2.core.item.armor.ItemArmorHazmat;
@@ -125,5 +129,34 @@ public class EntityUtils {
public static void doDamage(Entity entity, DamageSource dmg, int i) {
entity.attackEntityFrom(dmg, i);
}
+
+ public static boolean isTileEntityRegistered(Class aTileClass, String aTileName) {
+ Field aRegistry = ReflectionUtils.getField(ReflectionUtils.getClass("net.minecraft.tileentity.TileEntity"), "nameToClassMap");
+ Field aRegistry2 = ReflectionUtils.getField(ReflectionUtils.getClass("net.minecraft.tileentity.TileEntity"), "classToNameMap");
+ try {
+ Object o = aRegistry.get(null);
+ if (o != null) {
+ Map nameToClassMap = (Map) o;
+ if (!nameToClassMap.containsKey(aTileName)) {
+ o = aRegistry2.get(null);
+ if (o != null) {
+ Map classToNameMap = (Map) o;
+ if (!classToNameMap.containsKey(aTileClass)) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ }
+ }
+ else {
+ return true;
+ }
+ }
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
index e266ee02d4..9617d12b66 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
@@ -30,6 +30,8 @@ import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import gtPlusPlus.xmod.gregtech.api.items.Gregtech_MetaTool;
+import gtPlusPlus.xmod.gregtech.common.items.MetaGeneratedGregtechTools;
import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
@@ -1120,14 +1122,14 @@ public class ItemUtils {
return false;
}
final Item mItem = aStack.getItem();
- if (mItem instanceof GT_MetaGenerated_Tool_01) {
+ if (mItem instanceof GT_MetaGenerated_Tool_01 || mItem instanceof MetaGeneratedGregtechTools || mItem instanceof Gregtech_MetaTool) {
return true;
- }
+ }
return false;
}
public static boolean isToolWrench(ItemStack aWrench) {
- if (isItemGregtechTool(aWrench) && (aWrench.getItemDamage() == 16 || aWrench.getItemDamage() == 120 || aWrench.getItemDamage() == 122 || aWrench.getItemDamage() == 124)) {
+ if (isItemGregtechTool(aWrench) && (aWrench.getItemDamage() == 16 || aWrench.getItemDamage() == 120 || aWrench.getItemDamage() == 122 || aWrench.getItemDamage() == 124 || aWrench.getItemDamage() == 7734)) {
return true;
}
return false;
@@ -1162,7 +1164,7 @@ public class ItemUtils {
}
public static boolean isToolHammer(ItemStack aHammer) {
- if (isItemGregtechTool(aHammer) && (aHammer.getItemDamage() == 12)) {
+ if (isItemGregtechTool(aHammer) && (aHammer.getItemDamage() == 12 || aHammer.getItemDamage() == 7734)) {
return true;
}
return false;
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java
index d228fdc04a..f6bbbfcabe 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/common/items/MetaGeneratedGregtechTools.java
@@ -1,25 +1,11 @@
package gtPlusPlus.xmod.gregtech.common.items;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.concurrent.ConcurrentHashMap;
-
import gregtech.api.GregTech_API;
-import gregtech.api.enums.GT_Values;
import gregtech.api.enums.TC_Aspects;
import gregtech.api.enums.ToolDictNames;
-import gregtech.api.interfaces.IItemBehaviour;
-import gregtech.api.items.GT_MetaBase_Item;
import gregtech.api.items.GT_MetaGenerated_Tool;
-import gregtech.api.util.GT_Log;
-import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.core.util.reflect.ReflectionUtils;
import gtPlusPlus.xmod.gregtech.api.enums.GregtechToolDictNames;
import gtPlusPlus.xmod.gregtech.common.tools.TOOL_Gregtech_Choocher;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-import net.minecraftforge.fluids.FluidStack;
public class MetaGeneratedGregtechTools extends GT_MetaGenerated_Tool {