Compare commits

...

29 Commits

Author SHA1 Message Date
Tschipp
07eb70aed5 Merge branch 'master' into 1.10 2018-07-06 16:46:29 +02:00
Tschipp
d9ab1f3d60 Merge branch 'master' into 1.10 2018-05-11 23:30:26 +02:00
Tschipp
ed4449aa45 Merge branch 'master' into 1.10 2018-05-11 20:22:10 +02:00
Tschipp
48b0e03340 Merge branch 'master' into 1.10 2018-03-24 11:40:03 +01:00
Tschipp
8436abe222 Update for 1.10 2018-01-24 16:30:08 +01:00
Tschipp
5b27cb8ec6 1.10 Render Crash 2018-01-22 00:01:09 +01:00
Tschipp
fa2e013a4b Merge branch 'master' into 1.10 2017-11-04 11:51:06 +01:00
Tschipp
a9bdc384b9 1.10 ItemStack crashes... 2017-11-04 11:22:13 +01:00
Tschipp
f3a3843dc8 Breakspeed 2017-10-07 18:28:23 +02:00
Tschipp
063a34ef5c Merge branch 'master' into 1.10 2017-10-07 18:27:38 +02:00
Tschipp
592bee78b8 1.10 changes 2017-10-07 18:19:21 +02:00
Tschipp
32a837eb39 Merge branch 'master' into 1.10 2017-10-07 18:18:23 +02:00
Tschipp
acd0f06e4f Merge branch 'master' into 1.10 2017-10-03 16:45:47 +02:00
Tschipp
f4ae211a6a Command 2017-10-01 21:25:02 +02:00
Tschipp
a4fcb39cb6 Merge branch 'master' into 1.10 2017-10-01 21:24:53 +02:00
Tschipp
ac4a3d6a14 Merge branch 'master' into 1.10 2017-09-18 17:06:08 +02:00
Tschipp
9a38b115b7 Merge branch 'master' into 1.10 2017-09-17 22:44:37 +02:00
Tschipp
28b7fdc124 Merge branch 'master' into 1.10 2017-09-04 18:30:20 +02:00
Tschipp
a757659d68 Oops 2017-09-03 18:18:14 +02:00
Tschipp
295310b603 Merge branch 'master' into 1.10 2017-09-03 18:11:32 +02:00
Tschipp
780faaeca3 Merge branch 'master' into 1.10 2017-08-27 22:35:22 +02:00
Tschipp
a1c4313e50 fixed a bug 2017-08-27 22:23:02 +02:00
Tschipp
07b882da12 build.gradle 2017-08-20 00:27:12 +02:00
Tschipp
20294c004d Update to 1.2 2017-08-20 00:26:58 +02:00
Tschipp
0bad034983 Fix 1.10 2017-08-15 14:42:58 +02:00
Tschipp
d5ff19cdc2 Merge branch 'master' into 1.10 2017-08-15 14:35:52 +02:00
Tschipp
1036890e39 Merge branch 'master' into 1.10 2017-08-14 23:06:33 +02:00
Tschipp
95b56d78a8 Merge branch 'master' into 1.10 2017-08-14 15:00:26 +02:00
Tschipp
f60ee55fbe Downdate to 1.10 2017-08-14 11:08:00 +02:00
26 changed files with 233 additions and 419 deletions

View File

