From 0080b1a69b6066f02bb8ae35f7ac9b0dacb67efd Mon Sep 17 00:00:00 2001 From: Dragon2488 Date: Thu, 15 Sep 2016 21:24:35 +0700 Subject: [PATCH] Fixed run on dedicated server. --- src/main/java/gregtech/GT_Mod.java | 40 +----- src/main/java/gregtech/api/GregTech_API.java | 126 +----------------- .../java/gregtech/api/enums/Textures.java | 18 +++ .../api/interfaces/IIconContainer.java | 4 + .../gregtech/api/interfaces/ITexture.java | 3 + .../api/items/GT_EnergyArmor_Item.java | 2 +- .../gregtech/api/items/GT_Generic_Item.java | 8 +- .../api/items/GT_MetaGenerated_Item.java | 36 ++--- .../api/items/GT_MetaGenerated_Item_X32.java | 5 +- .../api/items/GT_MetaGenerated_Tool.java | 13 +- .../gregtech/api/net/GT_PacketHandler.java | 3 +- .../api/objects/GT_CopiedBlockTexture.java | 4 + .../gregtech/api/objects/GT_MultiTexture.java | 3 + .../api/objects/GT_RenderedTexture.java | 3 + .../gregtech/api/objects/GT_SidedTexture.java | 3 + .../gregtech/api/util/GT_LanguageManager.java | 59 ++++---- src/main/java/gregtech/common/GT_Client.java | 50 ++----- .../common/blocks/GT_Block_Casings1.java | 23 ++-- .../common/blocks/GT_Block_Casings2.java | 3 + .../common/blocks/GT_Block_Casings3.java | 3 + .../common/blocks/GT_Block_Casings4.java | 2 + .../blocks/GT_Block_Casings_Abstract.java | 5 - .../common/blocks/GT_Block_Concretes.java | 3 + .../common/blocks/GT_Block_Granites.java | 3 + .../common/blocks/GT_Block_Machines.java | 7 - .../common/blocks/GT_Block_Metal.java | 3 + .../common/blocks/GT_Block_Ores_Abstract.java | 4 + .../common/blocks/GT_Block_Reinforced.java | 1 + .../common/blocks/GT_Block_Stones.java | 3 + .../blocks/GT_Block_Stones_Abstract.java | 1 + .../common/blocks/GT_Item_Machines.java | 9 +- .../gregtech/common/blocks/GT_Item_Ores.java | 4 +- .../common/items/GT_FluidDisplayItem.java | 17 ++- .../java/gregtech/common/items/ItemComb.java | 6 +- .../common/items/armor/ModularArmor_Item.java | 2 + .../common/render/GT_CapeRenderer.java | 7 +- .../render/GT_Renderer_Entity_Arrow.java | 3 + .../common/render/IColorMultiplier.java | 12 ++ .../gregtech/common/render/IIconRegister.java | 3 + .../render/newblocks/BlockRenderer.java | 3 + .../common/render/newblocks/RenderUtil.java | 3 + .../newitems/GT_IIconProvider_Item_Model.java | 22 ++- .../newitems/IItemIconContainerProvider.java | 3 + .../render/newitems/IItemIconProvider.java | 4 +- 44 files changed, 228 insertions(+), 311 deletions(-) create mode 100644 src/main/java/gregtech/common/render/IColorMultiplier.java diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 4c13b5d9..19d875db 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -58,42 +58,23 @@ import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.util.*; -//import forestry.factory.recipes.ISqueezerRecipe; -//import forestry.factory.tiles.TileCentrifuge; -//import forestry.factory.tiles.TileSqueezer; - - -@Mod(modid = "gregtech", name = "GregTech", version = "MC1710", useMetadata = false, dependencies = "required-after:IC2; after:Forestry; after:PFAAGeologica; after:Thaumcraft; after:Railcraft; after:appliedenergistics2; after:ThermalExpansion; after:TwilightForest; after:harvestcraft; after:magicalcrops; after:BuildCraft|Transport; after:BuildCraft|Silicon; after:BuildCraft|Factory; after:BuildCraft|Energy; after:BuildCraft|Core; after:BuildCraft|Builders; after:GalacticraftCore; after:GalacticraftMars; after:GalacticraftPlanets; after:ThermalExpansion|Transport; after:ThermalExpansion|Energy; after:ThermalExpansion|Factory; after:RedPowerCore; after:RedPowerBase; after:RedPowerMachine; after:RedPowerCompat; after:RedPowerWiring; after:RedPowerLogic; after:RedPowerLighting; after:RedPowerWorld; after:RedPowerControl; after:UndergroundBiomes;") +@Mod(modid = "gregtech", name = "GregTech", version = "MC1.10.2", useMetadata = false, dependencies = "required-after:IC2; after:Forestry; after:PFAAGeologica; after:Thaumcraft; after:Railcraft; after:appliedenergistics2; after:ThermalExpansion; after:TwilightForest; after:harvestcraft; after:magicalcrops; after:BuildCraft|Transport; after:BuildCraft|Silicon; after:BuildCraft|Factory; after:BuildCraft|Energy; after:BuildCraft|Core; after:BuildCraft|Builders; after:GalacticraftCore; after:GalacticraftMars; after:GalacticraftPlanets; after:ThermalExpansion|Transport; after:ThermalExpansion|Energy; after:ThermalExpansion|Factory; after:RedPowerCore; after:RedPowerBase; after:RedPowerMachine; after:RedPowerCompat; after:RedPowerWiring; after:RedPowerLogic; after:RedPowerLighting; after:RedPowerWorld; after:RedPowerControl; after:UndergroundBiomes;") public class GT_Mod implements IGT_Mod { - public static final int VERSION = 509; - public static final int REQUIRED_IC2 = 624; @Mod.Instance("gregtech") public static GT_Mod instance; + @SidedProxy(modId = "gregtech", clientSide = "gregtech.common.GT_Client", serverSide = "gregtech.common.GT_Server") public static GT_Proxy gregtechproxy; - public static int MAX_IC2 = Integer.MAX_VALUE; //2147483647; + public static GT_Achievements achievements; - static { - if ((509 != GregTech_API.VERSION) || (509 != GT_ModHandler.VERSION) || (509 != GT_OreDictUnificator.VERSION) || (509 != GT_Recipe.VERSION) || (509 != GT_Utility.VERSION) || (509 != GT_RecipeRegistrator.VERSION) || (509 != Element.VERSION) || (509 != Materials.VERSION) || (509 != OrePrefixes.VERSION)) { - throw new GT_ItsNotMyFaultException("One of your Mods included GregTech-API Files inside it's download, mention this to the Mod Author, who does this bad thing, and tell him/her to use reflection. I have added a Version check, to prevent Authors from breaking my Mod that way."); + @Mod.EventHandler + public void onPreLoad(FMLPreInitializationEvent aEvent) { + if (GregTech_API.sPreloadStarted) { + return; } - } - public GT_Mod() { - try { - Class.forName("ic2.core.IC2").getField("enableOreDictCircuit").set(null, Boolean.valueOf(true)); - } catch (Throwable e) { - } - try { - Class.forName("ic2.core.IC2").getField("enableCraftingBucket").set(null, Boolean.valueOf(false)); - } catch (Throwable e) { - } - try { - Class.forName("ic2.core.IC2").getField("enableEnergyInStorageBlockItems").set(null, Boolean.valueOf(false)); - } catch (Throwable e) { - } GT_Values.GT = this; GT_Values.DW = new GT_DummyWorld(); GT_Values.NW = new GT_PacketHandler(); @@ -101,13 +82,6 @@ public class GT_Mod implements IGT_Mod { Textures.BlockIcons.VOID.name(); Textures.ItemIcons.VOID.name(); - } - - @Mod.EventHandler - public void onPreLoad(FMLPreInitializationEvent aEvent) { - if (GregTech_API.sPreloadStarted) { - return; - } GT_Log.out.println("GT_Mod: Replacing IC2 recipes managers"); try { diff --git a/src/main/java/gregtech/api/GregTech_API.java b/src/main/java/gregtech/api/GregTech_API.java index a96ab3f3..3bb4a04d 100644 --- a/src/main/java/gregtech/api/GregTech_API.java +++ b/src/main/java/gregtech/api/GregTech_API.java @@ -322,134 +322,16 @@ public class GregTech_API { */ public static Item constructCoolantCellItem(String aUnlocalized, String aEnglish, int aMaxStore) { try { - return new GT_CoolantCellIC_Item(aUnlocalized, aEnglish, aMaxStore); -// return (Item)Class.forName("gregtech.api.items.GT_CoolantCellIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxStore); + return (Item) Class.forName("gregtech.api.items.GT_CoolantCellIC_Item").getConstructors()[0] + .newInstance(aUnlocalized, aEnglish, aMaxStore); } catch (Throwable e) {/*Do nothing*/} try { - return new GT_CoolantCell_Item(aUnlocalized, aEnglish, aMaxStore); -// return (Item)Class.forName("gregtech.api.items.GT_CoolantCell_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxStore); + return (Item) Class.forName("gregtech.api.items.GT_CoolantCell_Item").getConstructors()[0] + .newInstance(aUnlocalized, aEnglish, aMaxStore); } catch (Throwable e) {/*Do nothing*/} return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); } - /** - * Creates a new Energy Armor Item - */ - public static Item constructElectricArmorItem(String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aDamageEnergyCost, int aSpecials, double aArmorAbsorbtionPercentage, boolean aChargeProvider, int aType, int aArmorIndex) { - try { - return (Item) Class.forName("gregtechmod.api.items.GT_EnergyArmorIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aDamageEnergyCost, aSpecials, aArmorAbsorbtionPercentage, aChargeProvider, aType, aArmorIndex); - } catch (Throwable e) {/*Do nothing*/} - try { - return (Item) Class.forName("gregtechmod.api.items.GT_EnergyArmor_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aDamageEnergyCost, aSpecials, aArmorAbsorbtionPercentage, aChargeProvider, aType, aArmorIndex); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); - } - - /** - * Creates a new Energy Battery Item - */ - public static Item constructElectricEnergyStorageItem(String aUnlocalized, String aEnglish, int aCharge, int aTransfer, int aTier, int aEmptyID, int aFullID) { - try { - return (Item) Class.forName("gregtechmod.api.items.GT_EnergyStoreIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aEmptyID, aFullID); - } catch (Throwable e) {/*Do nothing*/} - try { - return (Item) Class.forName("gregtechmod.api.items.GT_EnergyStore_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aCharge, aTransfer, aTier, aEmptyID, aFullID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Generic_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", false); - } - - /** - * Creates a new Hard Hammer Item - */ - public static GT_Tool_Item constructHardHammerItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_HardHammer_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new Crowbar Item - */ - public static GT_Tool_Item constructCrowbarItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_CrowbarRC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); - } catch (Throwable e) {/*Do nothing*/} - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_Crowbar_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new Wrench Item - */ - public static GT_Tool_Item constructWrenchItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_Wrench_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Screwdriver Item - */ - public static GT_Tool_Item constructElectricScrewdriverItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_ScrewdriverIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Wrench Item - */ - public static GT_Tool_Item constructElectricWrenchItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_WrenchIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Saw Item - */ - public static GT_Tool_Item constructElectricSawItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_SawIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Drill Item - */ - public static GT_Tool_Item constructElectricDrillItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aToolQuality, float aToolStrength, int aEnergyConsumptionPerBlockBreak, int aDisChargedGTID) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_DrillIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aToolQuality, aToolStrength, aEnergyConsumptionPerBlockBreak, aDisChargedGTID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new electric Soldering Tool - */ - public static GT_Tool_Item constructElectricSolderingToolItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aEntityDamage, int aDisChargedGTID) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_SolderingToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aEntityDamage, aDisChargedGTID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, aEntityDamage, false); - } - - /** - * Creates a new empty electric Tool - */ - public static GT_Tool_Item constructEmptyElectricToolItem(String aUnlocalized, String aEnglish, int aMaxDamage, int aChargedGTID) { - try { - return (GT_Tool_Item) Class.forName("gregtechmod.api.items.GT_EmptyToolIC_Item").getConstructors()[0].newInstance(aUnlocalized, aEnglish, aMaxDamage, aChargedGTID); - } catch (Throwable e) {/*Do nothing*/} - return new gregtech.api.items.GT_Tool_Item(aUnlocalized, aEnglish, "Doesn't work as intended, this is a Bug", aMaxDamage, 0, false); - } /** * This gives you a new BaseMetaTileEntity. As some Interfaces are not always loaded (Buildcraft, Univeral Electricity) I have to use Invocation at the Constructor of the BaseMetaTileEntity diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 725438c5..29723628 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -8,6 +8,8 @@ import gregtech.api.objects.GT_SidedTexture; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK; import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; @@ -561,7 +563,10 @@ public class Textures { } public static class CustomIcon implements IIconContainer, Runnable { + + @SideOnly(Side.CLIENT) protected TextureAtlasSprite mIcon; + protected String mIconName; public CustomIcon(String aIconName) { @@ -570,16 +575,19 @@ public class Textures { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon() { return mIcon; } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getOverlayIcon() { return null; } @Override + @SideOnly(Side.CLIENT) public void run() { mIcon = GregTech_API.sBlockIcons.registerSprite(new ResourceLocation(RES_PATH_BLOCK + mIconName)); } @@ -617,6 +625,7 @@ public class Textures { public static final ITexture[] ERROR_RENDERING = new ITexture[]{new GT_RenderedTexture(RENDERING_ERROR)}; + @SideOnly(Side.CLIENT) protected TextureAtlasSprite mIcon, mOverlay; private ItemIcons() { @@ -624,23 +633,29 @@ public class Textures { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon() { return mIcon; } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getOverlayIcon() { return mOverlay; } @Override + @SideOnly(Side.CLIENT) public void run() { mIcon = GregTech_API.sBlockIcons.registerSprite(new ResourceLocation(RES_PATH_ITEM + "iconsets/" + this)); mOverlay = GregTech_API.sBlockIcons.registerSprite(new ResourceLocation(RES_PATH_ITEM + "iconsets/" + this + "_OVERLAY")); } public static class CustomIcon implements IIconContainer, Runnable { + + @SideOnly(Side.CLIENT) protected TextureAtlasSprite mIcon, mOverlay; + protected String mIconName; public CustomIcon(String aIconName) { @@ -649,16 +664,19 @@ public class Textures { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon() { return mIcon; } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getOverlayIcon() { return mOverlay; } @Override + @SideOnly(Side.CLIENT) public void run() { System.out.println("Register icon " + mIconName); mIcon = GregTech_API.sBlockIcons.registerSprite(new ResourceLocation(RES_PATH_ITEM + mIconName)); diff --git a/src/main/java/gregtech/api/interfaces/IIconContainer.java b/src/main/java/gregtech/api/interfaces/IIconContainer.java index 25b5e72a..969ac96d 100644 --- a/src/main/java/gregtech/api/interfaces/IIconContainer.java +++ b/src/main/java/gregtech/api/interfaces/IIconContainer.java @@ -2,16 +2,20 @@ package gregtech.api.interfaces; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public interface IIconContainer { /** * @return A regular Icon. */ + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(); /** * @return Icon of the Overlay (or null if there is no Icon) */ + @SideOnly(Side.CLIENT) public TextureAtlasSprite getOverlayIcon(); } diff --git a/src/main/java/gregtech/api/interfaces/ITexture.java b/src/main/java/gregtech/api/interfaces/ITexture.java index 48833389..2ee745ba 100644 --- a/src/main/java/gregtech/api/interfaces/ITexture.java +++ b/src/main/java/gregtech/api/interfaces/ITexture.java @@ -4,11 +4,14 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.util.List; public interface ITexture { + @SideOnly(Side.CLIENT) public List getQuads(Block aBlock, BlockPos blockPos, EnumFacing side, float offset); public boolean isValidTexture(); diff --git a/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java b/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java index 0f99922c..34b259b1 100644 --- a/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java +++ b/src/main/java/gregtech/api/items/GT_EnergyArmor_Item.java @@ -232,7 +232,6 @@ public class GT_EnergyArmor_Item extends ItemArmor implements ISpecialArmor, IIc } @Override - @SideOnly(Side.CLIENT) public void getSubItems(Item aItem, CreativeTabs var2, List var3) { ItemStack tCharged = new ItemStack(this, 1), tUncharged = new ItemStack(this, 1, getMaxDamage()); GT_ModHandler.chargeElectricItem(tCharged, Integer.MAX_VALUE, Integer.MAX_VALUE, true, false); @@ -336,6 +335,7 @@ public class GT_EnergyArmor_Item extends ItemArmor implements ISpecialArmor, IIc } @Override + @SideOnly(Side.CLIENT) public IIconContainer getIconContainer(ItemStack itemStack) { return new IIconContainer() { @Override diff --git a/src/main/java/gregtech/api/items/GT_Generic_Item.java b/src/main/java/gregtech/api/items/GT_Generic_Item.java index e23a8185..24c3cf9a 100644 --- a/src/main/java/gregtech/api/items/GT_Generic_Item.java +++ b/src/main/java/gregtech/api/items/GT_Generic_Item.java @@ -35,6 +35,8 @@ import net.minecraftforge.fml.common.registry.FMLControlledNamespacedRegistry; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.IForgeRegistryEntry; import net.minecraftforge.fml.common.registry.PersistentRegistryManager; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.lang.reflect.Method; import java.util.List; @@ -48,6 +50,8 @@ import static gregtech.api.enums.GT_Values.RES_PATH_ITEM; public class GT_Generic_Item extends Item implements IProjectileItem, IIconRegister, IItemIconProvider { private final String mName, mTooltip; + + @SideOnly(Side.CLIENT) protected TextureAtlasSprite mIcon; public GT_Generic_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip) { @@ -82,8 +86,8 @@ public class GT_Generic_Item extends Item implements IProjectileItem, IIconRegis return getHasSubtypes() ? mName + "." + getDamage(aStack) : mName; } - @Override + @SideOnly(Side.CLIENT) public void registerIcons(TextureMap aIconRegister) { mIcon = aIconRegister.registerSprite(new ResourceLocation(RES_PATH_ITEM + (GT_Config.troll ? "troll" : mName))); } @@ -149,6 +153,7 @@ public class GT_Generic_Item extends Item implements IProjectileItem, IIconRegis } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(ItemStack stack, int pass) { if(this instanceof IItemIconContainerProvider) { IItemIconContainerProvider iItemIconContainerProvider = (IItemIconContainerProvider) this; @@ -167,6 +172,7 @@ public class GT_Generic_Item extends Item implements IProjectileItem, IIconRegis } @Override + @SideOnly(Side.CLIENT) public int getRenderPasses(ItemStack stack) { if(this instanceof IItemIconContainerProvider) { return 1; diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java index 4f7ec0d8..d1716344 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item.java @@ -1,19 +1,16 @@ package gregtech.api.items; -import gregtech.common.render.newitems.IItemIconContainerProvider; +import gregtech.common.render.IColorMultiplier; import gregtech.common.render.IIconRegister; import gregtech.common.render.newitems.IItemIconProvider; import ic2.api.item.IElectricItem; -import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.client.resources.I18n; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.fluids.FluidContainerRegistry; -import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import gregtech.api.GregTech_API; @@ -22,7 +19,6 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.SubTag; import gregtech.api.enums.TC_Aspects.TC_AspectStack; import gregtech.api.interfaces.IFoodStat; -import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.IItemBehaviour; import gregtech.api.interfaces.IItemContainer; import gregtech.api.objects.ItemData; @@ -55,7 +51,7 @@ import static gregtech.api.enums.GT_Values.*; *

