This commit is contained in:
Tschipp 2017-08-12 15:47:34 +02:00
parent ce9ee25342
commit 2415e5db13
3 changed files with 39 additions and 24 deletions

View File

@ -31,6 +31,7 @@ import net.minecraftforge.client.event.RenderHandEvent;
import net.minecraftforge.client.event.RenderPlayerEvent; import net.minecraftforge.client.event.RenderPlayerEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.InputEvent; import net.minecraftforge.fml.common.gameevent.InputEvent;
import net.minecraftforge.fml.relauncher.ReflectionHelper;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import tschipp.carryon.common.config.CarryOnConfig; import tschipp.carryon.common.config.CarryOnConfig;
@ -90,7 +91,7 @@ public class RenderEvents
public void inputEvent(InputEvent event) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException public void inputEvent(InputEvent event) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException
{ {
GameSettings settings = Minecraft.getMinecraft().gameSettings; GameSettings settings = Minecraft.getMinecraft().gameSettings;
Field field = KeyBinding.class.getDeclaredField("pressed"); Field field = KeyBinding.class.getDeclaredFields()[7];
field.setAccessible(true); field.setAccessible(true);
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand(); ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)) if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))

View File

@ -17,6 +17,7 @@ import net.minecraft.nbt.NBTException;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTUtil; import net.minecraft.nbt.NBTUtil;
import net.minecraft.util.IntHashMap; import net.minecraft.util.IntHashMap;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.registry.IForgeRegistryEntry; import net.minecraftforge.fml.common.registry.IForgeRegistryEntry;
import net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl; import net.minecraftforge.fml.common.registry.IForgeRegistryEntry.Impl;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@ -30,8 +31,8 @@ public class ModelOverridesHandler
public static HashMap<NBTTagCompound, Object> OVERRIDE_OBJECTS = new HashMap<NBTTagCompound, Object>(); public static HashMap<NBTTagCompound, Object> OVERRIDE_OBJECTS = new HashMap<NBTTagCompound, Object>();
/* /*
* This class is really ugly, will probably be replaced by something else * This class is really ugly, will probably be replaced by something else -
* - Tschipp * Tschipp
*/ */
public static void initOverrides() public static void initOverrides()
{ {
@ -80,30 +81,43 @@ public class ModelOverridesHandler
else if (toOverride.contains("}")) else if (toOverride.contains("}"))
throw new InvalidConfigException("Missing { at line " + i + " : " + currentline); throw new InvalidConfigException("Missing { at line " + i + " : " + currentline);
int meta = StringParser.getMeta(toOverride); String modidToOverride = "minecraft";
if (meta == 0) String modidOverride = "minecraft";
toOverrideObject = StringParser.getBlock(toOverride);
else
toOverrideObject = StringParser.getBlockState(toOverride);
overrideObject = StringParser.getItem(override); if (toOverride.contains(":"))
if (Block.getBlockFromItem((Item) overrideObject) != Blocks.AIR) modidToOverride = toOverride.replace(toOverride.substring(toOverride.indexOf(":")), "");
overrideObject = StringParser.getItemStack(override);
else
overrideObject = StringParser.getBlockState(override);
NBTTagCompound keyComp = new NBTTagCompound(); if (override.contains(":"))
keyComp.setTag("nbttag", tag); modidOverride = override.replace(override.substring(override.indexOf(":")), "");
if (toOverrideObject instanceof Block)
if (Loader.isModLoaded(modidOverride) && Loader.isModLoaded(modidToOverride))
{ {
keyComp.setString("block", ((Block) toOverrideObject).getRegistryName().toString());
int meta = StringParser.getMeta(toOverride);
if (meta == 0)
toOverrideObject = StringParser.getBlock(toOverride);
else
toOverrideObject = StringParser.getBlockState(toOverride);
overrideObject = StringParser.getItem(override);
if (Block.getBlockFromItem((Item) overrideObject) != Blocks.AIR)
overrideObject = StringParser.getItemStack(override);
else
overrideObject = StringParser.getBlockState(override);
NBTTagCompound keyComp = new NBTTagCompound();
keyComp.setTag("nbttag", tag);
if (toOverrideObject instanceof Block)
{
keyComp.setString("block", ((Block) toOverrideObject).getRegistryName().toString());
}
else
{
keyComp.setInteger("stateid", Block.getStateId((IBlockState) toOverrideObject));
keyComp.setString("block", ((IBlockState) toOverrideObject).getBlock().getRegistryName().toString());
}
OVERRIDE_OBJECTS.put(keyComp, overrideObject);
} }
else
{
keyComp.setInteger("stateid", Block.getStateId((IBlockState) toOverrideObject));
keyComp.setString("block", ((IBlockState) toOverrideObject).getBlock().getRegistryName().toString());
}
OVERRIDE_OBJECTS.put(keyComp, overrideObject);
} }
} }

View File

@ -1,5 +1,6 @@
package tschipp.carryon.common.item; package tschipp.carryon.common.item;
import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -26,7 +27,6 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d; import net.minecraft.util.math.Vec3d;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import scala.actors.threadpool.Arrays;
import tschipp.carryon.CarryOn; import tschipp.carryon.CarryOn;
import tschipp.carryon.common.config.CarryOnConfig; import tschipp.carryon.common.config.CarryOnConfig;