@ -24,16 +24,14 @@ compileJava {
} }
minecraft { minecraft {
version = "1.11.2-13.20.1.2386" version = "1.10.2-12.18.3.2185"
runDir = "run" runDir = "run"
mappings = "snapshot_20161220" mappings = "snapshot_20161111"
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
} }
repositories { repositories {
maven { url 'http://maven.epoxide.org' }
ivy { ivy {
name "LatMod" name "LatMod"
@ -45,7 +43,6 @@ repositories {
dependencies { dependencies {
deobfCompile "net.darkhax.gamestages:GameStages-1.11.2:1.0.11"
deobfCompile "LatMod:FTBUtilities:1.1x-3.6.5" deobfCompile "LatMod:FTBUtilities:1.1x-3.6.5"
deobfCompile "LatMod:FTBLib:1.1x-3.6.5" deobfCompile "LatMod:FTBLib:1.1x-3.6.5"

View File

@ -23,7 +23,7 @@ import tschipp.carryon.common.command.CommandCarryOn;
import tschipp.carryon.common.command.CommandCarryOnReload; import tschipp.carryon.common.command.CommandCarryOnReload;
@EventBusSubscriber @EventBusSubscriber
@Mod(modid = CarryOn.MODID, name = CarryOn.NAME, version = CarryOn.VERSION, guiFactory = "tschipp.carryon.client.gui.GuiFactoryCarryOn", dependencies = "required-after:forge@[13.20.1.2386,)", updateJSON = CarryOn.UPDATE_JSON, acceptedMinecraftVersions = CarryOn.ACCEPTED_VERSIONS) @Mod(modid = CarryOn.MODID, name = CarryOn.NAME, version = CarryOn.VERSION, guiFactory = "tschipp.carryon.client.gui.GuiFactoryCarryOn", updateJSON = CarryOn.UPDATE_JSON, acceptedMinecraftVersions = CarryOn.ACCEPTED_VERSIONS)
public class CarryOn { public class CarryOn {
@SidedProxy(clientSide = "tschipp.carryon.client.ClientProxy", serverSide = "tschipp.carryon.common.CommonProxy") @SidedProxy(clientSide = "tschipp.carryon.client.ClientProxy", serverSide = "tschipp.carryon.common.CommonProxy")
@ -36,7 +36,7 @@ public class CarryOn {
public static final String MODID = "carryon"; public static final String MODID = "carryon";
public static final String VERSION = "1.9.1"; public static final String VERSION = "1.9.1";
public static final String NAME = "Carry On"; public static final String NAME = "Carry On";
public static final String ACCEPTED_VERSIONS = "[1.11,1.12)"; public static final String ACCEPTED_VERSIONS = "[1.10,1.11)";
public static final String UPDATE_JSON = "https://gist.githubusercontent.com/Tschipp/dccadee7c90d7a34e6e76a35d9d6fa2e/raw/"; public static final String UPDATE_JSON = "https://gist.githubusercontent.com/Tschipp/dccadee7c90d7a34e6e76a35d9d6fa2e/raw/";
public static final Logger LOGGER = LogManager.getFormatterLogger("CarryOn"); public static final Logger LOGGER = LogManager.getFormatterLogger("CarryOn");
public static File CONFIGURATION_FILE; public static File CONFIGURATION_FILE;

View File

@ -4,8 +4,10 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.AbstractClientPlayer;
import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.model.ModelPlayer;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.RenderHelper;
@ -49,9 +51,8 @@ public class RenderEntityEvents
{ {
if (event.getDwheel() > 0 || event.getDwheel() < 0 || Minecraft.getMinecraft().gameSettings.keyBindPickBlock.isPressed()) if (event.getDwheel() > 0 || event.getDwheel() < 0 || Minecraft.getMinecraft().gameSettings.keyBindPickBlock.isPressed())
{ {
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand(); ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemEntity))
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity)
{ {
if (ItemEntity.hasEntityData(stack)) if (ItemEntity.hasEntityData(stack))
{ {
@ -71,15 +72,13 @@ public class RenderEntityEvents
if (event.getGui() != null) if (event.getGui() != null)
{ {
boolean inventory = event.getGui() instanceof GuiContainer; boolean inventory = event.getGui() instanceof GuiContainer;
EntityPlayer player = Minecraft.getMinecraft().player; EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (player != null && inventory) if (player != null && inventory)
{ {
ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND); ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
if (inventory && (stack != null ? stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack) : false))
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
{ {
Minecraft.getMinecraft().player.closeScreen(); Minecraft.getMinecraft().thePlayer.closeScreen();
Minecraft.getMinecraft().currentScreen = null; Minecraft.getMinecraft().currentScreen = null;
Minecraft.getMinecraft().setIngameFocus(); Minecraft.getMinecraft().setIngameFocus();
@ -98,10 +97,9 @@ public class RenderEntityEvents
GameSettings settings = Minecraft.getMinecraft().gameSettings; GameSettings settings = Minecraft.getMinecraft().gameSettings;
Field field = KeyBinding.class.getDeclaredFields()[7]; Field field = KeyBinding.class.getDeclaredFields()[7];
field.setAccessible(true); field.setAccessible(true);
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand(); ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
EntityPlayer player = Minecraft.getMinecraft().player; EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (stack != null ? (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)) : false)
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
{ {
if (settings.keyBindDrop.isPressed()) if (settings.keyBindDrop.isPressed())
{ {
@ -135,13 +133,15 @@ public class RenderEntityEvents
@SubscribeEvent @SubscribeEvent
public void renderHand(RenderHandEvent event) public void renderHand(RenderHandEvent event)
{ {
World world = Minecraft.getMinecraft().world;
EntityPlayer player = Minecraft.getMinecraft().player; World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
AbstractClientPlayer aplayer = (AbstractClientPlayer) player;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView; int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView;
float partialticks = event.getPartialTicks(); float partialticks = event.getPartialTicks();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)) if (stack != null ? (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)) : false)
{ {
if(Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) if(Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr"))
return; return;
@ -182,7 +182,7 @@ public class RenderEntityEvents
String entityname = carryOverride.getRenderNameEntity(); String entityname = carryOverride.getRenderNameEntity();
if (entityname != null) if (entityname != null)
{ {
Entity newEntity = EntityList.createEntityByIDFromName(new ResourceLocation(entityname), world); Entity newEntity = EntityList.createEntityByName(entityname, world);
if (newEntity != null) if (newEntity != null)
{ {
NBTTagCompound nbttag = carryOverride.getRenderNBT(); NBTTagCompound nbttag = carryOverride.getRenderNBT();
@ -237,7 +237,7 @@ public class RenderEntityEvents
} }
float f = entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw); float f = entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw);
int i = this.getBrightnessForRender(entity, Minecraft.getMinecraft().player); int i = this.getBrightnessForRender(entity, Minecraft.getMinecraft().thePlayer);
if (entity.isBurning()) if (entity.isBurning())
{ {
@ -260,12 +260,12 @@ public class RenderEntityEvents
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private int getBrightnessForRender(Entity entity, EntityPlayer player) private int getBrightnessForRender(Entity entity, EntityPlayer player)
{ {
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor(player.posX), 0, MathHelper.floor(player.posZ)); BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor_double(player.posX), 0, MathHelper.floor_double(player.posZ));
if (entity.world.isBlockLoaded(blockpos$mutableblockpos)) if (entity.worldObj.isBlockLoaded(blockpos$mutableblockpos))
{ {
blockpos$mutableblockpos.setY(MathHelper.floor(player.posY + entity.getEyeHeight())); blockpos$mutableblockpos.setY(MathHelper.floor_double(player.posY + entity.getEyeHeight()));
return entity.world.getCombinedLight(blockpos$mutableblockpos, 0); return entity.worldObj.getCombinedLight(blockpos$mutableblockpos, 0);
} }
else else
{ {
@ -297,14 +297,13 @@ public class RenderEntityEvents
@SubscribeEvent @SubscribeEvent
public void onPlayerRenderPost(RenderPlayerEvent.Post event) public void onPlayerRenderPost(RenderPlayerEvent.Post event)
{ {
World world = Minecraft.getMinecraft().world; World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = event.getEntityPlayer(); EntityPlayer player = event.getEntityPlayer();
event.getRenderer().getMainModel(); ModelPlayer modelPlayer = event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().player; EntityPlayerSP clientPlayer = Minecraft.getMinecraft().thePlayer;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
float partialticks = event.getPartialRenderTick(); float partialticks = event.getPartialRenderTick();
if (stack != null ? stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack) : false)
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))
{ {
Entity entity = ItemEntity.getEntity(stack, world); Entity entity = ItemEntity.getEntity(stack, world);
float rotation = -(player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * partialticks); float rotation = -(player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * partialticks);
@ -357,7 +356,7 @@ public class RenderEntityEvents
String entityname = carryOverride.getRenderNameEntity(); String entityname = carryOverride.getRenderNameEntity();
if (entityname != null) if (entityname != null)
{ {
Entity newEntity = EntityList.createEntityByIDFromName(new ResourceLocation(entityname), world); Entity newEntity = EntityList.createEntityByName(entityname, world);
if (newEntity != null) if (newEntity != null)
{ {
NBTTagCompound nbttag = carryOverride.getRenderNBT(); NBTTagCompound nbttag = carryOverride.getRenderNBT();

View File

@ -71,9 +71,8 @@ public class RenderEvents
{ {
if (event.getDwheel() > 0 || event.getDwheel() < 0 || Minecraft.getMinecraft().gameSettings.keyBindPickBlock.isPressed()) if (event.getDwheel() > 0 || event.getDwheel() < 0 || Minecraft.getMinecraft().gameSettings.keyBindPickBlock.isPressed())
{ {
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand(); ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
if (stack == null ? false : stack.getItem() == RegistrationHandler.itemTile)
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile)
{ {
if (ItemTile.hasTileData(stack)) if (ItemTile.hasTileData(stack))
{ {
@ -117,15 +116,13 @@ public class RenderEvents
if (event.getGui() != null) if (event.getGui() != null)
{ {
boolean inventory = event.getGui() instanceof GuiContainer; boolean inventory = event.getGui() instanceof GuiContainer;
EntityPlayer player = Minecraft.getMinecraft().player; EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (player != null && inventory) if (player != null && inventory)
{ {
ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND); ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);
if (inventory && (stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false))
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
{ {
Minecraft.getMinecraft().player.closeScreen(); Minecraft.getMinecraft().thePlayer.closeScreen();
Minecraft.getMinecraft().currentScreen = null; Minecraft.getMinecraft().currentScreen = null;
Minecraft.getMinecraft().setIngameFocus(); Minecraft.getMinecraft().setIngameFocus();
@ -144,10 +141,9 @@ public class RenderEvents
GameSettings settings = Minecraft.getMinecraft().gameSettings; GameSettings settings = Minecraft.getMinecraft().gameSettings;
Field field = KeyBinding.class.getDeclaredFields()[7]; Field field = KeyBinding.class.getDeclaredFields()[7];
field.setAccessible(true); field.setAccessible(true);
ItemStack stack = Minecraft.getMinecraft().player.getHeldItemMainhand(); EntityPlayer player = Minecraft.getMinecraft().thePlayer;
EntityPlayer player = Minecraft.getMinecraft().player; ItemStack stack = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
if (stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false)
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
{ {
if (settings.keyBindDrop.isPressed()) if (settings.keyBindDrop.isPressed())
{ {
@ -181,14 +177,14 @@ public class RenderEvents
@SubscribeEvent @SubscribeEvent
public void renderHand(RenderHandEvent event) public void renderHand(RenderHandEvent event)
{ {
World world = Minecraft.getMinecraft().world; World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = Minecraft.getMinecraft().player; EntityPlayer player = Minecraft.getMinecraft().thePlayer;
AbstractClientPlayer aplayer = (AbstractClientPlayer) player; AbstractClientPlayer aplayer = (AbstractClientPlayer) player;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView; int perspective = Minecraft.getMinecraft().gameSettings.thirdPersonView;
boolean f1 = Minecraft.getMinecraft().gameSettings.hideGUI; boolean f1 = Minecraft.getMinecraft().gameSettings.hideGUI;
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) && perspective == 0 && !f1) if ((stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false) && !f1 && perspective == 0)
{ {
if (Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr")) if (Loader.isModLoaded("realrender") || Loader.isModLoaded("rfpr"))
return; return;
@ -236,12 +232,12 @@ public class RenderEvents
} }
int i = this.getBrightnessForRender(Minecraft.getMinecraft().player); int i = this.getBrightnessForRender(Minecraft.getMinecraft().thePlayer);
int j = i % 65536; int j = i % 65536;
int k = i / 65536; int k = i / 65536;
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, j, k); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, j, k);
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
this.setLightmapDisabled(false); this.setLightmapDisabled(false);
Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE); Minecraft.getMinecraft().getTextureManager().bindTexture(TextureMap.LOCATION_BLOCKS_TEXTURE);
@ -256,12 +252,12 @@ public class RenderEvents
} }
else else
{ {
Minecraft.getMinecraft().getRenderItem().renderItem(tileStack.isEmpty() ? stack : tileStack, model); Minecraft.getMinecraft().getRenderItem().renderItem(tileStack == null ? stack : tileStack, model);
} }
} }
else else
{ {
Minecraft.getMinecraft().getRenderItem().renderItem(tileStack.isEmpty() ? stack : tileStack, model); Minecraft.getMinecraft().getRenderItem().renderItem(tileStack == null ? stack : tileStack, model);
} }
this.setLightmapDisabled(true); this.setLightmapDisabled(true);
@ -277,7 +273,7 @@ public class RenderEvents
} }
else else
{ {
if (stack.isEmpty() ? true : stack.getItem() != RegistrationHandler.itemEntity) if (stack == null ? true : stack.getItem() != RegistrationHandler.itemEntity)
{ {
event.setCanceled(false); event.setCanceled(false);
Minecraft mc = Minecraft.getMinecraft(); Minecraft mc = Minecraft.getMinecraft();
@ -302,12 +298,12 @@ public class RenderEvents
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private int getBrightnessForRender(EntityPlayer player) private int getBrightnessForRender(EntityPlayer player)
{ {
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor(player.posX), 0, MathHelper.floor(player.posZ)); BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos(MathHelper.floor_double(player.posX), 0, MathHelper.floor_double(player.posZ));
if (player.world.isBlockLoaded(blockpos$mutableblockpos)) if (player.worldObj.isBlockLoaded(blockpos$mutableblockpos))
{ {
blockpos$mutableblockpos.setY(MathHelper.floor(player.posY + player.getEyeHeight())); blockpos$mutableblockpos.setY(MathHelper.floor_double(player.posY + player.getEyeHeight()));
return player.world.getCombinedLight(blockpos$mutableblockpos, 0); return player.worldObj.getCombinedLight(blockpos$mutableblockpos, 0);
} }
else else
{ {
@ -339,13 +335,13 @@ public class RenderEvents
@SubscribeEvent @SubscribeEvent
public void onPlayerRenderPost(RenderPlayerEvent.Post event) public void onPlayerRenderPost(RenderPlayerEvent.Post event)
{ {
World world = Minecraft.getMinecraft().world; World world = Minecraft.getMinecraft().theWorld;
EntityPlayer player = event.getEntityPlayer(); EntityPlayer player = event.getEntityPlayer();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().player; ModelPlayer modelPlayer = event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().thePlayer;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
float partialticks = event.getPartialRenderTick(); float partialticks = event.getPartialRenderTick();
if (stack != null ? stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) : false)
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack))
{ {
Block block = ItemTile.getBlock(stack); Block block = ItemTile.getBlock(stack);
IBlockState state = ItemTile.getBlockState(stack); IBlockState state = ItemTile.getBlockState(stack);
@ -390,7 +386,7 @@ public class RenderEvents
GlStateManager.translate(0, -0.3, 0); GlStateManager.translate(0, -0.3, 0);
} }
IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileItem, world, player); IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(tileItem == null ? stack : tileItem, world, player);
CarryOnOverride carryOverride = ScriptChecker.getOverride(player); CarryOnOverride carryOverride = ScriptChecker.getOverride(player);
if (carryOverride != null) if (carryOverride != null)
@ -426,14 +422,13 @@ public class RenderEvents
} }
else else
{ {
Minecraft.getMinecraft().getRenderItem().renderItem(tileItem.isEmpty() ? stack : tileItem, model); Minecraft.getMinecraft().getRenderItem().renderItem(tileItem == null ? stack : tileItem, model);
} }
} }
else else
{ {
Minecraft.getMinecraft().getRenderItem().renderItem(tileItem.isEmpty() ? stack : tileItem, model); Minecraft.getMinecraft().getRenderItem().renderItem(tileItem == null ? stack : tileItem, model);
} }
GlStateManager.scale(1, 1, 1); GlStateManager.scale(1, 1, 1);
GlStateManager.popMatrix(); GlStateManager.popMatrix();
} }
@ -452,12 +447,14 @@ public class RenderEvents
AbstractClientPlayer aplayer = (AbstractClientPlayer) player; AbstractClientPlayer aplayer = (AbstractClientPlayer) player;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
ModelPlayer model = event.getRenderer().getMainModel(); ModelPlayer model = event.getRenderer().getMainModel();
EntityPlayerSP clientPlayer = Minecraft.getMinecraft().thePlayer;
ResourceLocation skinLoc = DefaultPlayerSkin.getDefaultSkin(player.getPersistentID()); ResourceLocation skinLoc = DefaultPlayerSkin.getDefaultSkin(player.getPersistentID());
if (!initModels) if (!initModels)
{ {
this.fakeLeftArm = new ModelRenderer(model, 32, 48);
this.fakeRightArm = new ModelRenderer(model, 40, 16); this.fakeRightArm = new ModelRenderer(model, 40, 16);
this.fakeLeftArm = new ModelRenderer(model, 32, 48);
this.fakeLeftArmwear = new ModelRenderer(model, 48, 48); this.fakeLeftArmwear = new ModelRenderer(model, 48, 48);
this.fakeRightArmwear = new ModelRenderer(model, 40, 32); this.fakeRightArmwear = new ModelRenderer(model, 40, 32);
initModels = true; initModels = true;
@ -465,7 +462,7 @@ public class RenderEvents
player.setArrowCountInEntity(0); // TODO Temporary Fix player.setArrowCountInEntity(0); // TODO Temporary Fix
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)) if (stack != null ? ((stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)) || (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack))) : false)
{ {
CarryOnOverride overrider = ScriptChecker.getOverride(player); CarryOnOverride overrider = ScriptChecker.getOverride(player);
if (overrider != null) if (overrider != null)
@ -783,7 +780,7 @@ public class RenderEvents
} }
} }
if (stack.isEmpty() || stack.getItem() != RegistrationHandler.itemTile && stack.getItem() != RegistrationHandler.itemEntity) if (stack == null || (stack != null && stack.getItem() != RegistrationHandler.itemTile && stack.getItem() != RegistrationHandler.itemEntity))
{ {
model.bipedLeftArm.isHidden = false; model.bipedLeftArm.isHidden = false;
model.bipedRightArm.isHidden = false; model.bipedRightArm.isHidden = false;

View File

@ -29,6 +29,7 @@ public class GuiFactoryCarryOn implements IModGuiFactory
} }
/*
@Override @Override
public boolean hasConfigGui() public boolean hasConfigGui()
{ {
@ -40,7 +41,7 @@ public class GuiFactoryCarryOn implements IModGuiFactory
{ {
return new GuiConfigCarryOn(parentScreen); return new GuiConfigCarryOn(parentScreen);
} } */

View File

@ -24,7 +24,7 @@ public class PositionClientEvents
{ {
if (event.getGui() != null) if (event.getGui() != null)
{ {
EntityPlayer player = Minecraft.getMinecraft().player; EntityPlayer player = Minecraft.getMinecraft().thePlayer;
boolean inventory = event.getGui() instanceof GuiContainer; boolean inventory = event.getGui() instanceof GuiContainer;
if (player != null && inventory) if (player != null && inventory)
@ -34,7 +34,7 @@ public class PositionClientEvents
IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY, null); IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY, null);
if(cap.isBlockActivated()) if(cap.isBlockActivated())
{ {
World world = player.world; World world = player.worldObj;
BlockPos pos = cap.getPos(); BlockPos pos = cap.getPos();
if(world != null) if(world != null)
{ {

View File

@ -17,7 +17,6 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.TextComponentString;
import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint;
import tschipp.carryon.CarryOn; import tschipp.carryon.CarryOn;
import tschipp.carryon.common.handler.CustomPickupOverrideHandler;
import tschipp.carryon.common.handler.ModelOverridesHandler; import tschipp.carryon.common.handler.ModelOverridesHandler;
import tschipp.carryon.common.handler.RegistrationHandler; import tschipp.carryon.common.handler.RegistrationHandler;
import tschipp.carryon.common.item.ItemEntity; import tschipp.carryon.common.item.ItemEntity;
@ -39,27 +38,29 @@ public class CommandCarryOn extends CommandBase implements ICommand
@Override @Override
public int compareTo(ICommand o) public int compareTo(ICommand o)
{ {
return this.getName().compareTo(o.getName()); return this.getCommandName().compareTo(o.getCommandName());
} }
@Override @Override
public String getName() public String getCommandName()
{ {
return "carryon"; return "carryon";
} }
@Override @Override
public String getUsage(ICommandSender sender) public String getCommandUsage(ICommandSender sender)
{ {
return "/carryon <mode>"; return "/carryon <mode>";
} }
@Override @Override
public List<String> getAliases() public List<String> getCommandAliases()
{ {
return this.names; return this.names;
} }
@Override @Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
@ -80,9 +81,9 @@ public class CommandCarryOn extends CommandBase implements ICommand
CarryOn.network.sendTo(new CarrySlotPacket(9, player.getEntityId()), (EntityPlayerMP) player); CarryOn.network.sendTo(new CarrySlotPacket(9, player.getEntityId()), (EntityPlayerMP) player);
if (cleared != 1) if (cleared != 1)
player.sendMessage(new TextComponentString("Cleared " + cleared + " Items!")); player.addChatMessage(new TextComponentString("Cleared " + cleared + " Items!"));
else else
player.sendMessage(new TextComponentString("Cleared " + cleared + " Item!")); player.addChatMessage(new TextComponentString("Cleared " + cleared + " Item!"));
} }
} }
@ -94,58 +95,47 @@ public class CommandCarryOn extends CommandBase implements ICommand
{ {
EntityPlayer player = (EntityPlayer) sender; EntityPlayer player = (EntityPlayer) sender;
ItemStack main = player.getHeldItemMainhand(); ItemStack main = player.getHeldItemMainhand();
if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemTile) if (main != null && main.getItem() == RegistrationHandler.itemTile)
{ {
player.sendMessage(new TextComponentString("Block: " + ItemTile.getBlock(main))); player.addChatMessage(new TextComponentString("Block: " + ItemTile.getBlock(main)));
player.sendMessage(new TextComponentString("BlockState: " + ItemTile.getBlockState(main))); player.addChatMessage(new TextComponentString("BlockState: " + ItemTile.getBlockState(main)));
player.sendMessage(new TextComponentString("Meta: " + ItemTile.getMeta(main))); player.addChatMessage(new TextComponentString("Meta: " + ItemTile.getMeta(main)));
player.sendMessage(new TextComponentString("ItemStack: " + ItemTile.getItemStack(main))); player.addChatMessage(new TextComponentString("ItemStack: " + ItemTile.getItemStack(main)));
if(ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(main), ItemTile.getTileData(main))) if(ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(main), ItemTile.getTileData(main)))
player.sendMessage(new TextComponentString("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main)))); player.addChatMessage(new TextComponentString("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main))));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemTile.getBlockState(main)))
player.sendMessage(new TextComponentString("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemTile.getBlockState(main))));
CarryOn.LOGGER.info("Block: " + ItemTile.getBlock(main)); CarryOn.LOGGER.info("Block: " + ItemTile.getBlock(main));
CarryOn.LOGGER.info("BlockState: " + ItemTile.getBlockState(main)); CarryOn.LOGGER.info("BlockState: " + ItemTile.getBlockState(main));
CarryOn.LOGGER.info("Meta: " + ItemTile.getMeta(main)); CarryOn.LOGGER.info("Meta: " + ItemTile.getMeta(main));
CarryOn.LOGGER.info("ItemStack: " + ItemTile.getItemStack(main)); CarryOn.LOGGER.info("ItemStack: " + ItemTile.getItemStack(main));
if(ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(main), ItemTile.getTileData(main))) if(ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(main), ItemTile.getTileData(main)))
CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main))); CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(main), ItemTile.getTileData(main)));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemTile.getBlockState(main)))
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemTile.getBlockState(main)));
} }
else if(!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity) else if(main != null && main.getItem() == RegistrationHandler.itemEntity)
{ {
player.sendMessage(new TextComponentString("Entity: " + ItemEntity.getEntity(main, server.getEntityWorld()))); player.addChatMessage(new TextComponentString("Entity: " + ItemEntity.getEntity(main, server.getEntityWorld())));
player.sendMessage(new TextComponentString("Entity Name: " + ItemEntity.getEntityName(main))); player.addChatMessage(new TextComponentString("Entity Name: " + ItemEntity.getEntityName(main)));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemEntity.getEntity(main, server.getEntityWorld())))
player.sendMessage(new TextComponentString("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemEntity.getEntity(main, server.getEntityWorld()))));
CarryOn.LOGGER.info("Entity: " + ItemEntity.getEntity(main, server.getEntityWorld())); CarryOn.LOGGER.info("Entity: " + ItemEntity.getEntity(main, server.getEntityWorld()));
CarryOn.LOGGER.info("Entity Name: " + ItemEntity.getEntityName(main)); CarryOn.LOGGER.info("Entity Name: " + ItemEntity.getEntityName(main));
if(CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemEntity.getEntity(main, server.getEntityWorld())))
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemEntity.getEntity(main, server.getEntityWorld())));
} }
} }
} }
else else
{ {
throw new WrongUsageException(this.getUsage(sender)); throw new WrongUsageException(this.getCommandUsage(sender));
} }
} }
else else
{ {
throw new WrongUsageException(this.getUsage(sender)); throw new WrongUsageException(this.getCommandUsage(sender));
} }
} }
@ -156,8 +146,9 @@ public class CommandCarryOn extends CommandBase implements ICommand
return true; return true;
} }
@Override @Override
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos) public List<String> getTabCompletionOptions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos)
{ {
if (args.length > 0) if (args.length > 0)
@ -191,4 +182,6 @@ public class CommandCarryOn extends CommandBase implements ICommand
return 2; return 2;
} }
} }

View File

@ -24,18 +24,18 @@ public class CommandCarryOnReload extends CommandBase
if (CarryOnConfig.settings.useScripts) if (CarryOnConfig.settings.useScripts)
{ {
ScriptReader.reloadScripts(); ScriptReader.reloadScripts();
sender.addChatMessage(new TextComponentString("Successfully reloaded scripts!"));
CarryOn.network.sendToAll(new ScriptReloadPacket()); CarryOn.network.sendToAll(new ScriptReloadPacket());
sender.sendMessage(new TextComponentString("Successfully reloaded scripts!"));
} }
else else
sender.sendMessage(new TextComponentString("To use custom Carry On scripts, enable them in the config!")); sender.addChatMessage(new TextComponentString("To use custom Carry On scripts, enable them in the config!"));
} }
@Override @Override
public boolean checkPermission(MinecraftServer server, ICommandSender sender) public boolean checkPermission(MinecraftServer server, ICommandSender sender)
{ {
return sender.canUseCommand(this.getRequiredPermissionLevel(), this.getName()); return sender.canCommandSenderUseCommand(this.getRequiredPermissionLevel(), this.getCommandName());
} }
@Override @Override
@ -45,7 +45,7 @@ public class CommandCarryOnReload extends CommandBase
} }
@Override @Override
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos) public List<String> getTabCompletionOptions(MinecraftServer server, ICommandSender sender, String[] args, BlockPos pos)
{ {
if (args.length > 0) if (args.length > 0)
@ -65,16 +65,18 @@ public class CommandCarryOnReload extends CommandBase
return Collections.<String>emptyList(); return Collections.<String>emptyList();
} }
@Override @Override
public String getName() public String getCommandName()
{ {
return "reloadscripts"; return "reloadscripts";
} }
@Override @Override
public String getUsage(ICommandSender sender) public String getCommandUsage(ICommandSender sender)
{ {
return "/reloadscripts"; return "/reloadscripts";
} }
} }

