From 49fcc7f510a929b5b969ccf5db6a3d309c479852 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sat, 8 Mar 2014 21:35:53 -0600 Subject: [PATCH] Renamed Inscriber Recipe Type to Inscribe. Missing Icon now supports Items. Fixed Missing Icons for debug Items. SkyStone Chests can now be disabled. More work on Website Recipes. Removed Unused method in Network Handler. --- block/AEBaseBlock.java | 2 +- block/storage/BlockSkyChest.java | 2 +- client/texture/MissingIcon.java | 36 ++++++++++++++----- container/slot/SlotRestrictedInput.java | 6 ++-- core/Registration.java | 4 +-- core/features/AEFeature.java | 4 +-- core/features/AEFeatureHandler.java | 4 ++- core/sync/network/NetworkHandler.java | 18 ---------- debug/ToolEraser.java | 8 +++++ debug/ToolMeteoritePlacer.java | 8 +++++ recipes/RecipeHandler.java | 36 +++++++++++++++---- .../{Inscriber.java => Inscribe.java} | 2 +- recipes/handlers/Shaped.java | 36 ++++++++++--------- recipes/handlers/Smelt.java | 4 +-- tile/AEBaseTile.java | 1 + tile/misc/TileInscriber.java | 6 ++-- 16 files changed, 111 insertions(+), 66 deletions(-) rename recipes/handlers/{Inscriber.java => Inscribe.java} (96%) diff --git a/block/AEBaseBlock.java b/block/AEBaseBlock.java index 49b2b341..cca56d42 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 5402eace..b8fd13b0 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 69aab8c8..2cf42f18 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 e5ba870c..f0e425e0 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 0771f89d..bb98ae62 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 a4c0432a..9559698b 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 10465ce0..f7f915c8 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 0aaf2a93..c4be1b6e 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 18ab2d39..c6e5e850 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 2e9fc8cd..606d015d 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 32609106..e5587955 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 ee61d029..195ff213 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 b3029b55..8cfe1d93 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 488f7393..bcd1cf95 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 7ed55c07..7404108e 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 b20c6e68..9b803e57 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; }