* These Items can also have special RightClick abilities, electric Charge or even be set to become a Food alike Item. */ -public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements IElectricItem, IItemIconProvider, IIconRegister, IItemColor { +public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements IElectricItem, IItemIconProvider, IIconRegister, IColorMultiplier { /** * All instances of this Item Class are listed here. * This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true. @@ -69,7 +65,9 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements public final short mOffset, mItemAmount; public final BitSet mEnabledItems; public final BitSet mVisibleItems; - public final TextureAtlasSprite[][] mIconList; + + @SideOnly(Side.CLIENT) + public TextureAtlasSprite[][] mIconList; public final HashMap mFoodStats = new HashMap(); public final HashMap mElectricStats = new HashMap(); @@ -91,7 +89,6 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements mOffset = (short) Math.min(32766, aOffset); mItemAmount = (short) Math.min(aItemAmount, 32766 - mOffset); - mIconList = new TextureAtlasSprite[aItemAmount][1]; sInstances.put(getUnlocalizedName(), this); } @@ -172,11 +169,6 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements return null; } - @Override - public String getItemStackDisplayName(ItemStack stack) { - return GT_LanguageManager.getTranslation(getUnlocalizedName(stack) + ".name"); - } - /** * Sets a Food Behavior for the Item. * @@ -221,12 +213,19 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements if (aMaxCharge == 0) mElectricStats.remove((short) aMetaValue); else { mElectricStats.put((short) aMetaValue, new Long[]{aMaxCharge, Math.max(0, aTransferLimit), Math.max(-1, aTier), aSpecialData}); - if (aMetaValue >= mOffset && aUseAnimations) - mIconList[aMetaValue - mOffset] = Arrays.copyOf(mIconList[aMetaValue - mOffset], Math.max(9, mIconList[aMetaValue - mOffset].length)); + if(FMLCommonHandler.instance().getSide().isClient()) { + setIconElectricStats(aMetaValue, aUseAnimations); + } } return this; } + @SideOnly(Side.CLIENT) + public void setIconElectricStats(int aMetaValue, boolean aUseAnimations) { + if (aMetaValue >= mOffset && aUseAnimations) + mIconList[aMetaValue - mOffset] = Arrays.copyOf(mIconList[aMetaValue - mOffset], Math.max(9, mIconList[aMetaValue - mOffset].length)); + } + /** * @param aMetaValue the Meta Value of the Item you want to set it to. [0 - 32765] * @param aMaxCharge Maximum Charge. (if this is == 0 it will remove the Electric Behavior) @@ -246,6 +245,7 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements } @Override + @SideOnly(Side.CLIENT) public int getColorFromItemstack(ItemStack stack, int tintIndex) { return makeColor(getRGBa(stack, tintIndex)); } @@ -269,6 +269,7 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(ItemStack stack, int pass) { double maxCharge = getMaxCharge(stack); if(maxCharge != 0) { @@ -340,7 +341,8 @@ public abstract class GT_MetaGenerated_Item extends GT_MetaBase_Item implements @Override @SideOnly(Side.CLIENT) public final void registerIcons(TextureMap aIconRegister) { - System.out.println("Register icons"); + System.out.println("Registering item icons"); + mIconList = new TextureAtlasSprite[mItemAmount][1]; for (short i = 0, j = (short) mEnabledItems.length(); i < j; i++) if (mEnabledItems.get(i)) { for (byte k = 1; k < mIconList[i].length; k++) { diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java index 86721800..da28a5f6 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Item_X32.java @@ -13,7 +13,6 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import java.awt.*; import java.util.Arrays; import java.util.List; @@ -115,6 +114,7 @@ public abstract class GT_MetaGenerated_Item_X32 extends GT_MetaGenerated_Item { * @param aMaterial the Material * @return an Icon Container for the Item Display. */ + @SideOnly(Side.CLIENT) public final IIconContainer getIconContainer(int aMetaData, Materials aMaterial) { return aMaterial.mIconSet.mTextures[mGeneratedPrefixList[aMetaData / 1000].mTextureIndex]; } @@ -156,6 +156,7 @@ public abstract class GT_MetaGenerated_Item_X32 extends GT_MetaGenerated_Item { super.getSubItems(var1, aCreativeTab, aList); } + @SideOnly(Side.CLIENT) public final IIconContainer getMaterialIcon(int aMetaData) { Materials tMaterial = GregTech_API.sGeneratedMaterials[aMetaData % 1000]; if (tMaterial == null) return null; @@ -165,6 +166,7 @@ public abstract class GT_MetaGenerated_Item_X32 extends GT_MetaGenerated_Item { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(ItemStack stack, int pass) { int tDamage = stack.getItemDamage(); if (tDamage < 32000) { @@ -180,6 +182,7 @@ public abstract class GT_MetaGenerated_Item_X32 extends GT_MetaGenerated_Item { } @Override + @SideOnly(Side.CLIENT) public int getRenderPasses(ItemStack stack) { return stack.getItemDamage() < 32000 ? 1 : 0 ; } diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index f80a80ff..04637677 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -4,10 +4,8 @@ import forestry.api.arboriculture.IToolGrafter; import gregtech.api.GregTech_API; import gregtech.api.enchants.Enchantment_Radioactivity; import gregtech.api.enums.GT_Values; -import gregtech.api.enums.GT_Values.*; import gregtech.api.enums.Materials; import gregtech.api.enums.TC_Aspects.TC_AspectStack; -import gregtech.api.enums.Textures; import gregtech.api.interfaces.IDamagableItem; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.IToolStats; @@ -15,10 +13,9 @@ import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gregtech.common.render.IColorMultiplier; import gregtech.common.render.newitems.IItemIconProvider; -import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; @@ -28,7 +25,6 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.item.EntityMinecart; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.EnumAction; @@ -51,7 +47,6 @@ import net.minecraftforge.fml.common.Optional; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; - import java.awt.*; import java.util.ArrayList; import java.util.HashMap; @@ -69,7 +64,7 @@ import java.util.Random; //@Optional.Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraft"), //@Optional.Interface(iface = "crazypants.enderio.api.tool.ITool", modid = "EnderIO") }) -public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IDamagableItem, IToolGrafter, IItemIconProvider, IItemColor {//, IToolGrafter, IToolCrowbar, IToolWrench, ITool { +public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements IDamagableItem, IToolGrafter, IItemIconProvider, IColorMultiplier {//, IToolGrafter, IToolCrowbar, IToolWrench, ITool { /** * All instances of this Item Class are listed here. * This gets used to register the Renderer to all Items of this Type, if useStandardMetaItemRenderer() returns true. @@ -696,6 +691,7 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements } @Override + @SideOnly(Side.CLIENT) public int getColorFromItemstack(ItemStack stack, int tintIndex) { IToolStats toolStats = getToolStats(stack); switch (tintIndex) { @@ -729,6 +725,7 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(ItemStack stack, int pass) { IToolStats toolStats = getToolStats(stack); IIconContainer head = toolStats.getIcon(true, stack); @@ -749,11 +746,13 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements } @Override + @SideOnly(Side.CLIENT) public int getRenderPasses(ItemStack stack) { return 3; } @Override + @SideOnly(Side.CLIENT) public boolean isHandheld(ItemStack stack) { return true; } diff --git a/src/main/java/gregtech/api/net/GT_PacketHandler.java b/src/main/java/gregtech/api/net/GT_PacketHandler.java index 85a26b1b..0a6d3966 100644 --- a/src/main/java/gregtech/api/net/GT_PacketHandler.java +++ b/src/main/java/gregtech/api/net/GT_PacketHandler.java @@ -1,5 +1,6 @@ package gregtech.api.net; +import gregtech.GT_Mod; import gregtech.common.blocks.GT_Packet_Ores; import net.minecraft.world.World; import net.minecraftforge.fml.client.FMLClientHandler; @@ -37,7 +38,7 @@ public class GT_PacketHandler extends SimpleNetworkWrapper { if(ctx.side == Side.SERVER) { message.process(ctx.getServerHandler().playerEntity.worldObj); } else { - message.process(FMLClientHandler.instance().getWorldClient()); + message.process(GT_Mod.gregtechproxy.getThePlayer().worldObj); } return null; } diff --git a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java index 85ef0408..128eed75 100644 --- a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java +++ b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java @@ -11,6 +11,8 @@ import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraftforge.fml.client.FMLClientHandler; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.awt.*; import java.util.Collections; @@ -43,6 +45,7 @@ public class GT_CopiedBlockTexture implements ITexture { this(aBlock, aSide, aMeta, null); } + @SideOnly(Side.CLIENT) public static TextureAtlasSprite getSide(Block aBlock, int aMeta, EnumFacing side) { if (aBlock instanceof IBlockIconProvider) { IBlockIconProvider iconProvider = ((IBlockIconProvider) aBlock); @@ -53,6 +56,7 @@ public class GT_CopiedBlockTexture implements ITexture { } @Override + @SideOnly(Side.CLIENT) public List getQuads(Block aBlock, BlockPos blockPos, EnumFacing side, float offset) { TextureAtlasSprite sprite = getSide(mBlock, mMeta, EnumFacing.VALUES[mSide]); if(sprite != null) { diff --git a/src/main/java/gregtech/api/objects/GT_MultiTexture.java b/src/main/java/gregtech/api/objects/GT_MultiTexture.java index b95fa1eb..2b742e5b 100644 --- a/src/main/java/gregtech/api/objects/GT_MultiTexture.java +++ b/src/main/java/gregtech/api/objects/GT_MultiTexture.java @@ -5,6 +5,8 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.util.ArrayList; import java.util.List; @@ -22,6 +24,7 @@ public class GT_MultiTexture implements ITexture { } @Override + @SideOnly(Side.CLIENT) public List getQuads(Block aBlock, BlockPos blockPos, EnumFacing side, float offset) { ArrayList quads = new ArrayList<>(); for(int index = 0; index < mTextures.length; index++) { diff --git a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java index bcd08f1b..3636a86e 100644 --- a/src/main/java/gregtech/api/objects/GT_RenderedTexture.java +++ b/src/main/java/gregtech/api/objects/GT_RenderedTexture.java @@ -11,6 +11,8 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.awt.*; import java.util.ArrayList; @@ -56,6 +58,7 @@ public class GT_RenderedTexture implements ITexture { } @Override + @SideOnly(Side.CLIENT) public List getQuads(Block aBlock, BlockPos blockPos, EnumFacing side, float offset) { ArrayList quads = new ArrayList<>(); TextureAtlasSprite sprite = mIconContainer.getIcon(); diff --git a/src/main/java/gregtech/api/objects/GT_SidedTexture.java b/src/main/java/gregtech/api/objects/GT_SidedTexture.java index cade3b91..b07c0c55 100644 --- a/src/main/java/gregtech/api/objects/GT_SidedTexture.java +++ b/src/main/java/gregtech/api/objects/GT_SidedTexture.java @@ -8,6 +8,8 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.awt.*; import java.util.*; @@ -46,6 +48,7 @@ public class GT_SidedTexture implements ITexture { } @Override + @SideOnly(Side.CLIENT) public List getQuads(Block aBlock, BlockPos blockPos, EnumFacing side, float offset) { return new GT_RenderedTexture(mIconContainer[side.getIndex()], mRGBa) .getQuads(aBlock, blockPos, side, offset); diff --git a/src/main/java/gregtech/api/util/GT_LanguageManager.java b/src/main/java/gregtech/api/util/GT_LanguageManager.java index ed4373f4..ab5b3c41 100644 --- a/src/main/java/gregtech/api/util/GT_LanguageManager.java +++ b/src/main/java/gregtech/api/util/GT_LanguageManager.java @@ -1,16 +1,17 @@ package gregtech.api.util; -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.*; -import net.minecraft.client.resources.I18n; -import net.minecraft.util.text.translation.*; -import net.minecraftforge.fml.common.ObfuscationReflectionHelper; import gregtech.api.GregTech_API; +import net.minecraft.client.resources.I18n; +import net.minecraft.client.resources.IResourceManager; +import net.minecraft.client.resources.Locale; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.text.translation.LanguageMap; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.ObfuscationReflectionHelper; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -20,10 +21,8 @@ import java.util.Map.Entry; import static gregtech.api.enums.GT_Values.E; -@SideOnly(Side.CLIENT) -public class GT_LanguageManager implements IResourceManagerReloadListener { +public class GT_LanguageManager { - public static GT_LanguageManager INSTANCE = new GT_LanguageManager(); private GT_LanguageManager() {} public static final HashMap @@ -66,11 +65,15 @@ public class GT_LanguageManager implements IResourceManagerReloadListener { } public static String getTranslation(String aKey) { - if (aKey == null) return E; - if(LOCALIZATION.containsKey(aKey)) { - return LOCALIZATION.get(aKey); + if (aKey == null) { + return E; } - return I18n.format(aKey); + if(LOCALIZATION.containsKey(aKey) && + !LOCALIZATION.get(aKey).equals( + net.minecraft.util.text.translation.I18n.translateToLocal(aKey))) { + injectAllLocales(); + } + return net.minecraft.util.text.translation.I18n.translateToLocal(aKey); } public static String getTranslation(String aKey, String aSeperator) { @@ -82,29 +85,27 @@ public class GT_LanguageManager implements IResourceManagerReloadListener { return rTranslation; } - public static String getTranslateableItemStackName(ItemStack aStack) { - if (GT_Utility.isStackInvalid(aStack)) return "null"; - NBTTagCompound tNBT = aStack.getTagCompound(); - if (tNBT != null && tNBT.hasKey("display")) { - String tName = tNBT.getCompoundTag("display").getString("Name"); - if (GT_Utility.isStringValid(tName)) { - return tName; - } + public static void injectAllLocales() { + injectCommonLocales(); + + if(FMLCommonHandler.instance().getSide().isClient()) { + injectClientLocales(); } - return aStack.getUnlocalizedName() + ".name"; + + GT_Log.out.println("Localization injected."); } - @Override - public void onResourceManagerReload(IResourceManager resourceManager) { - Locale i18nLocale = ObfuscationReflectionHelper.getPrivateValue(I18n.class, null, 0); - Map properties = ObfuscationReflectionHelper.getPrivateValue(Locale.class, i18nLocale, 2); - + public static void injectCommonLocales() { LanguageMap languageMap = ObfuscationReflectionHelper.getPrivateValue(net.minecraft.util.text.translation.I18n.class, null, 0); Map properties2 = ObfuscationReflectionHelper.getPrivateValue(LanguageMap.class, languageMap, 3); - - properties.putAll(LOCALIZATION); properties2.putAll(LOCALIZATION); - GT_Log.out.println("Resource manager reloaded. Localization injected."); + } + + @SideOnly(Side.CLIENT) + public static void injectClientLocales() { + Locale i18nLocale = ObfuscationReflectionHelper.getPrivateValue(I18n.class, null, 0); + Map properties = ObfuscationReflectionHelper.getPrivateValue(Locale.class, i18nLocale, 2); + properties.putAll(LOCALIZATION); } } \ No newline at end of file diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index 5190eec0..c723ab42 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -5,7 +5,6 @@ package gregtech.common; -import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.util.GT_LanguageManager; @@ -22,10 +21,11 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.World; -import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.net.URL; import java.util.*; @@ -33,10 +33,11 @@ import java.util.*; // Referenced classes of package gregtech.common: // GT_Proxy +@SideOnly(Side.CLIENT) public class GT_Client extends GT_Proxy implements Runnable { - private final HashSet mCapeList = new HashSet<>(); + private final HashSet mCapeList = new HashSet<>(); private final GT_CapeRenderer mCapeRenderer; private final List mPosR; private final List mPosG; @@ -158,8 +159,6 @@ public class GT_Client extends GT_Proxy public void onLoad() { super.onLoad(); - //new GT_MetaGenerated_Tool_Renderer(); TODO tools repair - RenderingRegistry.registerEntityRenderingHandler(GT_Entity_Arrow.class, manager -> { return new GT_Renderer_Entity_Arrow(GT_Entity_Arrow.class, "arrow", manager); }); @@ -167,7 +166,6 @@ public class GT_Client extends GT_Proxy RenderingRegistry.registerEntityRenderingHandler(GT_Entity_Arrow.class, manager -> { return new GT_Renderer_Entity_Arrow(GT_Entity_Arrow_Potion.class, "arrow_potions", manager); }); - } @@ -180,14 +178,15 @@ public class GT_Client extends GT_Proxy TextureSet.SET_DIAMOND.getClass(); new GT_IIconProvider_Item_Model(); - IReloadableResourceManager resourceManager = (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager(); - resourceManager.registerReloadListener(GT_LanguageManager.INSTANCE); } public void run() { + downloadStuff(); + } + + public void downloadStuff() { try { GT_Log.out.println("GT_Mod: Downloading Cape List."); - @SuppressWarnings("resource") Scanner tScanner = new Scanner(new URL("http://gregtech.overminddl1.com/com/gregoriust/gregtech/supporterlist.txt").openStream()); while (tScanner.hasNextLine()) { String tName = tScanner.nextLine(); @@ -195,51 +194,31 @@ public class GT_Client extends GT_Proxy this.mCapeList.add(tName.toLowerCase()); } } - } catch (Throwable e) { - } + } catch (Throwable e) {} try { GT_Log.out.println("GT_Mod: Downloading News."); - @SuppressWarnings("resource") Scanner tScanner = new Scanner(new URL("http://files.minecraftforge.net/maven/com/gregoriust/gregtech/message.txt").openStream()); while (tScanner.hasNextLine()) { this.mMessage = (this.mMessage + tScanner.nextLine() + " "); } - } catch (Throwable e) { - } + } catch (Throwable e) {} } @SubscribeEvent public void onPlayerTickEventClient(TickEvent.PlayerTickEvent aEvent) { if ((!aEvent.player.isDead) && (aEvent.phase == TickEvent.Phase.END) && (aEvent.side.isClient())) { - if ((this.isFirstClientPlayerTick) && (aEvent.player == GT_Values.GT.getThePlayer())) { this.isFirstClientPlayerTick = false; if ((this.mMessage.length() > 5) && (GregTech_API.sSpecialFile.get(ConfigCategories.news, this.mMessage, true))) { aEvent.player.addChatComponentMessage(new TextComponentString(this.mMessage)); } - try { - int tVersion = Integer.parseInt(((String) Class.forName("ic2.core.IC2").getField("VERSION").get(null)).substring(4, 7)); - if (GT_Values.D1) { - GT_Log.out.println("Industrialcraft Version: " + tVersion); - } - if (tVersion < 624) { - aEvent.player.addChatComponentMessage(new TextComponentString("GregTech: Please update your IndustrialCraft here:")); - aEvent.player.addChatComponentMessage(new TextComponentString("ic2api.player.to:8080/job/IC2_experimental/" + (GT_Mod.MAX_IC2 < Integer.MAX_VALUE ? GT_Mod.MAX_IC2 : 624) + "/")); - } else if (tVersion > GT_Mod.MAX_IC2) { - aEvent.player.addChatComponentMessage(new TextComponentString("GregTech: Please downgrade your IndustrialCraft here:")); - aEvent.player.addChatComponentMessage(new TextComponentString("ic2api.player.to:8080/job/IC2_experimental/" + GT_Mod.MAX_IC2 + "/")); - } - } catch (Throwable e) { - aEvent.player.addChatComponentMessage(new TextComponentString("GregTech: Please get the recommended Version of IndustrialCraft here:")); - aEvent.player.addChatComponentMessage(new TextComponentString("ic2api.player.to:8080/job/IC2_experimental/" + (GT_Mod.MAX_IC2 < Integer.MAX_VALUE ? GT_Mod.MAX_IC2 : 624) + "/")); - } } } } - @SubscribeEvent + /*@SubscribeEvent public void onDrawBlockHighlight(DrawBlockHighlightEvent aEvent) { - /*if (GT_Utility.isStackValid(aEvent.currentItem)) { + if (GT_Utility.isStackValid(aEvent.currentItem)) { Block aBlock = aEvent.player.worldObj.getBlock(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ); TileEntity aTileEntity = aEvent.player.worldObj.getTileEntity(aEvent.target.blockX, aEvent.target.blockY, aEvent.target.blockZ); try { @@ -257,9 +236,8 @@ public class GT_Client extends GT_Proxy e.printStackTrace(GT_Log.err); } } - }*/ - //FIXME - } + } + }*/ @SubscribeEvent public void receiveRenderEvent(net.minecraftforge.client.event.RenderPlayerEvent.Pre aEvent) { diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java index 1fa7332b..2e4566dc 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings1.java @@ -1,21 +1,16 @@ package gregtech.common.blocks; -import gregtech.api.enums.Dyes; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; import gregtech.api.objects.GT_CopiedBlockTexture; import gregtech.api.util.GT_LanguageManager; -import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.color.IBlockColor; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IBlockAccess; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; - -public class GT_Block_Casings1 extends GT_Block_Casings_Abstract implements IBlockColor { +public class GT_Block_Casings1 extends GT_Block_Casings_Abstract { public GT_Block_Casings1() { super(GT_Item_Casings1.class, "gt.blockcasings", GT_Material_Casings.INSTANCE); for (byte i = 0; i < 16; i = (byte) (i + 1)) { @@ -56,6 +51,8 @@ public class GT_Block_Casings1 extends GT_Block_Casings_Abstract implements IBlo ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15)); } + @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { if ((aMeta >= 0) && (aMeta < 16)) { switch (aMeta) { @@ -84,10 +81,10 @@ public class GT_Block_Casings1 extends GT_Block_Casings_Abstract implements IBlo } - @Override - public int colorMultiplier(IBlockState state, @Nullable IBlockAccess worldIn, @Nullable BlockPos pos, int tintIndex) { - int metadata = state.getValue(METADATA); - return metadata > 9 ? Dyes._NULL.getRGBAInt() : Dyes.MACHINE_METAL.getRGBAInt(); - } + //@Override + //public int colorMultiplier(IBlockState state, @Nullable IBlockAccess worldIn, @Nullable BlockPos pos, int tintIndex) { + // int metadata = state.getValue(METADATA); + // return metadata > 9 ? Dyes._NULL.getRGBAInt() : Dyes.MACHINE_METAL.getRGBAInt(); + //} } diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java index 4086670b..c10dbda5 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings2.java @@ -12,6 +12,8 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.Explosion; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class GT_Block_Casings2 extends GT_Block_Casings_Abstract { @@ -55,6 +57,7 @@ public class GT_Block_Casings2 extends GT_Block_Casings_Abstract { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { switch (aMeta) { case 0: diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java index 74c8f60c..cde3bc2b 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings3.java @@ -7,6 +7,8 @@ import gregtech.api.util.GT_LanguageManager; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class GT_Block_Casings3 extends GT_Block_Casings_Abstract { @@ -50,6 +52,7 @@ public class GT_Block_Casings3 extends GT_Block_Casings_Abstract { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { switch (aMeta) { case 0: diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java index b452ab74..a39204f3 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings4.java @@ -56,6 +56,7 @@ public class GT_Block_Casings4 extends GT_Block_Casings_Abstract { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { switch (aMeta) { case 0: @@ -94,6 +95,7 @@ public class GT_Block_Casings4 extends GT_Block_Casings_Abstract { return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon(); } + @SideOnly(Side.CLIENT) public TextureAtlasSprite getTurbineCasing(int meta, int iconIndex, boolean active) { switch (meta) { case 9: diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java index 2f156087..a8af5873 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java @@ -2,17 +2,13 @@ package gregtech.common.blocks; import com.google.common.collect.Lists; import gregtech.api.GregTech_API; -import gregtech.api.enums.Dyes; import gregtech.api.items.GT_Generic_Block; import gregtech.api.util.GT_LanguageManager; -import gregtech.common.render.IIconRegister; import gregtech.common.render.newblocks.IBlockIconProvider; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.color.IBlockColor; -import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; @@ -28,7 +24,6 @@ import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import javax.annotation.Nullable; import java.util.List; public abstract class GT_Block_Casings_Abstract extends GT_Generic_Block implements IBlockIconProvider { diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java b/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java index 27d38ebc..c590e40c 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Concretes.java @@ -16,6 +16,8 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.fluids.IFluidBlock; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; @@ -60,6 +62,7 @@ public class GT_Block_Concretes extends GT_Block_Stones_Abstract { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { if ((aMeta >= 0) && (aMeta < 16)) { return gregtech.api.enums.Textures.BlockIcons.CONCRETES[aMeta].getIcon(); diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Granites.java b/src/main/java/gregtech/common/blocks/GT_Block_Granites.java index f424ab00..39ca5877 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Granites.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Granites.java @@ -13,6 +13,8 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class GT_Block_Granites extends GT_Block_Stones_Abstract { @@ -59,6 +61,7 @@ public class GT_Block_Granites extends GT_Block_Stones_Abstract { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { if ((aMeta >= 0) && (aMeta < 16)) { return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon(); diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java index 33d54a7b..0cfb6898 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Machines.java @@ -1,8 +1,6 @@ package gregtech.common.blocks; import gregtech.api.GregTech_API; -import gregtech.api.enums.GT_Values; -import gregtech.api.enums.Materials; import gregtech.api.interfaces.IDebugableBlock; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -17,12 +15,9 @@ import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; import gregtech.common.render.IIconRegister; import gregtech.common.render.newblocks.ITextureBlockIconProvider; -import gregtech.common.render.newitems.GT_IIconProvider_Item_Model; -import net.minecraft.block.BlockGlass; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.SoundType; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.color.IBlockColor; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -35,7 +30,6 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.AxisAlignedBB; @@ -46,7 +40,6 @@ import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.property.IExtendedBlockState; -import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Metal.java b/src/main/java/gregtech/common/blocks/GT_Block_Metal.java index b2f84f73..223c0a7a 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Metal.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Metal.java @@ -12,6 +12,8 @@ import gregtech.api.util.GT_LanguageManager; import gregtech.api.util.GT_OreDictUnificator; import net.minecraft.block.material.Material; import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class GT_Block_Metal extends GT_Block_Storage implements IBlockIconProvider { public Materials[] mMats; @@ -30,6 +32,7 @@ public class GT_Block_Metal extends GT_Block_Storage implements IBlockIconProvid } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aDamage) { if ((aDamage >= 0) && (aDamage < 16) && aDamage < mMats.length) { return mBlockIcons[aDamage].getIcon(); diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java index 3cdba3a4..07f3960c 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Ores_Abstract.java @@ -37,6 +37,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; import java.util.ArrayList; @@ -199,12 +201,14 @@ public abstract class GT_Block_Ores_Abstract extends GT_Generic_Block implements } @Override + @SideOnly(Side.CLIENT) public ITexture[] getTexture(World world, BlockPos blockPos, IExtendedBlockState blockState, EnumFacing side) { GT_TileEntity_Ores oreTile = (GT_TileEntity_Ores) world.getTileEntity(blockPos); return oreTile.getTexture(this, (byte) side.getIndex()); } @Override + @SideOnly(Side.CLIENT) public ITexture[] getItemblockTexture(EntityPlayer player, ItemStack itemStack, EnumFacing side) { int mMetaData = itemStack.getItemDamage(); Materials aMaterial = GregTech_API.sGeneratedMaterials[(mMetaData % 1000)]; diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java b/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java index 65cbe657..6a43b905 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Reinforced.java @@ -88,6 +88,7 @@ public class GT_Block_Reinforced extends GT_Generic_Block implements IBlockIconP } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { if ((aMeta >= 0) && (aMeta < 16)) { switch (aMeta) { diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Stones.java b/src/main/java/gregtech/common/blocks/GT_Block_Stones.java index 9269b275..ab5b6e77 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Stones.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Stones.java @@ -12,6 +12,8 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public class GT_Block_Stones extends GT_Block_Stones_Abstract implements IBlockIconProvider { public GT_Block_Stones() { @@ -62,6 +64,7 @@ public class GT_Block_Stones extends GT_Block_Stones_Abstract implements IBlockI } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { if ((aMeta >= 0) && (aMeta < 16)) { return gregtech.api.enums.Textures.BlockIcons.STONES[aMeta].getIcon(); diff --git a/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java b/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java index 44281249..c13bcffd 100644 --- a/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java +++ b/src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java @@ -102,6 +102,7 @@ public abstract class GT_Block_Stones_Abstract extends GT_Generic_Block implemen } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(EnumFacing aSide, int aMeta) { if ((aMeta >= 0) && (aMeta < 16)) { return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon(); diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java index 839b7801..d0a3a18b 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Machines.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Machines.java @@ -10,7 +10,6 @@ import gregtech.api.util.GT_Log; import gregtech.api.util.GT_Utility; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.renderer.color.IItemColor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; @@ -23,11 +22,9 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; -import java.awt.*; import java.util.List; -public class GT_Item_Machines - extends ItemBlock implements IItemColor { +public class GT_Item_Machines extends ItemBlock { public GT_Item_Machines(Block par1) { super(par1); setMaxDamage(0); @@ -162,8 +159,4 @@ public class GT_Item_Machines return true; } - @Override - public int getColorFromItemstack(ItemStack stack, int tintIndex) { - return Color.WHITE.getRGB(); - } } diff --git a/src/main/java/gregtech/common/blocks/GT_Item_Ores.java b/src/main/java/gregtech/common/blocks/GT_Item_Ores.java index ad31a4b1..52260b6e 100644 --- a/src/main/java/gregtech/common/blocks/GT_Item_Ores.java +++ b/src/main/java/gregtech/common/blocks/GT_Item_Ores.java @@ -13,8 +13,8 @@ import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; -public class GT_Item_Ores - extends ItemBlock { +public class GT_Item_Ores extends ItemBlock { + public GT_Item_Ores(Block par1) { super(par1); setMaxDamage(0); diff --git a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java index af79d5e0..2d6c190a 100644 --- a/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java +++ b/src/main/java/gregtech/common/items/GT_FluidDisplayItem.java @@ -1,28 +1,25 @@ package gregtech.common.items; -import gregtech.api.interfaces.IIconContainer; -import gregtech.common.render.newitems.IItemIconContainerProvider; -import gregtech.common.render.newitems.IItemIconProvider; -import net.minecraft.client.renderer.color.IItemColor; -import net.minecraft.client.renderer.texture.TextureAtlasSprite; -import net.minecraft.util.text.TextFormatting; -import net.minecraftforge.fml.relauncher.Side; -import net.minecraftforge.fml.relauncher.SideOnly; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.items.GT_Generic_Item; import gregtech.api.util.GT_Utility; +import gregtech.common.render.IColorMultiplier; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.util.List; -public class GT_FluidDisplayItem extends GT_Generic_Item implements IItemColor { +public class GT_FluidDisplayItem extends GT_Generic_Item implements IColorMultiplier { public GT_FluidDisplayItem() { super("GregTech_FluidDisplay", "Fluid Display", null); ItemList.Display_Fluid.set(this); @@ -48,12 +45,14 @@ public class GT_FluidDisplayItem extends GT_Generic_Item implements IItemColor { } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(ItemStack stack, int pass) { Fluid tFluid = FluidRegistry.getFluid(stack.getItemDamage()); return GT_Utility.getTexture(tFluid.getStill()); } @Override + @SideOnly(Side.CLIENT) public int getColorFromItemstack(ItemStack stack, int tintIndex) { Fluid tFluid = FluidRegistry.getFluid(stack.getItemDamage()); return tFluid == null ? 16777215 : tFluid.getColor(); diff --git a/src/main/java/gregtech/common/items/ItemComb.java b/src/main/java/gregtech/common/items/ItemComb.java index f4532bf5..46765aa7 100644 --- a/src/main/java/gregtech/common/items/ItemComb.java +++ b/src/main/java/gregtech/common/items/ItemComb.java @@ -10,6 +10,7 @@ import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; +import gregtech.common.render.IColorMultiplier; import gregtech.common.render.IIconRegister; import gregtech.common.render.newitems.IItemIconProvider; import net.minecraft.client.renderer.color.IItemColor; @@ -27,9 +28,9 @@ import java.util.List; import static gregtech.api.enums.GT_Values.MOD_ID; -public class ItemComb extends Item implements IItemIconProvider, IIconRegister, IItemColor { - @SideOnly(Side.CLIENT) +public class ItemComb extends Item implements IItemIconProvider, IIconRegister, IColorMultiplier { + @SideOnly(Side.CLIENT) private TextureAtlasSprite itemIcon, secondIcon; public ItemComb() { @@ -72,6 +73,7 @@ public class ItemComb extends Item implements IItemIconProvider, IIconRegister, } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(ItemStack stack, int pass) { return (pass == 0) ? itemIcon : secondIcon; } diff --git a/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java b/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java index 29eb6acb..0fcbe089 100644 --- a/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java +++ b/src/main/java/gregtech/common/items/armor/ModularArmor_Item.java @@ -40,6 +40,7 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IIcon private static final Potion NIGHT_VISION = Potion.getPotionFromResourceLocation("night_vision"); + @SideOnly(Side.CLIENT) private TextureAtlasSprite itemIcon; public String mName; @@ -380,6 +381,7 @@ public class ModularArmor_Item extends ItemArmor implements ISpecialArmor, IIcon } @Override + @SideOnly(Side.CLIENT) public TextureAtlasSprite getIcon(ItemStack stack, int pass) { return itemIcon; } diff --git a/src/main/java/gregtech/common/render/GT_CapeRenderer.java b/src/main/java/gregtech/common/render/GT_CapeRenderer.java index 635e5191..abc9bea0 100644 --- a/src/main/java/gregtech/common/render/GT_CapeRenderer.java +++ b/src/main/java/gregtech/common/render/GT_CapeRenderer.java @@ -4,11 +4,14 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderPlayerEvent; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import java.util.Collection; -public class GT_CapeRenderer - extends RenderPlayer { +@SideOnly(Side.CLIENT) +public class GT_CapeRenderer extends RenderPlayer { + private final ResourceLocation[] mCapes = {new ResourceLocation("gregtech:textures/BrainTechCape.png"), new ResourceLocation("gregtech:textures/GregTechCape.png"), new ResourceLocation("gregtech:textures/MrBrainCape.png"), new ResourceLocation("gregtech:textures/GregoriusCape.png")}; private final Collection mCapeList; diff --git a/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java b/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java index 7db15343..929cd94d 100644 --- a/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java +++ b/src/main/java/gregtech/common/render/GT_Renderer_Entity_Arrow.java @@ -6,7 +6,10 @@ import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraft.client.renderer.entity.RenderArrow; import net.minecraft.entity.Entity; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +@SideOnly(Side.CLIENT) public class GT_Renderer_Entity_Arrow extends RenderArrow { private final ResourceLocation mTexture; diff --git a/src/main/java/gregtech/common/render/IColorMultiplier.java b/src/main/java/gregtech/common/render/IColorMultiplier.java new file mode 100644 index 00000000..8f850e25 --- /dev/null +++ b/src/main/java/gregtech/common/render/IColorMultiplier.java @@ -0,0 +1,12 @@ +package gregtech.common.render; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +public interface IColorMultiplier { + + @SideOnly(Side.CLIENT) + int getColorFromItemstack(ItemStack stack, int tintIndex); + +} diff --git a/src/main/java/gregtech/common/render/IIconRegister.java b/src/main/java/gregtech/common/render/IIconRegister.java index 5cc090cc..4a06ab1d 100644 --- a/src/main/java/gregtech/common/render/IIconRegister.java +++ b/src/main/java/gregtech/common/render/IIconRegister.java @@ -1,9 +1,12 @@ package gregtech.common.render; import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; public interface IIconRegister { + @SideOnly(Side.CLIENT) void registerIcons(TextureMap textureMap); } diff --git a/src/main/java/gregtech/common/render/newblocks/BlockRenderer.java b/src/main/java/gregtech/common/render/newblocks/BlockRenderer.java index dd073b19..3bf08798 100644 --- a/src/main/java/gregtech/common/render/newblocks/BlockRenderer.java +++ b/src/main/java/gregtech/common/render/newblocks/BlockRenderer.java @@ -21,12 +21,15 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraftforge.common.property.IExtendedBlockState; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.Collections; import java.util.List; +@SideOnly(Side.CLIENT) public class BlockRenderer { public static boolean shouldHook(IBlockState blockState) { diff --git a/src/main/java/gregtech/common/render/newblocks/RenderUtil.java b/src/main/java/gregtech/common/render/newblocks/RenderUtil.java index 87184ebb..fe8c6ada 100644 --- a/src/main/java/gregtech/common/render/newblocks/RenderUtil.java +++ b/src/main/java/gregtech/common/render/newblocks/RenderUtil.java @@ -5,7 +5,10 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.util.EnumFacing; import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +@SideOnly(Side.CLIENT) public class RenderUtil { public static BakedQuad renderSide(VertexFormat vertexFormat, TextureAtlasSprite sprite, EnumFacing side, int tint, float offset, int color, boolean hideSiding) { diff --git a/src/main/java/gregtech/common/render/newitems/GT_IIconProvider_Item_Model.java b/src/main/java/gregtech/common/render/newitems/GT_IIconProvider_Item_Model.java index c47ae438..bd56fa86 100644 --- a/src/main/java/gregtech/common/render/newitems/GT_IIconProvider_Item_Model.java +++ b/src/main/java/gregtech/common/render/newitems/GT_IIconProvider_Item_Model.java @@ -2,10 +2,10 @@ package gregtech.common.render.newitems; import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; import gregtech.api.GregTech_API; -import gregtech.common.render.newblocks.BlockRenderer; +import gregtech.common.render.IColorMultiplier; import gregtech.common.render.IIconRegister; +import gregtech.common.render.newblocks.BlockRenderer; import gregtech.common.render.newblocks.IBlockIconProvider; import gregtech.common.render.newblocks.ITextureBlockIconProvider; import net.minecraft.block.Block; @@ -25,18 +25,17 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.ModelBakeEvent; import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.client.model.ItemLayerModel; import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.model.TRSRTransformation; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; import javax.annotation.Nullable; import javax.vecmath.Vector4f; @@ -47,7 +46,6 @@ public class GT_IIconProvider_Item_Model implements IBakedModel { private static final ModelResourceLocation RESOURCE_LOCATION = new ModelResourceLocation("gregtech", "IItemIconProvider"); - private TextureAtlasSprite missingno; private ItemStack itemStack; private VertexFormat vertexFormat; @@ -84,22 +82,18 @@ public class GT_IIconProvider_Item_Model implements IBakedModel { if(item instanceof IIconRegister) { ((IIconRegister) item).registerIcons(pre.getMap()); } - if(item instanceof IItemColor) { - itemColors.registerItemColorHandler((IItemColor) item, item); + if(item instanceof IColorMultiplier) { + IColorMultiplier colorMultiplier = (IColorMultiplier) item; + itemColors.registerItemColorHandler(colorMultiplier::getColorFromItemstack, item); } } - BlockColors blockColors = Minecraft.getMinecraft().getBlockColors(); for(ResourceLocation blockId : Block.REGISTRY.getKeys()) { Block block = Block.REGISTRY.getObject(blockId); if(block instanceof IIconRegister) { ((IIconRegister) block).registerIcons(pre.getMap()); } - if(block instanceof IBlockColor) { - blockColors.registerBlockColorHandler((IBlockColor) block, block); - } } - missingno = pre.getMap().getMissingSprite(); - System.out.println("GT_Mod: Finished Item Icon Load Phase"); + System.out.println("GT_Mod: Finished Icon Load Phase"); } @SubscribeEvent diff --git a/src/main/java/gregtech/common/render/newitems/IItemIconContainerProvider.java b/src/main/java/gregtech/common/render/newitems/IItemIconContainerProvider.java index 1930b0a4..a1f40098 100644 --- a/src/main/java/gregtech/common/render/newitems/IItemIconContainerProvider.java +++ b/src/main/java/gregtech/common/render/newitems/IItemIconContainerProvider.java @@ -10,6 +10,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; public interface IItemIconContainerProvider extends IItemIconProvider { @Override + @SideOnly(Side.CLIENT) default TextureAtlasSprite getIcon(ItemStack stack, int pass) { IIconContainer iconContainer = getIconContainer(stack); if(iconContainer != null) { @@ -24,10 +25,12 @@ public interface IItemIconContainerProvider extends IItemIconProvider { } @Override + @SideOnly(Side.CLIENT) default int getRenderPasses(ItemStack stack) { return 1; } + @SideOnly(Side.CLIENT) IIconContainer getIconContainer(ItemStack itemStack); } diff --git a/src/main/java/gregtech/common/render/newitems/IItemIconProvider.java b/src/main/java/gregtech/common/render/newitems/IItemIconProvider.java index e11ccae9..6b6cfce1 100644 --- a/src/main/java/gregtech/common/render/newitems/IItemIconProvider.java +++ b/src/main/java/gregtech/common/render/newitems/IItemIconProvider.java @@ -5,15 +5,17 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -@SideOnly(Side.CLIENT) public interface IItemIconProvider { + @SideOnly(Side.CLIENT) TextureAtlasSprite getIcon(ItemStack stack, int pass); + @SideOnly(Side.CLIENT) default int getRenderPasses(ItemStack stack) { return 0; } + @SideOnly(Side.CLIENT) default boolean isHandheld(ItemStack stack) { return false; }