View File

@ -34,10 +34,6 @@ public class CarryOnConfig {
@Config.LangKey(CarryOn.MODID) @Config.LangKey(CarryOn.MODID)
@Config.Comment("Model Overrides based on NBT or on Meta. Advanced Users Only!") @Config.Comment("Model Overrides based on NBT or on Meta. Advanced Users Only!")
public static Configs.ModelOverrides modelOverrides = new Configs.ModelOverrides(); public static Configs.ModelOverrides modelOverrides = new Configs.ModelOverrides();
@Config.LangKey(CarryOn.MODID)
@Config.Comment("Custom Pickup Conditions for certain blocks. ONLY WORKS WHEN GAMESTAGES IS INSTALLED! Advanced Users Only!")
public static Configs.CustomPickupConditions customPickupConditions = new Configs.CustomPickupConditions();
@Mod.EventBusSubscriber @Mod.EventBusSubscriber
public static class EventHandler { public static class EventHandler {

View File

@ -61,8 +61,7 @@ public class Configs {
@Comment("Whether the player drops the carried object when hit or not") @Comment("Whether the player drops the carried object when hit or not")
public boolean dropCarriedWhenHit=false; public boolean dropCarriedWhenHit=false;
@Config.RequiresMcRestart() @Comment("Use custom Pickup Scripts. Having this set to false, will not allow you to run scripts, but will save you some performance")
@Comment("Use custom Pickup Scripts. Having this set to false, will not allow you to run scripts, but will increase your performance")
public boolean useScripts=false; public boolean useScripts=false;
@Comment("Allows entities to be stacked using Carry On") @Comment("Allows entities to be stacked using Carry On")
@ -78,13 +77,11 @@ public class Configs {
public static class WhiteList public static class WhiteList
{ {
@Config.RequiresMcRestart()
@Comment("Entities that CAN be picked up") @Comment("Entities that CAN be picked up")
public String[] allowedEntities=new String[] public String[] allowedEntities=new String[]
{ {
}; };
@Config.RequiresMcRestart()
@Comment("Blocks that CAN be picked up") @Comment("Blocks that CAN be picked up")
public String[] allowedBlocks=new String[] public String[] allowedBlocks=new String[]
{ {
@ -93,7 +90,6 @@ public class Configs {
public static class Blacklist public static class Blacklist
{ {
@Config.RequiresMcRestart()
@Comment("Tile Entities that cannot be picked up") @Comment("Tile Entities that cannot be picked up")
public String[] forbiddenTiles = new String[] public String[] forbiddenTiles = new String[]
{ {
@ -146,19 +142,18 @@ public class Configs {
"minecolonies:*", "minecolonies:*",
}; };
@Config.RequiresMcRestart()
@Comment("Entities that cannot be picked up") @Comment("Entities that cannot be picked up")
public String[] forbiddenEntities = new String[] public String[] forbiddenEntities = new String[]
{ {
"minecraft:ender_crystal", "EnderCrystal",
"minecraft:ender_dragon", "EnderDragon",
"minecraft:ghast", "Ghast",
"minecraft:shulker", "Shulker",
"minecraft:leash_knot", "LeashKnot",
"minecraft:armor_stand", "ArmorStand",
"minecraft:item_frame", "ItemFrame",
"minecraft:painting", "Painting",
"minecraft:shulker_bullet", "ShulkerBullet",
"animania:textures/entity/pigs/hamster_tarou.png", "animania:textures/entity/pigs/hamster_tarou.png",
"animania:hamster", "animania:hamster",
"animania:ferret*", "animania:ferret*",
@ -171,7 +166,6 @@ public class Configs {
public static class ModelOverrides public static class ModelOverrides
{ {
@Config.RequiresMcRestart()
@Comment("Model Overrides based on NBT or on Meta. Advanced Users Only!") @Comment("Model Overrides based on NBT or on Meta. Advanced Users Only!")
public String[] modelOverrides = new String[] public String[] modelOverrides = new String[]
{ {
@ -240,23 +234,5 @@ public class Configs {
}; };
} }
public static class CustomPickupConditions
{
@Config.RequiresMcRestart()
@Comment("Custom Pickup Conditions for Blocks")
public String[] customPickupConditionsBlocks = new String[]
{
};
@Config.RequiresMcRestart()
@Comment("Custom Pickup Conditions for Entities")
public String[] customPickupConditionsEntities = new String[]
{
};
}
} }

View File

@ -48,7 +48,7 @@ public class ItemEntityEvents
{ {
EntityPlayer player = event.getEntityPlayer(); EntityPlayer player = event.getEntityPlayer();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)) if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(stack)))
{ {
player.getEntityData().removeTag("carrySlot"); player.getEntityData().removeTag("carrySlot");
event.setUseBlock(Result.DENY); event.setUseBlock(Result.DENY);
@ -71,10 +71,10 @@ public class ItemEntityEvents
BlockPos pos = eitem.getPosition(); BlockPos pos = eitem.getPosition();
Entity entity = ItemEntity.getEntity(stack, world); Entity entity = ItemEntity.getEntity(stack, world);
entity.setPosition(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); entity.setPosition(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5);
world.spawnEntity(entity); world.spawnEntityInWorld(entity);
ItemEntity.clearEntityData(stack); ItemEntity.clearEntityData(stack);
eitem.setEntityItemStack(ItemStack.EMPTY); eitem.setEntityItemStack(null);
} }
} }
} }
@ -92,7 +92,7 @@ public class ItemEntityEvents
Entity entity = event.getTarget(); Entity entity = event.getTarget();
BlockPos pos = entity.getPosition(); BlockPos pos = entity.getPosition();
if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player)) if (main == null && off == null && CarryOnKeybinds.isKeyPressed(player))
{ {
ItemStack stack = new ItemStack(RegistrationHandler.itemEntity); ItemStack stack = new ItemStack(RegistrationHandler.itemEntity);
@ -128,7 +128,7 @@ public class ItemEntityEvents
} }
} }
else if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main) && !CarryOnKeybinds.isKeyPressed(player) && CarryOnConfig.settings.stackableEntities) else if (main != null && main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main) && !CarryOnKeybinds.isKeyPressed(player) && CarryOnConfig.settings.stackableEntities)
{ {
Entity entityHeld = ItemEntity.getEntity(main, world); Entity entityHeld = ItemEntity.getEntity(main, world);
@ -161,20 +161,20 @@ public class ItemEntityEvents
double tempY = entity.posY; double tempY = entity.posY;
double tempZ = entity.posZ; double tempZ = entity.posZ;
entityHeld.setPosition(tempX, tempY + 2.6, tempZ); entityHeld.setPosition(tempX, tempY + 2.6, tempZ);
world.spawnEntity(entityHeld); world.spawnEntityInWorld(entityHeld);
entityHeld.startRiding(topEntity, false); entityHeld.startRiding(topEntity, false);
entityHeld.setPositionAndUpdate(tempX, tempY, tempZ); entityHeld.setPositionAndUpdate(tempX, tempY, tempZ);
} }
else else
{ {
entityHeld.setPosition(entity.posX, entity.posY, entity.posZ); entityHeld.setPosition(entity.posX, entity.posY, entity.posZ);
world.spawnEntity(entityHeld); world.spawnEntityInWorld(entityHeld);
entityHeld.startRiding(topEntity, false); entityHeld.startRiding(topEntity, false);
} }
ItemEntity.clearEntityData(main); ItemEntity.clearEntityData(main);
player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY); player.setHeldItem(EnumHand.MAIN_HAND, null);
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256)); CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
event.setCanceled(true); event.setCanceled(true);
world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_HORSE_SADDLE, SoundCategory.PLAYERS, 0.5F, 1.5F); world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_HORSE_SADDLE, SoundCategory.PLAYERS, 0.5F, 1.5F);
@ -235,9 +235,9 @@ public class ItemEntityEvents
public void onLivingUpdate(LivingUpdateEvent event) public void onLivingUpdate(LivingUpdateEvent event)
{ {
EntityLivingBase entity = event.getEntityLiving(); EntityLivingBase entity = event.getEntityLiving();
World world = entity.world; World world = entity.worldObj;
ItemStack main = entity.getHeldItemMainhand(); ItemStack main = entity.getHeldItemMainhand();
if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main)) if (main != null ? (main.getItem() == RegistrationHandler.itemEntity && ItemEntity.hasEntityData(main)) : false)
{ {
BlockPos pos = entity.getPosition(); BlockPos pos = entity.getPosition();
BlockPos below = pos.offset(EnumFacing.DOWN); BlockPos below = pos.offset(EnumFacing.DOWN);

View File

@ -55,7 +55,7 @@ public class ItemEvents
{ {
EntityPlayer player = event.getEntityPlayer(); EntityPlayer player = event.getEntityPlayer();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)) if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile && ItemTile.hasTileData(stack)))
{ {
player.getEntityData().removeTag("carrySlot"); player.getEntityData().removeTag("carrySlot");
event.setUseBlock(Result.DENY); event.setUseBlock(Result.DENY);
@ -98,7 +98,7 @@ public class ItemEvents
tile.setPos(finalPos); tile.setPos(finalPos);
} }
ItemTile.clearTileData(stack); ItemTile.clearTileData(stack);
eitem.setEntityItemStack(ItemStack.EMPTY); eitem.setEntityItemStack(null);
} }
} }
@ -113,7 +113,7 @@ public class ItemEvents
World world = player.getEntityWorld(); World world = player.getEntityWorld();
ItemStack carried = player.getHeldItemMainhand(); ItemStack carried = player.getHeldItemMainhand();
if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity) if (carried == null ? false : (carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity))
{ {
if (carried.getItem() == RegistrationHandler.itemTile) if (carried.getItem() == RegistrationHandler.itemTile)
{ {
@ -148,7 +148,7 @@ public class ItemEvents
World world = player.getEntityWorld(); World world = player.getEntityWorld();
ItemStack carried = player.getHeldItemMainhand(); ItemStack carried = player.getHeldItemMainhand();
if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity) if (carried == null ? false : (carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity))
{ {
if (carried.getItem() == RegistrationHandler.itemTile) if (carried.getItem() == RegistrationHandler.itemTile)
{ {
@ -178,8 +178,8 @@ public class ItemEvents
if (player != null && !CarryOnConfig.settings.hitWhileCarrying) if (player != null && !CarryOnConfig.settings.hitWhileCarrying)
{ {
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if(stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
event.setNewSpeed(0); event.setNewSpeed(0);
} }
} }
@ -188,7 +188,7 @@ public class ItemEvents
{ {
EntityPlayer player = event.getEntityPlayer(); EntityPlayer player = event.getEntityPlayer();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && !CarryOnConfig.settings.hitWhileCarrying && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (!CarryOnConfig.settings.hitWhileCarrying && stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
{ {
event.setCanceled(true); event.setCanceled(true);
} }
@ -201,7 +201,7 @@ public class ItemEvents
if (player != null && !CarryOnConfig.settings.hitWhileCarrying) if (player != null && !CarryOnConfig.settings.hitWhileCarrying)
{ {
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
event.setCanceled(true); event.setCanceled(true);
} }
} }
@ -215,14 +215,14 @@ public class ItemEvents
{ {
EntityPlayer player = (EntityPlayer) eliving; EntityPlayer player = (EntityPlayer) eliving;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getHeldItemMainhand();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (stack == null ? false : (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
{ {
if (!player.world.isRemote) if (!player.worldObj.isRemote)
{ {
player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY); player.setHeldItem(EnumHand.MAIN_HAND, null);
EntityItem item = new EntityItem(player.world, player.posX, player.posY, player.posZ, stack); EntityItem item = new EntityItem(player.worldObj, player.posX, player.posY, player.posZ, stack);
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(player.world.provider.getDimension(), player.posX, player.posY, player.posZ, 256)); CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(player.worldObj.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
player.world.spawnEntity(item); player.worldObj.spawnEntityInWorld(item);
} }
} }
@ -244,7 +244,7 @@ public class ItemEvents
Block block = world.getBlockState(pos).getBlock(); Block block = world.getBlockState(pos).getBlock();
IBlockState state = world.getBlockState(pos); IBlockState state = world.getBlockState(pos);
if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player)) if (main == null && off == null && CarryOnKeybinds.isKeyPressed(player))
{ {
ItemStack stack = new ItemStack(RegistrationHandler.itemTile); ItemStack stack = new ItemStack(RegistrationHandler.itemTile);
@ -288,10 +288,10 @@ public class ItemEvents
if (!tag.hasNoTags()) if (!tag.hasNoTags())
TileEntity.create(world, tag); TileEntity.create(world, tag);
player.sendMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot pick up block.")); player.addChatMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot pick up block."));
TextComponentString s = new TextComponentString(TextFormatting.GOLD + "here"); TextComponentString s = new TextComponentString(TextFormatting.GOLD + "here");
s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues")); s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues"));
player.sendMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s)); player.addChatMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s));
} }
} }
@ -351,7 +351,7 @@ public class ItemEvents
EntityPlayer original = event.getOriginal(); EntityPlayer original = event.getOriginal();
EntityPlayer player = event.getEntityPlayer(); EntityPlayer player = event.getEntityPlayer();
boolean wasDead = event.isWasDeath(); boolean wasDead = event.isWasDeath();
GameRules rules = player.world.getGameRules(); GameRules rules = player.worldObj.getGameRules();
boolean keepInv = rules.getBoolean("keepInventory"); boolean keepInv = rules.getBoolean("keepInventory");
boolean wasCarrying = player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemEntity)); boolean wasCarrying = player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemEntity));
@ -360,15 +360,15 @@ public class ItemEvents
int carrySlot = original.inventory.currentItem; int carrySlot = original.inventory.currentItem;
ItemStack stack = player.inventory.removeStackFromSlot(carrySlot); ItemStack stack = player.inventory.removeStackFromSlot(carrySlot);
World world = player.world; World world = player.worldObj;
EntityItem item = new EntityItem(world); EntityItem item = new EntityItem(world);
item.setEntityItemStack(stack); item.setEntityItemStack(stack);
BlockPos pos = original.getBedLocation(); BlockPos pos = original.getBedLocation();
if (pos == null) if (pos == null)
pos = player.getPosition(); pos = player.getPosition();
item.setPosition(pos.getX(), pos.getY(), pos.getZ()); item.setPosition(pos.getX(), pos.getY(), pos.getZ());
world.spawnEntity(item); world.spawnEntityInWorld(item);
} }
} }

