diff --git a/README.md b/README.md index fd29c9084..0ebb0c7e6 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,9 @@ One of the most common "performance" mods on 1.7.10, Optifine, achieves an incre * Entity "optimization" has a tendency to break chunkloading, this is especially noticeable with missiles which rely heavily on chunkloading to work, causing them to freeze mid-air. It's unclear what setting might fix this, and analysis of Optifine's source code (or rather, lack thereof) has not proven useful either. ### Angelica -In older versions, Angelica caused issues regarding model rendering, often times making 3D models transparent. Ever since the switch to VBOs, models work fine. Another issue was blocks with connected textures not rendering at all, but this too was fixed, meaning as of time of writing there are no major incompatibilities known with Angelica. +In older versions, Angelica caused issues regarding model rendering, often times making 3D models transparent. Ever since the switch to VBOs, models work fine. Another issue was blocks with connected textures not rendering at all, but this too was fixed, meaning as of time of writing there are no major incompatibilities known with Angelica. However there a few minor issues that persist, but those can be fixed: +* Often times when making a new world, all items appear as white squares. Somehow, scrolling though the NEI pages fixes this permanently +* Reeds will render weirdly, this is an incompatibility with the "Compact Vertex Format" feature. Disabling it will make reeds look normal ### Skybox chainloader NTM adds a few small things to the skybox using a custom skybox renderer. Minecraft can only have a single skybox renderer loaded, so setting the skybox to the NTM custom one would break compatibility with other mods' skyboxes. To mend this, NTM employs a **chainloader**. This chainloader will detect if a different skybox is loaded, save a reference to that skybox and then use NTM's skybox, which when used will also make sure to run the previous modded skybox renderer. In the event that NTM's skybox were to cause trouble, it can be disabled with the config option `1.31_enableSkyboxes`. diff --git a/changelog b/changelog index 87e814c8a..0c1d4d427 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ ## Fixed * Fixed automatic crafting table filters being broken -* Fixed missing localization for black lung death messages \ No newline at end of file +* Fixed missing localization for black lung death messages +* Fixed disconnect caused by using a filter on the autocrafter's template output slot +* Fixed sentry turret "Brown" being uncraftable \ No newline at end of file diff --git a/src/main/java/com/hbm/crafting/WeaponRecipes.java b/src/main/java/com/hbm/crafting/WeaponRecipes.java index 8f80a819a..665afe7f6 100644 --- a/src/main/java/com/hbm/crafting/WeaponRecipes.java +++ b/src/main/java/com/hbm/crafting/WeaponRecipes.java @@ -66,6 +66,9 @@ public class WeaponRecipes { CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_4, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'S', ModBlocks.steel_scaffold }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.mp_chip_5, 1), new Object[] { "P", "C", "S", 'P', ANY_RUBBER.ingot(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID), 'S', ModBlocks.steel_scaffold }); + //Turrets + CraftingManager.addRecipeAuto(new ItemStack(ModBlocks.turret_sentry, 1), new Object[] { "PPL", " MD", " SC", 'P', STEEL.plate(), 'M', ModItems.motor, 'L', ModItems.mechanism_rifle_1, 'S', ModBlocks.steel_scaffold, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'D', ModItems.crt_display }); + //Guns CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_rpg, 1), new Object[] { "SSW", " MW", 'S', STEEL.shell(), 'W', IRON.plate(), 'M', ModItems.mechanism_launcher_1 }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "SSS", " MW", 'S', STEEL.shell(), 'W', CU.plate(), 'M', ModItems.mechanism_launcher_1 }); diff --git a/src/main/java/com/hbm/particle/ParticleDebris.java b/src/main/java/com/hbm/particle/ParticleDebris.java index e9b4bb9eb..88cc8d2cb 100644 --- a/src/main/java/com/hbm/particle/ParticleDebris.java +++ b/src/main/java/com/hbm/particle/ParticleDebris.java @@ -71,7 +71,7 @@ public class ParticleDebris extends EntityFX { this.moveEntity(this.motionX, this.motionY, this.motionZ); this.particleAge++; - if(this.onGround) this.setDead(); + if(this.onGround || this.isInWeb) this.setDead(); } @Override @@ -112,7 +112,7 @@ public class ParticleDebris extends EntityFX { for(int ix = 0; ix < world.sizeX; ix++) { for(int iy = 0; iy < world.sizeY; iy++) { for(int iz = 0; iz < world.sizeZ; iz++) { - renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); + try { renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); } catch(Exception ex) { } } } } diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index c22a2a287..8762c01c0 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -63,7 +63,7 @@ public class RendererObjTester extends TileEntitySpecialRenderer { for(int ix = 0; ix < world.sizeX; ix++) { for(int iy = 0; iy < world.sizeY; iy++) { for(int iz = 0; iz < world.sizeZ; iz++) { - renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); + try { renderer.renderBlockByRenderType(world.getBlock(ix, iy, iz), ix, iy, iz); } catch(Exception ex) { } } } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java index 96e0890a4..bda6f27bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutocrafter.java @@ -20,10 +20,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -342,4 +344,15 @@ public class TileEntityMachineAutocrafter extends TileEntityMachineBase implemen public boolean hasPermission(EntityPlayer player) { return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 20; } + + @Override + public void setFilterContents(NBTTagCompound nbt) { + TileEntity tile = (TileEntity) this; + IInventory inv = (IInventory) this; + int slot = nbt.getInteger("slot"); + if(slot > 8) return; + inv.setInventorySlotContents(slot, new ItemStack(Item.getItemById(nbt.getInteger("id")), 1, nbt.getInteger("meta"))); + nextMode(slot); + tile.getWorldObj().markTileEntityChunkModified(tile.xCoord, tile.yCoord, tile.zCoord, tile); + } }