diff --git a/block/AEBaseBlock.java b/block/AEBaseBlock.java index 49b2b3418..cca56d426 100644 --- a/block/AEBaseBlock.java +++ b/block/AEBaseBlock.java @@ -142,7 +142,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature public void registerNoIcons() { BlockRenderInfo info = getRendererInstance(); - FlipableIcon i = new FlipableIcon( new MissingIcon() ); + FlipableIcon i = new FlipableIcon( new MissingIcon( this ) ); info.updateIcons( i, i, i, i, i, i ); } diff --git a/block/storage/BlockSkyChest.java b/block/storage/BlockSkyChest.java index 5402eacef..b8fd13b0c 100644 --- a/block/storage/BlockSkyChest.java +++ b/block/storage/BlockSkyChest.java @@ -33,7 +33,7 @@ public class BlockSkyChest extends AEBaseBlock implements ICustomCollision public BlockSkyChest() { super( BlockSkyChest.class, Material.rock ); - setfeature( EnumSet.of( AEFeature.Core ) ); + setfeature( EnumSet.of( AEFeature.Core, AEFeature.SkyStoneChests ) ); setTileEntiy( TileSkyChest.class ); isOpaque = isFullSize = false; lightOpacity = 0; diff --git a/client/texture/MissingIcon.java b/client/texture/MissingIcon.java index 69aab8c8d..2cf42f188 100644 --- a/client/texture/MissingIcon.java +++ b/client/texture/MissingIcon.java @@ -1,62 +1,80 @@ package appeng.client.texture; +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.IIcon; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class MissingIcon implements IIcon { + boolean isBlock; + + public MissingIcon(Object forWhat) { + isBlock = forWhat instanceof Block; + } + + @SideOnly(Side.CLIENT) + public IIcon getMissing() + { + return ((TextureMap) Minecraft.getMinecraft().getTextureManager() + .getTexture( isBlock ? TextureMap.locationBlocksTexture : TextureMap.locationItemsTexture )).getAtlasSprite( "missingno" ); + } + @Override public int getIconWidth() { - return ExtraTextures.getMissing().getIconWidth(); + return getMissing().getIconWidth(); } @Override public int getIconHeight() { - return ExtraTextures.getMissing().getIconHeight(); + return getMissing().getIconHeight(); } @Override public float getMinU() { - return ExtraTextures.getMissing().getMinU(); + return getMissing().getMinU(); } @Override public float getMaxU() { - return ExtraTextures.getMissing().getMaxU(); + return getMissing().getMaxU(); } @Override public float getInterpolatedU(double var1) { - return ExtraTextures.getMissing().getInterpolatedU( var1 ); + return getMissing().getInterpolatedU( var1 ); } @Override public float getMinV() { - return ExtraTextures.getMissing().getMinV(); + return getMissing().getMinV(); } @Override public float getMaxV() { - return ExtraTextures.getMissing().getMaxV(); + return getMissing().getMaxV(); } @Override public float getInterpolatedV(double var1) { - return ExtraTextures.getMissing().getInterpolatedV( var1 ); + return getMissing().getInterpolatedV( var1 ); } @Override public String getIconName() { - return ExtraTextures.getMissing().getIconName(); + return getMissing().getIconName(); } } diff --git a/container/slot/SlotRestrictedInput.java b/container/slot/SlotRestrictedInput.java index e5ba870ca..f0e425e03 100644 --- a/container/slot/SlotRestrictedInput.java +++ b/container/slot/SlotRestrictedInput.java @@ -17,7 +17,7 @@ import appeng.api.implementations.items.ISpatialStorageCell; import appeng.api.implementations.items.IStorageComponent; import appeng.api.implementations.items.IUpgradeModule; import appeng.api.storage.ICellWorkbenchItem; -import appeng.recipes.handlers.Inscriber; +import appeng.recipes.handlers.Inscribe; import appeng.util.Platform; public class SlotRestrictedInput extends AppEngSlot @@ -140,7 +140,7 @@ public class SlotRestrictedInput extends AppEngSlot case INSCRIBER_PLATE: - for (ItemStack is : Inscriber.plates) + for (ItemStack is : Inscribe.plates) if ( Platform.isSameItemPrecise( is, i ) ) return true; @@ -148,7 +148,7 @@ public class SlotRestrictedInput extends AppEngSlot case INSCRIBER_INPUT: - for (ItemStack is : Inscriber.inputs) + for (ItemStack is : Inscribe.inputs) if ( Platform.isSameItemPrecise( is, i ) ) return true; diff --git a/core/Registration.java b/core/Registration.java index 0771f89dd..bb98ae62f 100644 --- a/core/Registration.java +++ b/core/Registration.java @@ -128,7 +128,7 @@ import appeng.recipes.RecipeHandler; import appeng.recipes.game.ShapedRecipe; import appeng.recipes.game.ShapelessRecipe; import appeng.recipes.handlers.Grind; -import appeng.recipes.handlers.Inscriber; +import appeng.recipes.handlers.Inscribe; import appeng.recipes.handlers.Macerator; import appeng.recipes.handlers.Pulverizer; import appeng.recipes.handlers.Shaped; @@ -178,7 +178,7 @@ public class Registration recipeRegistery.addNewCraftHandler( "macerator", Macerator.class ); recipeRegistery.addNewCraftHandler( "smelt", Smelt.class ); - recipeRegistery.addNewCraftHandler( "inscriber", Inscriber.class ); + recipeRegistery.addNewCraftHandler( "inscribe", Inscribe.class ); recipeRegistery.addNewCraftHandler( "shaped", Shaped.class ); recipeRegistery.addNewCraftHandler( "shapeless", Shapeless.class ); diff --git a/core/features/AEFeature.java b/core/features/AEFeature.java index a4c0432a6..9559698be 100644 --- a/core/features/AEFeature.java +++ b/core/features/AEFeature.java @@ -8,7 +8,7 @@ public enum AEFeature CertusQuartzWorldGen("World"), MeteoriteWorldGen("World"), - DecorativeLights("World"), DecorativeQuartzBlocks("World"), + DecorativeLights("World"), DecorativeQuartzBlocks("World"), SkyStoneChests("World"), GrindStone("World"), Flour("World"), Inscriber("World"), @@ -48,7 +48,7 @@ public enum AEFeature DuplicateItems("Misc", false), Profiler("Services", false), VersionChecker("Services"), Debug("Misc", false), Creative("Misc"), - Logging("Misc"), IntegrationLogging("Misc", false), CustomRecipes("Crafting", false), WebsiteRecipes("Misc",false), + Logging("Misc"), IntegrationLogging("Misc", false), CustomRecipes("Crafting", false), WebsiteRecipes("Misc", false), inWorldSingularity("Crafting"), inWorldFluix("Crafting"), inWorldPurification("Crafting"); diff --git a/core/features/AEFeatureHandler.java b/core/features/AEFeatureHandler.java index 10465ce00..f7f915c8f 100644 --- a/core/features/AEFeatureHandler.java +++ b/core/features/AEFeatureHandler.java @@ -9,8 +9,8 @@ import net.minecraft.tileentity.TileEntity; import appeng.api.util.AEItemDefinition; import appeng.block.AEBaseBlock; import appeng.block.AEBaseItemBlock; -import appeng.core.CommonHelper; import appeng.core.AEConfig; +import appeng.core.CommonHelper; import appeng.core.CreativeTab; import appeng.core.CreativeTabFacade; import appeng.items.parts.ItemFacade; @@ -141,6 +141,8 @@ public class AEFeatureHandler implements AEItemDefinition @Override public Item item() { + if ( ItemData == null && BlockData != null ) + return Item.getItemFromBlock( BlockData ); return ItemData; } diff --git a/core/sync/network/NetworkHandler.java b/core/sync/network/NetworkHandler.java index 0aaf2a933..c4be1b6e7 100644 --- a/core/sync/network/NetworkHandler.java +++ b/core/sync/network/NetworkHandler.java @@ -9,11 +9,8 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; import cpw.mods.fml.common.network.FMLEventChannel; import cpw.mods.fml.common.network.FMLNetworkEvent.ClientCustomPacketEvent; -import cpw.mods.fml.common.network.FMLNetworkEvent.CustomNetworkEvent; import cpw.mods.fml.common.network.FMLNetworkEvent.ServerCustomPacketEvent; -import cpw.mods.fml.common.network.NetworkHandshakeEstablished; import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.relauncher.Side; public class NetworkHandler { @@ -59,21 +56,6 @@ public class NetworkHandler } } - @SubscribeEvent - public void newConection(CustomNetworkEvent cctse) - { - if ( cctse.wrappedEvent instanceof NetworkHandshakeEstablished ) - { - NetworkHandshakeEstablished nhe = (NetworkHandshakeEstablished) cctse.wrappedEvent; - if ( nhe.side == Side.SERVER && nhe.netHandler instanceof NetHandlerPlayServer ) - { - NetHandlerPlayServer srv = (NetHandlerPlayServer) nhe.netHandler; - // WorldSettings.getInstance().sendToPlayer( srv.playerEntity ); - - } - } - } - @SubscribeEvent public void newConection(PlayerLoggedInEvent loginEvent) { diff --git a/debug/ToolEraser.java b/debug/ToolEraser.java index 18ab2d39a..c6e5e850f 100644 --- a/debug/ToolEraser.java +++ b/debug/ToolEraser.java @@ -5,10 +5,12 @@ import java.util.LinkedList; import java.util.List; import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import appeng.api.util.WorldCoord; +import appeng.client.texture.MissingIcon; import appeng.core.AELog; import appeng.core.features.AEFeature; import appeng.items.AEBaseItem; @@ -72,4 +74,10 @@ public class ToolEraser extends AEBaseItem next.add( new WorldCoord( i, y, z ) ); } + @Override + public void registerIcons(IIconRegister par1IconRegister) + { + itemIcon = new MissingIcon( this ); + } + } diff --git a/debug/ToolMeteoritePlacer.java b/debug/ToolMeteoritePlacer.java index 2e9fc8cd7..606d015d2 100644 --- a/debug/ToolMeteoritePlacer.java +++ b/debug/ToolMeteoritePlacer.java @@ -2,10 +2,12 @@ package appeng.debug; import java.util.EnumSet; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; +import appeng.client.texture.MissingIcon; import appeng.core.features.AEFeature; import appeng.helpers.MeteoritePlacer; import appeng.items.AEBaseItem; @@ -34,4 +36,10 @@ public class ToolMeteoritePlacer extends AEBaseItem return true; } + @Override + public void registerIcons(IIconRegister par1IconRegister) + { + itemIcon = new MissingIcon( this ); + } + } diff --git a/recipes/RecipeHandler.java b/recipes/RecipeHandler.java index 326091060..e55879559 100644 --- a/recipes/RecipeHandler.java +++ b/recipes/RecipeHandler.java @@ -196,14 +196,38 @@ public class RecipeHandler implements IRecipeHandler UniqueIdentifier id = GameRegistry.findUniqueIdentifierFor( is.getItem() ); String realName = id.modId + ":" + id.name; - AELog.info( realName ); - - if ( is.getItem() instanceof ItemMaterial ) - realName += ":" + ((ItemMaterial) is.getItem()).getTypeByStack( is ).name(); + if ( is.getItem() == AEApi.instance().blocks().blockSkyStone.item() ) + { + switch (is.getItemDamage()) + { + case 1: + realName += ".Block"; + break; + case 2: + realName += ".Brick"; + break; + case 3: + realName += ".SmallBrick"; + break; + default: + } + } + else if ( is.getItem() == AEApi.instance().blocks().blockSkyChest.item() ) + { + switch (is.getItemDamage()) + { + case 1: + realName += ".Block"; + break; + default: + } + } + else if ( is.getItem() instanceof ItemMaterial ) + realName += "." + ((ItemMaterial) is.getItem()).getTypeByStack( is ).name(); else if ( is.getItem() instanceof ItemPart ) - realName += ":" + ((ItemPart) is.getItem()).getTypeByStack( is ).name(); + realName += "." + ((ItemPart) is.getItem()).getTypeByStack( is ).name(); else if ( is.getItemDamage() > 0 ) - realName += ":" + is.getItemDamage(); + realName += "." + is.getItemDamage(); return realName; diff --git a/recipes/handlers/Inscriber.java b/recipes/handlers/Inscribe.java similarity index 96% rename from recipes/handlers/Inscriber.java rename to recipes/handlers/Inscribe.java index ee61d0297..195ff213f 100644 --- a/recipes/handlers/Inscriber.java +++ b/recipes/handlers/Inscribe.java @@ -12,7 +12,7 @@ import appeng.api.recipes.IIngredient; import appeng.recipes.RecipeHandler; import appeng.util.Platform; -public class Inscriber implements ICraftHandler, IWebsiteSeralizer +public class Inscribe implements ICraftHandler, IWebsiteSeralizer { public static HashSet plates = new HashSet(); diff --git a/recipes/handlers/Shaped.java b/recipes/handlers/Shaped.java index b3029b557..8cfe1d933 100644 --- a/recipes/handlers/Shaped.java +++ b/recipes/handlers/Shaped.java @@ -91,27 +91,29 @@ public class Shaped implements ICraftHandler, IWebsiteSeralizer } @Override - public boolean canCraft(ItemStack reqOutput) throws RegistrationError, MissingIngredientError { - return Platform.isSameItemPrecise( output.getItemStack(),reqOutput ); + public boolean canCraft(ItemStack reqOutput) throws RegistrationError, MissingIngredientError + { + return Platform.isSameItemPrecise( output.getItemStack(), reqOutput ); } @Override - public String getPattern( RecipeHandler h ) { - String o = "shaped "+output.getQty()+"\n"; + public String getPattern(RecipeHandler h) + { + String o = "shaped " + output.getQty() + " " + cols + "x" + rows + "\n"; + + o += h.getName( output ) + "\n"; + + for (int y = 0; y < rows; y++) + for (int x = 0; x < cols; x++) + { + IIngredient i = inputs.get( y ).get( x ); + + if ( i.isAir() ) + o += "air" + (x + 1 == cols ? "\n" : " "); + else + o += h.getName( i ) + (x + 1 == cols ? "\n" : " "); + } - o += h.getName(output)+"\n"; - - for ( int y = 0; y < rows; y++ ) - for ( int x= 0; x< cols; x++ ) - { - IIngredient i = inputs.get(y).get(x); - if ( i.isAir() ) - o += "air"+( x +1 == cols ? "\n" : " " ); - else - o += h.getName(i)+( x +1 == cols ? "\n" : " " ); - } - return o.trim(); } - } diff --git a/recipes/handlers/Smelt.java b/recipes/handlers/Smelt.java index 488f73938..bcd1cf95b 100644 --- a/recipes/handlers/Smelt.java +++ b/recipes/handlers/Smelt.java @@ -56,7 +56,7 @@ public class Smelt implements ICraftHandler, IWebsiteSeralizer @Override public String getPattern( RecipeHandler h ) { return "smelt "+out.getQty()+"\n"+ - h.getName(in)+"\n"+ - h.getName(out); + h.getName(out)+"\n"+ + h.getName(in); } } diff --git a/tile/AEBaseTile.java b/tile/AEBaseTile.java index 7ed55c075..7404108eb 100644 --- a/tile/AEBaseTile.java +++ b/tile/AEBaseTile.java @@ -282,6 +282,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile renderFragment = renderFragment | 1; else { + // TODO: Optimize Network Load if ( worldObj != null ) worldObj.markBlockForUpdate( xCoord, yCoord, zCoord ); } diff --git a/tile/misc/TileInscriber.java b/tile/misc/TileInscriber.java index b20c6e68f..9b803e57d 100644 --- a/tile/misc/TileInscriber.java +++ b/tile/misc/TileInscriber.java @@ -10,7 +10,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.util.AECableType; -import appeng.recipes.handlers.Inscriber; +import appeng.recipes.handlers.Inscribe; import appeng.tile.events.AETileEventHandler; import appeng.tile.events.TileEventType; import appeng.tile.grid.AENetworkPowerTile; @@ -145,14 +145,14 @@ public class TileInscriber extends AENetworkPowerTile { if ( i == 0 || i == 1 ) { - for (ItemStack s : Inscriber.plates) + for (ItemStack s : Inscribe.plates) if ( Platform.isSameItemPrecise( s, itemstack ) ) return true; } if ( i == 2 ) { - for (ItemStack s : Inscriber.inputs) + for (ItemStack s : Inscribe.inputs) if ( Platform.isSameItemPrecise( s, itemstack ) ) return true; }