View File

@ -1,125 +0,0 @@
package tschipp.carryon.common.handler;
import java.util.HashMap;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityList;
import net.minecraftforge.fml.common.Loader;
import tschipp.carryon.common.config.CarryOnConfig;
import tschipp.carryon.common.helper.InvalidConfigException;
public class CustomPickupOverrideHandler
{
public static HashMap<String, String> PICKUP_CONDITIONS = new HashMap<String, String>();
public static HashMap<String, String> PICKUP_CONDITIONS_ENTITIES = new HashMap<String, String>();
public static void initPickupOverrides()
{
if (Loader.isModLoaded("gamestages"))
{
String[] conditions = CarryOnConfig.customPickupConditions.customPickupConditionsBlocks;
for (int i = 0; i < conditions.length; i++)
{
String line = conditions[i];
if (!line.contains("(") || !line.contains(")"))
new InvalidConfigException("Invalid Condition at line " + i + ": " + line).printException();
String condition = line.substring(line.indexOf("("));
String blockname = line.replace(condition, "");
condition = condition.replace("(", "");
condition = condition.replace(")", "");
if (blockname.contains("*"))
{
String modid = blockname.replace("*", "");
for (int k = 0; k < Block.REGISTRY.getKeys().size(); k++)
{
if (Block.REGISTRY.getKeys().toArray()[k].toString().contains(modid))
{
PICKUP_CONDITIONS.put(Block.REGISTRY.getKeys().toArray()[k].toString() + ";any", condition);
}
}
}
else
{
if (!blockname.contains(";"))
blockname = blockname + ";any";
PICKUP_CONDITIONS.put(blockname, condition);
}
}
String[] entityConditions = CarryOnConfig.customPickupConditions.customPickupConditionsEntities;
for (int i = 0; i < entityConditions.length; i++)
{
String line = entityConditions[i];
if (!line.contains("(") || !line.contains(")"))
new InvalidConfigException("Invalid Condition at line " + i + ": " + line).printException();
String condition = line.substring(line.indexOf("("));
String entityname = line.replace(condition, "");
condition = condition.replace("(", "");
condition = condition.replace(")", "");
PICKUP_CONDITIONS_ENTITIES.put(entityname, condition);
}
}
}
public static boolean hasSpecialPickupConditions(IBlockState state)
{
if (!Loader.isModLoaded("gamestages"))
return false;
String block = state.getBlock().getRegistryName().toString();
String meta = "" + state.getBlock().getMetaFromState(state);
boolean absolute = PICKUP_CONDITIONS.containsKey(block + ";" + meta);
boolean any = PICKUP_CONDITIONS.containsKey(block + ";any");
return absolute || any;
}
public static String getPickupCondition(IBlockState state)
{
String block = state.getBlock().getRegistryName().toString();
String meta = "" + state.getBlock().getMetaFromState(state);
String absolute = PICKUP_CONDITIONS.get(block + ";" + meta);
String any = PICKUP_CONDITIONS.get(block + ";any");
if (absolute != null)
return absolute;
else
return any;
}
public static boolean hasSpecialPickupConditions(Entity entity)
{
if (!Loader.isModLoaded("gamestages"))
return false;
String entityname = EntityList.getKey(entity).toString();
boolean condition = PICKUP_CONDITIONS_ENTITIES.containsKey(entityname);
return condition;
}
public static String getPickupCondition(Entity entity)
{
String entityname = EntityList.getKey(entity).toString();
String condition = PICKUP_CONDITIONS_ENTITIES.get(entityname);
return condition;
}
}

View File

@ -39,9 +39,9 @@ public class ListHandler
public static boolean isForbidden(Entity entity) public static boolean isForbidden(Entity entity)
{ {
if (EntityList.getKey(entity) != null) if (EntityList.getEntityString(entity) != null)
{ {
String name = EntityList.getKey(entity).toString(); String name = EntityList.getEntityString(entity);
boolean contains = FORBIDDEN_ENTITIES.contains(name); boolean contains = FORBIDDEN_ENTITIES.contains(name);
return contains; return contains;
} }
@ -50,9 +50,9 @@ public class ListHandler
public static boolean isAllowed(Entity entity) public static boolean isAllowed(Entity entity)
{ {
if (EntityList.getKey(entity) != null) if (EntityList.getEntityString(entity) != null)
{ {
String name = EntityList.getKey(entity).toString(); String name = EntityList.getEntityString(entity).toString();
boolean contains = ALLOWED_ENTITIES.contains(name); boolean contains = ALLOWED_ENTITIES.contains(name);
return contains; return contains;
} }
@ -98,11 +98,11 @@ public class ListHandler
if (forbiddenEntity[i].contains("*")) if (forbiddenEntity[i].contains("*"))
{ {
String modid = forbiddenEntity[i].replace("*", ""); String modid = forbiddenEntity[i].replace("*", "");
for (int k = 0; k < ForgeRegistries.ENTITIES.getKeys().size(); k++) for (int k = 0; k < EntityList.getEntityNameList().size(); k++)
{ {
if (ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString().contains(modid)) if (EntityList.getEntityNameList().get(k).contains(modid))
{ {
FORBIDDEN_ENTITIES.add(ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString()); FORBIDDEN_ENTITIES.add(EntityList.getEntityNameList().get(k));
} }
} }
} }
@ -115,13 +115,13 @@ public class ListHandler
{ {
if (allowedEntities[i].contains("*")) if (allowedEntities[i].contains("*"))
{ {
String modid = allowedEntities[i].replace("*", ""); String modid=allowedEntities[i].replace("*", "");
for (int k = 0; k < ForgeRegistries.ENTITIES.getKeys().size(); k++) for (int k = 0; k < EntityList.getEntityNameList().size(); k++)
{ {
if (ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString().contains(modid)) if (EntityList.getEntityNameList().get(k).contains(modid))
{ ALLOWED_ENTITIES.add(EntityList.getEntityNameList().get(k));
ALLOWED_ENTITIES.add(ForgeRegistries.ENTITIES.getKeys().toArray()[k].toString());
}
} }
} }
ALLOWED_ENTITIES.add(allowedEntities[i]); ALLOWED_ENTITIES.add(allowedEntities[i]);

View File

@ -118,9 +118,8 @@ public class ModelOverridesHandler
if (override.contains(":")) if (override.contains(":"))
modidOverride = override.replace(override.substring(override.indexOf(":")), ""); modidOverride = override.replace(override.substring(override.indexOf(":")), "");
if (Loader.isModLoaded(modidOverride) && Loader.isModLoaded(modidToOverride) && !errored) if (!errored && (Loader.isModLoaded(modidOverride) && Loader.isModLoaded(modidToOverride)) || (modidOverride.equals("minecraft") && modidToOverride.equals("minecraft")))
{ {
int meta = StringParser.getMeta(toOverride); int meta = StringParser.getMeta(toOverride);
if (meta == 0) if (meta == 0)
toOverrideObject = StringParser.getBlock(toOverride); toOverrideObject = StringParser.getBlock(toOverride);

View File

@ -4,8 +4,6 @@ import java.util.UUID;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import net.darkhax.gamestages.capabilities.PlayerDataHandler;
import net.darkhax.gamestages.capabilities.PlayerDataHandler.IStageData;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@ -73,18 +71,8 @@ public class PickupHandler
if (!ItemTile.isLocked(pos, world)) if (!ItemTile.isLocked(pos, world))
{ {
if (CarryOnConfig.settings.pickupAllBlocks ? true : tile != null)
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(state))
{ {
IStageData stageData = PlayerDataHandler.getStageData(player);
String condition = CustomPickupOverrideHandler.getPickupCondition(state);
if (stageData.hasUnlockedStage(condition))
return true && handleProtections((EntityPlayerMP) player, world, pos, state);
}
else if (CarryOnConfig.settings.pickupAllBlocks ? true : tile != null)
{
return true && handleProtections((EntityPlayerMP) player, world, pos, state); return true && handleProtections((EntityPlayerMP) player, world, pos, state);
} }
@ -128,14 +116,6 @@ public class PickupHandler
return false; return false;
} }
} }
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(toPickUp))
{
IStageData stageData = PlayerDataHandler.getStageData(player);
String condition = CustomPickupOverrideHandler.getPickupCondition(toPickUp);
if (stageData.hasUnlockedStage(condition))
return true && handleProtections((EntityPlayerMP) player, toPickUp);
}
else else
return true && handleProtections((EntityPlayerMP) player, toPickUp); return true && handleProtections((EntityPlayerMP) player, toPickUp);
} }
@ -173,16 +153,7 @@ public class PickupHandler
if (owner != null && !owner.equals(playerID)) if (owner != null && !owner.equals(playerID))
return false; return false;
} }
return true && handleProtections((EntityPlayerMP) player, toPickUp);
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(toPickUp))
{
IStageData stageData = PlayerDataHandler.getStageData(player);
String condition = CustomPickupOverrideHandler.getPickupCondition(toPickUp);
if (stageData.hasUnlockedStage(condition))
return true && handleProtections((EntityPlayerMP) player, toPickUp);
}
else
return true && handleProtections((EntityPlayerMP) player, toPickUp);
} }
} }
} }
@ -200,12 +171,12 @@ public class PickupHandler
BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, pos, state, player); BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, pos, state, player);
MinecraftForge.EVENT_BUS.post(event); MinecraftForge.EVENT_BUS.post(event);
if(event.isCanceled()) if (event.isCanceled())
breakable = false; breakable = false;
return breakable; return breakable;
} }
private static boolean handleProtections(EntityPlayerMP player, Entity entity) private static boolean handleProtections(EntityPlayerMP player, Entity entity)
{ {
boolean canPickup = true; boolean canPickup = true;
@ -213,9 +184,9 @@ public class PickupHandler
AttackEntityEvent event = new AttackEntityEvent(player, entity); AttackEntityEvent event = new AttackEntityEvent(player, entity);
MinecraftForge.EVENT_BUS.post(event); MinecraftForge.EVENT_BUS.post(event);
if(event.isCanceled()) if (event.isCanceled())
canPickup = false; canPickup = false;
return canPickup; return canPickup;
} }

View File

@ -52,7 +52,6 @@ public class RegistrationHandler
public static void regOverrideList() public static void regOverrideList()
{ {
ModelOverridesHandler.initOverrides(); ModelOverridesHandler.initOverrides();
CustomPickupOverrideHandler.initPickupOverrides();
ListHandler.initForbiddenTiles(); ListHandler.initForbiddenTiles();
} }

View File

@ -114,7 +114,7 @@ public class StringParser
Item item = getItem(string); Item item = getItem(string);
if(item == null) if(item == null)
return ItemStack.EMPTY; return null;
ItemStack stack = new ItemStack(item, 1, getMeta(string)); ItemStack stack = new ItemStack(item, 1, getMeta(string));
NBTTagCompound tag = getTagCompound(string); NBTTagCompound tag = getTagCompound(string);

View File

@ -44,7 +44,7 @@ public class ItemEntity extends Item
{ {
if (hasEntityData(stack)) if (hasEntityData(stack))
{ {
return I18n.translateToLocal("entity."+EntityList.getTranslationName(new ResourceLocation(getEntityName(stack))) + ".name"); return I18n.translateToLocal(getEntityName(stack));
} }
return ""; return "";
@ -60,18 +60,18 @@ public class ItemEntity extends Item
return false; return false;
} }
public static boolean storeEntityData(@Nonnull Entity entity, World world, ItemStack stack) public static boolean storeEntityData(@Nonnull Entity entity, World world, @Nonnull ItemStack stack)
{ {
if (entity == null) if (entity == null)
return false; return false;
if (stack.isEmpty()) if (stack == null)
return false; return false;
NBTTagCompound entityData = new NBTTagCompound(); NBTTagCompound entityData = new NBTTagCompound();
entityData = entity.writeToNBT(entityData); entityData = entity.writeToNBT(entityData);
String name = EntityList.getKey(entity).toString(); String name = EntityList.getEntityString(entity);
NBTTagCompound tag = stack.hasTagCompound() ? stack.getTagCompound() : new NBTTagCompound(); NBTTagCompound tag = stack.hasTagCompound() ? stack.getTagCompound() : new NBTTagCompound();
if (tag.hasKey(ENTITY_DATA_KEY)) if (tag.hasKey(ENTITY_DATA_KEY))
@ -84,9 +84,8 @@ public class ItemEntity extends Item
} }
@Override @Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{ {
ItemStack stack = player.getHeldItem(hand);
Block block = world.getBlockState(pos).getBlock(); Block block = world.getBlockState(pos).getBlock();
if (hasEntityData(stack)) if (hasEntityData(stack))
@ -104,13 +103,13 @@ public class ItemEntity extends Item
if (!world.isRemote) if (!world.isRemote)
{ {
entity.setPositionAndRotation(finalPos.getX() + 0.5, finalPos.getY(), finalPos.getZ() + 0.5, 180 + player.rotationYawHead, 0.0f); entity.setPositionAndRotation(finalPos.getX() + 0.5, finalPos.getY(), finalPos.getZ() + 0.5, 180 + player.rotationYawHead, 0.0f);
world.spawnEntity(entity); world.spawnEntityInWorld(entity);
if (entity instanceof EntityLiving) if (entity instanceof EntityLiving)
{ {
((EntityLiving) entity).playLivingSound(); ((EntityLiving) entity).playLivingSound();
} }
clearEntityData(stack); clearEntityData(stack);
player.setHeldItem(hand, ItemStack.EMPTY); player.setHeldItem(hand, null);
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256)); CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
} }
player.getEntityData().removeTag("overrideKey"); player.getEntityData().removeTag("overrideKey");
@ -127,7 +126,7 @@ public class ItemEntity extends Item
if (hasEntityData(stack)) if (hasEntityData(stack))
{ {
if(getEntity(stack, world) == null) if(getEntity(stack, world) == null)
stack = ItemStack.EMPTY; stack = null;
if (entity instanceof EntityLivingBase) if (entity instanceof EntityLivingBase)
{ {
@ -140,7 +139,7 @@ public class ItemEntity extends Item
} }
else else
{ {
stack = ItemStack.EMPTY; stack = null;
} }
} }
@ -172,7 +171,7 @@ public class ItemEntity extends Item
String name = getEntityName(stack); String name = getEntityName(stack);
NBTTagCompound e = getEntityData(stack); NBTTagCompound e = getEntityData(stack);
Entity entity = EntityList.createEntityByIDFromName(new ResourceLocation(name), world); Entity entity = EntityList.createEntityByIDFromName(name, world);
if (entity != null) if (entity != null)
entity.readFromNBT(e); entity.readFromNBT(e);

View File

@ -35,7 +35,6 @@ import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import tschipp.carryon.CarryOn; import tschipp.carryon.CarryOn;
import tschipp.carryon.common.config.CarryOnConfig; import tschipp.carryon.common.config.CarryOnConfig;
import tschipp.carryon.common.handler.CustomPickupOverrideHandler;
import tschipp.carryon.common.handler.ModelOverridesHandler; import tschipp.carryon.common.handler.ModelOverridesHandler;
import tschipp.carryon.network.client.CarrySlotPacket; import tschipp.carryon.network.client.CarrySlotPacket;
@ -55,35 +54,39 @@ public class ItemTile extends Item
@Override @Override
public String getItemStackDisplayName(ItemStack stack) public String getItemStackDisplayName(ItemStack stack)
{ {
if (hasTileData(stack)) if (stack != null)
{ {
IBlockState state = getBlockState(stack); if (hasTileData(stack))
NBTTagCompound nbt = getTileData(stack);
if (ModelOverridesHandler.hasCustomOverrideModel(state, nbt))
{ {
Object override = ModelOverridesHandler.getOverrideObject(state, nbt); NBTTagCompound nbt = getTileData(stack);
if (override instanceof ItemStack) IBlockState state = getBlockState(stack);
return ((ItemStack) override).getDisplayName();
else
{
IBlockState ostate = (IBlockState) override;
ItemStack itemstack = new ItemStack(ostate.getBlock().getItemDropped(ostate, this.itemRand, 0), 1, state.getBlock().damageDropped(ostate));
return itemstack.getDisplayName();
}
}
return getItemStack(stack).getDisplayName(); if (ModelOverridesHandler.hasCustomOverrideModel(state, nbt))
{
Object override = ModelOverridesHandler.getOverrideObject(state, nbt);
if (override instanceof ItemStack)
return ((ItemStack) override).getDisplayName();
else
{
IBlockState ostate = (IBlockState) override;
ItemStack itemstack = new ItemStack(ostate.getBlock().getItemDropped(ostate, this.itemRand, 0), 1, state.getBlock().damageDropped(ostate));
return itemstack.getDisplayName();
}
}
ItemStack istack = getItemStack(stack);
if (istack != null)
return istack.getDisplayName();
}
} }
return ""; return "";
} }
@Override @Override
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) public EnumActionResult onItemUse(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{ {
Block block = world.getBlockState(pos).getBlock(); Block block = world.getBlockState(pos).getBlock();
ItemStack stack = player.getHeldItem(hand);
if (hasTileData(stack)) if (hasTileData(stack))
{ {
try try
@ -105,11 +108,11 @@ public class ItemTile extends Item
if (canPlace) if (canPlace)
{ {
if (player.canPlayerEdit(pos, facing, stack) && world.mayPlace(containedblock, pos2, false, facing, (Entity) null)) if (player.canPlayerEdit(pos, facing, stack) && world.canBlockBePlaced(containedblock, pos2, false, facing, (Entity) null, stack))
{ {
boolean set = false; boolean set = false;
Iterator<IProperty<?>> iterator = containedblock.getDefaultState().getPropertyKeys().iterator(); Iterator<IProperty<?>> iterator = containedblock.getDefaultState().getPropertyNames().iterator();
while (iterator.hasNext()) while (iterator.hasNext())
{ {
IProperty prop = iterator.next(); IProperty prop = iterator.next();
@ -140,7 +143,7 @@ public class ItemTile extends Item
} }
clearTileData(stack); clearTileData(stack);
player.playSound(containedblock.getSoundType().getPlaceSound(), 1.0f, 0.5f); player.playSound(containedblock.getSoundType().getPlaceSound(), 1.0f, 0.5f);
player.setHeldItem(hand, ItemStack.EMPTY); player.setHeldItem(hand, null);
player.getEntityData().removeTag("overrideKey"); player.getEntityData().removeTag("overrideKey");
CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256)); CarryOn.network.sendToAllAround(new CarrySlotPacket(9, player.getEntityId()), new TargetPoint(world.provider.getDimension(), player.posX, player.posY, player.posZ, 256));
return EnumActionResult.SUCCESS; return EnumActionResult.SUCCESS;
@ -163,13 +166,10 @@ public class ItemTile extends Item
if (ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(stack), ItemTile.getTileData(stack))) if (ModelOverridesHandler.hasCustomOverrideModel(ItemTile.getBlockState(stack), ItemTile.getTileData(stack)))
CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(stack), ItemTile.getTileData(stack))); CarryOn.LOGGER.info("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemTile.getBlockState(stack), ItemTile.getTileData(stack)));
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemTile.getBlockState(stack))) player.addChatMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot place block. Execute \"/carryon clear\" to remove the item"));
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemTile.getBlockState(stack)));
player.sendMessage(new TextComponentString(TextFormatting.RED + "Error detected. Cannot place block. Execute \"/carryon clear\" to remove the item"));
TextComponentString s = new TextComponentString(TextFormatting.GOLD + "here"); TextComponentString s = new TextComponentString(TextFormatting.GOLD + "here");
s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues")); s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues"));
player.sendMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s)); player.addChatMessage(new TextComponentString(TextFormatting.RED + "Please report this error ").appendSibling(s));
} }
} }
@ -194,7 +194,7 @@ public class ItemTile extends Item
} }
else else
{ {
stack = ItemStack.EMPTY; stack = null;
} }
} }
@ -210,7 +210,7 @@ public class ItemTile extends Item
public static boolean storeTileData(@Nullable TileEntity tile, World world, BlockPos pos, IBlockState state, ItemStack stack) public static boolean storeTileData(@Nullable TileEntity tile, World world, BlockPos pos, IBlockState state, ItemStack stack)
{ {
if (stack.isEmpty()) if (stack == null)
return false; return false;
NBTTagCompound chest = new NBTTagCompound(); NBTTagCompound chest = new NBTTagCompound();
@ -255,6 +255,7 @@ public class ItemTile extends Item
return null; return null;
} }
@Nullable
public static Block getBlock(ItemStack stack) public static Block getBlock(ItemStack stack)
{ {
if (stack.hasTagCompound()) if (stack.hasTagCompound())
@ -263,7 +264,7 @@ public class ItemTile extends Item
int id = tag.getInteger("stateid"); int id = tag.getInteger("stateid");
return Block.getStateById(id).getBlock(); return Block.getStateById(id).getBlock();
} }
return Blocks.AIR; return null;
} }
public static int getMeta(ItemStack stack) public static int getMeta(ItemStack stack)
@ -279,7 +280,21 @@ public class ItemTile extends Item
public static ItemStack getItemStack(ItemStack stack) public static ItemStack getItemStack(ItemStack stack)
{ {
return new ItemStack(getBlock(stack), 1, getMeta(stack)); Block block = getBlock(stack);
if (block != null)
{
Item item = Item.getItemFromBlock(block);
if (item != null)
{
ItemStack ret = new ItemStack(item, 1, getMeta(stack));
return ret;
}
return null;
}
else
return null;
} }
public static IBlockState getBlockState(ItemStack stack) public static IBlockState getBlockState(ItemStack stack)

View File

@ -2,7 +2,6 @@ package tschipp.carryon.common.scripting;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import net.darkhax.gamestages.capabilities.PlayerDataHandler;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
@ -14,7 +13,6 @@ import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.common.Loader;
import tschipp.carryon.common.config.CarryOnConfig; import tschipp.carryon.common.config.CarryOnConfig;
import tschipp.carryon.common.helper.ScriptParseHelper; import tschipp.carryon.common.helper.ScriptParseHelper;
@ -51,7 +49,7 @@ public class ScriptChecker
if (!CarryOnConfig.settings.useScripts) if (!CarryOnConfig.settings.useScripts)
return null; return null;
String name = EntityList.getKey(entity).toString(); String name = EntityList.getEntityString(entity).toString();
float height = entity.height; float height = entity.height;
float width = entity.width; float width = entity.width;
float health = entity instanceof EntityLivingBase ? ((EntityLivingBase) entity).getHealth() : 0.0f; float health = entity instanceof EntityLivingBase ? ((EntityLivingBase) entity).getHealth() : 0.0f;
@ -97,13 +95,12 @@ public class ScriptChecker
{ {
boolean achievement = ScriptParseHelper.getAchievementFromString(override.getConditionAchievement()) == null ? true : player.hasAchievement(ScriptParseHelper.getAchievementFromString(override.getConditionAchievement())); boolean achievement = ScriptParseHelper.getAchievementFromString(override.getConditionAchievement()) == null ? true : player.hasAchievement(ScriptParseHelper.getAchievementFromString(override.getConditionAchievement()));
boolean gamemode = ScriptParseHelper.matches(((EntityPlayerMP) player).interactionManager.getGameType().getID(), override.getConditionGamemode()); boolean gamemode = ScriptParseHelper.matches(((EntityPlayerMP) player).interactionManager.getGameType().getID(), override.getConditionGamemode());
boolean gamestage = Loader.isModLoaded("gamestages") ? (override.getConditionGamestage() != null ? PlayerDataHandler.getStageData(player).hasUnlockedStage(override.getConditionGamestage()) : true) : true;
boolean position = ScriptParseHelper.matches(player.getPosition(), override.getConditionPosition()); boolean position = ScriptParseHelper.matches(player.getPosition(), override.getConditionPosition());
boolean xp = ScriptParseHelper.matches(player.experienceLevel, override.getConditionXp()); boolean xp = ScriptParseHelper.matches(player.experienceLevel, override.getConditionXp());
boolean scoreboard = ScriptParseHelper.matchesScore(player, override.getConditionScoreboard()); boolean scoreboard = ScriptParseHelper.matchesScore(player, override.getConditionScoreboard());
boolean effects = ScriptParseHelper.hasEffects(player, override.getConditionEffects()); boolean effects = ScriptParseHelper.hasEffects(player, override.getConditionEffects());
return (achievement && gamemode && gamestage && position && xp && scoreboard && effects); return (achievement && gamemode && position && xp && scoreboard && effects);
} }
@Nullable @Nullable

View File

@ -115,7 +115,6 @@ public class ScriptReader
if (conditions != null) if (conditions != null)
{ {
JsonElement gamestage = conditions.get("gamestage");
JsonElement achievement = conditions.get("achievement"); JsonElement achievement = conditions.get("achievement");
JsonElement xp = conditions.get("xp"); JsonElement xp = conditions.get("xp");
JsonElement gamemode = conditions.get("gamemode"); JsonElement gamemode = conditions.get("gamemode");
@ -123,8 +122,7 @@ public class ScriptReader
JsonElement position = conditions.get("position"); JsonElement position = conditions.get("position");
JsonElement effects = conditions.get("effects"); JsonElement effects = conditions.get("effects");
if(gamestage != null)
override.setConditionGamestage(gamestage.getAsString());
if(achievement != null) if(achievement != null)
override.setConditionAchievement(achievement.getAsString()); override.setConditionAchievement(achievement.getAsString());
if(xp != null) if(xp != null)

View File

@ -21,7 +21,7 @@ public class CarrySlotPacketHandler implements IMessageHandler<CarrySlotPacket,
mainThread.addScheduledTask(new Runnable() mainThread.addScheduledTask(new Runnable()
{ {
World world = Minecraft.getMinecraft().world; World world = Minecraft.getMinecraft().theWorld;
@Override @Override
public void run() public void run()

View File

@ -18,7 +18,7 @@ public class ScriptReloadPacketHandler implements IMessageHandler<ScriptReloadPa
mainThread.addScheduledTask(new Runnable() mainThread.addScheduledTask(new Runnable()
{ {
EntityPlayerSP player = Minecraft.getMinecraft().player; EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
@Override @Override
public void run() public void run()

View File

@ -14,7 +14,7 @@ public class SyncKeybindPacketHandler implements IMessageHandler<SyncKeybindPack
@Override @Override
public IMessage onMessage(final SyncKeybindPacket message, final MessageContext ctx) public IMessage onMessage(final SyncKeybindPacket message, final MessageContext ctx)
{ {
IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.world; IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.worldObj;
mainThread.addScheduledTask(new Runnable() mainThread.addScheduledTask(new Runnable()
{ {

View File

@ -2,13 +2,13 @@
{ {
"modid" : "carryon", "modid" : "carryon",
"name" : "Carry On", "name" : "Carry On",
"version" : "1.9.1", "mcversion" : "1.11.2", "version" : "1.9.1", "mcversion" : "1.10.2",
"url" : "", "url" : "",
"credits" : "Tschipp, Purplicious_Cow, cy4n", "credits" : "Tschipp, Purplicious_Cow, cy4n",
"authorList" : ["Tschipp, Purplicious_Cow, cy4n"], "authorList" : ["Tschipp, Purplicious_Cow, cy4n"],
"description": "Carry On is a simple mod that improves game interaction by allowing players to pick up, carry, and place single block Tile Entities using only their empty hands.", "description": "Carry On is a simple mod that improves game interaction by allowing players to pick up, carry, and place single block Tile Entities using only their empty hands.",
"logoFile" : "assets/carryon/logo.png", "logoFile" : "assets/carryon/logo.png",
"updateUrl" : "https://gist.githubusercontent.com/Tschipp/dccadee7c90d7a34e6e76a35d9d6fa2e/raw/5115328bf7c35d5c5cea64bdb58becd2ca17fcac/update.json", "updateUrl" : "",
"parent" : "", "parent" : "",
"dependencies": [], "dependencies": [],
"screenshots": [] "screenshots": []