diff --git a/src/api/java/appeng/api/config/Settings.java b/src/api/java/appeng/api/config/Settings.java index 97796dc2..ef0528ed 100644 --- a/src/api/java/appeng/api/config/Settings.java +++ b/src/api/java/appeng/api/config/Settings.java @@ -25,6 +25,7 @@ package appeng.api.config; import java.util.EnumSet; + import javax.annotation.Nonnull; diff --git a/src/api/java/appeng/api/config/Upgrades.java b/src/api/java/appeng/api/config/Upgrades.java index 07c679b6..e578b7c5 100644 --- a/src/api/java/appeng/api/config/Upgrades.java +++ b/src/api/java/appeng/api/config/Upgrades.java @@ -28,12 +28,11 @@ import java.util.HashMap; import java.util.Map; import net.minecraft.item.ItemStack; - -import com.google.common.base.Optional; - import appeng.api.definitions.IItemDefinition; import appeng.api.util.AEItemDefinition; +import com.google.common.base.Optional; + public enum Upgrades { diff --git a/src/api/java/appeng/api/definitions/IBlockDefinition.java b/src/api/java/appeng/api/definitions/IBlockDefinition.java index 3acbd089..d6d56bce 100644 --- a/src/api/java/appeng/api/definitions/IBlockDefinition.java +++ b/src/api/java/appeng/api/definitions/IBlockDefinition.java @@ -3,6 +3,7 @@ package appeng.api.definitions; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import com.google.common.base.Optional; @@ -24,11 +25,9 @@ public interface IBlockDefinition extends IItemDefinition * Compare Block with world. * * @param world world of block - * @param x x pos of block - * @param y y pos of block - * @param z z pos of block + * @param pos location * * @return if the block is placed in the world at the specific location. */ - boolean isSameAs( IBlockAccess world, int x, int y, int z ); + boolean isSameAs( IBlockAccess world, BlockPos pos ); } diff --git a/src/api/java/appeng/api/definitions/IBlocks.java b/src/api/java/appeng/api/definitions/IBlocks.java index e4a5368c..b784109a 100644 --- a/src/api/java/appeng/api/definitions/IBlocks.java +++ b/src/api/java/appeng/api/definitions/IBlocks.java @@ -57,8 +57,16 @@ public interface IBlocks IBlockDefinition skyStone(); + IBlockDefinition skyStoneBlock(); + + IBlockDefinition skyStoneBrick(); + + IBlockDefinition skyStoneSmallBrick(); + IBlockDefinition skyChest(); + IBlockDefinition skyChestBlock(); + IBlockDefinition skyCompass(); IBlockDefinition skyStoneStair(); @@ -77,6 +85,7 @@ public interface IBlocks IBlockDefinition quartzPillarStair(); + /* IBlockDefinition skyStoneSlab(); IBlockDefinition skyStoneBlockSlab(); @@ -92,7 +101,8 @@ public interface IBlocks IBlockDefinition chiseledQuartzSlab(); IBlockDefinition quartzPillarSlab(); - +*/ + /* * misc */ diff --git a/src/api/java/appeng/api/definitions/IComparableDefinition.java b/src/api/java/appeng/api/definitions/IComparableDefinition.java index bec1bde1..3bd65885 100644 --- a/src/api/java/appeng/api/definitions/IComparableDefinition.java +++ b/src/api/java/appeng/api/definitions/IComparableDefinition.java @@ -2,6 +2,7 @@ package appeng.api.definitions; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; @@ -27,14 +28,12 @@ public interface IComparableDefinition * Compare Block with world. * * @param world world of block - * @param x x pos of block - * @param y y pos of block - * @param z z pos of block + * @param pos in world. * * @return if the block is placed in the world at the specific location. * * @deprecated moved to {@link IBlockDefinition}. Is removed in the next major release rv3 */ @Deprecated - boolean isSameAs( IBlockAccess world, int x, int y, int z ); + boolean isSameAs( IBlockAccess world, BlockPos pos ); } diff --git a/src/api/java/appeng/api/definitions/IParts.java b/src/api/java/appeng/api/definitions/IParts.java index 7f87032a..08980809 100644 --- a/src/api/java/appeng/api/definitions/IParts.java +++ b/src/api/java/appeng/api/definitions/IParts.java @@ -78,13 +78,13 @@ public interface IParts IItemDefinition p2PTunnelLiquids(); - IItemDefinition p2PTunnelEU(); + //IItemDefinition p2PTunnelEU(); - IItemDefinition p2PTunnelRF(); + //IItemDefinition p2PTunnelRF(); IItemDefinition p2PTunnelLight(); - IItemDefinition p2PTunnelOpenComputers(); + //IItemDefinition p2PTunnelOpenComputers(); IItemDefinition cableAnchor(); diff --git a/src/api/java/appeng/api/events/LocatableEventAnnounce.java b/src/api/java/appeng/api/events/LocatableEventAnnounce.java index ee4a8c73..8c9ad446 100644 --- a/src/api/java/appeng/api/events/LocatableEventAnnounce.java +++ b/src/api/java/appeng/api/events/LocatableEventAnnounce.java @@ -24,8 +24,7 @@ package appeng.api.events; -import cpw.mods.fml.common.eventhandler.Event; - +import net.minecraftforge.fml.common.eventhandler.Event; import appeng.api.features.ILocatable; diff --git a/src/api/java/appeng/api/features/IInscriberRecipe.java b/src/api/java/appeng/api/features/IInscriberRecipe.java index 04c8161e..7bf7caa8 100644 --- a/src/api/java/appeng/api/features/IInscriberRecipe.java +++ b/src/api/java/appeng/api/features/IInscriberRecipe.java @@ -2,6 +2,7 @@ package appeng.api.features; import java.util.List; + import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; diff --git a/src/api/java/appeng/api/features/IInscriberRecipeBuilder.java b/src/api/java/appeng/api/features/IInscriberRecipeBuilder.java index 43c3fa3e..049b1527 100644 --- a/src/api/java/appeng/api/features/IInscriberRecipeBuilder.java +++ b/src/api/java/appeng/api/features/IInscriberRecipeBuilder.java @@ -2,6 +2,7 @@ package appeng.api.features; import java.util.Collection; + import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; diff --git a/src/api/java/appeng/api/features/IInscriberRegistry.java b/src/api/java/appeng/api/features/IInscriberRegistry.java index 0d535e78..c8882849 100644 --- a/src/api/java/appeng/api/features/IInscriberRegistry.java +++ b/src/api/java/appeng/api/features/IInscriberRegistry.java @@ -3,6 +3,7 @@ package appeng.api.features; import java.util.List; import java.util.Set; + import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; diff --git a/src/api/java/appeng/api/features/IP2PTunnelRegistry.java b/src/api/java/appeng/api/features/IP2PTunnelRegistry.java index fa627247..775ff480 100644 --- a/src/api/java/appeng/api/features/IP2PTunnelRegistry.java +++ b/src/api/java/appeng/api/features/IP2PTunnelRegistry.java @@ -27,7 +27,6 @@ package appeng.api.features; import javax.annotation.Nullable; import net.minecraft.item.ItemStack; - import appeng.api.config.TunnelType; diff --git a/src/api/java/appeng/api/features/IWirelessTermHandler.java b/src/api/java/appeng/api/features/IWirelessTermHandler.java index eebfceda..df43cae2 100644 --- a/src/api/java/appeng/api/features/IWirelessTermHandler.java +++ b/src/api/java/appeng/api/features/IWirelessTermHandler.java @@ -26,7 +26,6 @@ package appeng.api.features; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; - import appeng.api.util.IConfigManager; diff --git a/src/api/java/appeng/api/implementations/ICraftingPatternItem.java b/src/api/java/appeng/api/implementations/ICraftingPatternItem.java index 6524f6cc..0d8c7792 100644 --- a/src/api/java/appeng/api/implementations/ICraftingPatternItem.java +++ b/src/api/java/appeng/api/implementations/ICraftingPatternItem.java @@ -27,7 +27,6 @@ package appeng.api.implementations; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; - import appeng.api.networking.crafting.ICraftingPatternDetails; diff --git a/src/api/java/appeng/api/implementations/IUpgradeableHost.java b/src/api/java/appeng/api/implementations/IUpgradeableHost.java index bbc728e1..e5e62dfe 100644 --- a/src/api/java/appeng/api/implementations/IUpgradeableHost.java +++ b/src/api/java/appeng/api/implementations/IUpgradeableHost.java @@ -25,7 +25,6 @@ package appeng.api.implementations; import net.minecraft.tileentity.TileEntity; - import appeng.api.config.Upgrades; import appeng.api.implementations.tiles.ISegmentedInventory; import appeng.api.util.IConfigurableObject; diff --git a/src/api/java/appeng/api/implementations/guiobjects/IGuiItem.java b/src/api/java/appeng/api/implementations/guiobjects/IGuiItem.java index 269eea2a..400fff51 100644 --- a/src/api/java/appeng/api/implementations/guiobjects/IGuiItem.java +++ b/src/api/java/appeng/api/implementations/guiobjects/IGuiItem.java @@ -25,6 +25,7 @@ package appeng.api.implementations.guiobjects; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; @@ -35,5 +36,5 @@ import net.minecraft.world.World; public interface IGuiItem { - IGuiItemObject getGuiObject( ItemStack is, World world, int x, int y, int z ); + IGuiItemObject getGuiObject( ItemStack is, World world, BlockPos pos ); } diff --git a/src/api/java/appeng/api/implementations/guiobjects/INetworkTool.java b/src/api/java/appeng/api/implementations/guiobjects/INetworkTool.java index 4e0dc958..01789b79 100644 --- a/src/api/java/appeng/api/implementations/guiobjects/INetworkTool.java +++ b/src/api/java/appeng/api/implementations/guiobjects/INetworkTool.java @@ -25,7 +25,6 @@ package appeng.api.implementations.guiobjects; import net.minecraft.inventory.IInventory; - import appeng.api.networking.IGridHost; diff --git a/src/api/java/appeng/api/implementations/items/IAEItemPowerStorage.java b/src/api/java/appeng/api/implementations/items/IAEItemPowerStorage.java index 0ca4ff49..3f850acd 100644 --- a/src/api/java/appeng/api/implementations/items/IAEItemPowerStorage.java +++ b/src/api/java/appeng/api/implementations/items/IAEItemPowerStorage.java @@ -25,7 +25,6 @@ package appeng.api.implementations.items; import net.minecraft.item.ItemStack; - import appeng.api.config.AccessRestriction; import appeng.api.networking.energy.IAEPowerStorage; diff --git a/src/api/java/appeng/api/implementations/items/IAEWrench.java b/src/api/java/appeng/api/implementations/items/IAEWrench.java index 27ad96d2..d735d1ec 100644 --- a/src/api/java/appeng/api/implementations/items/IAEWrench.java +++ b/src/api/java/appeng/api/implementations/items/IAEWrench.java @@ -26,6 +26,7 @@ package appeng.api.implementations.items; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; /** @@ -39,11 +40,9 @@ public interface IAEWrench * Check if the wrench can be used. * * @param player wrenching player - * @param x x pos of wrenched block - * @param y y pos of wrenched block - * @param z z pos of wrenched block + * @param pos of block. * * @return true if wrench can be used */ - boolean canWrench( ItemStack wrench, EntityPlayer player, int x, int y, int z ); + boolean canWrench( ItemStack wrench, EntityPlayer player, BlockPos pos ); } diff --git a/src/api/java/appeng/api/implementations/items/IBiometricCard.java b/src/api/java/appeng/api/implementations/items/IBiometricCard.java index c37f6d0c..a3d7f7c4 100644 --- a/src/api/java/appeng/api/implementations/items/IBiometricCard.java +++ b/src/api/java/appeng/api/implementations/items/IBiometricCard.java @@ -27,13 +27,12 @@ package appeng.api.implementations.items; import java.util.EnumSet; import net.minecraft.item.ItemStack; - -import com.mojang.authlib.GameProfile; - import appeng.api.config.SecurityPermissions; import appeng.api.features.IPlayerRegistry; import appeng.api.networking.security.ISecurityRegistry; +import com.mojang.authlib.GameProfile; + public interface IBiometricCard { diff --git a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java index 1c0f89bf..7caa8547 100644 --- a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java +++ b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java @@ -27,7 +27,6 @@ package appeng.api.implementations.items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.world.World; - import appeng.api.implementations.TransitionResult; import appeng.api.util.WorldCoord; diff --git a/src/api/java/appeng/api/implementations/items/IStorageCell.java b/src/api/java/appeng/api/implementations/items/IStorageCell.java index 814b830a..6ea4ec17 100644 --- a/src/api/java/appeng/api/implementations/items/IStorageCell.java +++ b/src/api/java/appeng/api/implementations/items/IStorageCell.java @@ -25,7 +25,6 @@ package appeng.api.implementations.items; import net.minecraft.item.ItemStack; - import appeng.api.storage.ICellWorkbenchItem; import appeng.api.storage.data.IAEItemStack; diff --git a/src/api/java/appeng/api/implementations/items/IUpgradeModule.java b/src/api/java/appeng/api/implementations/items/IUpgradeModule.java index 0b06911e..39526ca4 100644 --- a/src/api/java/appeng/api/implementations/items/IUpgradeModule.java +++ b/src/api/java/appeng/api/implementations/items/IUpgradeModule.java @@ -25,7 +25,6 @@ package appeng.api.implementations.items; import net.minecraft.item.ItemStack; - import appeng.api.config.Upgrades; diff --git a/src/api/java/appeng/api/implementations/parts/IPartCable.java b/src/api/java/appeng/api/implementations/parts/IPartCable.java index 0e4347aa..d1c1dd70 100644 --- a/src/api/java/appeng/api/implementations/parts/IPartCable.java +++ b/src/api/java/appeng/api/implementations/parts/IPartCable.java @@ -27,18 +27,18 @@ package appeng.api.implementations.parts; import java.util.EnumSet; import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.networking.IGridHost; import appeng.api.parts.BusSupport; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; /** - * Implemented on the {@link IPart}s cable objects that can be placed at {@link ForgeDirection}.UNKNOWN in + * Implemented on the {@link IPart}s cable objects that can be placed at {@link AEPartLocation}.UNKNOWN in * {@link IPartHost}s */ public interface IPartCable extends IPart, IGridHost @@ -75,7 +75,7 @@ public interface IPartCable extends IPart, IGridHost * * @param sides sides of cable */ - void setValidSides( EnumSet sides ); + void setValidSides( EnumSet sides ); /** * used to tests if a cable connects to neighbors visually. @@ -84,5 +84,5 @@ public interface IPartCable extends IPart, IGridHost * * @return true if this side is currently connects to an external block. */ - boolean isConnected( ForgeDirection side ); + boolean isConnected( EnumFacing side ); } diff --git a/src/api/java/appeng/api/implementations/tiles/IColorableTile.java b/src/api/java/appeng/api/implementations/tiles/IColorableTile.java index 365a3474..a6def302 100644 --- a/src/api/java/appeng/api/implementations/tiles/IColorableTile.java +++ b/src/api/java/appeng/api/implementations/tiles/IColorableTile.java @@ -25,8 +25,7 @@ package appeng.api.implementations.tiles; import net.minecraft.entity.player.EntityPlayer; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.util.AEColor; @@ -35,5 +34,5 @@ public interface IColorableTile AEColor getColor(); - boolean recolourBlock( ForgeDirection side, AEColor colour, EntityPlayer who ); + boolean recolourBlock( EnumFacing side, AEColor colour, EntityPlayer who ); } diff --git a/src/api/java/appeng/api/implementations/tiles/ICraftingMachine.java b/src/api/java/appeng/api/implementations/tiles/ICraftingMachine.java index 53ca92b2..d04af6d2 100644 --- a/src/api/java/appeng/api/implementations/tiles/ICraftingMachine.java +++ b/src/api/java/appeng/api/implementations/tiles/ICraftingMachine.java @@ -25,8 +25,7 @@ package appeng.api.implementations.tiles; import net.minecraft.inventory.InventoryCrafting; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.networking.crafting.ICraftingPatternDetails; @@ -42,7 +41,7 @@ public interface ICraftingMachine * * @return if it was accepted, all or nothing. */ - boolean pushPattern( ICraftingPatternDetails patternDetails, InventoryCrafting table, ForgeDirection ejectionDirection ); + boolean pushPattern( ICraftingPatternDetails patternDetails, InventoryCrafting table, EnumFacing ejectionDirection ); /** * check if the crafting machine is accepting pushes via pushPattern, if this is false, all calls to push will fail, diff --git a/src/api/java/appeng/api/implementations/tiles/ICrankable.java b/src/api/java/appeng/api/implementations/tiles/ICrankable.java index 787ec6d7..d2e7715a 100644 --- a/src/api/java/appeng/api/implementations/tiles/ICrankable.java +++ b/src/api/java/appeng/api/implementations/tiles/ICrankable.java @@ -24,7 +24,7 @@ package appeng.api.implementations.tiles; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; /** @@ -55,5 +55,5 @@ public interface ICrankable /** * @return true if the crank can attach on the given side. */ - boolean canCrankAttach( ForgeDirection directionToCrank ); + boolean canCrankAttach( EnumFacing directionToCrank ); } diff --git a/src/api/java/appeng/api/implementations/tiles/ITileStorageMonitorable.java b/src/api/java/appeng/api/implementations/tiles/ITileStorageMonitorable.java index 09419f10..54beeae2 100644 --- a/src/api/java/appeng/api/implementations/tiles/ITileStorageMonitorable.java +++ b/src/api/java/appeng/api/implementations/tiles/ITileStorageMonitorable.java @@ -24,8 +24,7 @@ package appeng.api.implementations.tiles; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IStorageMonitorable; @@ -36,5 +35,5 @@ import appeng.api.storage.IStorageMonitorable; public interface ITileStorageMonitorable { - IStorageMonitorable getMonitorable( ForgeDirection side, BaseActionSource src ); + IStorageMonitorable getMonitorable( EnumFacing side, BaseActionSource src ); } diff --git a/src/api/java/appeng/api/movable/IMovableHandler.java b/src/api/java/appeng/api/movable/IMovableHandler.java index 01c98f7b..8bb6d53d 100644 --- a/src/api/java/appeng/api/movable/IMovableHandler.java +++ b/src/api/java/appeng/api/movable/IMovableHandler.java @@ -25,6 +25,7 @@ package appeng.api.movable; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; @@ -61,9 +62,7 @@ public interface IMovableHandler * * @param tile to be moved tile * @param world world of tile - * @param x x coord of tile - * @param y y coord of tile - * @param z z coord of tile + * @param newPosition the new location */ - void moveTile( TileEntity tile, World world, int x, int y, int z ); + void moveTile( TileEntity tile, World world, BlockPos newPosition ); } \ No newline at end of file diff --git a/src/api/java/appeng/api/networking/IGridBlock.java b/src/api/java/appeng/api/networking/IGridBlock.java index 89bc8c69..e833f4e6 100644 --- a/src/api/java/appeng/api/networking/IGridBlock.java +++ b/src/api/java/appeng/api/networking/IGridBlock.java @@ -27,8 +27,7 @@ package appeng.api.networking; import java.util.EnumSet; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.parts.IPart; import appeng.api.util.AEColor; import appeng.api.util.DimensionalCoord; @@ -94,7 +93,7 @@ public interface IGridBlock * Determine which sides of the block can be connected too, only used when isWorldAccessible returns true, not used * for {@link IPart} implementations. */ - EnumSet getConnectableSides(); + EnumSet getConnectableSides(); /** * @return the IGridHost for the node, this will be an IGridPart or a TileEntity generally speaking. diff --git a/src/api/java/appeng/api/networking/IGridConnection.java b/src/api/java/appeng/api/networking/IGridConnection.java index 6958dedf..20cbcbe4 100644 --- a/src/api/java/appeng/api/networking/IGridConnection.java +++ b/src/api/java/appeng/api/networking/IGridConnection.java @@ -24,7 +24,7 @@ package appeng.api.networking; -import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.util.AEPartLocation; /** @@ -54,7 +54,7 @@ public interface IGridConnection * * @return the direction of the connection, only valid for in world connections. */ - ForgeDirection getDirection( IGridNode gridNode ); + AEPartLocation getDirection( IGridNode gridNode ); /** * by destroying a connection you may create new grids, and trigger un-expected behavior, you should only destroy diff --git a/src/api/java/appeng/api/networking/IGridHost.java b/src/api/java/appeng/api/networking/IGridHost.java index 3fea9285..e1035eb7 100644 --- a/src/api/java/appeng/api/networking/IGridHost.java +++ b/src/api/java/appeng/api/networking/IGridHost.java @@ -25,10 +25,9 @@ package appeng.api.networking; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.parts.IPart; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; /** @@ -49,7 +48,7 @@ public interface IGridHost * @return a new IGridNode, create these with * AEApi.INSTANCE().createGridNode( MyIGridBlock ) */ - IGridNode getGridNode( ForgeDirection dir ); + IGridNode getGridNode( AEPartLocation dir ); /** * Determines how cables render when they connect to this block. Priority is @@ -57,7 +56,7 @@ public interface IGridHost * * @param dir direction */ - AECableType getCableConnectionType( ForgeDirection dir ); + AECableType getCableConnectionType( AEPartLocation dir ); /** * break this host, its violating security rules, just break your block, or part. diff --git a/src/api/java/appeng/api/networking/IGridNode.java b/src/api/java/appeng/api/networking/IGridNode.java index a95f79c2..f1f566dc 100644 --- a/src/api/java/appeng/api/networking/IGridNode.java +++ b/src/api/java/appeng/api/networking/IGridNode.java @@ -28,9 +28,8 @@ import java.util.EnumSet; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.IAppEngApi; +import appeng.api.util.AEPartLocation; import appeng.api.util.IReadOnlyCollection; @@ -89,9 +88,9 @@ public interface IGridNode World getWorld(); /** - * @return a set of the connected sides, UNKNOWN represents an invisible connection + * @return a set of the connected sides, INTERNAL represents an invisible connection */ - EnumSet getConnectedSides(); + EnumSet getConnectedSides(); /** * lets you iterate a nodes connections diff --git a/src/api/java/appeng/api/networking/crafting/ICraftingGrid.java b/src/api/java/appeng/api/networking/crafting/ICraftingGrid.java index 74fec564..a5543c6e 100644 --- a/src/api/java/appeng/api/networking/crafting/ICraftingGrid.java +++ b/src/api/java/appeng/api/networking/crafting/ICraftingGrid.java @@ -27,15 +27,14 @@ package appeng.api.networking.crafting; import java.util.concurrent.Future; import net.minecraft.world.World; - -import com.google.common.collect.ImmutableCollection; -import com.google.common.collect.ImmutableSet; - import appeng.api.networking.IGrid; import appeng.api.networking.IGridCache; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.data.IAEItemStack; +import com.google.common.collect.ImmutableCollection; +import com.google.common.collect.ImmutableSet; + public interface ICraftingGrid extends IGridCache { diff --git a/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java b/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java index 7a4b2419..128a67ee 100644 --- a/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java +++ b/src/api/java/appeng/api/networking/crafting/ICraftingPatternDetails.java @@ -27,7 +27,6 @@ package appeng.api.networking.crafting; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.world.World; - import appeng.api.implementations.ICraftingPatternItem; import appeng.api.storage.data.IAEItemStack; diff --git a/src/api/java/appeng/api/networking/crafting/ICraftingRequester.java b/src/api/java/appeng/api/networking/crafting/ICraftingRequester.java index 171ff348..665ee2b5 100644 --- a/src/api/java/appeng/api/networking/crafting/ICraftingRequester.java +++ b/src/api/java/appeng/api/networking/crafting/ICraftingRequester.java @@ -24,12 +24,12 @@ package appeng.api.networking.crafting; -import com.google.common.collect.ImmutableSet; - import appeng.api.config.Actionable; import appeng.api.networking.security.IActionHost; import appeng.api.storage.data.IAEItemStack; +import com.google.common.collect.ImmutableSet; + public interface ICraftingRequester extends IActionHost { diff --git a/src/api/java/appeng/api/networking/security/ISecurityGrid.java b/src/api/java/appeng/api/networking/security/ISecurityGrid.java index 3a54590c..4fdb300c 100644 --- a/src/api/java/appeng/api/networking/security/ISecurityGrid.java +++ b/src/api/java/appeng/api/networking/security/ISecurityGrid.java @@ -25,7 +25,6 @@ package appeng.api.networking.security; import net.minecraft.entity.player.EntityPlayer; - import appeng.api.config.SecurityPermissions; import appeng.api.networking.IGridCache; diff --git a/src/api/java/appeng/api/package-info.java b/src/api/java/appeng/api/package-info.java index a49bfd44..7bab7628 100644 --- a/src/api/java/appeng/api/package-info.java +++ b/src/api/java/appeng/api/package-info.java @@ -24,5 +24,5 @@ @API( apiVersion = "rv2", owner = "appliedenergistics2", provides = "appliedenergistics2|API" ) package appeng.api; -import cpw.mods.fml.common.API; +import net.minecraftforge.fml.common.API; diff --git a/src/api/java/appeng/api/parts/IFacadeContainer.java b/src/api/java/appeng/api/parts/IFacadeContainer.java index 386e5f7b..5cb8603e 100644 --- a/src/api/java/appeng/api/parts/IFacadeContainer.java +++ b/src/api/java/appeng/api/parts/IFacadeContainer.java @@ -24,12 +24,12 @@ package appeng.api.parts; -import java.io.IOException; - import io.netty.buffer.ByteBuf; +import java.io.IOException; + import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.util.AEPartLocation; /** @@ -50,12 +50,12 @@ public interface IFacadeContainer /** * Removed the facade on the given side, or does nothing. */ - void removeFacade( IPartHost host, ForgeDirection side ); + void removeFacade( IPartHost host, AEPartLocation side ); /** * @return the {@link IFacadePart} for a given side, or null. */ - IFacadePart getFacade( ForgeDirection s ); + IFacadePart getFacade( AEPartLocation s ); /** * rotate the facades left. diff --git a/src/api/java/appeng/api/parts/IFacadePart.java b/src/api/java/appeng/api/parts/IFacadePart.java index 9d70b6aa..c1c92631 100644 --- a/src/api/java/appeng/api/parts/IFacadePart.java +++ b/src/api/java/appeng/api/parts/IFacadePart.java @@ -24,15 +24,15 @@ package appeng.api.parts; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; /** @@ -69,7 +69,7 @@ public interface IFacadePart * @param renderStilt if to render stilt */ @SideOnly( Side.CLIENT ) - void renderStatic( int x, int y, int z, IPartRenderHelper instance, RenderBlocks renderer, IFacadeContainer fc, AxisAlignedBB busBounds, boolean renderStilt ); + void renderStatic( BlockPos pos, IPartRenderHelper instance, IRenderHelper renderer, IFacadeContainer fc, AxisAlignedBB busBounds, boolean renderStilt ); /** * render the part in inventory. @@ -78,12 +78,12 @@ public interface IFacadePart * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderInventory( IPartRenderHelper instance, RenderBlocks renderer ); + void renderInventory( IPartRenderHelper instance, IRenderHelper renderer ); /** * @return side the facade is in */ - ForgeDirection getSide(); + AEPartLocation getSide(); /** * @return the box for the face of the facade diff --git a/src/api/java/appeng/api/parts/IPart.java b/src/api/java/appeng/api/parts/IPart.java index add472c8..c2154f64 100644 --- a/src/api/java/appeng/api/parts/IPart.java +++ b/src/api/java/appeng/api/parts/IPart.java @@ -24,28 +24,27 @@ package appeng.api.parts; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.List; import java.util.Random; -import io.netty.buffer.ByteBuf; - -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.networking.IGridNode; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; public interface IPart extends IBoxProvider @@ -74,7 +73,7 @@ public interface IPart extends IBoxProvider * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ); + void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ); /** * render world renderer ( preferred ) @@ -88,7 +87,7 @@ public interface IPart extends IBoxProvider * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ); + void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ); /** * render TESR. @@ -102,14 +101,14 @@ public interface IPart extends IBoxProvider * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderDynamic( double x, double y, double z, IPartRenderHelper rh, RenderBlocks renderer ); + void renderDynamic( double x, double y, double z, IPartRenderHelper rh, IRenderHelper renderer ); /** * @return the Block sheet icon used when rendering the breaking particles, return null to use the ItemStack * texture. */ @SideOnly( Side.CLIENT ) - IIcon getBreakingTexture(); + TextureAtlasSprite getBreakingTexture(IRenderHelper renderer); /** * return true only if your part require dynamic rendering, must be consistent. @@ -233,7 +232,7 @@ public interface IPart extends IBoxProvider * @param host part side * @param tile tile entity of part */ - void setPartHostInfo( ForgeDirection side, IPartHost host, TileEntity tile ); + void setPartHostInfo( AEPartLocation side, IPartHost host, TileEntity tile ); /** * Called when you right click the part, very similar to Block.onActivateBlock @@ -273,12 +272,10 @@ public interface IPart extends IBoxProvider * same as Block.randomDisplayTick, for but parts. * * @param world world of block - * @param x x coord of block - * @param y y coord of block - * @param z z coord of block + * @param pos location of block * @param r random */ - void randomDisplayTick( World world, int x, int y, int z, Random r ); + void randomDisplayTick( World world, BlockPos pos, Random r ); /** * Called when placed in the world by a player, this happens before addWorld. @@ -287,7 +284,7 @@ public interface IPart extends IBoxProvider * @param held held item * @param side placing side */ - void onPlacement( EntityPlayer player, ItemStack held, ForgeDirection side ); + void onPlacement( EntityPlayer player, ItemStack held, AEPartLocation side ); /** * Used to determine which parts can be placed on what cables. diff --git a/src/api/java/appeng/api/parts/IPartCollisionHelper.java b/src/api/java/appeng/api/parts/IPartCollisionHelper.java index f790a5d5..6d428fe9 100644 --- a/src/api/java/appeng/api/parts/IPartCollisionHelper.java +++ b/src/api/java/appeng/api/parts/IPartCollisionHelper.java @@ -24,7 +24,7 @@ package appeng.api.parts; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; public interface IPartCollisionHelper @@ -47,17 +47,17 @@ public interface IPartCollisionHelper /** * @return east in world space. */ - ForgeDirection getWorldX(); + EnumFacing getWorldX(); /** * @return up in world space. */ - ForgeDirection getWorldY(); + EnumFacing getWorldY(); /** * @return forward in world space. */ - ForgeDirection getWorldZ(); + EnumFacing getWorldZ(); /** * @return true if this test is to get the BB Collision information. diff --git a/src/api/java/appeng/api/parts/IPartHelper.java b/src/api/java/appeng/api/parts/IPartHelper.java index 2487d8c5..0798fb61 100644 --- a/src/api/java/appeng/api/parts/IPartHelper.java +++ b/src/api/java/appeng/api/parts/IPartHelper.java @@ -26,6 +26,8 @@ package appeng.api.parts; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; @@ -69,16 +71,14 @@ public interface IPartHelper * use in use item, to try and place a IBusItem * * @param is ItemStack of an item which implements {@link IPartItem} - * @param x x pos of part - * @param y y pos of part - * @param z z pos of part + * @param BlockPos pos of part * @param side side which the part should be on * @param player player placing part * @param world part in world * * @return true if placing was successful */ - boolean placeBus( ItemStack is, int x, int y, int z, int side, EntityPlayer player, World world ); + boolean placeBus( ItemStack is, BlockPos pos, EnumFacing side, EntityPlayer player, World world ); /** * @return the render mode diff --git a/src/api/java/appeng/api/parts/IPartHost.java b/src/api/java/appeng/api/parts/IPartHost.java index 4242dc81..0b0bd852 100644 --- a/src/api/java/appeng/api/parts/IPartHost.java +++ b/src/api/java/appeng/api/parts/IPartHost.java @@ -29,10 +29,10 @@ import java.util.Set; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; @@ -50,7 +50,7 @@ public interface IPartHost IFacadeContainer getFacadeContainer(); /** - * Test if you can add a part to the specified side of the Part Host, {@link ForgeDirection}.UNKNOWN is used to + * Test if you can add a part to the specified side of the Part Host, {@link AEPartLocation}.UNKNOWN is used to * represent the cable in the middle. * * @param part to be added part @@ -58,7 +58,7 @@ public interface IPartHost * * @return returns false if the part cannot be added. */ - boolean canAddPart( ItemStack part, ForgeDirection side ); + boolean canAddPart( ItemStack part, AEPartLocation side ); /** * try to add a new part to the specified side, returns false if it failed to be added. @@ -68,19 +68,28 @@ public interface IPartHost * @param owner with owning player * * @return null if the item failed to add, the side it was placed on other wise ( may different for cables, - * {@link ForgeDirection}.UNKNOWN ) + * {@link AEPartLocation}.UNKNOWN ) */ - ForgeDirection addPart( ItemStack is, ForgeDirection side, EntityPlayer owner ); + AEPartLocation addPart( ItemStack is, AEPartLocation side, EntityPlayer owner ); /** - * Get part by side ( center is {@link ForgeDirection}.UNKNOWN ) + * Get part by side ( center is {@link AEPartLocation}.UNKNOWN ) * * @param side side of part * * @return the part located on the specified side, or null if there is no part. */ - IPart getPart( ForgeDirection side ); + IPart getPart( AEPartLocation side ); + /** + * Get part by side, this method cannot aquire the center part, you must use the other varient of getPart. + * + * @param side side of part + * + * @return the part located on the specified side, or null if there is no part. + */ + IPart getPart( EnumFacing side ); + /** * removes the part on the side, this doesn't drop it or anything, if you don't do something with it, its just * "gone" and its never coming back; think about it. @@ -90,7 +99,7 @@ public interface IPartHost * @param side side of part * @param suppressUpdate - used if you need to replace a part's INSTANCE, without really removing it first. */ - void removePart( ForgeDirection side, boolean suppressUpdate ); + void removePart( AEPartLocation side, boolean suppressUpdate ); /** * something changed, might want to send a packet to clients to update state. @@ -123,7 +132,7 @@ public interface IPartHost * * @return returns if microblocks are blocking this cable path. */ - boolean isBlocked( ForgeDirection side ); + boolean isBlocked( EnumFacing side ); /** * finds the part located at the position ( pos must be relative, not global ) @@ -151,7 +160,7 @@ public interface IPartHost * * @return true of the part host is receiving redstone from an external source. */ - boolean hasRedstone( ForgeDirection side ); + boolean hasRedstone( AEPartLocation side ); /** * returns false if this block contains any parts or facades, true other wise. @@ -179,4 +188,5 @@ public interface IPartHost * @return true if tile is in world */ boolean isInWorld(); + } \ No newline at end of file diff --git a/src/api/java/appeng/api/parts/IPartRenderHelper.java b/src/api/java/appeng/api/parts/IPartRenderHelper.java index b02e5456..fc91374b 100644 --- a/src/api/java/appeng/api/parts/IPartRenderHelper.java +++ b/src/api/java/appeng/api/parts/IPartRenderHelper.java @@ -27,12 +27,12 @@ package appeng.api.parts; import java.util.EnumSet; import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.client.render.IRenderHelper; +import appeng.client.texture.IAESprite; public interface IPartRenderHelper @@ -57,31 +57,27 @@ public interface IPartRenderHelper * * render a single face. * - * @param x x coord of part - * @param y y coord of part - * @param z z coord of part + * @param pos POSITION of part * @param ico icon of part * @param face direction its facing * @param renderer renderer of part */ @SideOnly( Side.CLIENT ) - void renderFace( int x, int y, int z, IIcon ico, ForgeDirection face, RenderBlocks renderer ); + void renderFace( BlockPos pos, IAESprite ico, EnumFacing face, IRenderHelper renderer ); /** * static renderer * * render a box with a cut out box in the center. * - * @param x x pos of part - * @param y y pos of part - * @param z z pos of part + * @param pos pos of part * @param ico icon of part * @param face face of part * @param edgeThickness thickness of the edge * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderFaceCutout( int x, int y, int z, IIcon ico, ForgeDirection face, float edgeThickness, RenderBlocks renderer ); + void renderFaceCutout( BlockPos pos, IAESprite ico, EnumFacing face, float edgeThickness, IRenderHelper renderer ); /** * static renderer @@ -94,17 +90,17 @@ public interface IPartRenderHelper * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderBlock( int x, int y, int z, RenderBlocks renderer ); + void renderBlock( BlockPos pos, IRenderHelper renderer ); /** * render a single face in inventory renderer. * - * @param IIcon icon of part + * @param TextureAtlasSprite icon of part * @param direction face of part * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderInventoryFace( IIcon IIcon, ForgeDirection direction, RenderBlocks renderer ); + void renderInventoryFace( IAESprite IIcon, EnumFacing direction, IRenderHelper renderer ); /** * render a box in inventory renderer. @@ -112,7 +108,7 @@ public interface IPartRenderHelper * @param renderer renderer */ @SideOnly( Side.CLIENT ) - void renderInventoryBox( RenderBlocks renderer ); + void renderInventoryBox( IRenderHelper renderer ); /** * inventory, and static renderer. @@ -126,16 +122,16 @@ public interface IPartRenderHelper * @param west west face * @param east east face */ - void setTexture( IIcon down, IIcon up, IIcon north, IIcon south, IIcon west, IIcon east ); + void setTexture( IAESprite down, IAESprite up, IAESprite north, IAESprite south, IAESprite west, IAESprite east ); /** * inventory, and static renderer. * - * set all sides to a single IIcon. + * set all sides to a single TextureAtlasSprite. * * @param ico to be set icon */ - void setTexture( IIcon ico ); + void setTexture( IAESprite ico ); /** * configure the color multiplier for the inventory renderer. @@ -152,30 +148,17 @@ public interface IPartRenderHelper /** * @return the east vector in world directions, rather then renderer */ - ForgeDirection getWorldX(); + EnumFacing getWorldX(); /** * @return the up vector in world directions, rather then renderer. */ - ForgeDirection getWorldY(); + EnumFacing getWorldY(); /** * @return the forward vector in world directions, rather then renderer. */ - ForgeDirection getWorldZ(); - - /** - * Pre-Calculates default lighting for the part, call this before using the render helper to render anything else to - * get simplified, but faster lighting for more then one block. - * - * Only worth it if you render more then 1 block. - */ - ISimplifiedBundle useSimplifiedRendering( int x, int y, int z, IBoxProvider p, ISimplifiedBundle sim ); - - /** - * disables, useSimplifiedRendering. - */ - void normalRendering(); + EnumFacing getWorldZ(); /** * render a block using the current renderer state. @@ -185,7 +168,7 @@ public interface IPartRenderHelper * @param z z pos of part * @param renderer renderer of part */ - void renderBlockCurrentBounds( int x, int y, int z, RenderBlocks renderer ); + void renderBlockCurrentBounds( BlockPos pos, IRenderHelper renderer ); /** * allow you to enable your part to render during the alpha pass or the standard pass. @@ -199,5 +182,5 @@ public interface IPartRenderHelper * * @param complementOf sides to render */ - void setFacesToRender( EnumSet complementOf ); + void setFacesToRender( EnumSet complementOf ); } \ No newline at end of file diff --git a/src/api/java/appeng/api/parts/ISimplifiedBundle.java b/src/api/java/appeng/api/parts/ISimplifiedBundle.java deleted file mode 100644 index ad16791f..00000000 --- a/src/api/java/appeng/api/parts/ISimplifiedBundle.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2013 AlgorithmX2 - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - */ - -package appeng.api.parts; - - -public interface ISimplifiedBundle -{ - -} diff --git a/src/api/java/appeng/api/parts/LayerBase.java b/src/api/java/appeng/api/parts/LayerBase.java index 91ca0f00..d763632d 100644 --- a/src/api/java/appeng/api/parts/LayerBase.java +++ b/src/api/java/appeng/api/parts/LayerBase.java @@ -27,7 +27,8 @@ package appeng.api.parts; import java.util.Set; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; +import appeng.api.util.AEPartLocation; /** @@ -46,7 +47,21 @@ public abstract class LayerBase extends TileEntity // implements IPartHost * * @return the part for the requested side. */ - public IPart getPart( ForgeDirection side ) + public IPart getPart( AEPartLocation side ) + { + return null; // place holder. + } + + /** + * Grants access for the layer to the parts of the host. + * + * This Method looks silly, that is because its not used at runtime, a real implementation will be used instead. + * + * @param side side of part + * + * @return the part for the requested side. + */ + public IPart getPart( EnumFacing side ) { return null; // place holder. } diff --git a/src/api/java/appeng/api/parts/SelectedPart.java b/src/api/java/appeng/api/parts/SelectedPart.java index c5ec7f2f..253d213a 100644 --- a/src/api/java/appeng/api/parts/SelectedPart.java +++ b/src/api/java/appeng/api/parts/SelectedPart.java @@ -24,7 +24,7 @@ package appeng.api.parts; -import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.util.AEPartLocation; /** @@ -44,25 +44,25 @@ public class SelectedPart public final IFacadePart facade; /** - * side the part is mounted too, or {@link ForgeDirection}.UNKNOWN for cables. + * side the part is mounted too, or {@link AEPartLocation}.UNKNOWN for cables. */ - public final ForgeDirection side; + public final AEPartLocation side; public SelectedPart() { this.part = null; this.facade = null; - this.side = ForgeDirection.UNKNOWN; + this.side = AEPartLocation.INTERNAL; } - public SelectedPart( IPart part, ForgeDirection side ) + public SelectedPart( IPart part, AEPartLocation side ) { this.part = part; this.facade = null; this.side = side; } - public SelectedPart( IFacadePart facade, ForgeDirection side ) + public SelectedPart( IFacadePart facade, AEPartLocation side ) { this.part = null; this.facade = facade; diff --git a/src/api/java/appeng/api/recipes/IIngredient.java b/src/api/java/appeng/api/recipes/IIngredient.java index 2878022d..f25d2786 100644 --- a/src/api/java/appeng/api/recipes/IIngredient.java +++ b/src/api/java/appeng/api/recipes/IIngredient.java @@ -25,7 +25,6 @@ package appeng.api.recipes; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; diff --git a/src/api/java/appeng/api/recipes/IRecipeLoader.java b/src/api/java/appeng/api/recipes/IRecipeLoader.java index 9684cb06..277ef988 100644 --- a/src/api/java/appeng/api/recipes/IRecipeLoader.java +++ b/src/api/java/appeng/api/recipes/IRecipeLoader.java @@ -25,6 +25,7 @@ package appeng.api.recipes; import java.io.BufferedReader; + import javax.annotation.Nonnull; diff --git a/src/api/java/appeng/api/storage/ICellHandler.java b/src/api/java/appeng/api/storage/ICellHandler.java index e2207c9f..0ada36a3 100644 --- a/src/api/java/appeng/api/storage/ICellHandler.java +++ b/src/api/java/appeng/api/storage/ICellHandler.java @@ -26,12 +26,10 @@ package appeng.api.storage; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.implementations.tiles.IChestOrDrive; +import appeng.client.texture.IAESprite; /** @@ -68,7 +66,7 @@ public interface ICellHandler * assets for examples. */ @SideOnly( Side.CLIENT ) - IIcon getTopTexture_Light(); + IAESprite getTopTexture_Light(); /** * @return the ME Chest texture for medium pixels this storage cell type, should be 10x10 with 3px of transparent @@ -76,7 +74,7 @@ public interface ICellHandler * assets for examples. */ @SideOnly( Side.CLIENT ) - IIcon getTopTexture_Medium(); + IAESprite getTopTexture_Medium(); /** * @return the ME Chest texture for dark pixels this storage cell type, should be 10x10 with 3px of transparent @@ -84,7 +82,7 @@ public interface ICellHandler * assets for examples. */ @SideOnly( Side.CLIENT ) - IIcon getTopTexture_Dark(); + IAESprite getTopTexture_Dark(); /** * Called when the storage cell is planed in an ME Chest and the user tries to open the terminal side, if your item diff --git a/src/api/java/appeng/api/storage/ICellInventory.java b/src/api/java/appeng/api/storage/ICellInventory.java index 13494b8d..08264973 100644 --- a/src/api/java/appeng/api/storage/ICellInventory.java +++ b/src/api/java/appeng/api/storage/ICellInventory.java @@ -26,7 +26,6 @@ package appeng.api.storage; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.config.FuzzyMode; import appeng.api.storage.data.IAEItemStack; diff --git a/src/api/java/appeng/api/storage/ICellRegistry.java b/src/api/java/appeng/api/storage/ICellRegistry.java index 406bfd22..029b8ba3 100644 --- a/src/api/java/appeng/api/storage/ICellRegistry.java +++ b/src/api/java/appeng/api/storage/ICellRegistry.java @@ -25,7 +25,6 @@ package appeng.api.storage; import net.minecraft.item.ItemStack; - import appeng.api.IAppEngApi; diff --git a/src/api/java/appeng/api/storage/ICellWorkbenchItem.java b/src/api/java/appeng/api/storage/ICellWorkbenchItem.java index 668095c6..d8c1efdf 100644 --- a/src/api/java/appeng/api/storage/ICellWorkbenchItem.java +++ b/src/api/java/appeng/api/storage/ICellWorkbenchItem.java @@ -26,7 +26,6 @@ package appeng.api.storage; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.config.FuzzyMode; diff --git a/src/api/java/appeng/api/storage/IExternalStorageHandler.java b/src/api/java/appeng/api/storage/IExternalStorageHandler.java index 484864a3..d08f5661 100644 --- a/src/api/java/appeng/api/storage/IExternalStorageHandler.java +++ b/src/api/java/appeng/api/storage/IExternalStorageHandler.java @@ -25,8 +25,7 @@ package appeng.api.storage; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.networking.security.BaseActionSource; @@ -45,7 +44,7 @@ public interface IExternalStorageHandler * * @return true, if it can get a handler via getInventory */ - boolean canHandle( TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource mySrc ); + boolean canHandle( TileEntity te, EnumFacing d, StorageChannel channel, BaseActionSource mySrc ); /** * if this can handle the given inventory, return the a IMEInventory implementing class for it, if not return null @@ -60,5 +59,5 @@ public interface IExternalStorageHandler * * @return The Handler for the inventory */ - IMEInventory getInventory( TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src ); + IMEInventory getInventory( TileEntity te, EnumFacing d, StorageChannel channel, BaseActionSource src ); } \ No newline at end of file diff --git a/src/api/java/appeng/api/storage/IExternalStorageRegistry.java b/src/api/java/appeng/api/storage/IExternalStorageRegistry.java index 127c7b5a..1b355ae0 100644 --- a/src/api/java/appeng/api/storage/IExternalStorageRegistry.java +++ b/src/api/java/appeng/api/storage/IExternalStorageRegistry.java @@ -25,8 +25,7 @@ package appeng.api.storage; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.IAppEngApi; import appeng.api.networking.security.BaseActionSource; @@ -54,5 +53,5 @@ public interface IExternalStorageRegistry * * @return the handler for a given tile / forge direction */ - IExternalStorageHandler getHandler( TileEntity te, ForgeDirection opposite, StorageChannel channel, BaseActionSource mySrc ); + IExternalStorageHandler getHandler( TileEntity te, EnumFacing opposite, StorageChannel channel, BaseActionSource mySrc ); } \ No newline at end of file diff --git a/src/api/java/appeng/api/storage/IStorageHelper.java b/src/api/java/appeng/api/storage/IStorageHelper.java index c75eac22..fb51473d 100644 --- a/src/api/java/appeng/api/storage/IStorageHelper.java +++ b/src/api/java/appeng/api/storage/IStorageHelper.java @@ -24,14 +24,13 @@ package appeng.api.storage; -import java.io.IOException; - import io.netty.buffer.ByteBuf; +import java.io.IOException; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; - import appeng.api.networking.crafting.ICraftingLink; import appeng.api.networking.crafting.ICraftingRequester; import appeng.api.networking.energy.IEnergySource; diff --git a/src/api/java/appeng/api/storage/MEMonitorHandler.java b/src/api/java/appeng/api/storage/MEMonitorHandler.java index fb14960a..10ac963f 100644 --- a/src/api/java/appeng/api/storage/MEMonitorHandler.java +++ b/src/api/java/appeng/api/storage/MEMonitorHandler.java @@ -28,14 +28,14 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map.Entry; -import com.google.common.collect.ImmutableList; - import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; +import com.google.common.collect.ImmutableList; + /** * Common implementation of a simple class that monitors injection/extraction of a inventory to send events to a list of @@ -55,13 +55,13 @@ public class MEMonitorHandler implements IMEMonitor< public MEMonitorHandler( IMEInventoryHandler t ) { this.internalHandler = t; - this.cachedList = (IItemList) t.getChannel().createList(); + this.cachedList = t.getChannel().createList(); } public MEMonitorHandler( IMEInventoryHandler t, StorageChannel chan ) { this.internalHandler = t; - this.cachedList = (IItemList) chan.createList(); + this.cachedList = chan.createList(); } @Override diff --git a/src/api/java/appeng/api/storage/data/IAEStack.java b/src/api/java/appeng/api/storage/data/IAEStack.java index e1db8a0f..833c099f 100644 --- a/src/api/java/appeng/api/storage/data/IAEStack.java +++ b/src/api/java/appeng/api/storage/data/IAEStack.java @@ -24,12 +24,11 @@ package appeng.api.storage.data; -import java.io.IOException; - import io.netty.buffer.ByteBuf; -import net.minecraft.nbt.NBTTagCompound; +import java.io.IOException; +import net.minecraft.nbt.NBTTagCompound; import appeng.api.config.FuzzyMode; import appeng.api.storage.StorageChannel; diff --git a/src/api/java/appeng/api/storage/data/IAETagCompound.java b/src/api/java/appeng/api/storage/data/IAETagCompound.java index bd4b57b8..05b9cf79 100644 --- a/src/api/java/appeng/api/storage/data/IAETagCompound.java +++ b/src/api/java/appeng/api/storage/data/IAETagCompound.java @@ -25,7 +25,6 @@ package appeng.api.storage.data; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.features.IItemComparison; diff --git a/src/api/java/appeng/api/util/AEAxisAlignedBB.java b/src/api/java/appeng/api/util/AEAxisAlignedBB.java new file mode 100644 index 00000000..fb55e6ae --- /dev/null +++ b/src/api/java/appeng/api/util/AEAxisAlignedBB.java @@ -0,0 +1,53 @@ +package appeng.api.util; + +import net.minecraft.util.AxisAlignedBB; + +/** + * Mutable stand in for Axis Aligned BB, this was used to prevent GC Thrashing.. Related code could also be re-written. + */ +public class AEAxisAlignedBB +{ + public double minX; + public double minY; + public double minZ; + public double maxX; + public double maxY; + public double maxZ; + + public AxisAlignedBB getBoundingBox() + { + return AxisAlignedBB.fromBounds( minX, minY, minZ, maxX, maxY, maxZ ); + } + + public AEAxisAlignedBB(double a,double b, double c, double d, double e, double f) + { + minX=a; + minY=b; + minZ=c; + maxX=d; + maxY=e; + maxZ=f; + } + + public static AEAxisAlignedBB fromBounds( + double a, + double b, + double c, + double d, + double e, + double f ) + { + return new AEAxisAlignedBB(a,b,c,d,e,f); + } + + public static AEAxisAlignedBB fromBounds( + AxisAlignedBB bb ) + { + return new AEAxisAlignedBB( bb.minX, + bb.minY, + bb.minZ, + bb.maxX, + bb.maxY, + bb.maxZ ); + } +} diff --git a/src/api/java/appeng/api/util/AEColor.java b/src/api/java/appeng/api/util/AEColor.java index 61c7f9c8..873c8513 100644 --- a/src/api/java/appeng/api/util/AEColor.java +++ b/src/api/java/appeng/api/util/AEColor.java @@ -27,6 +27,7 @@ package appeng.api.util; import java.util.Arrays; import java.util.List; +import net.minecraft.item.EnumDyeColor; import net.minecraft.util.StatCollector; @@ -38,39 +39,39 @@ import net.minecraft.util.StatCollector; public enum AEColor { - White( "gui.appliedenergistics2.White", 0xBEBEBE, 0xDBDBDB, 0xFAFAFA ), + White( "gui.appliedenergistics2.White", EnumDyeColor.WHITE, 0xBEBEBE, 0xDBDBDB, 0xFAFAFA ), - Orange( "gui.appliedenergistics2.Orange", 0xF99739, 0xFAAE44, 0xF4DEC3 ), + Orange( "gui.appliedenergistics2.Orange", EnumDyeColor.ORANGE, 0xF99739, 0xFAAE44, 0xF4DEC3 ), - Magenta( "gui.appliedenergistics2.Magenta", 0x821E82, 0xB82AB8, 0xC598C8 ), + Magenta( "gui.appliedenergistics2.Magenta", EnumDyeColor.MAGENTA, 0x821E82, 0xB82AB8, 0xC598C8 ), - LightBlue( "gui.appliedenergistics2.LightBlue", 0x628DCB, 0x82ACE7, 0xD8F6FF ), + LightBlue( "gui.appliedenergistics2.LightBlue", EnumDyeColor.LIGHT_BLUE, 0x628DCB, 0x82ACE7, 0xD8F6FF ), - Yellow( "gui.appliedenergistics2.Yellow", 0xFFF7AA, 0xF8FF4A, 0xFFFFE8 ), + Yellow( "gui.appliedenergistics2.Yellow", EnumDyeColor.YELLOW, 0xFFF7AA, 0xF8FF4A, 0xFFFFE8 ), - Lime( "gui.appliedenergistics2.Lime", 0x7CFF4A, 0xBBFF51, 0xE7F7D7 ), + Lime( "gui.appliedenergistics2.Lime", EnumDyeColor.LIME, 0x7CFF4A, 0xBBFF51, 0xE7F7D7 ), - Pink( "gui.appliedenergistics2.Pink", 0xDC8DB5, 0xF8B5D7, 0xF7DEEB ), + Pink( "gui.appliedenergistics2.Pink", EnumDyeColor.PINK, 0xDC8DB5, 0xF8B5D7, 0xF7DEEB ), - Gray( "gui.appliedenergistics2.Gray", 0x7C7C7C, 0xA0A0A0, 0xC9C9C9 ), + Gray( "gui.appliedenergistics2.Gray", EnumDyeColor.GRAY, 0x7C7C7C, 0xA0A0A0, 0xC9C9C9 ), - LightGray( "gui.appliedenergistics2.LightGray", 0x9D9D9D, 0xCDCDCD, 0xEFEFEF ), + LightGray( "gui.appliedenergistics2.LightGray", EnumDyeColor.SILVER, 0x9D9D9D, 0xCDCDCD, 0xEFEFEF ), - Cyan( "gui.appliedenergistics2.Cyan", 0x2F9BA5, 0x51AAC6, 0xAEDDF4 ), + Cyan( "gui.appliedenergistics2.Cyan", EnumDyeColor.CYAN, 0x2F9BA5, 0x51AAC6, 0xAEDDF4 ), - Purple( "gui.appliedenergistics2.Purple", 0x8230B2, 0xA453CE, 0xC7A3CC ), + Purple( "gui.appliedenergistics2.Purple", EnumDyeColor.PURPLE, 0x8230B2, 0xA453CE, 0xC7A3CC ), - Blue( "gui.appliedenergistics2.Blue", 0x2D29A0, 0x514AFF, 0xDDE6FF ), + Blue( "gui.appliedenergistics2.Blue", EnumDyeColor.BLUE, 0x2D29A0, 0x514AFF, 0xDDE6FF ), - Brown( "gui.appliedenergistics2.Brown", 0x724E35, 0xB7967F, 0xE0D2C8 ), + Brown( "gui.appliedenergistics2.Brown", EnumDyeColor.BROWN, 0x724E35, 0xB7967F, 0xE0D2C8 ), - Green( "gui.appliedenergistics2.Green", 0x45A021, 0x60E32E, 0xE3F2E3 ), + Green( "gui.appliedenergistics2.Green", EnumDyeColor.GREEN, 0x45A021, 0x60E32E, 0xE3F2E3 ), - Red( "gui.appliedenergistics2.Red", 0xA50029, 0xFF003C, 0xFFE6ED ), + Red( "gui.appliedenergistics2.Red", EnumDyeColor.RED, 0xA50029, 0xFF003C, 0xFFE6ED ), - Black( "gui.appliedenergistics2.Black", 0x2B2B2B, 0x565656, 0x848484 ), + Black( "gui.appliedenergistics2.Black", EnumDyeColor.BLACK, 0x2B2B2B, 0x565656, 0x848484 ), - Transparent( "gui.appliedenergistics2.Fluix", 0x1B2344, 0x895CA8, 0xD7BBEC ); + Transparent( "gui.appliedenergistics2.Fluix", null, 0x1B2344, 0x895CA8, 0xD7BBEC ); public static final List VALID_COLORS = Arrays.asList( White, Orange, Magenta, LightBlue, Yellow, Lime, Pink, Gray, LightGray, Cyan, Purple, Blue, Brown, Green, Red, Black ); @@ -94,12 +95,18 @@ public enum AEColor */ public final int whiteVariant; - AEColor( String unlocalizedName, int blackHex, int medHex, int whiteHex ) + /** + * Vanilla Dye Equivilient + */ + public final EnumDyeColor dye; + + AEColor( String unlocalizedName, EnumDyeColor dye, int blackHex, int medHex, int whiteHex ) { this.unlocalizedName = unlocalizedName; this.blackVariant = blackHex; this.mediumVariant = medHex; this.whiteVariant = whiteHex; + this.dye = dye; } /** diff --git a/src/api/java/appeng/api/util/AEItemDefinition.java b/src/api/java/appeng/api/util/AEItemDefinition.java index 5ea619e4..e47bcaed 100644 --- a/src/api/java/appeng/api/util/AEItemDefinition.java +++ b/src/api/java/appeng/api/util/AEItemDefinition.java @@ -30,8 +30,8 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; - import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IComparableDefinition; import appeng.api.definitions.IItemDefinition; @@ -98,14 +98,12 @@ public interface AEItemDefinition * Compare Block with world. * * @param world world of block - * @param x x pos of block - * @param y y pos of block - * @param z z pos of block + * @param pos in world. * * @return if the block is placed in the world at the specific location. * * @deprecated use {@link IComparableDefinition#isSameAs(IBlockAccess, int, int, int)} } */ @Deprecated - boolean sameAsBlock( IBlockAccess world, int x, int y, int z ); + boolean sameAsBlock( IBlockAccess world, BlockPos pos ); } diff --git a/src/api/java/appeng/api/util/AEPartLocation.java b/src/api/java/appeng/api/util/AEPartLocation.java new file mode 100644 index 00000000..d25a9345 --- /dev/null +++ b/src/api/java/appeng/api/util/AEPartLocation.java @@ -0,0 +1,100 @@ +package appeng.api.util; + +import net.minecraft.util.EnumFacing; + +/** + * Stand in for previous Forge Direction, Several uses of this class are simply legacy where as some uses of this class are intended. + */ +public enum AEPartLocation +{ + /** + * Negative Y + */ + DOWN(0, -1, 0), + + /** + * Positive Y + */ + UP(0, 1, 0), + + /** + * Negative Z + */ + NORTH(0, 0, -1), + + /** + * Positive Z + */ + SOUTH(0, 0, 1), + + /** + * Negative X + */ + WEST(-1, 0, 0), + + /** + * Posative X + */ + EAST(1, 0, 0), + + /** + * Center or inside of the block. + */ + INTERNAL(0, 0, 0); + + public final int xOffset; + public final int yOffset; + public final int zOffset; + + private static final EnumFacing[] facings = { EnumFacing.DOWN, EnumFacing.UP, EnumFacing.NORTH, EnumFacing.SOUTH, EnumFacing.WEST, EnumFacing.EAST, null }; + private static final int[] OPPOSITES = {1, 0, 3, 2, 5, 4, 6}; + + public static final AEPartLocation[] SIDE_LOCATIONS = {DOWN, UP, NORTH, SOUTH, WEST, EAST}; + + private AEPartLocation(int x, int y, int z) + { + xOffset = x; + yOffset = y; + zOffset = z; + } + + /** + * @return Part Location + */ + public static AEPartLocation fromOrdinal(int id) + { + if (id >= 0 && id < SIDE_LOCATIONS.length) + return SIDE_LOCATIONS[id]; + + return INTERNAL; + } + + /** + * 100% chance of success. + * + * @param side + * @return proper Part Location for a facing enum. + */ + public static AEPartLocation fromFacing(EnumFacing side) + { + if ( side == null ) return INTERNAL; + return values()[side.ordinal()]; + } + + /** + * @return Opposite Part Location, INTERNAL remains INTERNAL. + */ + public AEPartLocation getOpposite() + { + return fromOrdinal(OPPOSITES[ordinal()]); + } + + /** + * @return EnumFacing Equivalence, if Center returns null. + */ + public EnumFacing getFacing() + { + return facings[ordinal()]; + } + +} diff --git a/src/api/java/appeng/api/util/DimensionalCoord.java b/src/api/java/appeng/api/util/DimensionalCoord.java index eb448360..90008e00 100644 --- a/src/api/java/appeng/api/util/DimensionalCoord.java +++ b/src/api/java/appeng/api/util/DimensionalCoord.java @@ -25,6 +25,7 @@ package appeng.api.util; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; @@ -47,15 +48,22 @@ public class DimensionalCoord extends WorldCoord public DimensionalCoord( TileEntity s ) { super( s ); - this.w = s.getWorldObj(); - this.dimId = this.w.provider.dimensionId; + this.w = s.getWorld(); + this.dimId = this.w.provider.getDimensionId(); } - public DimensionalCoord( World _w, int _x, int _y, int _z ) + public DimensionalCoord( World _w, int x, int y, int z ) { - super( _x, _y, _z ); + super( x,y,z ); this.w = _w; - this.dimId = _w.provider.dimensionId; + this.dimId = _w.provider.getDimensionId(); + } + + public DimensionalCoord( World _w, BlockPos pos ) + { + super( pos ); + this.w = _w; + this.dimId = _w.provider.getDimensionId(); } @Override @@ -96,4 +104,5 @@ public class DimensionalCoord extends WorldCoord { return this.w; } + } diff --git a/src/api/java/appeng/api/util/ICommonTile.java b/src/api/java/appeng/api/util/ICommonTile.java index 08972a74..90f70c27 100644 --- a/src/api/java/appeng/api/util/ICommonTile.java +++ b/src/api/java/appeng/api/util/ICommonTile.java @@ -27,6 +27,7 @@ package appeng.api.util; import java.util.List; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; @@ -38,10 +39,8 @@ public interface ICommonTile * the block itself. * * @param world world of tile entity - * @param x x pos of tile entity - * @param y y pos of tile entity - * @param z z pos of tile entity + * @param pos location of the block * @param drops drops of tile entity */ - void getDrops( World world, int x, int y, int z, List drops ); + void getDrops( World world, BlockPos pos, List drops ); } \ No newline at end of file diff --git a/src/api/java/appeng/api/util/IConfigManager.java b/src/api/java/appeng/api/util/IConfigManager.java index 52df6945..d8f96595 100644 --- a/src/api/java/appeng/api/util/IConfigManager.java +++ b/src/api/java/appeng/api/util/IConfigManager.java @@ -27,7 +27,6 @@ package appeng.api.util; import java.util.Set; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.config.Settings; diff --git a/src/api/java/appeng/api/util/IOrientable.java b/src/api/java/appeng/api/util/IOrientable.java index 4afbe44e..f27a97be 100644 --- a/src/api/java/appeng/api/util/IOrientable.java +++ b/src/api/java/appeng/api/util/IOrientable.java @@ -23,8 +23,9 @@ package appeng.api.util; +import net.minecraft.util.EnumFacing; + -import net.minecraftforge.common.util.ForgeDirection; /** @@ -45,12 +46,12 @@ public interface IOrientable /** * @return the direction the tile is facing */ - ForgeDirection getForward(); + EnumFacing getForward(); /** * @return the direction top of the tile */ - ForgeDirection getUp(); + EnumFacing getUp(); /** * Update the orientation @@ -58,5 +59,5 @@ public interface IOrientable * @param Forward new forward direction * @param Up new upwards direction */ - void setOrientation( ForgeDirection Forward, ForgeDirection Up ); + void setOrientation( EnumFacing Forward, EnumFacing Up ); } \ No newline at end of file diff --git a/src/api/java/appeng/api/util/IOrientableBlock.java b/src/api/java/appeng/api/util/IOrientableBlock.java index 8081cd81..360dec89 100644 --- a/src/api/java/appeng/api/util/IOrientableBlock.java +++ b/src/api/java/appeng/api/util/IOrientableBlock.java @@ -24,6 +24,7 @@ package appeng.api.util; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; @@ -46,5 +47,5 @@ public interface IOrientableBlock * * @return a IOrientable if applicable */ - IOrientable getOrientable( IBlockAccess world, int x, int y, int z ); + IOrientable getOrientable( IBlockAccess world, BlockPos z ); } \ No newline at end of file diff --git a/src/api/java/appeng/api/util/WorldCoord.java b/src/api/java/appeng/api/util/WorldCoord.java index d020e15d..5e6bf5ab 100644 --- a/src/api/java/appeng/api/util/WorldCoord.java +++ b/src/api/java/appeng/api/util/WorldCoord.java @@ -25,7 +25,7 @@ package appeng.api.util; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; /** @@ -41,7 +41,7 @@ public class WorldCoord public WorldCoord( TileEntity s ) { - this( s.xCoord, s.yCoord, s.zCoord ); + this( s.getPos() ); } public WorldCoord( int _x, int _y, int _z ) @@ -51,11 +51,19 @@ public class WorldCoord this.z = _z; } - public WorldCoord subtract( ForgeDirection direction, int length ) + public WorldCoord( + BlockPos pos ) { - this.x -= direction.offsetX * length; - this.y -= direction.offsetY * length; - this.z -= direction.offsetZ * length; + x = pos.getX(); + y = pos.getY(); + z = pos.getZ(); + } + + public WorldCoord subtract( AEPartLocation direction, int length ) + { + this.x -= direction.xOffset * length; + this.y -= direction.yOffset * length; + this.z -= direction.zOffset * length; return this; } @@ -94,7 +102,7 @@ public class WorldCoord /** * Will Return NULL if it's at some diagonal! */ - public ForgeDirection directionTo( WorldCoord loc ) + public AEPartLocation directionTo( WorldCoord loc ) { int ox = this.x - loc.x; int oy = this.y - loc.y; @@ -104,34 +112,34 @@ public class WorldCoord int ylen = Math.abs( oy ); int zlen = Math.abs( oz ); - if( loc.isEqual( this.copy().add( ForgeDirection.EAST, xlen ) ) ) + if( loc.isEqual( this.copy().add( AEPartLocation.EAST, xlen ) ) ) { - return ForgeDirection.EAST; + return AEPartLocation.EAST; } - if( loc.isEqual( this.copy().add( ForgeDirection.WEST, xlen ) ) ) + if( loc.isEqual( this.copy().add( AEPartLocation.WEST, xlen ) ) ) { - return ForgeDirection.WEST; + return AEPartLocation.WEST; } - if( loc.isEqual( this.copy().add( ForgeDirection.NORTH, zlen ) ) ) + if( loc.isEqual( this.copy().add( AEPartLocation.NORTH, zlen ) ) ) { - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; } - if( loc.isEqual( this.copy().add( ForgeDirection.SOUTH, zlen ) ) ) + if( loc.isEqual( this.copy().add( AEPartLocation.SOUTH, zlen ) ) ) { - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; } - if( loc.isEqual( this.copy().add( ForgeDirection.UP, ylen ) ) ) + if( loc.isEqual( this.copy().add( AEPartLocation.UP, ylen ) ) ) { - return ForgeDirection.UP; + return AEPartLocation.UP; } - if( loc.isEqual( this.copy().add( ForgeDirection.DOWN, ylen ) ) ) + if( loc.isEqual( this.copy().add( AEPartLocation.DOWN, ylen ) ) ) { - return ForgeDirection.DOWN; + return AEPartLocation.DOWN; } return null; @@ -142,11 +150,11 @@ public class WorldCoord return this.x == c.x && this.y == c.y && this.z == c.z; } - public WorldCoord add( ForgeDirection direction, int length ) + public WorldCoord add( AEPartLocation direction, int length ) { - this.x += direction.offsetX * length; - this.y += direction.offsetY * length; - this.z += direction.offsetZ * length; + this.x += direction.xOffset * length; + this.y += direction.yOffset * length; + this.z += direction.zOffset * length; return this; } @@ -167,6 +175,11 @@ public class WorldCoord return obj instanceof WorldCoord && this.isEqual( (WorldCoord) obj ); } + public BlockPos getPos() + { + return new BlockPos(x,y,z); + } + @Override public String toString() { diff --git a/src/main/java/appeng/block/AEBaseBlock.java b/src/main/java/appeng/block/AEBaseBlock.java index d9269667..25f67b36 100644 --- a/src/main/java/appeng/block/AEBaseBlock.java +++ b/src/main/java/appeng/block/AEBaseBlock.java @@ -23,12 +23,14 @@ import java.util.ArrayList; import java.util.EnumSet; import java.util.List; -import com.google.common.base.Optional; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.BlockState; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.resources.IResource; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; @@ -36,24 +38,27 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.common.property.ExtendedBlockState; +import net.minecraftforge.common.property.IExtendedBlockState; +import net.minecraftforge.common.property.IUnlistedProperty; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.api.util.AEPartLocation; import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.BlockRenderInfo; -import appeng.client.render.WorldRender; +import appeng.client.texture.BaseIcon; import appeng.client.texture.FlippableIcon; -import appeng.client.texture.MissingIcon; +import appeng.client.texture.IAESprite; +import appeng.core.AppEng; import appeng.core.features.AEBlockFeatureHandler; import appeng.core.features.AEFeature; import appeng.core.features.FeatureNameExtractor; @@ -64,9 +69,13 @@ import appeng.helpers.ICustomCollision; import appeng.util.LookDirection; import appeng.util.Platform; +import com.google.common.base.Optional; + public abstract class AEBaseBlock extends Block implements IAEFeature { + public static final PropertyEnum AXIS_ORIENTATION = PropertyEnum.create("axis", EnumFacing.Axis.class); + private final String featureFullName; protected final Optional featureSubName; protected boolean isOpaque = true; @@ -76,7 +85,13 @@ public abstract class AEBaseBlock extends Block implements IAEFeature private IFeatureHandler handler; @SideOnly( Side.CLIENT ) BlockRenderInfo renderInfo; - + + @Override + public boolean isVisuallyOpaque() + { + return isOpaque && isFullSize; + } + protected AEBaseBlock( Material mat ) { this( mat, Optional.absent() ); @@ -117,13 +132,29 @@ public abstract class AEBaseBlock extends Block implements IAEFeature return this.featureFullName; } - public void registerNoIcons() + public static final UnlistedBlockPos AE_BLOCK_POS = new UnlistedBlockPos(); + public static final UnlistedBlockAccess AE_BLOCK_ACCESS = new UnlistedBlockAccess(); + + @Override + final protected BlockState createBlockState() { - final BlockRenderInfo info = this.getRendererInstance(); - final FlippableIcon i = new FlippableIcon( new MissingIcon( this ) ); - info.updateIcons( i, i, i, i, i, i ); + return new ExtendedBlockState( this, getAEStates(), new IUnlistedProperty[] { AE_BLOCK_POS, AE_BLOCK_ACCESS} ); } + @Override + final public IBlockState getExtendedState( + IBlockState state, + IBlockAccess world, + BlockPos pos ) + { + return ((IExtendedBlockState)super.getExtendedState( state, world, pos ) ).withProperty( AE_BLOCK_POS, pos ).withProperty( AE_BLOCK_ACCESS, world ); + } + + protected IProperty[] getAEStates() + { + return new IProperty[0]; + } + @SideOnly( Side.CLIENT ) public BlockRenderInfo getRendererInstance() { @@ -134,7 +165,9 @@ public abstract class AEBaseBlock extends Block implements IAEFeature try { - final BaseBlockRender renderer = this.getRenderer().newInstance(); + Class re = this.getRenderer(); + if ( re == null ) return null; // use 1.8 models. + final BaseBlockRender renderer = re.newInstance(); this.renderInfo = new BlockRenderInfo( renderer ); return this.renderInfo; @@ -148,6 +181,15 @@ public abstract class AEBaseBlock extends Block implements IAEFeature throw new IllegalStateException( "Failed to create a new instance of " + this.getRenderer() + " because of permissions.", e ); } } + + @Override + public int colorMultiplier( + IBlockAccess worldIn, + BlockPos pos, + int colorTint ) + { + return colorTint; + } @SideOnly( Side.CLIENT ) protected Class getRenderer() @@ -155,11 +197,6 @@ public abstract class AEBaseBlock extends Block implements IAEFeature return BaseBlockRender.class; } - public IIcon unmappedGetIcon( IBlockAccess w, int x, int y, int z, int s ) - { - return super.getIcon( w, x, y, z, s ); - } - protected void setFeature( EnumSet f ) { final AEBlockFeatureHandler featureHandler = new AEBlockFeatureHandler( f, this, this.featureSubName ); @@ -187,34 +224,14 @@ public abstract class AEBaseBlock extends Block implements IAEFeature { return this.isOpaque; } - + @Override - public boolean renderAsNormalBlock() + public boolean isNormalCube() { return this.isFullSize && this.isOpaque; } - - @Override - @SideOnly( Side.CLIENT ) - public int getRenderType() - { - return WorldRender.INSTANCE.getRenderId(); - } - - @Override - public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s ) - { - return this.getIcon( this.mapRotation( w, x, y, z, s ), w.getBlockMetadata( x, y, z ) ); - } - - @Override - @SideOnly( Side.CLIENT ) - public IIcon getIcon( int direction, int metadata ) - { - return this.getRendererInstance().getTexture( ForgeDirection.getOrientation( direction ) ); - } - - protected ICustomCollision getCustomCollision( World w, int x, int y, int z ) + + protected ICustomCollision getCustomCollision( World w, BlockPos pos ) { if( this instanceof ICustomCollision ) { @@ -223,42 +240,61 @@ public abstract class AEBaseBlock extends Block implements IAEFeature return null; } - @Override - @SuppressWarnings( "unchecked" ) - // NOTE: WAS FINAL, changed for Immibis - public void addCollisionBoxesToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + @SideOnly( Side.CLIENT ) + public IAESprite getIcon( IBlockAccess w, BlockPos pos, EnumFacing side ) { - final ICustomCollision collisionHandler = this.getCustomCollision( w, x, y, z ); + IBlockState state =w.getBlockState( pos ); + IOrientable ori = getOrientable( w, pos ); + + if ( ori == null ) + return getIcon( side,state ); + + return this.getIcon( this.mapRotation( ori, side ), state ); + } + + @SideOnly( Side.CLIENT ) + public IAESprite getIcon( EnumFacing side, IBlockState state ) + { + return this.getRendererInstance().getTexture( AEPartLocation.fromFacing( side ) ); + } + + @Override + public void addCollisionBoxesToList( + World w, + BlockPos pos, + IBlockState state, + AxisAlignedBB bb, + List out, + Entity e ) + { + final ICustomCollision collisionHandler = this.getCustomCollision( w, pos ); if( collisionHandler != null && bb != null ) { List tmp = new ArrayList(); - collisionHandler.addCollidingBlockToList( w, x, y, z, bb, tmp, e ); + collisionHandler.addCollidingBlockToList( w, pos, bb, tmp, e ); for( AxisAlignedBB b : tmp ) { - b.minX += x; - b.minY += y; - b.minZ += z; - b.maxX += x; - b.maxY += y; - b.maxZ += z; - if( bb.intersectsWith( b ) ) + AxisAlignedBB offset = b.offset( pos.getX(), pos.getY(), pos.getZ() ); + if( bb.intersectsWith( offset ) ) { - out.add( b ); + out.add( offset ); } } } else { - super.addCollisionBoxesToList( w, x, y, z, bb, out, e ); + super.addCollisionBoxesToList( w, pos, state, bb, out, e ); } } - + @Override @SideOnly( Side.CLIENT ) - public final AxisAlignedBB getSelectedBoundingBoxFromPool( World w, int x, int y, int z ) + public AxisAlignedBB getSelectedBoundingBox( + World w, + BlockPos pos ) { - final ICustomCollision collisionHandler = this.getCustomCollision( w, x, y, z ); + final ICustomCollision collisionHandler = this.getCustomCollision( w, pos ); if( collisionHandler != null ) { @@ -267,7 +303,7 @@ public abstract class AEBaseBlock extends Block implements IAEFeature final EntityPlayer player = Minecraft.getMinecraft().thePlayer; final LookDirection ld = Platform.getPlayerRay( player, Platform.getEyeOffset( player ) ); - final Iterable bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, Minecraft.getMinecraft().thePlayer, true ); + final Iterable bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, pos, Minecraft.getMinecraft().thePlayer, true ); AxisAlignedBB br = null; double lastDist = 0; @@ -276,7 +312,7 @@ public abstract class AEBaseBlock extends Block implements IAEFeature { this.setBlockBounds( (float) bb.minX, (float) bb.minY, (float) bb.minZ, (float) bb.maxX, (float) bb.maxY, (float) bb.maxZ ); - MovingObjectPosition r = super.collisionRayTrace( w, x, y, z, ld.a, ld.b ); + MovingObjectPosition r = super.collisionRayTrace( w, pos, ld.a, ld.b ); this.setBlockBounds( 0, 0, 0, 1, 1, 1 ); @@ -298,15 +334,21 @@ public abstract class AEBaseBlock extends Block implements IAEFeature if( br != null ) { - br.setBounds( br.minX + x, br.minY + y, br.minZ + z, br.maxX + x, br.maxY + y, br.maxZ + z ); + br = AxisAlignedBB.fromBounds( br.minX + pos.getX(), br.minY + pos.getY(), br.minZ + pos.getZ(), br.maxX + pos.getX(), br.maxY + pos.getY(), br.maxZ + pos.getZ() ); return br; } } - final AxisAlignedBB b = AxisAlignedBB.getBoundingBox( 16d, 16d, 16d, 0d, 0d, 0d ); + AxisAlignedBB b = null; // new AxisAlignedBB( 16d, 16d, 16d, 0d, 0d, 0d ); - for( AxisAlignedBB bx : collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, null, false ) ) + for( AxisAlignedBB bx : collisionHandler.getSelectedBoundingBoxesFromPool( w, pos, null, false ) ) { + if ( b == null ) + { + b = bx; + continue; + } + final double minX = Math.min( b.minX, bx.minX ); final double minY = Math.min( b.minY, bx.minY ); final double minZ = Math.min( b.minZ, bx.minZ ); @@ -314,15 +356,18 @@ public abstract class AEBaseBlock extends Block implements IAEFeature final double maxY = Math.max( b.maxY, bx.maxY ); final double maxZ = Math.max( b.maxZ, bx.maxZ ); - b.setBounds( minX, minY, minZ, maxX, maxY, maxZ ); + b = AxisAlignedBB.fromBounds( minX, minY, minZ, maxX, maxY, maxZ ); } - b.setBounds( b.minX + x, b.minY + y, b.minZ + z, b.maxX + x, b.maxY + y, b.maxZ + z ); + if ( b == null ) + b = new AxisAlignedBB( 16d, 16d, 16d, 0d, 0d, 0d ); + else + b = AxisAlignedBB.fromBounds( b.minX + pos.getX(), b.minY + pos.getY(), b.minZ + pos.getZ(), b.maxX+ pos.getX(), b.maxY + pos.getY(), b.maxZ + pos.getZ() ); return b; } - return super.getSelectedBoundingBoxFromPool( w, x, y, z ); + return super.getSelectedBoundingBox( w, pos ); } @Override @@ -332,13 +377,17 @@ public abstract class AEBaseBlock extends Block implements IAEFeature } @Override - public MovingObjectPosition collisionRayTrace( World w, int x, int y, int z, Vec3 a, Vec3 b ) + public MovingObjectPosition collisionRayTrace( + World w, + BlockPos pos, + Vec3 a, + Vec3 b ) { - final ICustomCollision collisionHandler = this.getCustomCollision( w, x, y, z ); + final ICustomCollision collisionHandler = this.getCustomCollision( w, pos ); if( collisionHandler != null ) { - final Iterable bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, null, true ); + final Iterable bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, pos, null, true ); MovingObjectPosition br = null; double lastDist = 0; @@ -347,7 +396,7 @@ public abstract class AEBaseBlock extends Block implements IAEFeature { this.setBlockBounds( (float) bb.minX, (float) bb.minY, (float) bb.minZ, (float) bb.maxX, (float) bb.maxY, (float) bb.maxZ ); - MovingObjectPosition r = super.collisionRayTrace( w, x, y, z, a, b ); + MovingObjectPosition r = super.collisionRayTrace( w, pos, a, b ); this.setBlockBounds( 0, 0, 0, 1, 1, 1 ); @@ -375,14 +424,14 @@ public abstract class AEBaseBlock extends Block implements IAEFeature } this.setBlockBounds( 0, 0, 0, 1, 1, 1 ); - return super.collisionRayTrace( w, x, y, z, a, b ); + return super.collisionRayTrace( w, pos, a, b ); } - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( World w, BlockPos pos, EntityPlayer player, EnumFacing side, float hitX, float hitY, float hitZ ) { return false; } - + @Override @SideOnly( Side.CLIENT ) @SuppressWarnings( "unchecked" ) @@ -396,56 +445,39 @@ public abstract class AEBaseBlock extends Block implements IAEFeature { return this.isInventory; } - + @Override - public int getComparatorInputOverride( World w, int x, int y, int z, int s ) + public int getComparatorInputOverride( + World worldIn, + BlockPos pos ) { return 0; } - + @Override - @SideOnly( Side.CLIENT ) - public void registerBlockIcons( IIconRegister iconRegistry ) - { - final BlockRenderInfo info = this.getRendererInstance(); - final FlippableIcon topIcon; - final FlippableIcon bottomIcon; - final FlippableIcon sideIcon; - final FlippableIcon eastIcon; - final FlippableIcon westIcon; - final FlippableIcon southIcon; - final FlippableIcon northIcon; - - this.blockIcon = topIcon = this.optionalIcon( iconRegistry, this.getTextureName(), null ); - bottomIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Bottom", topIcon ); - sideIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Side", topIcon ); - eastIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "East", sideIcon ); - westIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "West", sideIcon ); - southIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Front", sideIcon ); - northIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Back", sideIcon ); - - info.updateIcons( bottomIcon, topIcon, northIcon, southIcon, eastIcon, westIcon ); - } - - @Override - public final boolean isNormalCube( IBlockAccess world, int x, int y, int z ) + public boolean isNormalCube( + IBlockAccess world, + BlockPos pos ) { return this.isFullSize; } - public IOrientable getOrientable( IBlockAccess w, int x, int y, int z ) + public IOrientable getOrientable( IBlockAccess w, BlockPos pos ) { if( this instanceof IOrientableBlock ) { - return ( (IOrientableBlock) this ).getOrientable( w, x, y, z ); + return ( (IOrientableBlock) this ).getOrientable( w, pos ); } return null; } @Override - public final boolean rotateBlock( World w, int x, int y, int z, ForgeDirection axis ) + public boolean rotateBlock( + World w, + BlockPos pos, + EnumFacing axis ) { - final IOrientable rotatable = this.getOrientable( w, x, y, z ); + final IOrientable rotatable = this.getOrientable( w, pos ); if( rotatable != null && rotatable.canBeRotated() ) { @@ -456,15 +488,15 @@ public abstract class AEBaseBlock extends Block implements IAEFeature } else { - ForgeDirection forward = rotatable.getForward(); - ForgeDirection up = rotatable.getUp(); + EnumFacing forward = rotatable.getForward(); + EnumFacing up = rotatable.getUp(); for( int rs = 0; rs < 4; rs++ ) { forward = Platform.rotateAround( forward, axis ); up = Platform.rotateAround( up, axis ); - if( this.isValidOrientation( w, x, y, z, forward, up ) ) + if( this.isValidOrientation( w, pos, forward, up ) ) { rotatable.setOrientation( forward, up ); return true; @@ -473,7 +505,7 @@ public abstract class AEBaseBlock extends Block implements IAEFeature } } - return super.rotateBlock( w, x, y, z, axis ); + return super.rotateBlock( w, pos, axis ); } protected boolean hasCustomRotation() @@ -481,51 +513,20 @@ public abstract class AEBaseBlock extends Block implements IAEFeature return false; } - protected void customRotateBlock( IOrientable rotatable, ForgeDirection axis ) + protected void customRotateBlock( IOrientable rotatable, EnumFacing axis ) { } - public boolean isValidOrientation( World w, int x, int y, int z, ForgeDirection forward, ForgeDirection up ) + public boolean isValidOrientation( World w, BlockPos pos, EnumFacing forward, EnumFacing up ) { return true; } @Override - public ForgeDirection[] getValidRotations( World w, int x, int y, int z ) + public EnumFacing[] getValidRotations( World w, BlockPos pos ) { - return new ForgeDirection[0]; - } - - @SideOnly( Side.CLIENT ) - private FlippableIcon optionalIcon( IIconRegister ir, String name, IIcon substitute ) - { - // if the input is an flippable IIcon find the original. - while( substitute instanceof FlippableIcon ) - { - substitute = ( (FlippableIcon) substitute ).getOriginal(); - } - - if( substitute != null ) - { - try - { - ResourceLocation resLoc = new ResourceLocation( name ); - resLoc = new ResourceLocation( resLoc.getResourceDomain(), String.format( "%s/%s%s", "textures/blocks", resLoc.getResourcePath(), ".png" ) ); - - IResource res = Minecraft.getMinecraft().getResourceManager().getResource( resLoc ); - if( res != null ) - { - return new FlippableIcon( ir.registerIcon( name ) ); - } - } - catch( Throwable e ) - { - return new FlippableIcon( substitute ); - } - } - - return new FlippableIcon( ir.registerIcon( name ) ); + return new EnumFacing[0]; } @SideOnly( Side.CLIENT ) @@ -534,78 +535,6 @@ public abstract class AEBaseBlock extends Block implements IAEFeature super.getSubBlocks( item, tabs, itemStacks ); } - int mapRotation( IBlockAccess w, int x, int y, int z, int s ) - { - final IOrientable ori = this.getOrientable( w, x, y, z ); - - if( ori != null && ori.canBeRotated() ) - { - return this.mapRotation( ori, ForgeDirection.getOrientation( s ) ).ordinal(); - } - - return s; - } - - public ForgeDirection mapRotation( IOrientable ori, ForgeDirection dir ) - { - // case DOWN: return bottomIcon; - // case UP: return blockIcon; - // case NORTH: return northIcon; - // case SOUTH: return southIcon; - // case WEST: return sideIcon; - // case EAST: return sideIcon; - - final ForgeDirection forward = ori.getForward(); - final ForgeDirection up = ori.getUp(); - ForgeDirection west = ForgeDirection.UNKNOWN; - - if( forward == null || up == null ) - { - return dir; - } - - int west_x = forward.offsetY * up.offsetZ - forward.offsetZ * up.offsetY; - int west_y = forward.offsetZ * up.offsetX - forward.offsetX * up.offsetZ; - int west_z = forward.offsetX * up.offsetY - forward.offsetY * up.offsetX; - - for( ForgeDirection dx : ForgeDirection.VALID_DIRECTIONS ) - { - if( dx.offsetX == west_x && dx.offsetY == west_y && dx.offsetZ == west_z ) - { - west = dx; - } - } - - if( dir == forward ) - { - return ForgeDirection.SOUTH; - } - if( dir == forward.getOpposite() ) - { - return ForgeDirection.NORTH; - } - - if( dir == up ) - { - return ForgeDirection.UP; - } - if( dir == up.getOpposite() ) - { - return ForgeDirection.DOWN; - } - - if( dir == west ) - { - return ForgeDirection.WEST; - } - if( dir == west.getOpposite() ) - { - return ForgeDirection.EAST; - } - - return ForgeDirection.UNKNOWN; - } - @SideOnly( Side.CLIENT ) public void setRenderStateByMeta( int itemDamage ) { @@ -632,4 +561,137 @@ public abstract class AEBaseBlock extends Block implements IAEFeature return this.hasSubtypes; } + public EnumFacing mapRotation( + IOrientable ori, + EnumFacing dir ) + { + // case DOWN: return bottomIcon; + // case UP: return blockIcon; + // case NORTH: return northIcon; + // case SOUTH: return southIcon; + // case WEST: return sideIcon; + // case EAST: return sideIcon; + + final EnumFacing forward = ori.getForward(); + final EnumFacing up = ori.getUp(); + EnumFacing west = null; + + if( forward == null || up == null ) + { + return dir; + } + + int west_x = forward.getFrontOffsetY() * up.getFrontOffsetZ() - forward.getFrontOffsetZ() * up.getFrontOffsetY(); + int west_y = forward.getFrontOffsetZ() * up.getFrontOffsetX() - forward.getFrontOffsetX() * up.getFrontOffsetZ(); + int west_z = forward.getFrontOffsetX() * up.getFrontOffsetY() - forward.getFrontOffsetY() * up.getFrontOffsetX(); + + for( EnumFacing dx : EnumFacing.VALUES ) + { + if( dx.getFrontOffsetX() == west_x && dx.getFrontOffsetY() == west_y && dx.getFrontOffsetZ() == west_z ) + { + west = dx; + } + } + + if ( west == null ) + return dir; + + if( dir == forward ) + { + return EnumFacing.SOUTH; + } + if( dir == forward.getOpposite() ) + { + return EnumFacing.NORTH; + } + + if( dir == up ) + { + return EnumFacing.UP; + } + if( dir == up.getOpposite() ) + { + return EnumFacing.DOWN; + } + + if( dir == west ) + { + return EnumFacing.WEST; + } + if( dir == west.getOpposite() ) + { + return EnumFacing.EAST; + } + + return null; + } + + @SideOnly( Side.CLIENT ) + public void registerBlockIcons( + TextureMap clientHelper, + String name ) + { + final BlockRenderInfo info = this.getRendererInstance(); + final FlippableIcon blockIcon; + final FlippableIcon topIcon; + final FlippableIcon bottomIcon; + final FlippableIcon sideIcon; + final FlippableIcon eastIcon; + final FlippableIcon westIcon; + final FlippableIcon southIcon; + final FlippableIcon northIcon; + + blockIcon = topIcon = this.optionalIcon( clientHelper, this.getTextureName(), null ); + bottomIcon = this.optionalIcon( clientHelper, this.getTextureName() + "Bottom", topIcon ); + sideIcon = this.optionalIcon( clientHelper, this.getTextureName() + "Side", topIcon ); + eastIcon = this.optionalIcon( clientHelper, this.getTextureName() + "East", sideIcon ); + westIcon = this.optionalIcon( clientHelper, this.getTextureName() + "West", sideIcon ); + southIcon = this.optionalIcon( clientHelper, this.getTextureName() + "Front", sideIcon ); + northIcon = this.optionalIcon( clientHelper, this.getTextureName() + "Back", sideIcon ); + + info.updateIcons( bottomIcon, topIcon, northIcon, southIcon, eastIcon, westIcon ); + } + + @SideOnly( Side.CLIENT ) + private FlippableIcon optionalIcon( TextureMap ir, String name, IAESprite substitute ) + { + // if the input is an flippable IAESprite find the original. + while( substitute instanceof FlippableIcon ) + { + substitute = ( (FlippableIcon) substitute ).getOriginal(); + } + + if( substitute != null ) + { + try + { + ResourceLocation resLoc = new ResourceLocation( AppEng.MOD_ID, String.format( "%s/%s%s", "textures/blocks", name, ".png" ) ); + + IResource res = Minecraft.getMinecraft().getResourceManager().getResource( resLoc ); + if( res != null ) + { + return new FlippableIcon( new BaseIcon( ir.registerSprite( new ResourceLocation(AppEng.MOD_ID, "blocks/" + name ) ) ) ); + } + } + catch( Throwable e ) + { + return new FlippableIcon( substitute ); + } + } + + ResourceLocation resLoc = new ResourceLocation(AppEng.MOD_ID, "blocks/" + name ); + return new FlippableIcon(new BaseIcon( ir.registerSprite( resLoc ) ) ); + } + + String textureName; + public void setBlockTextureName( String texture ) + { + textureName = texture; + } + + private String getTextureName() + { + return textureName; + } + } diff --git a/src/main/java/appeng/block/AEBaseItemBlock.java b/src/main/java/appeng/block/AEBaseItemBlock.java index 304dfb99..45050417 100644 --- a/src/main/java/appeng/block/AEBaseItemBlock.java +++ b/src/main/java/appeng/block/AEBaseItemBlock.java @@ -22,26 +22,23 @@ package appeng.block; import java.util.List; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; import appeng.block.misc.BlockLightDetector; import appeng.block.misc.BlockSkyCompass; import appeng.block.networking.BlockWireless; -import appeng.client.render.ItemRenderer; import appeng.me.helpers.IGridProxyable; import appeng.tile.AEBaseTile; -import appeng.util.Platform; public class AEBaseItemBlock extends ItemBlock @@ -54,11 +51,6 @@ public class AEBaseItemBlock extends ItemBlock super( id ); this.blockType = (AEBaseBlock) id; this.hasSubtypes = this.blockType.hasSubtypes; - - if( Platform.isClient() ) - { - MinecraftForgeClient.registerItemRenderer( this, ItemRenderer.INSTANCE ); - } } @Override @@ -96,12 +88,21 @@ public class AEBaseItemBlock extends ItemBlock { return this.blockType.getUnlocalizedName( is ); } - + @Override - public boolean placeBlockAt( ItemStack stack, EntityPlayer player, World w, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata ) + public boolean placeBlockAt( + ItemStack stack, + EntityPlayer player, + World w, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ, + IBlockState newState ) { - ForgeDirection up = ForgeDirection.UNKNOWN; - ForgeDirection forward = ForgeDirection.UNKNOWN; + EnumFacing up = null; + EnumFacing forward = null; IOrientable ori = null; @@ -109,31 +110,31 @@ public class AEBaseItemBlock extends ItemBlock { if( this.blockType instanceof BlockLightDetector ) { - up = ForgeDirection.getOrientation( side ); - if( up == ForgeDirection.UP || up == ForgeDirection.DOWN ) + up = side; + if( up == EnumFacing.UP || up == EnumFacing.DOWN ) { - forward = ForgeDirection.SOUTH; + forward = EnumFacing.SOUTH; } else { - forward = ForgeDirection.UP; + forward = EnumFacing.UP; } } else if( this.blockType instanceof BlockWireless || this.blockType instanceof BlockSkyCompass ) { - forward = ForgeDirection.getOrientation( side ); - if( forward == ForgeDirection.UP || forward == ForgeDirection.DOWN ) + forward = side; + if( forward == EnumFacing.UP || forward == EnumFacing.DOWN ) { - up = ForgeDirection.SOUTH; + up = EnumFacing.SOUTH; } else { - up = ForgeDirection.UP; + up = EnumFacing.UP; } } else { - up = ForgeDirection.UP; + up = EnumFacing.UP; byte rotation = (byte) ( MathHelper.floor_double( ( player.rotationYaw * 4F ) / 360F + 2.5D ) & 3 ); @@ -141,53 +142,53 @@ public class AEBaseItemBlock extends ItemBlock { default: case 0: - forward = ForgeDirection.SOUTH; + forward = EnumFacing.SOUTH; break; case 1: - forward = ForgeDirection.WEST; + forward = EnumFacing.WEST; break; case 2: - forward = ForgeDirection.NORTH; + forward = EnumFacing.NORTH; break; case 3: - forward = ForgeDirection.EAST; + forward = EnumFacing.EAST; break; } if( player.rotationPitch > 65 ) { up = forward.getOpposite(); - forward = ForgeDirection.UP; + forward = EnumFacing.UP; } else if( player.rotationPitch < -65 ) { up = forward.getOpposite(); - forward = ForgeDirection.DOWN; + forward = EnumFacing.DOWN; } } } if( this.blockType instanceof IOrientableBlock ) { - ori = ( (IOrientableBlock) this.blockType ).getOrientable( w, x, y, z ); - up = ForgeDirection.getOrientation( side ); - forward = ForgeDirection.SOUTH; - if( up.offsetY == 0 ) + ori = ( (IOrientableBlock) this.blockType ).getOrientable( w, pos ); + up = side; + forward = EnumFacing.SOUTH; + if( up.getFrontOffsetY() == 0 ) { - forward = ForgeDirection.UP; + forward = EnumFacing.UP; } } - if( !this.blockType.isValidOrientation( w, x, y, z, forward, up ) ) + if( !this.blockType.isValidOrientation( w, pos, forward, up ) ) { return false; } - if( super.placeBlockAt( stack, player, w, x, y, z, side, hitX, hitY, hitZ, metadata ) ) + if( super.placeBlockAt( stack, player, w, pos, side, hitX, hitY, hitZ, newState ) ) { if( this.blockType instanceof AEBaseTileBlock && !( this.blockType instanceof BlockLightDetector ) ) { - AEBaseTile tile = ( (AEBaseTileBlock) this.blockType ).getTileEntity( w, x, y, z ); + AEBaseTile tile = ( (AEBaseTileBlock) this.blockType ).getTileEntity( w, pos ); ori = tile; if( tile == null ) @@ -197,8 +198,7 @@ public class AEBaseItemBlock extends ItemBlock if( ori.canBeRotated() && !this.blockType.hasCustomRotation() ) { - if( ori.getForward() == null || ori.getUp() == null || // null - tile.getForward() == ForgeDirection.UNKNOWN || ori.getUp() == ForgeDirection.UNKNOWN ) + if( ori.getForward() == null || ori.getUp() == null ) { ori.setOrientation( forward, up ); } diff --git a/src/main/java/appeng/block/AEBaseItemBlockChargeable.java b/src/main/java/appeng/block/AEBaseItemBlockChargeable.java index 62cae693..2b7f8a71 100644 --- a/src/main/java/appeng/block/AEBaseItemBlockChargeable.java +++ b/src/main/java/appeng/block/AEBaseItemBlockChargeable.java @@ -26,10 +26,8 @@ import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.AccessRestriction; import appeng.api.config.PowerUnits; import appeng.api.definitions.IBlockDefinition; diff --git a/src/main/java/appeng/block/AEBaseItemBlockSlab.java b/src/main/java/appeng/block/AEBaseItemBlockSlab.java deleted file mode 100644 index 20bb1a4d..00000000 --- a/src/main/java/appeng/block/AEBaseItemBlockSlab.java +++ /dev/null @@ -1,12 +0,0 @@ -package appeng.block; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemSlab; - -public class AEBaseItemBlockSlab extends ItemSlab { - - public AEBaseItemBlockSlab(Block block, AEBaseSlabBlock singleSlab, AEBaseSlabBlock doubleSlab, Boolean isDoubleSlab) - { - super( block, singleSlab, doubleSlab, isDoubleSlab ); - } -} diff --git a/src/main/java/appeng/block/AEBaseSlabBlock.java b/src/main/java/appeng/block/AEBaseSlabBlock.java deleted file mode 100644 index 6da93f6e..00000000 --- a/src/main/java/appeng/block/AEBaseSlabBlock.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block; - - -import java.util.EnumSet; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockSlab; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; -import appeng.core.features.AEFeature; -import appeng.core.features.IAEFeature; -import appeng.core.features.IFeatureHandler; -import appeng.core.features.SlabBlockFeatureHandler; - - -public class AEBaseSlabBlock extends BlockSlab implements IAEFeature -{ - private final IFeatureHandler features; - private final AEBaseBlock block; - private final int meta; - private AEBaseSlabBlock slabs; - private AEBaseSlabBlock doubleSlabs; - private final String name; - - public AEBaseSlabBlock( AEBaseBlock block, int meta, EnumSet features, boolean isDoubleSlab, String name ) - { - super( isDoubleSlab, block.getMaterial() ); - this.block = block; - this.meta = meta; - this.name = name; - this.setBlockName( "appliedenergistics2." + name ); - this.setHardness( block.getBlockHardness( null, 0, 0, 0 ) ); - this.setResistance( block.getExplosionResistance( null ) * 5.0F / 3.0F ); - this.setStepSound( block.stepSound ); - this.useNeighborBrightness = true; - if (!field_150004_a) this.doubleSlabs = new AEBaseSlabBlock( block, meta, features, true, name + ".double" ).setSlabs(this); - this.features = !field_150004_a ? new SlabBlockFeatureHandler( features, this ) : null; - } - - public AEBaseSlabBlock setSlabs(AEBaseSlabBlock slabs) - { - this.slabs = slabs; - return this; - } - - public AEBaseSlabBlock slabs() - { - return slabs; - } - - public AEBaseSlabBlock doubleSlabs() - { - return doubleSlabs; - } - - @Override - public IFeatureHandler handler() - { - return this.features; - } - - @Override - public void postInit() - { - // Override to do stuff - } - - @Override - public IIcon getIcon(int dir, int meta) - { - return block.getIcon( dir, this.meta ); - } - - @Override - public String func_150002_b(int p_150002_1_) - { - return this.getUnlocalizedName(); - } - - @Override - public void registerBlockIcons(IIconRegister reg) { } - - @Override - public Item getItemDropped(int meta, Random rand, int fortune) - { - return this.field_150004_a ? Item.getItemFromBlock(this.slabs) : Item.getItemFromBlock(this); - } - - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) - { - AEBaseSlabBlock block = (AEBaseSlabBlock) world.getBlock(x, y, z); - - if (block == null) return null; - if (block.field_150004_a) block = this.slabs; - - int meta = world.getBlockMetadata(x, y, z) & 7; - return new ItemStack(block, 1, meta); - } - - public String name() - { - return name; - } -} diff --git a/src/main/java/appeng/block/AEBaseStairBlock.java b/src/main/java/appeng/block/AEBaseStairBlock.java index 9d02c890..8a81fba5 100644 --- a/src/main/java/appeng/block/AEBaseStairBlock.java +++ b/src/main/java/appeng/block/AEBaseStairBlock.java @@ -21,27 +21,26 @@ package appeng.block; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.block.Block; import net.minecraft.block.BlockStairs; - import appeng.core.features.AEFeature; import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.core.features.StairBlockFeatureHandler; +import com.google.common.base.Optional; + public abstract class AEBaseStairBlock extends BlockStairs implements IAEFeature { private final IFeatureHandler features; - protected AEBaseStairBlock( Block block, int meta, EnumSet features ) + protected AEBaseStairBlock( Block block, EnumSet features, String type ) { - super( block, meta ); + super( block.getDefaultState() ); - this.features = new StairBlockFeatureHandler( features, this, Optional.absent() ); - this.setBlockName( block.getUnlocalizedName() ); + this.features = new StairBlockFeatureHandler( features, this, Optional.of(type) ); + setUnlocalizedName( block.getUnlocalizedName() ); this.setLightOpacity( 0 ); } diff --git a/src/main/java/appeng/block/AEBaseTileBlock.java b/src/main/java/appeng/block/AEBaseTileBlock.java index c37e590d..03926d49 100644 --- a/src/main/java/appeng/block/AEBaseTileBlock.java +++ b/src/main/java/appeng/block/AEBaseTileBlock.java @@ -26,25 +26,23 @@ import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.google.common.base.Optional; -import com.google.common.collect.Lists; - import net.minecraft.block.Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; +import net.minecraft.item.EnumDyeColor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.ReflectionHelper; - +import net.minecraftforge.fml.relauncher.ReflectionHelper; import appeng.api.implementations.items.IMemoryCard; import appeng.api.implementations.items.MemoryCardMessages; import appeng.api.implementations.tiles.IColorableTile; @@ -61,6 +59,9 @@ import appeng.tile.storage.TileSkyChest; import appeng.util.Platform; import appeng.util.SettingsFrom; +import com.google.common.base.Optional; +import com.google.common.collect.Lists; + public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, ITileEntityProvider { @@ -94,6 +95,7 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, this.setTileProvider( this.hasBlockTileEntity() ); } + // update Block value. private void setTileProvider( boolean b ) { @@ -112,13 +114,19 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, @Nullable public T getTileEntity( IBlockAccess w, int x, int y, int z ) + { + return getTileEntity( w, new BlockPos(x,y,z) ); + } + + @Nullable + public T getTileEntity( IBlockAccess w, BlockPos pos ) { if( !this.hasBlockTileEntity() ) { return null; } - final TileEntity te = w.getTileEntity( x, y, z ); + final TileEntity te = w.getTileEntity( pos ); if( this.tileEntityType.isInstance( te ) ) { return (T) te; @@ -150,51 +158,58 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, } @Override - public void breakBlock( World w, int x, int y, int z, Block a, int b ) + public void breakBlock( + World w, + BlockPos pos, + IBlockState state ) { - final AEBaseTile te = this.getTileEntity( w, x, y, z ); + final AEBaseTile te = this.getTileEntity( w,pos ); if( te != null ) { final ArrayList drops = new ArrayList(); if( te.dropItems() ) { - te.getDrops( w, x, y, z, drops ); + te.getDrops( w, pos, drops ); } else { - te.getNoDrops( w, x, y, z, drops ); + te.getNoDrops( w, pos, drops ); } // Cry ;_; ... - Platform.spawnDrops( w, x, y, z, drops ); + Platform.spawnDrops( w, pos, drops ); } // super will remove the TE, as it is not an instance of BlockContainer - super.breakBlock( w, x, y, z, a, b ); + super.breakBlock( w, pos, state ); } - + @Override - public final ForgeDirection[] getValidRotations( World w, int x, int y, int z ) + public final EnumFacing[] getValidRotations( World w, BlockPos pos ) { - final AEBaseTile obj = this.getTileEntity( w, x, y, z ); + final AEBaseTile obj = this.getTileEntity( w, pos ); if( obj != null && obj.canBeRotated() ) { - return ForgeDirection.VALID_DIRECTIONS; + return EnumFacing.VALUES; } - return super.getValidRotations( w, x, y, z ); + return super.getValidRotations( w, pos ); } @Override - public boolean recolourBlock( World world, int x, int y, int z, ForgeDirection side, int colour ) + public boolean recolorBlock( + World world, + BlockPos pos, + EnumFacing side, + EnumDyeColor color ) { - final TileEntity te = this.getTileEntity( world, x, y, z ); + final TileEntity te = this.getTileEntity( world, pos ); if( te instanceof IColorableTile ) { final IColorableTile ct = (IColorableTile) te; final AEColor c = ct.getColor(); - final AEColor newColor = AEColor.values()[colour]; + final AEColor newColor = AEColor.values()[color.getMetadata()]; if( c != newColor ) { @@ -204,13 +219,15 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, return false; } - return super.recolourBlock( world, x, y, z, side, colour ); + return super.recolorBlock( world, pos, side, color); } @Override - public int getComparatorInputOverride( World w, int x, int y, int z, int s ) + public int getComparatorInputOverride( + World w, + BlockPos pos ) { - final TileEntity te = this.getTileEntity( w, x, y, z ); + final TileEntity te = this.getTileEntity( w, pos ); if( te instanceof IInventory ) { return Container.calcRedstoneFromInventory( (IInventory) te ); @@ -219,41 +236,59 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, } @Override - public boolean onBlockEventReceived( World p_149696_1_, int p_149696_2_, int p_149696_3_, int p_149696_4_, int p_149696_5_, int p_149696_6_ ) + public boolean onBlockEventReceived( + World worldIn, + BlockPos pos, + IBlockState state, + int eventID, + int eventParam ) { - super.onBlockEventReceived( p_149696_1_, p_149696_2_, p_149696_3_, p_149696_4_, p_149696_5_, p_149696_6_ ); - final TileEntity tileentity = p_149696_1_.getTileEntity( p_149696_2_, p_149696_3_, p_149696_4_ ); - return tileentity != null ? tileentity.receiveClientEvent( p_149696_5_, p_149696_6_ ) : false; + super.onBlockEventReceived( worldIn, pos, state ,eventID, eventParam); + final TileEntity tileentity = worldIn.getTileEntity( pos ); + return tileentity != null ? tileentity.receiveClientEvent( eventID, eventParam ) : false; } @Override - public void onBlockPlacedBy( World w, int x, int y, int z, EntityLivingBase player, ItemStack is ) + public void onBlockPlacedBy( + World w, + BlockPos pos, + IBlockState state, + EntityLivingBase placer, + ItemStack is ) { if( is.hasDisplayName() ) { - final TileEntity te = this.getTileEntity( w, x, y, z ); + final TileEntity te = this.getTileEntity( w, pos ); if( te instanceof AEBaseTile ) { - ( (AEBaseTile) w.getTileEntity( x, y, z ) ).setName( is.getDisplayName() ); + ( (AEBaseTile) w.getTileEntity( pos ) ).setName( is.getDisplayName() ); } } } @Override - public final boolean onBlockActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onBlockActivated( + World w, + BlockPos pos, + IBlockState state, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( player != null ) { final ItemStack is = player.inventory.getCurrentItem(); if( is != null ) { - if( Platform.isWrench( player, is, x, y, z ) && player.isSneaking() ) + if( Platform.isWrench( player, is, pos ) && player.isSneaking() ) { - final Block id = w.getBlock( x, y, z ); + final Block id = w.getBlockState( pos ).getBlock(); if( id != null ) { - final AEBaseTile tile = this.getTileEntity( w, x, y, z ); - final ItemStack[] drops = Platform.getBlockDrops( w, x, y, z ); + final AEBaseTile tile = this.getTileEntity( w, pos ); + final ItemStack[] drops = Platform.getBlockDrops( w, pos ); if( tile == null ) { @@ -278,11 +313,11 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, } } - if( id.removedByPlayer( w, player, x, y, z, false ) ) + if( id.removedByPlayer( w, pos, player, false ) ) { final List l = Lists.newArrayList( drops ); - Platform.spawnDrops( w, x, y, z, l ); - w.setBlockToAir( x, y, z ); + Platform.spawnDrops( w, pos, l ); + w.setBlockToAir( pos ); } } return false; @@ -293,7 +328,7 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, final IMemoryCard memoryCard = (IMemoryCard) is.getItem(); if( player.isSneaking() ) { - final AEBaseTile t = this.getTileEntity( w, x, y, z ); + final AEBaseTile t = this.getTileEntity( w, pos ); if( t != null ) { final String name = this.getUnlocalizedName(); @@ -312,7 +347,7 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, final NBTTagCompound data = memoryCard.getData( is ); if( this.getUnlocalizedName().equals( name ) ) { - final AEBaseTile t = this.getTileEntity( w, x, y, z ); + final AEBaseTile t = this.getTileEntity( w, pos ); t.uploadSettings( SettingsFrom.MEMORY_CARD, data ); memoryCard.notifyUser( player, MemoryCardMessages.SETTINGS_LOADED ); } @@ -326,25 +361,25 @@ public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, } } - return this.onActivated( w, x, y, z, player, side, hitX, hitY, hitZ ); + return this.onActivated( w, pos, player, side, hitX, hitY, hitZ ); } @Override - public IOrientable getOrientable( IBlockAccess w, int x, int y, int z ) + public IOrientable getOrientable( IBlockAccess w, BlockPos pos ) { - return this.getTileEntity( w, x, y, z ); + return this.getTileEntity( w, pos ); } @Override - public ICustomCollision getCustomCollision( World w, int x, int y, int z ) + public ICustomCollision getCustomCollision( World w, BlockPos pos ) { - final AEBaseTile te = this.getTileEntity( w, x, y, z ); + final AEBaseTile te = this.getTileEntity( w, pos ); if( te instanceof ICustomCollision ) { return (ICustomCollision) te; } - return super.getCustomCollision( w, x, y, z ); + return super.getCustomCollision( w, pos ); } } diff --git a/src/main/java/appeng/block/AEDecorativeBlock.java b/src/main/java/appeng/block/AEDecorativeBlock.java index 702a0db8..727a9d0b 100644 --- a/src/main/java/appeng/block/AEDecorativeBlock.java +++ b/src/main/java/appeng/block/AEDecorativeBlock.java @@ -20,8 +20,6 @@ package appeng.block; import net.minecraft.block.material.Material; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; public class AEDecorativeBlock extends AEBaseBlock @@ -31,15 +29,4 @@ public class AEDecorativeBlock extends AEBaseBlock super( mat ); } - @Override - public int getRenderType() - { - return 0; - } - - @Override - public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s ) - { - return super.unmappedGetIcon( w, x, y, z, s ); - } } diff --git a/src/main/java/appeng/block/UnlistedBlockAccess.java b/src/main/java/appeng/block/UnlistedBlockAccess.java new file mode 100644 index 00000000..4ca85e72 --- /dev/null +++ b/src/main/java/appeng/block/UnlistedBlockAccess.java @@ -0,0 +1,33 @@ +package appeng.block; + +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.property.IUnlistedProperty; + +public final class UnlistedBlockAccess implements IUnlistedProperty +{ + @Override + public String getName() + { + return "ba"; + } + + @Override + public boolean isValid( + final IBlockAccess value ) + { + return true; + } + + @Override + public Class getType() + { + return IBlockAccess.class; + } + + @Override + public String valueToString( + final IBlockAccess value ) + { + return null; + } +} \ No newline at end of file diff --git a/src/main/java/appeng/block/UnlistedBlockPos.java b/src/main/java/appeng/block/UnlistedBlockPos.java new file mode 100644 index 00000000..924826b1 --- /dev/null +++ b/src/main/java/appeng/block/UnlistedBlockPos.java @@ -0,0 +1,33 @@ +package appeng.block; + +import net.minecraft.util.BlockPos; +import net.minecraftforge.common.property.IUnlistedProperty; + +public final class UnlistedBlockPos implements IUnlistedProperty +{ + @Override + public String getName() + { + return "pos"; + } + + @Override + public boolean isValid( + final BlockPos value ) + { + return true; + } + + @Override + public Class getType() + { + return BlockPos.class; + } + + @Override + public String valueToString( + final BlockPos value ) + { + return null; + } +} \ No newline at end of file diff --git a/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java b/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java index 5417a0d0..16836a4c 100644 --- a/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java +++ b/src/main/java/appeng/block/crafting/BlockCraftingMonitor.java @@ -22,19 +22,18 @@ package appeng.block.crafting; import java.util.List; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockCraftingCPUMonitor; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.tile.crafting.TileCraftingMonitorTile; @@ -42,6 +41,7 @@ public class BlockCraftingMonitor extends BlockCraftingUnit { public BlockCraftingMonitor() { + super( CraftingUnitType.MONITOR ); this.setTileEntity( TileCraftingMonitorTile.class ); } @@ -52,24 +52,19 @@ public class BlockCraftingMonitor extends BlockCraftingUnit } @Override - public IIcon getIcon( int direction, int metadata ) + public IAESprite getIcon( + EnumFacing side, + IBlockState state ) { - if( direction != ForgeDirection.SOUTH.ordinal() ) + if( side != EnumFacing.SOUTH ) { for( Block craftingUnitBlock : AEApi.instance().definitions().blocks().craftingUnit().maybeBlock().asSet() ) { - return craftingUnitBlock.getIcon( direction, metadata ); + return ( (BlockCraftingUnit)craftingUnitBlock ).getIcon( side, state ); } } - - switch( metadata ) - { - default: - case 0: - return super.getIcon( 0, 0 ); - case FLAG_FORMED: - return ExtraBlockTextures.BlockCraftingMonitorFit_Light.getIcon(); - } + + return ExtraBlockTextures.BlockCraftingMonitorFit_Light.getIcon(); } @Override diff --git a/src/main/java/appeng/block/crafting/BlockCraftingStorage.java b/src/main/java/appeng/block/crafting/BlockCraftingStorage.java index 66922f8e..dbab1bc4 100644 --- a/src/main/java/appeng/block/crafting/BlockCraftingStorage.java +++ b/src/main/java/appeng/block/crafting/BlockCraftingStorage.java @@ -24,19 +24,18 @@ import java.util.List; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.client.texture.ExtraBlockTextures; import appeng.tile.crafting.TileCraftingStorageTile; public class BlockCraftingStorage extends BlockCraftingUnit { - public BlockCraftingStorage() + + public BlockCraftingStorage( CraftingUnitType type ) { + super(type ); this.setTileEntity( TileCraftingStorageTile.class ); } @@ -47,29 +46,29 @@ public class BlockCraftingStorage extends BlockCraftingUnit } @Override - public IIcon getIcon( int direction, int metadata ) + public appeng.client.texture.IAESprite getIcon(net.minecraft.util.EnumFacing side, net.minecraft.block.state.IBlockState state) { - switch( metadata & ( ~4 ) ) + boolean formed = (boolean)state.getValue( FORMED ); + switch( this.type ) { default: - - case 0: - return super.getIcon( 0, 0 ); - case 1: - return ExtraBlockTextures.BlockCraftingStorage4k.getIcon(); - case 2: - return ExtraBlockTextures.BlockCraftingStorage16k.getIcon(); - case 3: - return ExtraBlockTextures.BlockCraftingStorage64k.getIcon(); - - case FLAG_FORMED: - return ExtraBlockTextures.BlockCraftingStorage1kFit.getIcon(); - case 1 | FLAG_FORMED: - return ExtraBlockTextures.BlockCraftingStorage4kFit.getIcon(); - case 2 | FLAG_FORMED: - return ExtraBlockTextures.BlockCraftingStorage16kFit.getIcon(); - case 3 | FLAG_FORMED: - return ExtraBlockTextures.BlockCraftingStorage64kFit.getIcon(); + case STORAGE_1K: + return formed ? + super.getIcon( side,state ) : + ExtraBlockTextures.BlockCraftingStorage1kFit.getIcon(); + case STORAGE_4K: + return formed ? + ExtraBlockTextures.BlockCraftingStorage4k.getIcon() : + ExtraBlockTextures.BlockCraftingStorage1kFit.getIcon(); + case STORAGE_16K: + return formed ? + ExtraBlockTextures.BlockCraftingStorage16k.getIcon() : + ExtraBlockTextures.BlockCraftingStorage16kFit.getIcon(); + case STORAGE_64K: + return formed ? + ExtraBlockTextures.BlockCraftingStorage64k.getIcon() : + ExtraBlockTextures.BlockCraftingStorage64kFit.getIcon(); + } } diff --git a/src/main/java/appeng/block/crafting/BlockCraftingUnit.java b/src/main/java/appeng/block/crafting/BlockCraftingUnit.java index 66910556..4ef3511d 100644 --- a/src/main/java/appeng/block/crafting/BlockCraftingUnit.java +++ b/src/main/java/appeng/block/crafting/BlockCraftingUnit.java @@ -24,17 +24,20 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyBool; +import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockCraftingCPU; @@ -44,16 +47,49 @@ import appeng.core.sync.GuiBridge; import appeng.tile.crafting.TileCraftingTile; import appeng.util.Platform; +import com.google.common.base.Optional; + public class BlockCraftingUnit extends AEBaseTileBlock { + public static final PropertyBool POWERED = PropertyBool.create("powered"); + public static final PropertyBool FORMED = PropertyBool.create("formed"); + public static final int FLAG_FORMED = 8; - public BlockCraftingUnit() + final public CraftingUnitType type; + + public static enum CraftingUnitType { - super( Material.iron ); + UNIT, ACCELERATOR, STORAGE_1K,STORAGE_4K, STORAGE_16K, STORAGE_64K, MONITOR + }; - this.hasSubtypes = true; + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } + + @Override + public int getMetaFromState( + IBlockState state ) + { + boolean p = (boolean)state.getValue( POWERED ); + boolean f = (boolean)state.getValue( FORMED ); + return (p ? 1 : 0) | (f?2 : 0); + } + + @Override + public IBlockState getStateFromMeta( int meta ) + { + return getDefaultState().withProperty( POWERED, ( meta & 1 ) == 1 ? true : false ).withProperty( FORMED, ( meta & 2 ) == 2 ? true : false ); + } + + public BlockCraftingUnit( CraftingUnitType type ) + { + super( Material.iron, Optional.of(type.name()) ); + + this.type = type; this.setTileEntity( TileCraftingTile.class ); this.setFeature( EnumSet.of( AEFeature.CraftingCPU ) ); } @@ -65,26 +101,34 @@ public class BlockCraftingUnit extends AEBaseTileBlock } @Override - public IIcon getIcon( int direction, int metadata ) + public appeng.client.texture.IAESprite getIcon(EnumFacing side, IBlockState state) { - switch( metadata ) + if ( type == CraftingUnitType.ACCELERATOR ) { - default: - case 0: - return super.getIcon( 0, 0 ); - case 1: - return ExtraBlockTextures.BlockCraftingAccelerator.getIcon(); - case FLAG_FORMED: - return ExtraBlockTextures.BlockCraftingUnitFit.getIcon(); - case 1 | FLAG_FORMED: + if ( (boolean)state.getValue( FORMED ) ) return ExtraBlockTextures.BlockCraftingAcceleratorFit.getIcon(); + + return ExtraBlockTextures.BlockCraftingAccelerator.getIcon(); } + + if ( (boolean)state.getValue( FORMED ) ) + return ExtraBlockTextures.BlockCraftingUnitFit.getIcon(); + + return super.getIcon( side,state ); } - @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) - { - TileCraftingTile tg = this.getTileEntity( w, x, y, z ); +@Override +public boolean onBlockActivated( + World w, + BlockPos pos, + IBlockState state, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) +{ + TileCraftingTile tg = this.getTileEntity( w, pos ); if( tg != null && !p.isSneaking() && tg.isFormed() && tg.isActive() ) { if( Platform.isClient() ) @@ -92,7 +136,7 @@ public class BlockCraftingUnit extends AEBaseTileBlock return true; } - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_CRAFTING_CPU ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_CRAFTING_CPU ); return true; } @@ -108,23 +152,18 @@ public class BlockCraftingUnit extends AEBaseTileBlock } @Override - public void setRenderStateByMeta( int itemDamage ) + public void breakBlock( + World w, + BlockPos pos, + IBlockState state ) { - IIcon front = this.getIcon( ForgeDirection.SOUTH.ordinal(), itemDamage ); - IIcon other = this.getIcon( ForgeDirection.NORTH.ordinal(), itemDamage ); - this.getRendererInstance().setTemporaryRenderIcons( other, other, front, other, other, other ); - } - - @Override - public void breakBlock( World w, int x, int y, int z, Block a, int b ) - { - TileCraftingTile cp = this.getTileEntity( w, x, y, z ); + TileCraftingTile cp = this.getTileEntity( w, pos ); if( cp != null ) { cp.breakCluster(); } - super.breakBlock( w, x, y, z, a, b ); + super.breakBlock( w, pos, state ); } @Override @@ -144,25 +183,23 @@ public class BlockCraftingUnit extends AEBaseTileBlock } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block junk ) + protected IProperty[] getAEStates() { - TileCraftingTile cp = this.getTileEntity( w, x, y, z ); + return new IProperty[]{POWERED, FORMED }; + } + + @Override + public void onNeighborBlockChange( + World worldIn, + BlockPos pos, + IBlockState state, + Block neighborBlock ) + { + TileCraftingTile cp = this.getTileEntity( worldIn, pos ); if( cp != null ) { cp.updateMultiBlock(); } } - @Override - public int damageDropped( int meta ) - { - return meta & 3; - } - - @Override - public int getDamageValue( World w, int x, int y, int z ) - { - int meta = w.getBlockMetadata( x, y, z ); - return this.damageDropped( meta ); - } } diff --git a/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java b/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java index d1bc7c35..e4d39c9e 100644 --- a/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java +++ b/src/main/java/appeng/block/crafting/BlockMolecularAssembler.java @@ -22,13 +22,15 @@ package appeng.block.crafting; import java.util.EnumSet; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockAssembler; @@ -41,8 +43,6 @@ import appeng.util.Platform; public class BlockMolecularAssembler extends AEBaseTileBlock { - public static boolean booleanAlphaPass = false; - public BlockMolecularAssembler() { super( Material.iron ); @@ -54,18 +54,10 @@ public class BlockMolecularAssembler extends AEBaseTileBlock } @Override - public int getRenderBlockPass() - { - return 1; + public boolean canRenderInLayer(net.minecraft.util.EnumWorldBlockLayer layer) { + return layer == EnumWorldBlockLayer.CUTOUT_MIPPED; } - - @Override - public boolean canRenderInPass( int pass ) - { - booleanAlphaPass = pass == 1; - return pass == 0 || pass == 1; - } - + @Override @SideOnly( Side.CLIENT ) public Class getRenderer() @@ -74,12 +66,20 @@ public class BlockMolecularAssembler extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onBlockActivated( + World w, + BlockPos pos, + IBlockState state, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - TileMolecularAssembler tg = this.getTileEntity( w, x, y, z ); + TileMolecularAssembler tg = this.getTileEntity( w, pos ); if( tg != null && !p.isSneaking() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_MAC ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_MAC ); return true; } return false; diff --git a/src/main/java/appeng/block/crafting/ItemCraftingStorage.java b/src/main/java/appeng/block/crafting/ItemCraftingStorage.java index 86369f11..211e8a79 100644 --- a/src/main/java/appeng/block/crafting/ItemCraftingStorage.java +++ b/src/main/java/appeng/block/crafting/ItemCraftingStorage.java @@ -21,7 +21,6 @@ package appeng.block.crafting; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.block.AEBaseItemBlock; import appeng.core.AEConfig; diff --git a/src/main/java/appeng/block/grindstone/BlockCrank.java b/src/main/java/appeng/block/grindstone/BlockCrank.java index 6ddc1089..9277d33a 100644 --- a/src/main/java/appeng/block/grindstone/BlockCrank.java +++ b/src/main/java/appeng/block/grindstone/BlockCrank.java @@ -23,14 +23,15 @@ import java.util.EnumSet; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.common.util.FakePlayer; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.implementations.tiles.ICrankable; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; @@ -60,17 +61,24 @@ public class BlockCrank extends AEBaseTileBlock { return RenderBlockCrank.class; } - + @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( player instanceof FakePlayer || player == null ) { - this.dropCrank( w, x, y, z ); + this.dropCrank( w, pos ); return true; } - AEBaseTile tile = this.getTileEntity( w, x, y, z ); + AEBaseTile tile = this.getTileEntity( w, pos ); if( tile instanceof TileCrank ) { if( ( (TileCrank) tile ).power() ) @@ -82,78 +90,93 @@ public class BlockCrank extends AEBaseTileBlock return true; } - private void dropCrank( World world, int x, int y, int z ) + private void dropCrank( World world, BlockPos pos ) { - world.func_147480_a( x, y, z, true ); // w.destroyBlock( x, y, z, true ); - world.markBlockForUpdate( x, y, z ); + world.destroyBlock( pos, true ); // w.destroyBlock( x, y, z, true ); + world.markBlockForUpdate( pos ); } - + @Override - public void onBlockPlacedBy( World world, int x, int y, int z, EntityLivingBase placer, ItemStack itemStack ) + public void onBlockPlacedBy( + World world, + BlockPos pos, + IBlockState state, + EntityLivingBase placer, + ItemStack stack ) { - AEBaseTile tile = this.getTileEntity( world, x, y, z ); + AEBaseTile tile = this.getTileEntity( world, pos ); if( tile != null ) { - ForgeDirection mnt = this.findCrankable( world, x, y, z ); - ForgeDirection forward = ForgeDirection.UP; - if( mnt == ForgeDirection.UP || mnt == ForgeDirection.DOWN ) + EnumFacing mnt = this.findCrankable( world, pos ); + EnumFacing forward = EnumFacing.UP; + if( mnt == EnumFacing.UP || mnt == EnumFacing.DOWN ) { - forward = ForgeDirection.SOUTH; + forward = EnumFacing.SOUTH; } tile.setOrientation( forward, mnt.getOpposite() ); } else { - this.dropCrank( world, x, y, z ); + this.dropCrank( world, pos ); } } - + @Override - public boolean isValidOrientation( World world, int x, int y, int z, ForgeDirection forward, ForgeDirection up ) + public boolean isValidOrientation( + World w, + BlockPos pos, + EnumFacing forward, + EnumFacing up ) { - TileEntity te = world.getTileEntity( x, y, z ); - return !( te instanceof TileCrank ) || this.isCrankable( world, x, y, z, up.getOpposite() ); + TileEntity te = w.getTileEntity( pos ); + return !( te instanceof TileCrank ) || this.isCrankable( w, pos, up.getOpposite() ); } - private ForgeDirection findCrankable( World world, int x, int y, int z ) + private EnumFacing findCrankable( World world, BlockPos pos ) { - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing dir : EnumFacing.VALUES ) { - if( this.isCrankable( world, x, y, z, dir ) ) + if( this.isCrankable( world, pos, dir ) ) { return dir; } } - return ForgeDirection.UNKNOWN; + return null; } - private boolean isCrankable( World world, int x, int y, int z, ForgeDirection offset ) + private boolean isCrankable( World world, BlockPos pos, EnumFacing offset ) { - TileEntity te = world.getTileEntity( x + offset.offsetX, y + offset.offsetY, z + offset.offsetZ ); + BlockPos o = pos.offset( offset); + TileEntity te = world.getTileEntity( o ); return te instanceof ICrankable && ( (ICrankable) te ).canCrankAttach( offset.getOpposite() ); } - + @Override - public void onNeighborBlockChange( World world, int x, int y, int z, Block block ) + public void onNeighborBlockChange( + World world, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - AEBaseTile tile = this.getTileEntity( world, x, y, z ); + + AEBaseTile tile = this.getTileEntity( world, pos ); if( tile != null ) { - if( !this.isCrankable( world, x, y, z, tile.getUp().getOpposite() ) ) + if( !this.isCrankable( world, pos, tile.getUp().getOpposite() ) ) { - this.dropCrank( world, x, y, z ); + this.dropCrank( world, pos ); } } else { - this.dropCrank( world, x, y, z ); + this.dropCrank( world, pos ); } } @Override - public boolean canPlaceBlockAt( World world, int x, int y, int z ) + public boolean canPlaceBlockAt( World world, BlockPos pos ) { - return this.findCrankable( world, x, y, z ) != ForgeDirection.UNKNOWN; + return this.findCrankable( world, pos ) != null; } } diff --git a/src/main/java/appeng/block/grindstone/BlockGrinder.java b/src/main/java/appeng/block/grindstone/BlockGrinder.java index bf57093e..f5528476 100644 --- a/src/main/java/appeng/block/grindstone/BlockGrinder.java +++ b/src/main/java/appeng/block/grindstone/BlockGrinder.java @@ -22,10 +22,12 @@ package appeng.block.grindstone; import java.util.EnumSet; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -46,12 +48,34 @@ public class BlockGrinder extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onBlockActivated( + World worldIn, + BlockPos pos, + IBlockState state, + EntityPlayer playerIn, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - TileGrinder tg = this.getTileEntity( w, x, y, z ); + // TODO Auto-generated method stub + return super.onBlockActivated( worldIn, pos, state, playerIn, side, hitX, hitY, hitZ ); + } + + @Override + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) + { + TileGrinder tg = this.getTileEntity( w, pos ); if( tg != null && !p.isSneaking() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_GRINDER ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_GRINDER ); return true; } return false; diff --git a/src/main/java/appeng/block/misc/BlockCellWorkbench.java b/src/main/java/appeng/block/misc/BlockCellWorkbench.java index 63c54c2b..7dfcfb8b 100644 --- a/src/main/java/appeng/block/misc/BlockCellWorkbench.java +++ b/src/main/java/appeng/block/misc/BlockCellWorkbench.java @@ -23,9 +23,10 @@ import java.util.EnumSet; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -45,19 +46,26 @@ public class BlockCellWorkbench extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileCellWorkbench tg = this.getTileEntity( w, x, y, z ); + TileCellWorkbench tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_CELL_WORKBENCH ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_CELL_WORKBENCH ); } return true; } diff --git a/src/main/java/appeng/block/misc/BlockCharger.java b/src/main/java/appeng/block/misc/BlockCharger.java index 47008485..871d43d8 100644 --- a/src/main/java/appeng/block/misc/BlockCharger.java +++ b/src/main/java/appeng/block/misc/BlockCharger.java @@ -25,17 +25,18 @@ import java.util.List; import java.util.Random; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; +import appeng.api.util.AEAxisAlignedBB; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockCharger; @@ -69,7 +70,14 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( player.isSneaking() ) { @@ -78,7 +86,7 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision if( Platform.isServer() ) { - TileCharger tc = this.getTileEntity( w, x, y, z ); + TileCharger tc = this.getTileEntity( w, pos ); if( tc != null ) { tc.activate( player ); @@ -87,10 +95,14 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision return true; } - - @Override + + @Override @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World w, int x, int y, int z, Random r ) + public void randomDisplayTick( + World w, + BlockPos pos, + IBlockState state, + Random r ) { if( !AEConfig.instance.enableEffects ) { @@ -102,7 +114,7 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision return; } - AEBaseTile tile = this.getTileEntity( w, x, y, z ); + AEBaseTile tile = this.getTileEntity( w, pos ); if( tile instanceof TileCharger ) { TileCharger tc = (TileCharger) tile; @@ -117,7 +129,7 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision { if( CommonHelper.proxy.shouldAddParticles( r ) ) { - LightningFX fx = new LightningFX( w, xOff + 0.5 + x, yOff + 0.5 + y, zOff + 0.5 + z, 0.0D, 0.0D, 0.0D ); + LightningFX fx = new LightningFX( w, xOff + 0.5 + pos.getX(), yOff + 0.5 + pos.getY(), zOff + 0.5 + pos.getZ(), 0.0D, 0.0D, 0.0D ); Minecraft.getMinecraft().effectRenderer.addEffect( fx ); } } @@ -126,27 +138,31 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { - TileCharger tile = this.getTileEntity( w, x, y, z ); + TileCharger tile = this.getTileEntity( w, pos ); if( tile != null ) { double twoPixels = 2.0 / 16.0; - ForgeDirection up = tile.getUp(); - ForgeDirection forward = tile.getForward(); - AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( twoPixels, twoPixels, twoPixels, 1.0 - twoPixels, 1.0 - twoPixels, 1.0 - twoPixels ); + EnumFacing up = tile.getUp(); + EnumFacing forward = tile.getForward(); + AEAxisAlignedBB bb = AEAxisAlignedBB.fromBounds( twoPixels, twoPixels, twoPixels, 1.0 - twoPixels, 1.0 - twoPixels, 1.0 - twoPixels ); - if( up.offsetX != 0 ) + if( up.getFrontOffsetX() != 0 ) { bb.minX = 0; bb.maxX = 1; } - if( up.offsetY != 0 ) + if( up.getFrontOffsetY() != 0 ) { bb.minY = 0; bb.maxY = 1; } - if( up.offsetZ != 0 ) + if( up.getFrontOffsetZ() != 0 ) { bb.minZ = 0; bb.maxZ = 1; @@ -176,14 +192,19 @@ public class BlockCharger extends AEBaseTileBlock implements ICustomCollision break; } - return Collections.singletonList( bb ); + return Collections.singletonList( bb.getBoundingBox() ); } - return Collections.singletonList( AxisAlignedBB.getBoundingBox( 0.0, 0, 0.0, 1.0, 1.0, 1.0 ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( 0.0, 0, 0.0, 1.0, 1.0, 1.0 ) ); } @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - out.add( AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) ); + out.add( AxisAlignedBB.fromBounds( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) ); } } diff --git a/src/main/java/appeng/block/misc/BlockCondenser.java b/src/main/java/appeng/block/misc/BlockCondenser.java index 338cd10e..e963956a 100644 --- a/src/main/java/appeng/block/misc/BlockCondenser.java +++ b/src/main/java/appeng/block/misc/BlockCondenser.java @@ -23,9 +23,10 @@ import java.util.EnumSet; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -45,7 +46,14 @@ public class BlockCondenser extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( player.isSneaking() ) { @@ -54,10 +62,10 @@ public class BlockCondenser extends AEBaseTileBlock if( Platform.isServer() ) { - TileCondenser tc = this.getTileEntity( w, x, y, z ); + TileCondenser tc = this.getTileEntity( w, pos ); if( tc != null && !player.isSneaking() ) { - Platform.openGUI( player, tc, ForgeDirection.getOrientation( side ), GuiBridge.GUI_CONDENSER ); + Platform.openGUI( player, tc, AEPartLocation.fromFacing( side ), GuiBridge.GUI_CONDENSER ); return true; } } diff --git a/src/main/java/appeng/block/misc/BlockInscriber.java b/src/main/java/appeng/block/misc/BlockInscriber.java index 9f53436e..803ab1ee 100644 --- a/src/main/java/appeng/block/misc/BlockInscriber.java +++ b/src/main/java/appeng/block/misc/BlockInscriber.java @@ -23,9 +23,10 @@ import java.util.EnumSet; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockInscriber; @@ -53,21 +54,28 @@ public class BlockInscriber extends AEBaseTileBlock { return RenderBlockInscriber.class; } - + @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileInscriber tg = this.getTileEntity( w, x, y, z ); + TileInscriber tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_INSCRIBER ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_INSCRIBER ); } return true; } diff --git a/src/main/java/appeng/block/misc/BlockInterface.java b/src/main/java/appeng/block/misc/BlockInterface.java index 4b7f3fa3..01de4eca 100644 --- a/src/main/java/appeng/block/misc/BlockInterface.java +++ b/src/main/java/appeng/block/misc/BlockInterface.java @@ -23,9 +23,10 @@ import java.util.EnumSet; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.api.util.IOrientable; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; @@ -54,19 +55,26 @@ public class BlockInterface extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileInterface tg = this.getTileEntity( w, x, y, z ); + TileInterface tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_INTERFACE ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_INTERFACE ); } return true; } @@ -80,11 +88,11 @@ public class BlockInterface extends AEBaseTileBlock } @Override - protected void customRotateBlock( IOrientable rotatable, ForgeDirection axis ) + protected void customRotateBlock( IOrientable rotatable, EnumFacing axis ) { if( rotatable instanceof TileInterface ) { - ( (TileInterface) rotatable ).setSide( axis ); + ( (TileInterface) rotatable ).setSide( AEPartLocation.fromFacing( axis ) ); } } } diff --git a/src/main/java/appeng/block/misc/BlockLightDetector.java b/src/main/java/appeng/block/misc/BlockLightDetector.java index add5e88e..8136e875 100644 --- a/src/main/java/appeng/block/misc/BlockLightDetector.java +++ b/src/main/java/appeng/block/misc/BlockLightDetector.java @@ -25,20 +25,19 @@ import java.util.List; import java.util.Random; import net.minecraft.block.Block; +import net.minecraft.block.BlockTorch; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderQuartzTorch; import appeng.core.features.AEFeature; import appeng.helpers.ICustomCollision; @@ -46,14 +45,13 @@ import appeng.helpers.MetaRotation; import appeng.tile.misc.TileLightDetector; -public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBlock, ICustomCollision +public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBlock,ICustomCollision { public BlockLightDetector() { super( Material.circuits ); - this.setLightLevel( 0.9375F ); this.setLightOpacity( 0 ); this.isFullSize = false; this.isOpaque = false; @@ -63,22 +61,49 @@ public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBl } @Override - public int isProvidingWeakPower( IBlockAccess w, int x, int y, int z, int side ) + public int getMetaFromState( + IBlockState state ) { - if( w instanceof World && ( (TileLightDetector) this.getTileEntity( w, x, y, z ) ).isReady() ) + return 0; + } + + @Override + public IBlockState getStateFromMeta( + int meta ) + { + return getDefaultState(); + } + + @Override + protected IProperty[] getAEStates() + { + return new IProperty[]{ BlockTorch.FACING }; + } + + @Override + public int isProvidingWeakPower( + IBlockAccess w, + BlockPos pos, + IBlockState state, + EnumFacing side ) + { + if( w instanceof World && ( (TileLightDetector) this.getTileEntity( w, pos ) ).isReady() ) { - return ( (World) w ).getBlockLightValue( x, y, z ) - 6; + return ( (World) w ).getLightFromNeighbors( pos ) - 6; } return 0; } @Override - public void onNeighborChange( IBlockAccess world, int x, int y, int z, int tileX, int tileY, int tileZ ) + public void onNeighborChange( + IBlockAccess world, + BlockPos pos, + BlockPos neighbor ) { - super.onNeighborChange( world, x, y, z, tileX, tileY, tileZ ); + super.onNeighborChange( world, pos, neighbor ); - TileLightDetector tld = this.getTileEntity( world, x, y, z ); + TileLightDetector tld = this.getTileEntity( world, pos ); if( tld != null ) { tld.updateLight(); @@ -86,8 +111,11 @@ public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBl } @Override - @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World w, int x, int y, int z, Random r ) + public void randomDisplayTick( + World worldIn, + BlockPos pos, + IBlockState state, + Random rand ) { // cancel out lightning } @@ -99,58 +127,76 @@ public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBl } @Override - public boolean isValidOrientation( World w, int x, int y, int z, ForgeDirection forward, ForgeDirection up ) + public boolean isValidOrientation( + World w, + BlockPos pos, + EnumFacing forward, + EnumFacing up ) { - return this.canPlaceAt( w, x, y, z, up.getOpposite() ); + return this.canPlaceAt( w, pos, up.getOpposite() ); } - private boolean canPlaceAt( World w, int x, int y, int z, ForgeDirection dir ) + private boolean canPlaceAt( World w, BlockPos pos, EnumFacing dir ) { - return w.isSideSolid( x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite(), false ); + return w.isSideSolid( pos.offset( dir ), dir.getOpposite(), false ); + } + + @Override + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) + { + EnumFacing up = this.getOrientable( w, pos ).getUp(); + double xOff = -0.3 * up.getFrontOffsetX(); + double yOff = -0.3 * up.getFrontOffsetY(); + double zOff = -0.3 * up.getFrontOffsetZ(); + return Collections.singletonList( AxisAlignedBB.fromBounds( xOff + 0.3, yOff + 0.3, zOff + 0.3, xOff + 0.7, yOff + 0.7, zOff + 0.7 ) ); } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) - { - ForgeDirection up = this.getOrientable( w, x, y, z ).getUp(); - double xOff = -0.3 * up.offsetX; - double yOff = -0.3 * up.offsetY; - double zOff = -0.3 * up.offsetZ; - return Collections.singletonList( AxisAlignedBB.getBoundingBox( xOff + 0.3, yOff + 0.3, zOff + 0.3, xOff + 0.7, yOff + 0.7, zOff + 0.7 ) ); - } - - @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) {/* * double xOff = -0.15 * getUp().offsetX; double yOff = -0.15 * getUp().offsetY; double zOff = -0.15 * * getUp().offsetZ; out.add( AxisAlignedBB.getBoundingBox( xOff + (double) x + 0.15, yOff + (double) y + 0.15, zOff * + (double) z + 0.15,// ahh xOff + (double) x + 0.85, yOff + (double) y + 0.85, zOff + (double) z + 0.85 ) ); */ } - + @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block id ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - ForgeDirection up = this.getOrientable( w, x, y, z ).getUp(); - if( !this.canPlaceAt( w, x, y, z, up.getOpposite() ) ) + EnumFacing up = this.getOrientable( w, pos ).getUp(); + if( !this.canPlaceAt( w, pos, up.getOpposite() ) ) { - this.dropTorch( w, x, y, z ); + this.dropTorch( w, pos ); } } - private void dropTorch( World w, int x, int y, int z ) + private void dropTorch( World w, BlockPos pos ) { - w.func_147480_a( x, y, z, true ); - // w.destroyBlock( x, y, z, true ); - w.markBlockForUpdate( x, y, z ); + w.destroyBlock( pos, true ); + w.markBlockForUpdate( pos ); } - + @Override - public boolean canPlaceBlockAt( World w, int x, int y, int z ) + public boolean canPlaceBlockAt( + World w, + BlockPos pos ) { - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing dir : EnumFacing.VALUES ) { - if( this.canPlaceAt( w, x, y, z, dir ) ) + if( this.canPlaceAt( w, pos, dir ) ) { return true; } @@ -165,8 +211,8 @@ public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBl } @Override - public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z ) + public IOrientable getOrientable( final IBlockAccess w, BlockPos pos ) { - return new MetaRotation( w, x, y, z ); + return new MetaRotation( w, pos,true ); } } diff --git a/src/main/java/appeng/block/misc/BlockPaint.java b/src/main/java/appeng/block/misc/BlockPaint.java index 5750e0a3..eb70282b 100644 --- a/src/main/java/appeng/block/misc/BlockPaint.java +++ b/src/main/java/appeng/block/misc/BlockPaint.java @@ -26,16 +26,17 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.MapColor; import net.minecraft.block.material.MaterialLiquid; +import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockPaint; @@ -58,6 +59,12 @@ public class BlockPaint extends AEBaseTileBlock this.setFeature( EnumSet.of( AEFeature.PaintBalls ) ); } + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } + @Override protected Class getRenderer() { @@ -70,23 +77,32 @@ public class BlockPaint extends AEBaseTileBlock { // do nothing } - + @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool( World world, int x, int y, int z ) + public AxisAlignedBB getCollisionBoundingBox( + World worldIn, + BlockPos pos, + IBlockState state ) { return null; } @Override - public boolean canCollideCheck( int metadata, boolean isHoldingRightClick ) + public boolean canCollideCheck( + IBlockState state, + boolean hitIfLiquid ) { return false; } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block junk ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - TilePaint tp = this.getTileEntity( w, x, y, z ); + TilePaint tp = this.getTileEntity( w, pos ); if( tp != null ) { @@ -95,30 +111,42 @@ public class BlockPaint extends AEBaseTileBlock } @Override - public Item getItemDropped( int meta, Random random, int fortune ) + public Item getItemDropped( + IBlockState state, + Random rand, + int fortune ) { return null; } @Override - public void dropBlockAsItemWithChance( World world, int x, int y, int z, int meta, float chance, int fortune ) + public void dropBlockAsItemWithChance( + World worldIn, + BlockPos pos, + IBlockState state, + float chance, + int fortune ) { - + } - + @Override - public void fillWithRain( World w, int x, int y, int z ) + public void fillWithRain( + World w, + BlockPos pos ) { if( Platform.isServer() ) { - w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 ); + w.setBlockToAir( pos ); } } - + @Override - public int getLightValue( IBlockAccess w, int x, int y, int z ) + public int getLightValue( + IBlockAccess w, + BlockPos pos ) { - TilePaint tp = this.getTileEntity( w, x, y, z ); + TilePaint tp = this.getTileEntity( w, pos ); if( tp != null ) { @@ -129,14 +157,19 @@ public class BlockPaint extends AEBaseTileBlock } @Override - public boolean isReplaceable( IBlockAccess world, int x, int y, int z ) + public boolean isAir( + IBlockAccess world, + BlockPos pos ) { return true; } - + @Override - public boolean isAir( IBlockAccess world, int x, int y, int z ) + public boolean isReplaceable( + World worldIn, + BlockPos pos ) { return true; } + } diff --git a/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java b/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java index e2c9ccb8..5aa10085 100644 --- a/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java +++ b/src/main/java/appeng/block/misc/BlockQuartzGrowthAccelerator.java @@ -24,16 +24,11 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; -import net.minecraft.world.IBlockAccess; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import appeng.api.util.IOrientable; -import appeng.api.util.IOrientableBlock; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockQuartzAccelerator; @@ -41,12 +36,11 @@ import appeng.client.render.effects.LightningFX; import appeng.core.AEConfig; import appeng.core.CommonHelper; import appeng.core.features.AEFeature; -import appeng.helpers.MetaRotation; import appeng.tile.misc.TileQuartzGrowthAccelerator; import appeng.util.Platform; -public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOrientableBlock +public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock { public BlockQuartzGrowthAccelerator() @@ -64,42 +58,50 @@ public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOr } @Override - @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World w, int x, int y, int z, Random r ) + public void randomDisplayTick( + World w, + BlockPos pos, + IBlockState state, + Random r ) { if( !AEConfig.instance.enableEffects ) { return; } - TileQuartzGrowthAccelerator cga = this.getTileEntity( w, x, y, z ); + TileQuartzGrowthAccelerator cga = this.getTileEntity( w, pos ); if( cga != null && cga.hasPower && CommonHelper.proxy.shouldAddParticles( r ) ) { double d0 = r.nextFloat() - 0.5F; double d1 = r.nextFloat() - 0.5F; - ForgeDirection up = cga.getUp(); - ForgeDirection forward = cga.getForward(); - ForgeDirection west = Platform.crossProduct( forward, up ); + EnumFacing up = cga.getUp(); + EnumFacing forward = cga.getForward(); + EnumFacing west = Platform.crossProduct( forward, up ); - double rx = 0.5 + x; - double ry = 0.5 + y; - double rz = 0.5 + z; + double rx = 0.5 + pos.getX(); + double ry = 0.5 + pos.getY(); + double rz = 0.5 + pos.getZ(); double dx = 0; double dz = 0; - rx += up.offsetX * d0; - ry += up.offsetY * d0; - rz += up.offsetZ * d0; + rx += up.getFrontOffsetX() * d0; + ry += up.getFrontOffsetY() * d0; + rz += up.getFrontOffsetZ() * d0; + int x = pos.getX(); + int y = pos.getY(); + int z = pos.getZ(); + switch( r.nextInt( 4 ) ) { case 0: dx = 0.6; dz = d1; - if( !w.getBlock( x + west.offsetX, y + west.offsetY, z + west.offsetZ ).isAir( w, x + west.offsetX, y + west.offsetY, z + west.offsetZ ) ) + BlockPos pt = new BlockPos( x + west.getFrontOffsetX(), y + west.getFrontOffsetY(), z + west.getFrontOffsetZ() ); + if( !w.getBlockState(pt).getBlock().isAir( w, pt) ) { return; } @@ -107,7 +109,8 @@ public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOr case 1: dx = d1; dz += 0.6; - if( !w.getBlock( x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ ).isAir( w, x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ ) ) + pt = new BlockPos( x + forward.getFrontOffsetX(), y + forward.getFrontOffsetY(), z + forward.getFrontOffsetZ() ); + if( !w.getBlockState(pt).getBlock().isAir( w, pt) ) { return; } @@ -115,7 +118,8 @@ public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOr case 2: dx = d1; dz = -0.6; - if( !w.getBlock( x - forward.offsetX, y - forward.offsetY, z - forward.offsetZ ).isAir( w, x - forward.offsetX, y - forward.offsetY, z - forward.offsetZ ) ) + pt = new BlockPos( x - forward.getFrontOffsetX(), y - forward.getFrontOffsetY(), z - forward.getFrontOffsetZ() ); + if( !w.getBlockState(pt).getBlock().isAir( w, pt) ) { return; } @@ -123,35 +127,25 @@ public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOr case 3: dx = -0.6; dz = d1; - if( !w.getBlock( x - west.offsetX, y - west.offsetY, z - west.offsetZ ).isAir( w, x - west.offsetX, y - west.offsetY, z - west.offsetZ ) ) + pt = new BlockPos( x - west.getFrontOffsetX(), y - west.getFrontOffsetY(), z - west.getFrontOffsetZ() ); + if( !w.getBlockState(pt).getBlock().isAir( w, pt) ) { return; } break; } - rx += dx * west.offsetX; - ry += dx * west.offsetY; - rz += dx * west.offsetZ; + rx += dx * west.getFrontOffsetX(); + ry += dx * west.getFrontOffsetY(); + rz += dx * west.getFrontOffsetZ(); - rx += dz * forward.offsetX; - ry += dz * forward.offsetY; - rz += dz * forward.offsetZ; + rx += dz * forward.getFrontOffsetX(); + ry += dz * forward.getFrontOffsetY(); + rz += dz * forward.getFrontOffsetZ(); LightningFX fx = new LightningFX( w, rx, ry, rz, 0.0D, 0.0D, 0.0D ); Minecraft.getMinecraft().effectRenderer.addEffect( fx ); } } - @Override - public boolean usesMetadata() - { - return true; - } - - @Override - public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z ) - { - return new MetaRotation( w, x, y, z ); - } } diff --git a/src/main/java/appeng/block/misc/BlockQuartzTorch.java b/src/main/java/appeng/block/misc/BlockQuartzTorch.java index 103b3766..b2488d32 100644 --- a/src/main/java/appeng/block/misc/BlockQuartzTorch.java +++ b/src/main/java/appeng/block/misc/BlockQuartzTorch.java @@ -25,17 +25,19 @@ import java.util.List; import java.util.Random; import net.minecraft.block.Block; +import net.minecraft.block.BlockTorch; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; import appeng.block.AEBaseBlock; @@ -61,6 +63,26 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I this.isFullSize = false; this.isOpaque = false; } + + @Override + public int getMetaFromState( + IBlockState state ) + { + return 0; + } + + @Override + public IBlockState getStateFromMeta( + int meta ) + { + return getDefaultState(); + } + + @Override + protected IProperty[] getAEStates() + { + return new IProperty[]{ BlockTorch.FACING }; + } @Override protected Class getRenderer() @@ -69,38 +91,43 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I } @Override - public boolean isValidOrientation( World w, int x, int y, int z, ForgeDirection forward, ForgeDirection up ) + public boolean isValidOrientation( World w, BlockPos pos, EnumFacing forward, EnumFacing up ) { - return this.canPlaceAt( w, x, y, z, up.getOpposite() ); + return this.canPlaceAt( w, pos, up.getOpposite() ); } - private boolean canPlaceAt( World w, int x, int y, int z, ForgeDirection dir ) + private boolean canPlaceAt( World w, BlockPos pos, EnumFacing dir ) { - return w.isSideSolid( x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite(), false ); + BlockPos test = pos.offset( dir ); + return w.isSideSolid( test, dir.getOpposite(), false ); } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( World w, BlockPos pos, Entity e, boolean isVisual ) { - ForgeDirection up = this.getOrientable( w, x, y, z ).getUp(); - double xOff = -0.3 * up.offsetX; - double yOff = -0.3 * up.offsetY; - double zOff = -0.3 * up.offsetZ; - return Collections.singletonList( AxisAlignedBB.getBoundingBox( xOff + 0.3, yOff + 0.3, zOff + 0.3, xOff + 0.7, yOff + 0.7, zOff + 0.7 ) ); + EnumFacing up = this.getOrientable( w, pos ).getUp(); + double xOff = -0.3 * up.getFrontOffsetX(); + double yOff = -0.3 * up.getFrontOffsetY(); + double zOff = -0.3 * up.getFrontOffsetZ(); + return Collections.singletonList( AxisAlignedBB.fromBounds( xOff + 0.3, yOff + 0.3, zOff + 0.3, xOff + 0.7, yOff + 0.7, zOff + 0.7 ) ); } @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( World w, BlockPos pos, AxisAlignedBB bb, List out, Entity e ) {/* * double xOff = -0.15 * getUp().offsetX; double yOff = -0.15 * getUp().offsetY; double zOff = -0.15 * * getUp().offsetZ; out.add( AxisAlignedBB.getBoundingBox( xOff + (double) x + 0.15, yOff + (double) y + 0.15, zOff * + (double) z + 0.15,// ahh xOff + (double) x + 0.85, yOff + (double) y + 0.85, zOff + (double) z + 0.85 ) ); */ } - + @Override @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World w, int x, int y, int z, Random r ) + public void randomDisplayTick( + World w, + BlockPos pos, + IBlockState state, + Random r ) { if( !AEConfig.instance.enableEffects ) { @@ -112,15 +139,15 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I return; } - ForgeDirection up = this.getOrientable( w, x, y, z ).getUp(); - double xOff = -0.3 * up.offsetX; - double yOff = -0.3 * up.offsetY; - double zOff = -0.3 * up.offsetZ; + EnumFacing up = this.getOrientable( w, pos ).getUp(); + double xOff = -0.3 * up.getFrontOffsetX(); + double yOff = -0.3 * up.getFrontOffsetY(); + double zOff = -0.3 * up.getFrontOffsetZ(); for( int bolts = 0; bolts < 3; bolts++ ) { if( CommonHelper.proxy.shouldAddParticles( r ) ) { - LightningFX fx = new LightningFX( w, xOff + 0.5 + x, yOff + 0.5 + y, zOff + 0.5 + z, 0.0D, 0.0D, 0.0D ); + LightningFX fx = new LightningFX( w, xOff + 0.5 + pos.getX(), yOff + 0.5 + pos.getY(), zOff + 0.5 + pos.getZ(), 0.0D, 0.0D, 0.0D ); Minecraft.getMinecraft().effectRenderer.addEffect( fx ); } @@ -128,28 +155,31 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block id ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - ForgeDirection up = this.getOrientable( w, x, y, z ).getUp(); - if( !this.canPlaceAt( w, x, y, z, up.getOpposite() ) ) + EnumFacing up = this.getOrientable( w, pos ).getUp(); + if( !this.canPlaceAt( w, pos, up.getOpposite() ) ) { - this.dropTorch( w, x, y, z ); + this.dropTorch( w, pos ); } } - private void dropTorch( World w, int x, int y, int z ) + private void dropTorch( World w, BlockPos pos ) { - w.func_147480_a( x, y, z, true ); - // w.destroyBlock( x, y, z, true ); - w.markBlockForUpdate( x, y, z ); + w.destroyBlock( pos, true ); + w.markBlockForUpdate( pos ); } @Override - public boolean canPlaceBlockAt( World w, int x, int y, int z ) + public boolean canPlaceBlockAt( World w, BlockPos pos ) { - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing dir : EnumFacing.VALUES ) { - if( this.canPlaceAt( w, x, y, z, dir ) ) + if( this.canPlaceAt( w, pos, dir ) ) { return true; } @@ -164,8 +194,8 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I } @Override - public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z ) + public IOrientable getOrientable( final IBlockAccess w, BlockPos pos ) { - return new MetaRotation( w, x, y, z ); + return new MetaRotation( w, pos,true ); } } diff --git a/src/main/java/appeng/block/misc/BlockSecurity.java b/src/main/java/appeng/block/misc/BlockSecurity.java index 8915e43a..f2fc0355 100644 --- a/src/main/java/appeng/block/misc/BlockSecurity.java +++ b/src/main/java/appeng/block/misc/BlockSecurity.java @@ -23,9 +23,11 @@ import java.util.EnumSet; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RendererSecurity; @@ -46,21 +48,34 @@ public class BlockSecurity extends AEBaseTileBlock this.setFeature( EnumSet.of( AEFeature.Security ) ); } + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } + @Override protected Class getRenderer() { return RendererSecurity.class; } - + @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileSecurity tg = this.getTileEntity( w, x, y, z ); + TileSecurity tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isClient() ) @@ -68,7 +83,7 @@ public class BlockSecurity extends AEBaseTileBlock return true; } - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_SECURITY ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_SECURITY ); return true; } return false; diff --git a/src/main/java/appeng/block/misc/BlockSkyCompass.java b/src/main/java/appeng/block/misc/BlockSkyCompass.java index 4a075e32..b05ca6b4 100644 --- a/src/main/java/appeng/block/misc/BlockSkyCompass.java +++ b/src/main/java/appeng/block/misc/BlockSkyCompass.java @@ -25,17 +25,12 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockSkyCompass; @@ -63,58 +58,50 @@ public class BlockSkyCompass extends AEBaseTileBlock implements ICustomCollision } @Override - @SideOnly( Side.CLIENT ) - public IIcon getIcon( int direction, int metadata ) + public boolean isValidOrientation( World w, BlockPos pos, EnumFacing forward, EnumFacing up ) { - return Blocks.iron_block.getIcon( direction, metadata ); - } - - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - // :P - } - - @Override - public boolean isValidOrientation( World w, int x, int y, int z, ForgeDirection forward, ForgeDirection up ) - { - TileSkyCompass sc = this.getTileEntity( w, x, y, z ); + TileSkyCompass sc = this.getTileEntity( w, pos ); if( sc != null ) { return false; } - return this.canPlaceAt( w, x, y, z, forward.getOpposite() ); + return this.canPlaceAt( w, pos, forward.getOpposite() ); } - private boolean canPlaceAt( World w, int x, int y, int z, ForgeDirection dir ) + private boolean canPlaceAt( World w, BlockPos pos, EnumFacing dir ) { - return w.isSideSolid( x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite(), false ); + return w.isSideSolid( pos.offset( dir ), dir.getOpposite(), false ); } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block id ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - TileSkyCompass sc = this.getTileEntity( w, x, y, z ); - ForgeDirection up = sc.getForward(); - if( !this.canPlaceAt( w, x, y, z, up.getOpposite() ) ) + TileSkyCompass sc = this.getTileEntity( w, pos ); + EnumFacing up = sc.getForward(); + if( !this.canPlaceAt( w, pos, up.getOpposite() ) ) { - this.dropTorch( w, x, y, z ); + this.dropTorch( w, pos ); } } - private void dropTorch( World w, int x, int y, int z ) + private void dropTorch( World w, BlockPos pos ) { - w.func_147480_a( x, y, z, true ); - // w.destroyBlock( x, y, z, true ); - w.markBlockForUpdate( x, y, z ); + w.destroyBlock( pos, true ); + w.markBlockForUpdate( pos ); } @Override - public boolean canPlaceBlockAt( World w, int x, int y, int z ) + public boolean canPlaceBlockAt( + World w, + BlockPos pos ) { - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing dir : EnumFacing.VALUES ) { - if( this.canPlaceAt( w, x, y, z, dir ) ) + if( this.canPlaceAt( w, pos, dir ) ) { return true; } @@ -123,12 +110,16 @@ public class BlockSkyCompass extends AEBaseTileBlock implements ICustomCollision } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { - TileSkyCompass tile = this.getTileEntity( w, x, y, z ); + TileSkyCompass tile = this.getTileEntity( w, pos ); if( tile != null ) { - ForgeDirection forward = tile.getForward(); + EnumFacing forward = tile.getForward(); double minX = 0; double minY = 0; @@ -179,14 +170,19 @@ public class BlockSkyCompass extends AEBaseTileBlock implements ICustomCollision break; } - return Collections.singletonList( AxisAlignedBB.getBoundingBox( minX, minY, minZ, maxX, maxY, maxZ ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( minX, minY, minZ, maxX, maxY, maxZ ) ); } - return Collections.singletonList( AxisAlignedBB.getBoundingBox( 0.0, 0, 0.0, 1.0, 1.0, 1.0 ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( 0.0, 0, 0.0, 1.0, 1.0, 1.0 ) ); } @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - + } } diff --git a/src/main/java/appeng/block/misc/BlockTinyTNT.java b/src/main/java/appeng/block/misc/BlockTinyTNT.java index d2bc3eb5..716395f4 100644 --- a/src/main/java/appeng/block/misc/BlockTinyTNT.java +++ b/src/main/java/appeng/block/misc/BlockTinyTNT.java @@ -26,25 +26,22 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; -import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.Explosion; import net.minecraft.world.World; - -import cpw.mods.fml.common.registry.EntityRegistry; - +import net.minecraftforge.fml.common.registry.EntityRegistry; import appeng.block.AEBaseBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderTinyTNT; -import appeng.client.texture.FullIcon; import appeng.core.AppEng; import appeng.core.features.AEFeature; import appeng.entity.EntityIds; @@ -72,7 +69,7 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision @Override protected Class getRenderer() { - return RenderTinyTNT.class; + return null; } @Override @@ -83,78 +80,86 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision } @Override - public IIcon getIcon( int direction, int metadata ) - { - return new FullIcon( Blocks.tnt.getIcon( direction, metadata ) ); - } - - @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.flint_and_steel ) { - this.startFuse( w, x, y, z, player ); - w.setBlockToAir( x, y, z ); + this.startFuse( w, pos, player ); + w.setBlockToAir( pos ); player.getCurrentEquippedItem().damageItem( 1, player ); return true; } else { - return super.onActivated( w, x, y, z, player, side, hitX, hitY, hitZ ); + return super.onActivated( w, pos, player, side, hitX, hitY, hitZ ); } } - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - // no images required. - } - - public void startFuse( World w, int x, int y, int z, EntityLivingBase igniter ) + public void startFuse( World w, BlockPos pos, EntityLivingBase igniter ) { if( !w.isRemote ) { - EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, igniter ); + EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, pos.getX() + 0.5F, pos.getY() + 0.5F, pos.getZ() + 0.5F, igniter ); w.spawnEntityInWorld( primedTinyTNTEntity ); w.playSoundAtEntity( primedTinyTNTEntity, "game.tnt.primed", 1.0F, 1.0F ); } } - + @Override - public void onBlockAdded( World w, int x, int y, int z ) + public void onBlockAdded( + World w, + BlockPos pos, + IBlockState state ) { - super.onBlockAdded( w, x, y, z ); + super.onBlockAdded( w, pos, state ); - if( w.isBlockIndirectlyGettingPowered( x, y, z ) ) + if( w.isBlockIndirectlyGettingPowered( pos ) > 0 ) { - this.startFuse( w, x, y, z, null ); - w.setBlockToAir( x, y, z ); + this.startFuse( w, pos, null ); + w.setBlockToAir( pos ); } } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block id ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - if( w.isBlockIndirectlyGettingPowered( x, y, z ) ) + if( w.isBlockIndirectlyGettingPowered( pos ) > 0 ) { - this.startFuse( w, x, y, z, null ); - w.setBlockToAir( x, y, z ); + this.startFuse( w, pos, null ); + w.setBlockToAir( pos ); } } @Override - public void onBlockDestroyedByExplosion( World w, int x, int y, int z, Explosion exp ) + public void onBlockExploded( + World w, + BlockPos pos, + Explosion exp ) { if( !w.isRemote ) { - EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, exp.getExplosivePlacedBy() ); + EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, pos.getX() + 0.5F, pos.getY() + 0.5F, pos.getZ() + 0.5F, exp.getExplosivePlacedBy() ); primedTinyTNTEntity.fuse = w.rand.nextInt( primedTinyTNTEntity.fuse / 4 ) + primedTinyTNTEntity.fuse / 8; w.spawnEntityInWorld( primedTinyTNTEntity ); } } @Override - public void onEntityCollidedWithBlock( World w, int x, int y, int z, Entity entity ) + public void onEntityCollidedWithBlock( + World w, + BlockPos pos, + Entity entity ) { if( entity instanceof EntityArrow && !w.isRemote ) { @@ -162,8 +167,8 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision if( entityarrow.isBurning() ) { - this.startFuse( w, x, y, z, entityarrow.shootingEntity instanceof EntityLivingBase ? (EntityLivingBase) entityarrow.shootingEntity : null ); - w.setBlockToAir( x, y, z ); + this.startFuse( w, pos, entityarrow.shootingEntity instanceof EntityLivingBase ? (EntityLivingBase) entityarrow.shootingEntity : null ); + w.setBlockToAir( pos ); } } } @@ -175,14 +180,23 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { - return Collections.singletonList( AxisAlignedBB.getBoundingBox( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) ); } @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - out.add( AxisAlignedBB.getBoundingBox( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) ); + out.add( AxisAlignedBB.fromBounds( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) ); } } diff --git a/src/main/java/appeng/block/misc/BlockVibrationChamber.java b/src/main/java/appeng/block/misc/BlockVibrationChamber.java index 82b8c18f..985175ae 100644 --- a/src/main/java/appeng/block/misc/BlockVibrationChamber.java +++ b/src/main/java/appeng/block/misc/BlockVibrationChamber.java @@ -23,14 +23,17 @@ import java.util.EnumSet; import java.util.Random; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumParticleTypes; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.core.AEConfig; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -49,14 +52,14 @@ public final class BlockVibrationChamber extends AEBaseTileBlock this.setHardness( 4.2F ); this.setFeature( EnumSet.of( AEFeature.PowerGen ) ); } - + @Override - public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s ) + public appeng.client.texture.IAESprite getIcon(IBlockAccess w, BlockPos pos, EnumFacing side) { - IIcon ico = super.getIcon( w, x, y, z, s ); - TileVibrationChamber tvc = this.getTileEntity( w, x, y, z ); + IAESprite ico = super.getIcon( w, pos, side ); + TileVibrationChamber tvc = this.getTileEntity( w, pos ); - if( tvc != null && tvc.isOn && ico == this.getRendererInstance().getTexture( ForgeDirection.SOUTH ) ) + if( tvc != null && tvc.isOn && ico == this.getRendererInstance().getTexture( AEPartLocation.SOUTH ) ) { return ExtraBlockTextures.BlockVibrationChamberFrontOn.getIcon(); } @@ -65,7 +68,14 @@ public final class BlockVibrationChamber extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( player.isSneaking() ) { @@ -74,10 +84,10 @@ public final class BlockVibrationChamber extends AEBaseTileBlock if( Platform.isServer() ) { - TileVibrationChamber tc = this.getTileEntity( w, x, y, z ); + TileVibrationChamber tc = this.getTileEntity( w, pos ); if( tc != null && !player.isSneaking() ) { - Platform.openGUI( player, tc, ForgeDirection.getOrientation( side ), GuiBridge.GUI_VIBRATION_CHAMBER ); + Platform.openGUI( player, tc, AEPartLocation.fromFacing( side ), GuiBridge.GUI_VIBRATION_CHAMBER ); return true; } } @@ -86,47 +96,51 @@ public final class BlockVibrationChamber extends AEBaseTileBlock } @Override - public void randomDisplayTick( World w, int x, int y, int z, Random r ) + public void randomDisplayTick( + World w, + BlockPos pos, + IBlockState state, + Random r ) { if( !AEConfig.instance.enableEffects ) { return; } - AEBaseTile tile = this.getTileEntity( w, x, y, z ); + AEBaseTile tile = this.getTileEntity( w, pos ); if( tile instanceof TileVibrationChamber ) { TileVibrationChamber tc = (TileVibrationChamber) tile; if( tc.isOn ) { - float f1 = x + 0.5F; - float f2 = y + 0.5F; - float f3 = z + 0.5F; + float f1 = pos.getX() + 0.5F; + float f2 = pos.getY() + 0.5F; + float f3 = pos.getZ() + 0.5F; - ForgeDirection forward = tc.getForward(); - ForgeDirection up = tc.getUp(); + EnumFacing forward = tc.getForward(); + EnumFacing up = tc.getUp(); - int west_x = forward.offsetY * up.offsetZ - forward.offsetZ * up.offsetY; - int west_y = forward.offsetZ * up.offsetX - forward.offsetX * up.offsetZ; - int west_z = forward.offsetX * up.offsetY - forward.offsetY * up.offsetX; + int west_x = forward.getFrontOffsetY() * up.getFrontOffsetZ() - forward.getFrontOffsetZ() * up.getFrontOffsetY(); + int west_y = forward.getFrontOffsetZ() * up.getFrontOffsetX() - forward.getFrontOffsetX() * up.getFrontOffsetZ(); + int west_z = forward.getFrontOffsetX() * up.getFrontOffsetY() - forward.getFrontOffsetY() * up.getFrontOffsetX(); - f1 += forward.offsetX * 0.6; - f2 += forward.offsetY * 0.6; - f3 += forward.offsetZ * 0.6; + f1 += forward.getFrontOffsetX() * 0.6; + f2 += forward.getFrontOffsetY() * 0.6; + f3 += forward.getFrontOffsetZ() * 0.6; float ox = r.nextFloat(); float oy = r.nextFloat() * 0.2f; - f1 += up.offsetX * ( -0.3 + oy ); - f2 += up.offsetY * ( -0.3 + oy ); - f3 += up.offsetZ * ( -0.3 + oy ); + f1 += up.getFrontOffsetX() * ( -0.3 + oy ); + f2 += up.getFrontOffsetY() * ( -0.3 + oy ); + f3 += up.getFrontOffsetZ() * ( -0.3 + oy ); f1 += west_x * ( 0.3 * ox - 0.15 ); f2 += west_y * ( 0.3 * ox - 0.15 ); f3 += west_z * ( 0.3 * ox - 0.15 ); - w.spawnParticle( "smoke", f1, f2, f3, 0.0D, 0.0D, 0.0D ); - w.spawnParticle( "flame", f1, f2, f3, 0.0D, 0.0D, 0.0D ); + w.spawnParticle( EnumParticleTypes.SMOKE_NORMAL, f1, f2, f3, 0.0D, 0.0D, 0.0D, new int[0] ); + w.spawnParticle( EnumParticleTypes.FLAME, f1, f2, f3, 0.0D, 0.0D, 0.0D, new int[0] ); } } } diff --git a/src/main/java/appeng/block/networking/BlockCableBus.java b/src/main/java/appeng/block/networking/BlockCableBus.java index 5d5b2ec2..17c1c0a1 100644 --- a/src/main/java/appeng/block/networking/BlockCableBus.java +++ b/src/main/java/appeng/block/networking/BlockCableBus.java @@ -24,40 +24,33 @@ import java.util.List; import java.util.Random; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.particle.EffectRenderer; -import net.minecraft.client.particle.EntityDiggingFX; -import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumDyeColor; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection; -import powercrystals.minefactoryreloaded.api.rednet.connectivity.RedNetConnectionType; - -import appeng.api.parts.IPart; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.parts.IPartHost; import appeng.api.parts.PartItemStack; import appeng.api.parts.SelectedPart; import appeng.api.util.AEColor; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; -import appeng.client.render.BusRenderHelper; import appeng.client.render.blocks.RendererCableBus; -import appeng.client.texture.ExtraBlockTextures; import appeng.core.AEConfig; import appeng.core.Api; import appeng.core.CommonHelper; @@ -72,13 +65,11 @@ import appeng.parts.NullCableBusContainer; import appeng.tile.AEBaseTile; import appeng.tile.networking.TileCableBus; import appeng.tile.networking.TileCableBusTESR; -import appeng.transformer.annotations.Integration.Interface; -import appeng.transformer.annotations.Integration.Method; import appeng.util.Platform; - -@Interface( iface = "powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection", iname = "MFR" ) -public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection +// TODO: MFR INTEGRATION +//@Interface( iface = "powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection", iname = "MFR" ) +public class BlockCableBus extends AEBaseTileBlock // implements IRedNetConnection { private static final ICableBusContainer NULL_CABLE_BUS = new NullCableBusContainer(); @@ -88,7 +79,6 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection * Immibis MB Support. */ boolean ImmibisMicroblocks_TransformableBlockMarker = true; - int myColorMultiplier = 0xffffff; public BlockCableBus() { @@ -102,43 +92,41 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } @Override - public void randomDisplayTick( World world, int x, int y, int z, Random r ) + public void randomDisplayTick( + World worldIn, + BlockPos pos, + IBlockState state, + Random rand ) { - this.cb( world, x, y, z ).randomDisplayTick( world, x, y, z, r ); + this.cb( worldIn, pos ).randomDisplayTick( worldIn, pos, rand ); } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block meh ) + public void onNeighborChange( + IBlockAccess w, + BlockPos pos, + BlockPos neighbor ) { - this.cb( w, x, y, z ).onNeighborChanged(); + this.cb( w, pos ).onNeighborChanged(); } @Override - public Item getItemDropped( int i, Random r, int k ) + public Item getItemDropped( + IBlockState state, + Random rand, + int fortune ) { return null; } @Override - public int getRenderBlockPass() + public int isProvidingWeakPower( + IBlockAccess w, + BlockPos pos, + IBlockState state, + EnumFacing side ) { - if( AEConfig.instance.isFeatureEnabled( AEFeature.AlphaPass ) ) - { - return 1; - } - return 0; - } - - @Override - public int colorMultiplier( IBlockAccess world, int x, int y, int z ) - { - return this.myColorMultiplier; - } - - @Override - public int isProvidingWeakPower( IBlockAccess w, int x, int y, int z, int side ) - { - return this.cb( w, x, y, z ).isProvidingWeakPower( ForgeDirection.getOrientation( side ).getOpposite() ); + return this.cb( w, pos ).isProvidingWeakPower( side.getOpposite() ); // TODO: IS OPPOSITE!? } @Override @@ -148,104 +136,113 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } @Override - public void onEntityCollidedWithBlock( World w, int x, int y, int z, Entity e ) + public void onEntityCollidedWithBlock( + World w, + BlockPos pos, + IBlockState state, + Entity entityIn ) { - this.cb( w, x, y, z ).onEntityCollision( e ); + this.cb( w, pos ).onEntityCollision( entityIn ); } @Override - public int isProvidingStrongPower( IBlockAccess w, int x, int y, int z, int side ) + public int isProvidingStrongPower( + IBlockAccess w, + BlockPos pos, + IBlockState state, + EnumFacing side ) { - return this.cb( w, x, y, z ).isProvidingStrongPower( ForgeDirection.getOrientation( side ).getOpposite() ); + return this.cb( w, pos ).isProvidingStrongPower( side.getOpposite() ); // TODO: IS OPPOSITE!? } @Override - public int getLightValue( IBlockAccess world, int x, int y, int z ) + public int getLightValue( + IBlockAccess world, + BlockPos pos ) { - Block block = world.getBlock( x, y, z ); - if( block != null && block != this ) + IBlockState block = world.getBlockState( pos ); + if( block != null && block.getBlock() != this ) { - return block.getLightValue( world, x, y, z ); + return block.getBlock().getLightValue( world, pos ); } if( block == null ) { return 0; } - return this.cb( world, x, y, z ).getLightValue(); + return this.cb( world, pos ).getLightValue(); } @Override - public boolean isLadder( IBlockAccess world, int x, int y, int z, EntityLivingBase entity ) + public boolean isLadder( IBlockAccess world, BlockPos pos, EntityLivingBase entity ) { - return this.cb( world, x, y, z ).isLadder( entity ); + return this.cb( world, pos ).isLadder( entity ); } @Override - public boolean isSideSolid( IBlockAccess w, int x, int y, int z, ForgeDirection side ) + public boolean isSideSolid( IBlockAccess w, BlockPos pos, EnumFacing side ) { - return this.cb( w, x, y, z ).isSolidOnSide( side ); + return this.cb( w, pos ).isSolidOnSide( side ); } @Override - public boolean isReplaceable( IBlockAccess world, int x, int y, int z ) + public boolean isReplaceable( + World w, + BlockPos pos ) { - return this.cb( world, x, y, z ).isEmpty(); + return this.cb( w, pos ).isEmpty(); } - @SuppressWarnings( "deprecation" ) @Override - public boolean removedByPlayer( World world, EntityPlayer player, int x, int y, int z ) + public boolean removedByPlayer( + World world, + BlockPos pos, + EntityPlayer player, + boolean willHarvest ) { if( player.capabilities.isCreativeMode ) { - AEBaseTile tile = this.getTileEntity( world, x, y, z ); + AEBaseTile tile = this.getTileEntity( world, pos ); if( tile != null ) { tile.disableDrops(); } // maybe ray trace? } - return super.removedByPlayer( world, player, x, y, z ); + return super.removedByPlayer( world, pos, player, willHarvest ); } @Override - public boolean canConnectRedstone( IBlockAccess w, int x, int y, int z, int side ) + public boolean canConnectRedstone( + IBlockAccess w, + BlockPos pos, + EnumFacing side ) { - switch( side ) - { - case -1: - case 4: - return this.cb( w, x, y, z ).canConnectRedstone( EnumSet.of( ForgeDirection.UP, ForgeDirection.DOWN ) ); - case 0: - return this.cb( w, x, y, z ).canConnectRedstone( EnumSet.of( ForgeDirection.NORTH ) ); - case 1: - return this.cb( w, x, y, z ).canConnectRedstone( EnumSet.of( ForgeDirection.EAST ) ); - case 2: - return this.cb( w, x, y, z ).canConnectRedstone( EnumSet.of( ForgeDirection.SOUTH ) ); - case 3: - return this.cb( w, x, y, z ).canConnectRedstone( EnumSet.of( ForgeDirection.WEST ) ); - } - return false; + if ( side == null ) + side = EnumFacing.UP; + + return this.cb( w, pos ).canConnectRedstone( EnumSet.of( side ) ); } @Override - public boolean canRenderInPass( int pass ) + public boolean canRenderInLayer( + EnumWorldBlockLayer layer ) { - BusRenderHelper.INSTANCE.setPass( pass ); - if( AEConfig.instance.isFeatureEnabled( AEFeature.AlphaPass ) ) { - return true; + return layer == EnumWorldBlockLayer.CUTOUT || layer == EnumWorldBlockLayer.TRANSLUCENT; } - return pass == 0; + return layer == EnumWorldBlockLayer.CUTOUT; } @Override - public ItemStack getPickBlock( MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player ) + public ItemStack getPickBlock( + MovingObjectPosition target, + World world, + BlockPos pos ) { - Vec3 v3 = target.hitVec.addVector( -x, -y, -z ); - SelectedPart sp = this.cb( world, x, y, z ).selectPart( v3 ); + Vec3 v3 = target.hitVec.subtract( pos.getX(), pos.getY(), pos.getZ() ); + SelectedPart sp = this.cb( world, pos ).selectPart( v3 ); if( sp.part != null ) { @@ -263,15 +260,17 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection @SideOnly( Side.CLIENT ) public boolean addHitEffects( World world, MovingObjectPosition target, EffectRenderer effectRenderer ) { - Object object = this.cb( world, target.blockX, target.blockY, target.blockZ ); + Object object = this.cb( world, target.getBlockPos() ); if( object instanceof IPartHost ) { IPartHost host = (IPartHost) object; - for( ForgeDirection side : ForgeDirection.values() ) + // TODO HIT EFFECTS + /* + for( AEPartLocation side : AEPartLocation.values() ) { IPart p = host.getPart( side ); - IIcon ico = this.getIcon( p ); + TextureAtlasSprite ico = this.getIcon( p ); if( ico == null ) { @@ -302,24 +301,29 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } } } + */ } return true; } @Override - @SideOnly( Side.CLIENT ) - public boolean addDestroyEffects( World world, int x, int y, int z, int meta, EffectRenderer effectRenderer ) + public boolean addDestroyEffects( + World world, + BlockPos pos, + EffectRenderer effectRenderer ) { - Object object = this.cb( world, x, y, z ); + Object object = this.cb( world, pos ); if( object instanceof IPartHost ) { IPartHost host = (IPartHost) object; - for( ForgeDirection side : ForgeDirection.values() ) + // TODO DESTROY EFFECTS + /* + for( AEPartLocation side : AEPartLocation.values() ) { IPart p = host.getPart( side ); - IIcon ico = this.getIcon( p ); + TextureAtlasSprite ico = this.getIcon( p ); if( ico == null ) { @@ -346,52 +350,28 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } } } + */ } return true; } @Override - public void onNeighborChange( IBlockAccess w, int x, int y, int z, int tileX, int tileY, int tileZ ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { if( Platform.isServer() ) { - this.cb( w, x, y, z ).onNeighborChanged(); + this.cb( w, pos ).onNeighborChanged(); } } - private IIcon getIcon( IPart p ) + private ICableBusContainer cb( IBlockAccess w, BlockPos pos ) { - if( p == null ) - { - return null; - } - - try - { - IIcon ico = p.getBreakingTexture(); - if( ico != null ) - { - return ico; - } - } - catch( Throwable t ) - { - // nothing. - } - - ItemStack is = p.getItemStack( PartItemStack.Network ); - if( is == null || is.getItem() == null ) - { - return null; - } - - return is.getItem().getIcon( is, 0 ); - } - - private ICableBusContainer cb( IBlockAccess w, int x, int y, int z ) - { - TileEntity te = w.getTileEntity( x, y, z ); + TileEntity te = w.getTileEntity( pos ); ICableBusContainer out = null; if( te instanceof TileCableBus ) @@ -413,46 +393,38 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } @Override - public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - return this.getIcon( s, 0 ); + return this.cb( w, pos ).activate( player, new Vec3( hitX, hitY, hitZ ) ); } @Override - public IIcon getIcon( int direction, int metadata ) + public boolean recolorBlock( + World world, + BlockPos pos, + EnumFacing side, + EnumDyeColor color ) { - IIcon i = super.getIcon( direction, metadata ); - if( i != null ) - { - return i; - } - - return ExtraBlockTextures.BlockQuartzGlassB.getIcon(); + return this.recolorBlock( world, pos, side, color, null ); } - @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) - { - return this.cb( w, x, y, z ).activate( player, Vec3.createVectorHelper( hitX, hitY, hitZ ) ); - } - - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - - } - - @Override - public boolean recolourBlock( World world, int x, int y, int z, ForgeDirection side, int colour ) - { - return this.recolourBlock( world, x, y, z, side, colour, null ); - } - - public boolean recolourBlock( World world, int x, int y, int z, ForgeDirection side, int colour, EntityPlayer who ) + public boolean recolorBlock( + World world, + BlockPos pos, + EnumFacing side, + EnumDyeColor color, + EntityPlayer who ) { try { - return this.cb( world, x, y, z ).recolourBlock( side, AEColor.values()[colour], who ); + return this.cb( world, pos ).recolourBlock( side, AEColor.values()[ color.ordinal() ], who ); } catch( Throwable ignored ) {} @@ -467,9 +439,9 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } @Override - public T getTileEntity( IBlockAccess w, int x, int y, int z ) + public T getTileEntity( IBlockAccess w, BlockPos pos ) { - TileEntity te = w.getTileEntity( x, y, z ); + TileEntity te = w.getTileEntity( pos ); if( noTesrTile.isInstance( te ) ) { @@ -504,15 +476,13 @@ public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection } } - @Override - @Method( iname = "MFR" ) - public RedNetConnectionType getConnectionType( World world, int x, int y, int z, ForgeDirection side ) - { - return this.cb( world, x, y, z ).canConnectRedstone( EnumSet.allOf( ForgeDirection.class ) ) ? RedNetConnectionType.CableSingle : RedNetConnectionType.None; - } - - public void setRenderColor( int color ) - { - this.myColorMultiplier = color; - } + /* + * // TODO MFR INTEGRATION + @Override + @Method( iname = "MFR" ) + public RedNetConnectionType getConnectionType( World world, int x, int y, int z, AEPartLocation side ) + { + return this.cb( world, x, y, z ).canConnectRedstone( EnumSet.allOf( AEPartLocation.class ) ) ? RedNetConnectionType.CableSingle : RedNetConnectionType.None; + } + */ } diff --git a/src/main/java/appeng/block/networking/BlockController.java b/src/main/java/appeng/block/networking/BlockController.java index 36c408ba..a69a3d0e 100644 --- a/src/main/java/appeng/block/networking/BlockController.java +++ b/src/main/java/appeng/block/networking/BlockController.java @@ -23,8 +23,13 @@ import java.util.EnumSet; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyEnum; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumWorldBlockLayer; +import net.minecraft.util.IStringSerializable; import net.minecraft.world.World; - import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockController; @@ -35,6 +40,45 @@ import appeng.tile.networking.TileController; public class BlockController extends AEBaseTileBlock { + public static enum ControllerBlockState implements IStringSerializable + { + OFFLINE, ONLINE, CONFLICTED; + + @Override + public String getName() + { + return name(); + } + + }; + + public static final PropertyEnum CONTROLLER_STATE = PropertyEnum.create("state",ControllerBlockState.class); + + @Override + protected IProperty[] getAEStates() + { + return new IProperty[]{ CONTROLLER_STATE }; + } + + @Override + public int getMetaFromState( + IBlockState state ) + { + return ((ControllerBlockState)state.getValue( CONTROLLER_STATE )).ordinal(); + } + + @Override + public IBlockState getStateFromMeta( int meta ) + { + return getDefaultState().withProperty( CONTROLLER_STATE, ControllerBlockState.OFFLINE ); + } + + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } + public BlockController() { super( Material.iron ); @@ -44,9 +88,13 @@ public class BlockController extends AEBaseTileBlock } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block neighborBlock ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - TileController tc = this.getTileEntity( w, x, y, z ); + TileController tc = this.getTileEntity( w, pos ); if( tc != null ) { tc.onNeighborChange( false ); diff --git a/src/main/java/appeng/block/networking/BlockDenseEnergyCell.java b/src/main/java/appeng/block/networking/BlockDenseEnergyCell.java index 746aa2bf..d7f62107 100644 --- a/src/main/java/appeng/block/networking/BlockDenseEnergyCell.java +++ b/src/main/java/appeng/block/networking/BlockDenseEnergyCell.java @@ -21,8 +21,6 @@ package appeng.block.networking; import java.util.EnumSet; -import net.minecraft.util.IIcon; - import appeng.client.texture.ExtraBlockTextures; import appeng.core.features.AEFeature; import appeng.tile.networking.TileDenseEnergyCell; @@ -38,10 +36,11 @@ public class BlockDenseEnergyCell extends BlockEnergyCell } @Override - public IIcon getIcon( int direction, int metadata ) + public appeng.client.texture.IAESprite getIcon(net.minecraft.util.EnumFacing side, net.minecraft.block.state.IBlockState state) { - switch( metadata ) + switch( (int)state.getValue( ENERGY_STORAGE ) ) { + default: case 0: return ExtraBlockTextures.MEDenseEnergyCell0.getIcon(); case 1: @@ -59,9 +58,8 @@ public class BlockDenseEnergyCell extends BlockEnergyCell case 7: return ExtraBlockTextures.MEDenseEnergyCell7.getIcon(); } - return super.getIcon( direction, metadata ); } - + @Override public double getMaxPower() { diff --git a/src/main/java/appeng/block/networking/BlockEnergyAcceptor.java b/src/main/java/appeng/block/networking/BlockEnergyAcceptor.java index f5e9aec3..4ee1765c 100644 --- a/src/main/java/appeng/block/networking/BlockEnergyAcceptor.java +++ b/src/main/java/appeng/block/networking/BlockEnergyAcceptor.java @@ -22,7 +22,6 @@ package appeng.block.networking; import java.util.EnumSet; import net.minecraft.block.material.Material; - import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; import appeng.tile.networking.TileEnergyAcceptor; diff --git a/src/main/java/appeng/block/networking/BlockEnergyCell.java b/src/main/java/appeng/block/networking/BlockEnergyCell.java index 7eaabb70..e464cef4 100644 --- a/src/main/java/appeng/block/networking/BlockEnergyCell.java +++ b/src/main/java/appeng/block/networking/BlockEnergyCell.java @@ -22,15 +22,15 @@ package appeng.block.networking; import java.util.EnumSet; import java.util.List; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyInteger; +import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.block.AEBaseItemBlock; import appeng.block.AEBaseItemBlockChargeable; import appeng.block.AEBaseTileBlock; @@ -46,6 +46,21 @@ import appeng.util.Platform; public class BlockEnergyCell extends AEBaseTileBlock { + public static final PropertyInteger ENERGY_STORAGE = PropertyInteger.create( "fullness", 0, 8 ); + + @Override + public int getMetaFromState( + IBlockState state ) + { + return (int)state.getValue( ENERGY_STORAGE ); + } + + @Override + public IBlockState getStateFromMeta( int meta ) + { + return getDefaultState().withProperty( ENERGY_STORAGE, Math.min( 7, Math.max( 0, meta ) ) ); + } + public BlockEnergyCell() { super( AEGlassMaterial.INSTANCE ); @@ -61,10 +76,11 @@ public class BlockEnergyCell extends AEBaseTileBlock } @Override - public IIcon getIcon( int direction, int metadata ) + public appeng.client.texture.IAESprite getIcon(net.minecraft.util.EnumFacing side, IBlockState state) { - switch( metadata ) + switch( (int)state.getValue( ENERGY_STORAGE ) ) { + default: case 0: return ExtraBlockTextures.MEEnergyCell0.getIcon(); case 1: @@ -82,7 +98,6 @@ public class BlockEnergyCell extends AEBaseTileBlock case 7: return ExtraBlockTextures.MEEnergyCell7.getIcon(); } - return super.getIcon( direction, metadata ); } @Override @@ -104,6 +119,12 @@ public class BlockEnergyCell extends AEBaseTileBlock return 200000.0; } + @Override + protected IProperty[] getAEStates() + { + return new IProperty[]{ENERGY_STORAGE}; + } + @Override public Class getItemBlockClass() { diff --git a/src/main/java/appeng/block/networking/BlockWireless.java b/src/main/java/appeng/block/networking/BlockWireless.java index 4482176f..57041751 100644 --- a/src/main/java/appeng/block/networking/BlockWireless.java +++ b/src/main/java/appeng/block/networking/BlockWireless.java @@ -23,12 +23,15 @@ import java.util.Collections; import java.util.EnumSet; import java.util.List; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockWireless; @@ -60,19 +63,33 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public EnumWorldBlockLayer getBlockLayer() { - if( p.isSneaking() ) + return EnumWorldBlockLayer.CUTOUT; + } + + @Override + public boolean onBlockActivated( + World w, + BlockPos pos, + IBlockState state, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) + { + if( player.isSneaking() ) { return false; } - TileWireless tg = this.getTileEntity( w, x, y, z ); + TileWireless tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_WIRELESS ); + Platform.openGUI( player, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_WIRELESS ); } return true; } @@ -80,12 +97,16 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { - TileWireless tile = this.getTileEntity( w, x, y, z ); + TileWireless tile = this.getTileEntity( w, pos ); if( tile != null ) { - ForgeDirection forward = tile.getForward(); + EnumFacing forward = tile.getForward(); double minX = 0; double minY = 0; @@ -136,18 +157,23 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision break; } - return Collections.singletonList( AxisAlignedBB.getBoundingBox( minX, minY, minZ, maxX, maxY, maxZ ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( minX, minY, minZ, maxX, maxY, maxZ ) ); } - return Collections.singletonList( AxisAlignedBB.getBoundingBox( 0.0, 0, 0.0, 1.0, 1.0, 1.0 ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( 0.0, 0, 0.0, 1.0, 1.0, 1.0 ) ); } @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - TileWireless tile = this.getTileEntity( w, x, y, z ); + TileWireless tile = this.getTileEntity( w, pos ); if( tile != null ) { - ForgeDirection forward = tile.getForward(); + EnumFacing forward = tile.getForward(); double minX = 0; double minY = 0; @@ -198,11 +224,11 @@ public class BlockWireless extends AEBaseTileBlock implements ICustomCollision break; } - out.add( AxisAlignedBB.getBoundingBox( minX, minY, minZ, maxX, maxY, maxZ ) ); + out.add( AxisAlignedBB.fromBounds( minX, minY, minZ, maxX, maxY, maxZ ) ); } else { - out.add( AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) ); + out.add( AxisAlignedBB.fromBounds( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) ); } } } diff --git a/src/main/java/appeng/block/qnb/BlockQuantumBase.java b/src/main/java/appeng/block/qnb/BlockQuantumBase.java index cd787fff..12856674 100644 --- a/src/main/java/appeng/block/qnb/BlockQuantumBase.java +++ b/src/main/java/appeng/block/qnb/BlockQuantumBase.java @@ -23,10 +23,11 @@ import java.util.EnumSet; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; - import appeng.block.AEBaseTileBlock; -import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderQNB; import appeng.core.features.AEFeature; import appeng.helpers.ICustomCollision; @@ -48,9 +49,19 @@ public abstract class BlockQuantumBase extends AEBaseTileBlock implements ICusto } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block pointlessNumber ) + public EnumWorldBlockLayer getBlockLayer() { - TileQuantumBridge bridge = this.getTileEntity( w, x, y, z ); + return EnumWorldBlockLayer.CUTOUT; + } + + @Override + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) + { + TileQuantumBridge bridge = this.getTileEntity( w, pos ); if( bridge != null ) { bridge.neighborUpdate(); @@ -58,15 +69,18 @@ public abstract class BlockQuantumBase extends AEBaseTileBlock implements ICusto } @Override - public void breakBlock( World w, int x, int y, int z, Block a, int b ) + public void breakBlock( + World w, + BlockPos pos, + IBlockState state ) { - TileQuantumBridge bridge = this.getTileEntity( w, x, y, z ); + TileQuantumBridge bridge = this.getTileEntity( w, pos ); if( bridge != null ) { bridge.breakCluster(); } - super.breakBlock( w, x, y, z, a, b ); + super.breakBlock( w, pos, state ); } @Override diff --git a/src/main/java/appeng/block/qnb/BlockQuantumLinkChamber.java b/src/main/java/appeng/block/qnb/BlockQuantumLinkChamber.java index 9e6b52b4..2d70eb43 100644 --- a/src/main/java/appeng/block/qnb/BlockQuantumLinkChamber.java +++ b/src/main/java/appeng/block/qnb/BlockQuantumLinkChamber.java @@ -23,15 +23,15 @@ import java.util.Collections; import java.util.List; import java.util.Random; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import appeng.api.util.AEPartLocation; import appeng.client.EffectType; import appeng.core.CommonHelper; import appeng.core.sync.GuiBridge; @@ -47,38 +47,48 @@ public class BlockQuantumLinkChamber extends BlockQuantumBase { super( AEGlassMaterial.INSTANCE ); } - + @Override - @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World w, int bx, int by, int bz, Random r ) + public void randomDisplayTick( + World w, + BlockPos pos, + IBlockState state, + Random rand ) { - TileQuantumBridge bridge = this.getTileEntity( w, bx, by, bz ); + TileQuantumBridge bridge = this.getTileEntity( w, pos ); if( bridge != null ) { if( bridge.hasQES() ) { - if( CommonHelper.proxy.shouldAddParticles( r ) ) + if( CommonHelper.proxy.shouldAddParticles( rand ) ) { - CommonHelper.proxy.spawnEffect( EffectType.Energy, w, bx + 0.5, by + 0.5, bz + 0.5, null ); + CommonHelper.proxy.spawnEffect( EffectType.Energy, w, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, null ); } } } } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileQuantumBridge tg = this.getTileEntity( w, x, y, z ); + TileQuantumBridge tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_QNB ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_QNB ); } return true; } @@ -86,16 +96,25 @@ public class BlockQuantumLinkChamber extends BlockQuantumBase } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { double onePixel = 2.0 / 16.0; - return Collections.singletonList( AxisAlignedBB.getBoundingBox( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); } - + @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { double onePixel = 2.0 / 16.0; - out.add( AxisAlignedBB.getBoundingBox( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); + out.add( AxisAlignedBB.fromBounds( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); } } diff --git a/src/main/java/appeng/block/qnb/BlockQuantumRing.java b/src/main/java/appeng/block/qnb/BlockQuantumRing.java index 412ceeff..66996ca9 100644 --- a/src/main/java/appeng/block/qnb/BlockQuantumRing.java +++ b/src/main/java/appeng/block/qnb/BlockQuantumRing.java @@ -20,15 +20,13 @@ package appeng.block.qnb; import java.util.Collections; -import java.util.EnumSet; import java.util.List; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - -import appeng.core.features.AEFeature; import appeng.tile.qnb.TileQuantumBridge; @@ -41,10 +39,14 @@ public class BlockQuantumRing extends BlockQuantumBase } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { double onePixel = 2.0 / 16.0; - TileQuantumBridge bridge = this.getTileEntity( w, x, y, z ); + TileQuantumBridge bridge = this.getTileEntity( w, pos ); if( bridge != null && bridge.isCorner() ) { onePixel = 4.0 / 16.0; @@ -53,14 +55,19 @@ public class BlockQuantumRing extends BlockQuantumBase { onePixel = 1.0 / 16.0; } - return Collections.singletonList( AxisAlignedBB.getBoundingBox( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); } @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { double onePixel = 2.0 / 16.0; - TileQuantumBridge bridge = this.getTileEntity( w, x, y, z ); + TileQuantumBridge bridge = this.getTileEntity( w, pos ); if( bridge != null && bridge.isCorner() ) { onePixel = 4.0 / 16.0; @@ -69,6 +76,6 @@ public class BlockQuantumRing extends BlockQuantumBase { onePixel = 1.0 / 16.0; } - out.add( AxisAlignedBB.getBoundingBox( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); + out.add( AxisAlignedBB.fromBounds( onePixel, onePixel, onePixel, 1.0 - onePixel, 1.0 - onePixel, 1.0 - onePixel ) ); } } diff --git a/src/main/java/appeng/block/solids/BlockFluix.java b/src/main/java/appeng/block/solids/BlockFluix.java index 0d1ddffc..12ed10f6 100644 --- a/src/main/java/appeng/block/solids/BlockFluix.java +++ b/src/main/java/appeng/block/solids/BlockFluix.java @@ -22,7 +22,6 @@ package appeng.block.solids; import java.util.EnumSet; import net.minecraft.block.material.Material; - import appeng.block.AEDecorativeBlock; import appeng.core.features.AEFeature; diff --git a/src/main/java/appeng/block/solids/BlockQuartz.java b/src/main/java/appeng/block/solids/BlockQuartz.java index f70862e6..6d401c06 100644 --- a/src/main/java/appeng/block/solids/BlockQuartz.java +++ b/src/main/java/appeng/block/solids/BlockQuartz.java @@ -22,7 +22,6 @@ package appeng.block.solids; import java.util.EnumSet; import net.minecraft.block.material.Material; - import appeng.block.AEDecorativeBlock; import appeng.core.features.AEFeature; diff --git a/src/main/java/appeng/block/solids/BlockQuartzChiseled.java b/src/main/java/appeng/block/solids/BlockQuartzChiseled.java index bd5accd6..18b318f0 100644 --- a/src/main/java/appeng/block/solids/BlockQuartzChiseled.java +++ b/src/main/java/appeng/block/solids/BlockQuartzChiseled.java @@ -22,7 +22,6 @@ package appeng.block.solids; import java.util.EnumSet; import net.minecraft.block.material.Material; - import appeng.block.AEDecorativeBlock; import appeng.core.features.AEFeature; diff --git a/src/main/java/appeng/block/solids/BlockQuartzGlass.java b/src/main/java/appeng/block/solids/BlockQuartzGlass.java index c462ca1d..0bcafcdf 100644 --- a/src/main/java/appeng/block/solids/BlockQuartzGlass.java +++ b/src/main/java/appeng/block/solids/BlockQuartzGlass.java @@ -22,11 +22,12 @@ package appeng.block.solids; import java.util.EnumSet; import net.minecraft.block.material.Material; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.IBlockAccess; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.block.AEBaseBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderQuartzGlass; @@ -43,6 +44,12 @@ public class BlockQuartzGlass extends AEBaseBlock this.isOpaque = false; this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); } + + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } @Override @SideOnly( Side.CLIENT ) @@ -52,16 +59,19 @@ public class BlockQuartzGlass extends AEBaseBlock } @Override - public boolean shouldSideBeRendered( IBlockAccess w, int x, int y, int z, int side ) + public boolean shouldSideBeRendered( + IBlockAccess w, + BlockPos pos, + EnumFacing side ) { - Material mat = w.getBlock( x, y, z ).getMaterial(); + Material mat = w.getBlockState( pos ).getBlock().getMaterial(); if( mat == Material.glass || mat == AEGlassMaterial.INSTANCE ) { - if( w.getBlock( x, y, z ).getRenderType() == this.getRenderType() ) + if( w.getBlockState( pos ).getBlock().getRenderType() == this.getRenderType() ) { return false; } } - return super.shouldSideBeRendered( w, x, y, z, side ); + return super.shouldSideBeRendered( w, pos, side ); } } diff --git a/src/main/java/appeng/block/solids/BlockQuartzLamp.java b/src/main/java/appeng/block/solids/BlockQuartzLamp.java index 936d6251..c69b4633 100644 --- a/src/main/java/appeng/block/solids/BlockQuartzLamp.java +++ b/src/main/java/appeng/block/solids/BlockQuartzLamp.java @@ -22,12 +22,10 @@ package appeng.block.solids; import java.util.EnumSet; import java.util.Random; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - import appeng.client.render.effects.VibrantFX; import appeng.core.AEConfig; import appeng.core.CommonHelper; @@ -45,8 +43,11 @@ public class BlockQuartzLamp extends BlockQuartzGlass } @Override - @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World w, int x, int y, int z, Random r ) + public void randomDisplayTick( + World w, + BlockPos pos, + IBlockState state, + Random r ) { if( !AEConfig.instance.enableEffects ) { @@ -59,7 +60,7 @@ public class BlockQuartzLamp extends BlockQuartzGlass double d1 = ( r.nextFloat() - 0.5F ) * 0.96D; double d2 = ( r.nextFloat() - 0.5F ) * 0.96D; - VibrantFX fx = new VibrantFX( w, 0.5 + x + d0, 0.5 + y + d1, 0.5 + z + d2, 0.0D, 0.0D, 0.0D ); + VibrantFX fx = new VibrantFX( w, 0.5 + pos.getX() + d0, 0.5 + pos.getY() + d1, 0.5 + pos.getZ() + d2, 0.0D, 0.0D, 0.0D ); Minecraft.getMinecraft().effectRenderer.addEffect( fx ); } diff --git a/src/main/java/appeng/block/solids/BlockQuartzPillar.java b/src/main/java/appeng/block/solids/BlockQuartzPillar.java index 7f34da33..ffd3827f 100644 --- a/src/main/java/appeng/block/solids/BlockQuartzPillar.java +++ b/src/main/java/appeng/block/solids/BlockQuartzPillar.java @@ -22,8 +22,10 @@ package appeng.block.solids; import java.util.EnumSet; import net.minecraft.block.material.Material; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; - import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; import appeng.block.AEBaseBlock; @@ -31,6 +33,7 @@ import appeng.core.features.AEFeature; import appeng.helpers.MetaRotation; +// TODO Quartz Rotation. public class BlockQuartzPillar extends AEBaseBlock implements IOrientableBlock { @@ -40,6 +43,26 @@ public class BlockQuartzPillar extends AEBaseBlock implements IOrientableBlock this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); } + @Override + public int getMetaFromState( + IBlockState state ) + { + return 0; + } + + @Override + public IBlockState getStateFromMeta( + int meta ) + { + return getDefaultState(); + } + + @Override + protected IProperty[] getAEStates() + { + return new IProperty[]{ AXIS_ORIENTATION }; + } + @Override public boolean usesMetadata() { @@ -47,8 +70,9 @@ public class BlockQuartzPillar extends AEBaseBlock implements IOrientableBlock } @Override - public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z ) + public IOrientable getOrientable( final IBlockAccess w,BlockPos pos ) { - return new MetaRotation( w, x, y, z ); + return new MetaRotation( w, pos,false ); } + } diff --git a/src/main/java/appeng/block/solids/BlockSkyStone.java b/src/main/java/appeng/block/solids/BlockSkyStone.java index adcdd18a..1f961e29 100644 --- a/src/main/java/appeng/block/solids/BlockSkyStone.java +++ b/src/main/java/appeng/block/solids/BlockSkyStone.java @@ -20,67 +20,54 @@ package appeng.block.solids; import java.util.EnumSet; -import java.util.List; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.IBlockAccess; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.PlayerEvent; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import appeng.api.util.IOrientable; -import appeng.api.util.IOrientableBlock; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import appeng.block.AEBaseBlock; import appeng.core.WorldSettings; import appeng.core.features.AEFeature; -import appeng.helpers.LocationRotation; -import appeng.helpers.NullRotation; import appeng.util.Platform; +import com.google.common.base.Optional; -public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock + +public class BlockSkyStone extends AEBaseBlock { private static final float BLOCK_RESISTANCE = 150.0f; private static final double BREAK_SPEAK_SCALAR = 0.1; private static final double BREAK_SPEAK_THRESHOLD = 7.0; - @SideOnly( Side.CLIENT ) - private IIcon block; - - @SideOnly( Side.CLIENT ) - private IIcon brick; - - @SideOnly( Side.CLIENT ) - private IIcon smallBrick; - - public BlockSkyStone() + public static enum SkystoneType { + stone,block,brick,smallbrick + }; + + SkystoneType type; + + public BlockSkyStone( SkystoneType type ) { - super( Material.rock ); + super( Material.rock, Optional.of( type.name()) ); this.setHardness( 50 ); this.hasSubtypes = true; this.blockResistance = BLOCK_RESISTANCE; - this.setHarvestLevel( "pickaxe", 3, 0 ); + if ( type == SkystoneType.stone ) + this.setHarvestLevel( "pickaxe", 3 ); this.setFeature( EnumSet.of( AEFeature.Core ) ); + this.type = type; + MinecraftForge.EVENT_BUS.register( this ); } @SubscribeEvent public void breakFaster( PlayerEvent.BreakSpeed event ) { - if( event.block == this && event.entityPlayer != null ) + if( event.state.getBlock() == this && event.entityPlayer != null ) { ItemStack is = event.entityPlayer.inventory.getCurrentItem(); int level = -1; @@ -90,7 +77,7 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock level = is.getItem().getHarvestLevel( is, "pickaxe" ); } - if( event.metadata > 0 || level >= 3 || event.originalSpeed > BREAK_SPEAK_THRESHOLD ) + if( type != SkystoneType.stone || level >= 3 || event.originalSpeed > BREAK_SPEAK_THRESHOLD ) { event.newSpeed /= BREAK_SPEAK_SCALAR; } @@ -98,121 +85,40 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock } @Override - public int damageDropped( int meta ) + public void onBlockAdded( + World w, + BlockPos pos, + IBlockState state ) { - return meta; - } - - @Override - public ItemStack getPickBlock( MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player ) - { - final ItemStack is = super.getPickBlock( target, world, x, y, z, player ); - is.setItemDamage( world.getBlockMetadata( x, y, z ) ); - - return is; - } - - @Override - public void onBlockAdded( World w, int x, int y, int z ) - { - super.onBlockAdded( w, x, y, z ); + super.onBlockAdded( w, pos, state ); if( Platform.isServer() ) { - WorldSettings.getInstance().getCompass().updateArea( w, x, y, z ); + WorldSettings.getInstance().getCompass().updateArea( w, pos.getX(), pos.getY(), pos.getZ() ); } } - @Override - public boolean usesMetadata() - { - return false; - } - - @Override - public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z ) - { - if( w.getBlockMetadata( x, y, z ) == 0 ) - { - return new LocationRotation( w, x, y, z ); - } - - return new NullRotation(); - } - @Override public String getUnlocalizedName( ItemStack is ) { - if( is.getItemDamage() == 1 ) + switch(type) { - return this.getUnlocalizedName() + ".Block"; + case block: return this.getUnlocalizedName() + ".Block"; + case brick: return this.getUnlocalizedName() + ".Brick"; + case smallbrick: return this.getUnlocalizedName() + ".SmallBrick"; + default: return this.getUnlocalizedName(); } - - if( is.getItemDamage() == 2 ) - { - return this.getUnlocalizedName() + ".Brick"; - } - - if( is.getItemDamage() == 3 ) - { - return this.getUnlocalizedName() + ".SmallBrick"; - } - - return this.getUnlocalizedName(); } @Override - @SideOnly( Side.CLIENT ) - public void registerBlockIcons( IIconRegister ir ) + public void breakBlock( + World w, + BlockPos pos, + IBlockState state ) { - super.registerBlockIcons( ir ); - this.block = ir.registerIcon( this.getTextureName() + ".Block" ); - this.brick = ir.registerIcon( this.getTextureName() + ".Brick" ); - this.smallBrick = ir.registerIcon( this.getTextureName() + ".SmallBrick" ); - } - - @Override - @SideOnly( Side.CLIENT ) - public IIcon getIcon( int direction, int metadata ) - { - if( metadata == 1 ) - { - return this.block; - } - if( metadata == 2 ) - { - return this.brick; - } - if( metadata == 3 ) - { - return this.smallBrick; - } - return super.getIcon( direction, metadata ); - } - - @Override - public void setRenderStateByMeta( int metadata ) - { - this.getRendererInstance().setTemporaryRenderIcon( this.getIcon( 0, metadata ) ); - } - - @Override - @SideOnly( Side.CLIENT ) - public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List itemStacks ) - { - super.getCheckedSubBlocks( item, tabs, itemStacks ); - - itemStacks.add( new ItemStack( item, 1, 1 ) ); - itemStacks.add( new ItemStack( item, 1, 2 ) ); - itemStacks.add( new ItemStack( item, 1, 3 ) ); - } - - @Override - public void breakBlock( World w, int x, int y, int z, Block b, int metadata ) - { - super.breakBlock( w, x, y, z, b, metadata ); + super.breakBlock( w, pos, state ); if( Platform.isServer() ) { - WorldSettings.getInstance().getCompass().updateArea( w, x, y, z ); + WorldSettings.getInstance().getCompass().updateArea( w, pos.getX(), pos.getY(), pos.getZ() ); } } } diff --git a/src/main/java/appeng/block/solids/OreQuartz.java b/src/main/java/appeng/block/solids/OreQuartz.java index 861ddc48..a3146198 100644 --- a/src/main/java/appeng/block/solids/OreQuartz.java +++ b/src/main/java/appeng/block/solids/OreQuartz.java @@ -22,16 +22,16 @@ package appeng.block.solids; import java.util.EnumSet; import java.util.Random; -import javax.annotation.Nullable; - import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.AEApi; import appeng.api.exceptions.MissingDefinition; import appeng.block.AEBaseBlock; @@ -56,6 +56,12 @@ public class OreQuartz extends AEBaseBlock this.enhanceBrightness = false; this.setFeature( EnumSet.of( AEFeature.Core ) ); } + + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } @Override protected Class getRenderer() @@ -70,9 +76,11 @@ public class OreQuartz extends AEBaseBlock } @Override - public int getMixedBrightnessForBlock( IBlockAccess par1iBlockAccess, int par2, int par3, int par4 ) + public int getMixedBrightnessForBlock( + IBlockAccess worldIn, + BlockPos pos ) { - int j1 = super.getMixedBrightnessForBlock( par1iBlockAccess, par2, par3, par4 ); + int j1 = super.getMixedBrightnessForBlock( worldIn, pos ); if( this.enhanceBrightness ) { j1 = Math.max( j1 >> 20, j1 >> 4 ); @@ -100,10 +108,12 @@ public class OreQuartz extends AEBaseBlock { return 1 + rand.nextInt( 2 ); } - - @Nullable + @Override - public Item getItemDropped( int id, Random rand, int meta ) + public Item getItemDropped( + IBlockState state, /* is null */ + Random rand, + int fortune ) { for( Item crystalItem : AEApi.instance().definitions().materials().certusQuartzCrystal().maybeItem().asSet() ) { @@ -114,20 +124,26 @@ public class OreQuartz extends AEBaseBlock } @Override - public void dropBlockAsItemWithChance( World w, int x, int y, int z, int blockID, float something, int meta ) + public void dropBlockAsItemWithChance( + World w, + BlockPos pos, + IBlockState state, + float chance, + int fortune ) { - super.dropBlockAsItemWithChance( w, x, y, z, blockID, something, meta ); + super.dropBlockAsItemWithChance( w, pos, state, chance, fortune ); - if( this.getItemDropped( blockID, w.rand, meta ) != Item.getItemFromBlock( this ) ) + if( this.getItemDropped( state, w.rand, fortune ) != Item.getItemFromBlock( this ) ) { int xp = MathHelper.getRandomIntegerInRange( w.rand, 2, 5 ); - this.dropXpOnBlockBreak( w, x, y, z, xp ); + this.dropXpOnBlockBreak( w, pos, xp ); } } @Override - public int damageDropped( int id ) + public int damageDropped( + IBlockState state ) { for( ItemStack crystalStack : AEApi.instance().definitions().materials().certusQuartzCrystal().maybeStack( 1 ).asSet() ) { @@ -140,7 +156,7 @@ public class OreQuartz extends AEBaseBlock @Override public int quantityDroppedWithBonus( int fortune, Random rand ) { - if( fortune > 0 && Item.getItemFromBlock( this ) != this.getItemDropped( 0, rand, fortune ) ) + if( fortune > 0 && Item.getItemFromBlock( this ) != this.getItemDropped( null, rand, fortune ) ) { int j = rand.nextInt( fortune + 2 ) - 1; diff --git a/src/main/java/appeng/block/solids/OreQuartzCharged.java b/src/main/java/appeng/block/solids/OreQuartzCharged.java index 6f357bc0..5ab52e22 100644 --- a/src/main/java/appeng/block/solids/OreQuartzCharged.java +++ b/src/main/java/appeng/block/solids/OreQuartzCharged.java @@ -21,16 +21,12 @@ package appeng.block.solids; import java.util.Random; -import javax.annotation.Nullable; - +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - import appeng.api.AEApi; import appeng.api.exceptions.MissingDefinition; import appeng.client.render.effects.ChargedOreFX; @@ -46,10 +42,12 @@ public class OreQuartzCharged extends OreQuartz this.setBoostBrightnessLow( 2 ); this.setBoostBrightnessHigh( 5 ); } - - @Nullable + @Override - public Item getItemDropped( int id, Random rand, int meta ) + public Item getItemDropped( + IBlockState state, + Random rand, + int fortune ) { for( Item charged : AEApi.instance().definitions().materials().certusQuartzCrystalCharged().maybeItem().asSet() ) { @@ -60,7 +58,8 @@ public class OreQuartzCharged extends OreQuartz } @Override - public int damageDropped( int id ) + public int damageDropped( + IBlockState state ) { for ( ItemStack crystalStack : AEApi.instance().definitions().materials().certusQuartzCrystalCharged().maybeStack( 1 ).asSet() ) { @@ -71,8 +70,11 @@ public class OreQuartzCharged extends OreQuartz } @Override - @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World w, int x, int y, int z, Random r ) + public void randomDisplayTick( + World w, + BlockPos pos, + IBlockState state, + Random r ) { if ( !AEConfig.instance.enableEffects ) { @@ -110,7 +112,7 @@ public class OreQuartzCharged extends OreQuartz if( CommonHelper.proxy.shouldAddParticles( r ) ) { - ChargedOreFX fx = new ChargedOreFX( w, x + xOff, y + yOff, z + zOff, 0.0f, 0.0f, 0.0f ); + ChargedOreFX fx = new ChargedOreFX( w, pos.getX() + xOff, pos.getY() + yOff, pos.getZ() + zOff, 0.0f, 0.0f, 0.0f ); Minecraft.getMinecraft().effectRenderer.addEffect( fx ); } } diff --git a/src/main/java/appeng/block/spatial/BlockMatrixFrame.java b/src/main/java/appeng/block/spatial/BlockMatrixFrame.java index b3a1b6b1..9922095d 100644 --- a/src/main/java/appeng/block/spatial/BlockMatrixFrame.java +++ b/src/main/java/appeng/block/spatial/BlockMatrixFrame.java @@ -24,19 +24,17 @@ import java.util.EnumSet; import java.util.List; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import net.minecraft.world.Explosion; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.block.AEBaseBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderNull; @@ -63,12 +61,6 @@ public class BlockMatrixFrame extends AEBaseBlock implements ICustomCollision return RenderNull.class; } - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - - } - @Override @SideOnly( Side.CLIENT ) public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List itemStacks ) @@ -77,32 +69,49 @@ public class BlockMatrixFrame extends AEBaseBlock implements ICustomCollision } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { return Arrays.asList( new AxisAlignedBB[] {} );// AxisAlignedBB.getBoundingBox( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) // } ); } - + @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - out.add( AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) ); + out.add( AxisAlignedBB.fromBounds( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) ); } @Override - public boolean canPlaceBlockAt( World world, int x, int y, int z ) + public boolean canPlaceBlockAt( + World worldIn, + BlockPos pos ) { return false; } @Override - public void onBlockExploded( World world, int x, int y, int z, Explosion explosion ) + public void onBlockExploded( + World world, + BlockPos pos, + Explosion explosion ) { // Don't explode. } @Override - public boolean canEntityDestroy( IBlockAccess world, int x, int y, int z, Entity entity ) + public boolean canEntityDestroy( + IBlockAccess world, + BlockPos pos, + Entity entity ) { return false; } diff --git a/src/main/java/appeng/block/spatial/BlockSpatialIOPort.java b/src/main/java/appeng/block/spatial/BlockSpatialIOPort.java index 60f456e4..562a69fa 100644 --- a/src/main/java/appeng/block/spatial/BlockSpatialIOPort.java +++ b/src/main/java/appeng/block/spatial/BlockSpatialIOPort.java @@ -23,10 +23,12 @@ import java.util.EnumSet; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -45,9 +47,13 @@ public class BlockSpatialIOPort extends AEBaseTileBlock } @Override - public final void onNeighborBlockChange( World w, int x, int y, int z, Block junk ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - TileSpatialIOPort te = this.getTileEntity( w, x, y, z ); + TileSpatialIOPort te = this.getTileEntity( w, pos ); if( te != null ) { te.updateRedstoneState(); @@ -55,19 +61,26 @@ public class BlockSpatialIOPort extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileSpatialIOPort tg = this.getTileEntity( w, x, y, z ); + TileSpatialIOPort tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_SPATIAL_IO_PORT ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_SPATIAL_IO_PORT ); } return true; } diff --git a/src/main/java/appeng/block/spatial/BlockSpatialPylon.java b/src/main/java/appeng/block/spatial/BlockSpatialPylon.java index c0b93ca3..88fbef6b 100644 --- a/src/main/java/appeng/block/spatial/BlockSpatialPylon.java +++ b/src/main/java/appeng/block/spatial/BlockSpatialPylon.java @@ -22,9 +22,10 @@ package appeng.block.spatial; import java.util.EnumSet; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; - import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderSpatialPylon; @@ -44,24 +45,30 @@ public class BlockSpatialPylon extends AEBaseTileBlock } @Override - public void onNeighborBlockChange( World w, int x, int y, int z, Block junk ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - TileSpatialPylon tsp = this.getTileEntity( w, x, y, z ); + TileSpatialPylon tsp = this.getTileEntity( w, pos ); if( tsp != null ) { tsp.onNeighborBlockChange(); } } - + @Override - public int getLightValue( IBlockAccess w, int x, int y, int z ) + public int getLightValue( + IBlockAccess w, + BlockPos pos ) { - TileSpatialPylon tsp = this.getTileEntity( w, x, y, z ); + TileSpatialPylon tsp = this.getTileEntity( w, pos ); if( tsp != null ) { return tsp.getLightValue(); } - return super.getLightValue( w, x, y, z ); + return super.getLightValue( w, pos ); } @Override diff --git a/src/main/java/appeng/block/stair/QuartzStairBlock.java b/src/main/java/appeng/block/stair/BlockStairCommon.java similarity index 84% rename from src/main/java/appeng/block/stair/QuartzStairBlock.java rename to src/main/java/appeng/block/stair/BlockStairCommon.java index 32a3c287..49388eec 100644 --- a/src/main/java/appeng/block/stair/QuartzStairBlock.java +++ b/src/main/java/appeng/block/stair/BlockStairCommon.java @@ -22,15 +22,14 @@ package appeng.block.stair; import java.util.EnumSet; import net.minecraft.block.Block; - import appeng.block.AEBaseStairBlock; import appeng.core.features.AEFeature; -public class QuartzStairBlock extends AEBaseStairBlock +public class BlockStairCommon extends AEBaseStairBlock { - public QuartzStairBlock( Block block ) + public BlockStairCommon( Block material, String type ) { - super( block, 0, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); + super( material,EnumSet.of( AEFeature.DecorativeQuartzBlocks ), type ); } } diff --git a/src/main/java/appeng/block/stair/ChiseledQuartzStairBlock.java b/src/main/java/appeng/block/stair/ChiseledQuartzStairBlock.java deleted file mode 100644 index 51dce1b9..00000000 --- a/src/main/java/appeng/block/stair/ChiseledQuartzStairBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block.stair; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; - -import appeng.block.AEBaseStairBlock; -import appeng.core.features.AEFeature; - - -public class ChiseledQuartzStairBlock extends AEBaseStairBlock -{ - public ChiseledQuartzStairBlock( Block block ) - { - super( block, 0, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); - } -} diff --git a/src/main/java/appeng/block/stair/FluixStairBlock.java b/src/main/java/appeng/block/stair/FluixStairBlock.java deleted file mode 100644 index 6d0d5083..00000000 --- a/src/main/java/appeng/block/stair/FluixStairBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block.stair; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; - -import appeng.block.AEBaseStairBlock; -import appeng.core.features.AEFeature; - - -public class FluixStairBlock extends AEBaseStairBlock -{ - public FluixStairBlock( Block block ) - { - super( block, 0, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); - } -} diff --git a/src/main/java/appeng/block/stair/QuartzPillarStairBlock.java b/src/main/java/appeng/block/stair/QuartzPillarStairBlock.java deleted file mode 100644 index 886229cf..00000000 --- a/src/main/java/appeng/block/stair/QuartzPillarStairBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block.stair; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; - -import appeng.block.AEBaseStairBlock; -import appeng.core.features.AEFeature; - - -public class QuartzPillarStairBlock extends AEBaseStairBlock -{ - public QuartzPillarStairBlock( Block block ) - { - super( block, 0, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); - } -} diff --git a/src/main/java/appeng/block/stair/SkyStoneBlockStairBlock.java b/src/main/java/appeng/block/stair/SkyStoneBlockStairBlock.java deleted file mode 100644 index 06d0009a..00000000 --- a/src/main/java/appeng/block/stair/SkyStoneBlockStairBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block.stair; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; - -import appeng.block.AEBaseStairBlock; -import appeng.core.features.AEFeature; - - -public class SkyStoneBlockStairBlock extends AEBaseStairBlock -{ - public SkyStoneBlockStairBlock( Block block, Integer meta ) - { - super( block, meta, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); - } -} diff --git a/src/main/java/appeng/block/stair/SkyStoneBrickStairBlock.java b/src/main/java/appeng/block/stair/SkyStoneBrickStairBlock.java deleted file mode 100644 index 7e87da11..00000000 --- a/src/main/java/appeng/block/stair/SkyStoneBrickStairBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block.stair; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; - -import appeng.block.AEBaseStairBlock; -import appeng.core.features.AEFeature; - - -public class SkyStoneBrickStairBlock extends AEBaseStairBlock -{ - public SkyStoneBrickStairBlock( Block block, Integer meta ) - { - super( block, meta, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); - } -} \ No newline at end of file diff --git a/src/main/java/appeng/block/stair/SkyStoneSmallBrickStairBlock.java b/src/main/java/appeng/block/stair/SkyStoneSmallBrickStairBlock.java deleted file mode 100644 index cb803188..00000000 --- a/src/main/java/appeng/block/stair/SkyStoneSmallBrickStairBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block.stair; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; - -import appeng.block.AEBaseStairBlock; -import appeng.core.features.AEFeature; - - -public class SkyStoneSmallBrickStairBlock extends AEBaseStairBlock -{ - public SkyStoneSmallBrickStairBlock( Block block, int meta ) - { - super( block, meta, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); - } -} \ No newline at end of file diff --git a/src/main/java/appeng/block/stair/SkyStoneStairBlock.java b/src/main/java/appeng/block/stair/SkyStoneStairBlock.java deleted file mode 100644 index a389019f..00000000 --- a/src/main/java/appeng/block/stair/SkyStoneStairBlock.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.block.stair; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; - -import appeng.block.AEBaseStairBlock; -import appeng.core.features.AEFeature; - - -public class SkyStoneStairBlock extends AEBaseStairBlock -{ - public SkyStoneStairBlock( Block block, Integer meta ) - { - super( block, meta, EnumSet.of( AEFeature.DecorativeQuartzBlocks ) ); - } -} diff --git a/src/main/java/appeng/block/storage/BlockChest.java b/src/main/java/appeng/block/storage/BlockChest.java index 065f7a7f..6adae143 100644 --- a/src/main/java/appeng/block/storage/BlockChest.java +++ b/src/main/java/appeng/block/storage/BlockChest.java @@ -24,11 +24,13 @@ import java.util.EnumSet; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.storage.ICellHandler; +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderMEChest; @@ -41,7 +43,7 @@ import appeng.util.Platform; public class BlockChest extends AEBaseTileBlock { - + public BlockChest() { super( Material.iron ); @@ -49,6 +51,12 @@ public class BlockChest extends AEBaseTileBlock this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEChest ) ); } + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } + @Override protected Class getRenderer() { @@ -56,9 +64,16 @@ public class BlockChest extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - TileChest tg = this.getTileEntity( w, x, y, z ); + TileChest tg = this.getTileEntity( w, pos ); if( tg != null && !p.isSneaking() ) { if( Platform.isClient() ) @@ -66,9 +81,9 @@ public class BlockChest extends AEBaseTileBlock return true; } - if( side != tg.getUp().ordinal() ) + if( side != tg.getUp() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_CHEST ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_CHEST ); } else { diff --git a/src/main/java/appeng/block/storage/BlockDrive.java b/src/main/java/appeng/block/storage/BlockDrive.java index 83ec375b..08bc451e 100644 --- a/src/main/java/appeng/block/storage/BlockDrive.java +++ b/src/main/java/appeng/block/storage/BlockDrive.java @@ -23,9 +23,11 @@ import java.util.EnumSet; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderDrive; @@ -45,26 +47,39 @@ public class BlockDrive extends AEBaseTileBlock this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEDrive ) ); } + @Override + public EnumWorldBlockLayer getBlockLayer() + { + return EnumWorldBlockLayer.CUTOUT; + } + @Override protected Class getRenderer() { return RenderDrive.class; } - + @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileDrive tg = this.getTileEntity( w, x, y, z ); + TileDrive tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_DRIVE ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_DRIVE ); } return true; } diff --git a/src/main/java/appeng/block/storage/BlockIOPort.java b/src/main/java/appeng/block/storage/BlockIOPort.java index bb5fabdc..352e932a 100644 --- a/src/main/java/appeng/block/storage/BlockIOPort.java +++ b/src/main/java/appeng/block/storage/BlockIOPort.java @@ -23,10 +23,12 @@ import java.util.EnumSet; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; @@ -43,31 +45,42 @@ public class BlockIOPort extends AEBaseTileBlock this.setTileEntity( TileIOPort.class ); this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.IOPort ) ); } - + @Override - public final void onNeighborBlockChange( World w, int x, int y, int z, Block junk ) + public void onNeighborBlockChange( + World w, + BlockPos pos, + IBlockState state, + Block neighborBlock ) { - TileIOPort te = this.getTileEntity( w, x, y, z ); + TileIOPort te = this.getTileEntity( w, pos ); if( te != null ) { te.updateRedstoneState(); } } - + @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer p, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( p.isSneaking() ) { return false; } - TileIOPort tg = this.getTileEntity( w, x, y, z ); + TileIOPort tg = this.getTileEntity( w, pos ); if( tg != null ) { if( Platform.isServer() ) { - Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_IOPORT ); + Platform.openGUI( p, tg, AEPartLocation.fromFacing( side ), GuiBridge.GUI_IOPORT ); } return true; } diff --git a/src/main/java/appeng/block/storage/BlockSkyChest.java b/src/main/java/appeng/block/storage/BlockSkyChest.java index a34a2012..f2279dd5 100644 --- a/src/main/java/appeng/block/storage/BlockSkyChest.java +++ b/src/main/java/appeng/block/storage/BlockSkyChest.java @@ -23,25 +23,14 @@ import java.util.Collections; import java.util.EnumSet; import java.util.List; -import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; -import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import appeng.api.AEApi; +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseTileBlock; import appeng.client.render.BaseBlockRender; import appeng.client.render.blocks.RenderBlockSkyChest; @@ -51,37 +40,32 @@ import appeng.helpers.ICustomCollision; import appeng.tile.storage.TileSkyChest; import appeng.util.Platform; +import com.google.common.base.Optional; + public class BlockSkyChest extends AEBaseTileBlock implements ICustomCollision { - - public BlockSkyChest() + + public static enum SkyChestType { - super( Material.rock ); + STONE, BLOCK + }; + + public final SkyChestType type; + + public BlockSkyChest( SkyChestType type ) + { + super( Material.rock, Optional.of( type.name() ) ); this.setTileEntity( TileSkyChest.class ); this.isOpaque = this.isFullSize = false; this.lightOpacity = 0; this.hasSubtypes = true; this.setHardness( 50 ); this.blockResistance = 150.0f; + this.type = type; this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.SkyStoneChests ) ); } - @Override - public int damageDropped( int metadata ) - { - return metadata; - } - - @Override - public ItemStack getPickBlock( MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player ) - { - final ItemStack is = super.getPickBlock( target, world, x, y, z, player ); - is.setItemDamage( world.getBlockMetadata( x, y, z ) ); - - return is; - } - @Override protected Class getRenderer() { @@ -89,75 +73,54 @@ public class BlockSkyChest extends AEBaseTileBlock implements ICustomCollision } @Override - @SideOnly( Side.CLIENT ) - public IIcon getIcon( int direction, int metadata ) - { - for( Block skyStoneBlock : AEApi.instance().definitions().blocks().skyStone().maybeBlock().asSet() ) - { - return skyStoneBlock.getIcon( direction, metadata ); - } - - return Blocks.stone.getIcon( direction, metadata ); - } - - @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( Platform.isServer() ) { - Platform.openGUI( player, this.getTileEntity( w, x, y, z ), ForgeDirection.getOrientation( side ), GuiBridge.GUI_SKYCHEST ); + Platform.openGUI( player, this.getTileEntity( w, pos ), AEPartLocation.fromFacing( side ), GuiBridge.GUI_SKYCHEST ); } return true; } - + @Override - public void registerBlockIcons( IIconRegister iconRegistry ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { - } - - @Override - @SideOnly( Side.CLIENT ) - public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List itemStacks ) - { - super.getCheckedSubBlocks( item, tabs, itemStacks ); - - itemStacks.add( new ItemStack( item, 1, 1 ) ); - } - - @Override - public String getUnlocalizedName( ItemStack is ) - { - if( is.getItemDamage() == 1 ) - { - return this.getUnlocalizedName() + ".Block"; - } - - return this.getUnlocalizedName(); - } - - @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) - { - TileSkyChest sk = this.getTileEntity( w, x, y, z ); + TileSkyChest sk = this.getTileEntity( w, pos ); double sc = 0.06; - ForgeDirection o = ForgeDirection.UNKNOWN; + EnumFacing o = EnumFacing.UP; if( sk != null ) { o = sk.getUp(); } - double offsetX = o.offsetX == 0 ? 0.06 : 0.0; - double offsetY = o.offsetY == 0 ? 0.06 : 0.0; - double offsetZ = o.offsetZ == 0 ? 0.06 : 0.0; + double offsetX = o.getFrontOffsetX() == 0 ? 0.06 : 0.0; + double offsetY = o.getFrontOffsetY() == 0 ? 0.06 : 0.0; + double offsetZ = o.getFrontOffsetZ() == 0 ? 0.06 : 0.0; - return Collections.singletonList( AxisAlignedBB.getBoundingBox( Math.max( 0.0, offsetX - o.offsetX * sc ), Math.max( 0.0, offsetY - o.offsetY * sc ), Math.max( 0.0, offsetZ - o.offsetZ * sc ), Math.min( 1.0, ( 1.0 - offsetX ) - o.offsetX * sc ), Math.min( 1.0, ( 1.0 - offsetY ) - o.offsetY * sc ), Math.min( 1.0, ( 1.0 - offsetZ ) - o.offsetZ * sc ) ) ); + return Collections.singletonList( AxisAlignedBB.fromBounds( Math.max( 0.0, offsetX - o.getFrontOffsetX() * sc ), Math.max( 0.0, offsetY - o.getFrontOffsetY() * sc ), Math.max( 0.0, offsetZ - o.getFrontOffsetZ() * sc ), Math.min( 1.0, ( 1.0 - offsetX ) - o.getFrontOffsetX() * sc ), Math.min( 1.0, ( 1.0 - offsetY ) - o.getFrontOffsetY() * sc ), Math.min( 1.0, ( 1.0 - offsetZ ) - o.getFrontOffsetZ() * sc ) ) ); } - + @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - out.add( AxisAlignedBB.getBoundingBox( 0.05, 0.05, 0.05, 0.95, 0.95, 0.95 ) ); + out.add( AxisAlignedBB.fromBounds( 0.05, 0.05, 0.05, 0.95, 0.95, 0.95 ) ); } } diff --git a/src/main/java/appeng/client/ClientHelper.java b/src/main/java/appeng/client/ClientHelper.java index 14d0307e..3dac14e0 100644 --- a/src/main/java/appeng/client/ClientHelper.java +++ b/src/main/java/appeng/client/ClientHelper.java @@ -21,43 +21,51 @@ package appeng.client; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Random; -import org.lwjgl.opengl.GL11; - import net.minecraft.block.Block; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.ItemMeshDefinition; +import net.minecraft.client.renderer.ItemModelMesher; +import net.minecraft.client.renderer.block.statemap.DefaultStateMapper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.resources.model.ModelBakery; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; -import net.minecraft.item.ItemBlock; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.client.ForgeHooksClient; -import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.client.MinecraftForgeClient; +import net.minecraftforge.client.event.ModelBakeEvent; import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.RenderLivingEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.client.registry.ClientRegistry; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.common.registry.GameRegistry.UniqueIdentifier; -import cpw.mods.fml.client.registry.ClientRegistry; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import org.lwjgl.opengl.GL11; import appeng.api.parts.CableRenderMode; +import appeng.api.parts.IPartItem; import appeng.api.util.AEColor; import appeng.block.AEBaseBlock; import appeng.client.render.BaseBlockRender; +import appeng.client.render.BlockRenderInfo; +import appeng.client.render.IRenderHelper; import appeng.client.render.TESRWrapper; -import appeng.client.render.WorldRender; +import appeng.client.render.blocks.RendererCableBus; import appeng.client.render.effects.AssemblerFX; import appeng.client.render.effects.CraftingFx; import appeng.client.render.effects.EnergyFx; @@ -69,6 +77,7 @@ import appeng.client.texture.ExtraBlockTextures; import appeng.client.texture.ExtraItemTextures; import appeng.core.AEConfig; import appeng.core.AELog; +import appeng.core.AppEng; import appeng.core.CommonHelper; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketAssemblerAnimation; @@ -77,9 +86,11 @@ import appeng.entity.EntityFloatingItem; import appeng.entity.EntityTinyTNTPrimed; import appeng.entity.RenderFloatingItem; import appeng.entity.RenderTinyTNTPrimed; +import appeng.facade.IFacadeItem; import appeng.helpers.IMouseWheelItem; import appeng.hooks.TickHandler; import appeng.hooks.TickHandler.PlayerColor; +import appeng.items.AEBaseItem; import appeng.server.ServerHelper; import appeng.transformer.MissingCoreMod; import appeng.util.Platform; @@ -88,9 +99,85 @@ import appeng.util.Platform; public class ClientHelper extends ServerHelper { - private static final RenderItem ITEM_RENDERER = new RenderItem(); - private static final RenderBlocks BLOCK_RENDERER = new RenderBlocks(); + private static final RenderItem ITEM_RENDERER = Minecraft.getMinecraft().getRenderItem(); + private static final IRenderHelper BLOCK_RENDERER = new IRenderHelper(); + private static class IconReg + { + public IconReg( + Object item2, + int meta2, + String name2 ) + { + meta = meta2; + name = name2; + item = item2; + loc = null; + } + + public IconReg( + Item item2, + int meta2, + String name2, + ModelResourceLocation res ) + { + meta = meta2; + name = name2; + item = item2; + loc = res; + } + + public final String name; + public final Object item; + public final int meta; + public final ModelResourceLocation loc; + }; + + public Map> iconRegistrations = new HashMap(); + public List iconTmp = new ArrayList<>(); + public List extraIcons = new ArrayList<>(); + + @Override + public ResourceLocation addIcon( String string ) + { + ModelResourceLocation n = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, string ), "inventory" ); + extraIcons.add( n ); + return n; + } + + @Override + public void configureIcon(Object item, String name ) + { + iconTmp.add( new IconReg( item, 0, name ) ); + } + + public ModelResourceLocation setIcon( + Item item, + String name ) + { + List reg = iconRegistrations.get( item ); + if ( reg == null) + iconRegistrations.put( item , reg = new LinkedList() ); + + ModelResourceLocation res = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, name ), "inventory" ); + reg.add( new IconReg(item,-1,name,res) ); + return res; + } + + public ModelResourceLocation setIcon( + Item item, + int meta, + String name ) + { + List reg = iconRegistrations.get( item ); + if ( reg == null) + iconRegistrations.put( item , reg = new LinkedList() ); + + ModelResourceLocation res = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, name ), "inventory" ); + reg.add( new IconReg(item,meta,name,res) ); + return res; + } + @SubscribeEvent public void postPlayerRender( RenderLivingEvent.Pre p ) { @@ -107,7 +194,7 @@ public class ClientHelper extends ServerHelper } @Override - public void init() + public void preinit() { MinecraftForge.EVENT_BUS.register( this ); } @@ -274,7 +361,7 @@ public class ClientHelper extends ServerHelper // set all this stuff and then do shit? meh? entityitem.hoverStart = 0; - entityitem.age = 0; + entityitem.setNoDespawn(); entityitem.rotationYaw = 0; GL11.glPushMatrix(); @@ -282,76 +369,128 @@ public class ClientHelper extends ServerHelper GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F ); // GL11.glDisable( GL11.GL_CULL_FACE ); - if( itemstack.isItemEnchanted() || itemstack.getItem().requiresMultipleRenderPasses() ) - { - GL11.glTranslatef( 0.0f, -0.05f, -0.25f ); - GL11.glScalef( 1.0f / 1.5f, 1.0f / 1.5f, 1.0f / 1.5f ); - // GL11.glTranslated( -8.0, -12.2, -10.6 ); - GL11.glScalef( 1.0f, -1.0f, 0.005f ); - // GL11.glScalef( 1.0f , -1.0f, 1.0f ); - - Block block = Block.getBlockFromItem( itemstack.getItem() ); - if( ( itemstack.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d( block.getRenderType() ) ) ) - { - GL11.glRotatef( 25.0f, 1.0f, 0.0f, 0.0f ); - GL11.glRotatef( 15.0f, 0.0f, 1.0f, 0.0f ); - GL11.glRotatef( 30.0f, 0.0f, 1.0f, 0.0f ); - } - - IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer( itemstack, IItemRenderer.ItemRenderType.ENTITY ); - if( customRenderer != null && !( itemstack.getItem() instanceof ItemBlock ) ) - { - if( customRenderer.shouldUseRenderHelper( IItemRenderer.ItemRenderType.ENTITY, itemstack, IItemRenderer.ItemRendererHelper.BLOCK_3D ) ) - { - GL11.glTranslatef( 0, -0.04F, 0 ); - GL11.glScalef( 0.7f, 0.7f, 0.7f ); - GL11.glRotatef( 35, 1, 0, 0 ); - GL11.glRotatef( 45, 0, 1, 0 ); - GL11.glRotatef( -90, 0, 1, 0 ); - } - } - else if( itemstack.getItem() instanceof ItemBlock ) - { - GL11.glTranslatef( 0, -0.04F, 0 ); - GL11.glScalef( 1.1f, 1.1f, 1.1f ); - GL11.glRotatef( -90, 0, 1, 0 ); - } - else - { - GL11.glTranslatef( 0, -0.14F, 0 ); - GL11.glScalef( 0.8f, 0.8f, 0.8f ); - } - - RenderItem.renderInFrame = true; - RenderManager.instance.renderEntityWithPosYaw( entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F ); - RenderItem.renderInFrame = false; - } - else - { - GL11.glScalef( 1.0f / 42.0f, 1.0f / 42.0f, 1.0f / 42.0f ); - GL11.glTranslated( -8.0, -10.2, -10.4 ); - GL11.glScalef( 1.0f, 1.0f, 0.005f ); - - RenderItem.renderInFrame = false; - FontRenderer fr = Minecraft.getMinecraft().fontRenderer; - if( !ForgeHooksClient.renderInventoryItem( BLOCK_RENDERER, Minecraft.getMinecraft().renderEngine, itemstack, true, 0, 0, 0 ) ) - { - ITEM_RENDERER.renderItemIntoGUI( fr, Minecraft.getMinecraft().renderEngine, itemstack, 0, 0, false ); - } - } + // TODO RENDER ITEM FOR STORAGE MONITOR! GL11.glPopMatrix(); } } + final ModelResourceLocation partRenderer = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, "DynamicPartRenderer" ), "inventory" ); + @Override public void postInit() { - RenderingRegistry.registerBlockHandler( WorldRender.INSTANCE ); - RenderManager.instance.entityRenderMap.put( EntityTinyTNTPrimed.class, new RenderTinyTNTPrimed() ); - RenderManager.instance.entityRenderMap.put( EntityFloatingItem.class, new RenderFloatingItem() ); + //RenderingRegistry.registerBlockHandler( WorldRender.INSTANCE ); + RenderManager inst = Minecraft.getMinecraft().getRenderManager(); + + inst.entityRenderMap.put( EntityTinyTNTPrimed.class, new RenderTinyTNTPrimed(inst) ); + inst.entityRenderMap.put( EntityFloatingItem.class, new RenderFloatingItem(inst) ); + + String MODID = AppEng.MOD_ID+":"; + + final ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher(); + ItemMeshDefinition imd = new ItemMeshDefinition(){ + + @Override + public ModelResourceLocation getModelLocation( + ItemStack stack ) + { + return partRenderer; + } + }; + + for ( IconReg reg: iconTmp ) + { + if ( reg.item instanceof IPartItem || reg.item instanceof IFacadeItem ) + { + mesher.register( reg.item instanceof Item ? (Item)reg.item : Item.getItemFromBlock( (Block)reg.item ), imd ); + continue; + } + + if ( reg.item instanceof AEBaseBlock ) + { + final BlockRenderInfo renderer = ((AEBaseBlock)reg.item).getRendererInstance(); + if ( renderer == null ) + continue; + + addIcon( reg.name ); + + mesher.register( reg.item instanceof Item ? (Item)reg.item : Item.getItemFromBlock( (Block)reg.item ), new ItemMeshDefinition(){ + + @Override + public ModelResourceLocation getModelLocation( + ItemStack stack ) + { + return renderer.rendererInstance.getResourcePath(); + } + } ); + continue; + } + + if ( reg.name == null ) continue; + + if ( reg.item instanceof AEBaseItem ) + ( (AEBaseItem) reg.item).registerIcons( this, reg.name ); + else if ( reg.item instanceof Item ) + this.setIcon( (Item)reg.item, 0, reg.name ); + } + + for ( List reg : iconRegistrations.values() ) + { + String[] names = new String[reg.size()]; + + Item it = null; + + int offset=0; + for ( IconReg r : reg ) + { + it = ( Item ) r.item; + + if ( r.meta >= 0 ) + mesher.register( (Item)r.item, r.meta, r.loc ); + + names[offset++] = MODID + r.name; + } + + ModelBakery.addVariantName( it, names ); + } } + @SubscribeEvent + public void onModelBakeEvent( + ModelBakeEvent event ) + { + // inventory renderer + SmartModel buses = new SmartModel( new BlockRenderInfo( ( new RendererCableBus() ) ) ); + event.modelRegistry.putObject( partRenderer, buses ); + + for ( IconReg reg: iconTmp ) + { + if ( reg.item instanceof IPartItem || reg.item instanceof IFacadeItem) + { + UniqueIdentifier i = GameRegistry.findUniqueIdentifierFor( (Item)reg.item ); + event.modelRegistry.putObject( new ModelResourceLocation( new ResourceLocation(i.modId ,i.name),"inventory"), buses ); + } + + if ( reg.item instanceof AEBaseBlock ) + { + BlockRenderInfo renderer = ((AEBaseBlock)reg.item).getRendererInstance(); + if ( renderer == null ) + continue; + + SmartModel sm = new SmartModel( renderer ); + event.modelRegistry.putObject( renderer.rendererInstance.getResourcePath(), sm ); + + Map data = new DefaultStateMapper().putStateModelLocations( (Block)reg.item ); + for ( Object Loc : data.values() ) + { + ModelResourceLocation res = (ModelResourceLocation)Loc; + event.modelRegistry.putObject( res, sm ); + } + } + } + } + @Override public CableRenderMode getRenderMode() { @@ -421,7 +560,26 @@ public class ClientHelper extends ServerHelper @SubscribeEvent public void updateTextureSheet( TextureStitchEvent.Pre ev ) { - if( ev.map.getTextureType() == 1 ) + for ( IconReg reg: iconTmp ) + { + if ( reg.item instanceof AEBaseItem ) + { + ((AEBaseItem)reg.item).registerCustomIcon( ev.map ); + } + else if ( reg.item instanceof AEBaseBlock ) + { + BlockRenderInfo renderer = ((AEBaseBlock)reg.item).getRendererInstance(); + if ( renderer == null ) + continue; + + ( (AEBaseBlock) reg.item).registerBlockIcons( ev.map, reg.name ); + } + } + + for ( ResourceLocation res : extraIcons ) + ev.map.registerSprite( res ); + + //if( ev.map.getTextureType() == ITEM_RENDERER ) { for( ExtraItemTextures et : ExtraItemTextures.values() ) { @@ -429,7 +587,7 @@ public class ClientHelper extends ServerHelper } } - if( ev.map.getTextureType() == 0 ) + //if( ev.map. == BLOCK_RENDERER ) { for( ExtraBlockTextures et : ExtraBlockTextures.values() ) { @@ -442,4 +600,6 @@ public class ClientHelper extends ServerHelper } } } + + } \ No newline at end of file diff --git a/src/main/java/appeng/client/SmartModel.java b/src/main/java/appeng/client/SmartModel.java new file mode 100644 index 00000000..0ed6f77d --- /dev/null +++ b/src/main/java/appeng/client/SmartModel.java @@ -0,0 +1,124 @@ +package appeng.client; + +import java.util.Collections; +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.resources.model.IBakedModel; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.model.IModelPart; +import net.minecraftforge.client.model.IModelState; +import net.minecraftforge.client.model.ISmartBlockModel; +import net.minecraftforge.client.model.ISmartItemModel; +import net.minecraftforge.client.model.TRSRTransformation; +import net.minecraftforge.common.property.IExtendedBlockState; +import appeng.api.util.AEPartLocation; +import appeng.block.AEBaseBlock; +import appeng.block.AEBaseTileBlock; +import appeng.client.render.BlockRenderInfo; +import appeng.client.render.IRenderHelper; +import appeng.client.texture.MissingIcon; + +// net.minecraft.client.renderer.tileentity.TileEntityItemStackRenderer +public class SmartModel implements IBakedModel, ISmartBlockModel,ISmartItemModel +{ + + BlockRenderInfo AERenderer; + + private class DefState implements IModelState + { + + @Override + public TRSRTransformation apply( + IModelPart part ) + { + return TRSRTransformation.identity(); + } + + }; + + public SmartModel( + BlockRenderInfo rendererInstance ) + { + AERenderer = rendererInstance; + } + + @Override + public List getFaceQuads( + EnumFacing p_177551_1_ ) + { + return Collections.emptyList(); + } + + @Override + public List getGeneralQuads() + { + return Collections.emptyList(); + } + + @Override + public boolean isAmbientOcclusion() + { + return true; + } + + @Override + public boolean isGui3d() + { + return true; + } + + @Override + public boolean isBuiltInRenderer() + { + return false; + } + + @Override + public TextureAtlasSprite getTexture() + { + return AERenderer != null ? AERenderer.getTexture( AEPartLocation.UP ).getAtlas() : MissingIcon.getMissing(); + } + + @Override + public ItemCameraTransforms getItemCameraTransforms() + { + return ItemCameraTransforms.DEFAULT; + } + + @Override + public IBakedModel handleItemState( + ItemStack stack ) + { + IRenderHelper helper = new IRenderHelper(); + Block blk = Block.getBlockFromItem( stack.getItem() ); + helper.setRenderBoundsFromBlock( blk ); + AERenderer.rendererInstance.renderInventory( blk instanceof AEBaseBlock ? (AEBaseBlock) blk : null, stack, helper, ItemRenderType.INVENTORY, null ); + helper.finalizeModel( true ); + return helper.getOutput(); + } + + @Override + public IBakedModel handleBlockState( + IBlockState state ) + { + IRenderHelper helper = new IRenderHelper(); + Block blk = state.getBlock(); + BlockPos pos = ( (IExtendedBlockState)state ).getValue( AEBaseTileBlock.AE_BLOCK_POS ); + IBlockAccess world = ( (IExtendedBlockState)state ).getValue( AEBaseTileBlock.AE_BLOCK_ACCESS); + helper.setTranslation( -pos.getX(), -pos.getY(), -pos.getZ() ); + helper.setRenderBoundsFromBlock( blk ); + helper.blockAccess = world; + AERenderer.rendererInstance.renderInWorld( blk instanceof AEBaseBlock ? (AEBaseBlock) blk : null, world, pos, helper); + helper.finalizeModel( false ); + return helper.getOutput(); + } + +} diff --git a/src/main/java/appeng/client/gui/AEBaseGui.java b/src/main/java/appeng/client/gui/AEBaseGui.java index d4bcb4e2..86ab89e6 100644 --- a/src/main/java/appeng/client/gui/AEBaseGui.java +++ b/src/main/java/appeng/client/gui/AEBaseGui.java @@ -30,27 +30,24 @@ import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; -import com.google.common.base.Joiner; -import com.google.common.base.Stopwatch; - -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.common.ObfuscationReflectionHelper; -import cpw.mods.fml.common.ObfuscationReflectionHelper; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.widgets.GuiScrollbar; @@ -80,6 +77,9 @@ import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.INEI; +import com.google.common.base.Joiner; +import com.google.common.base.Stopwatch; + public abstract class AEBaseGui extends GuiContainer { @@ -87,7 +87,7 @@ public abstract class AEBaseGui extends GuiContainer protected final List meSlots = new LinkedList(); // drag y final Set drag_click = new HashSet(); - final AppEngRenderItem aeRenderItem = new AppEngRenderItem(); + final AppEngRenderItem aeRenderItem = new AppEngRenderItem(Minecraft.getMinecraft().renderEngine,Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getModelManager()); protected GuiScrollbar myScrollBar = null; boolean disableShiftClick = false; Stopwatch dbl_clickTimer = Stopwatch.createStarted(); @@ -279,6 +279,7 @@ public abstract class AEBaseGui extends GuiContainer this.zLevel = 0.0F; itemRender.zLevel = 0.0F; } + RenderHelper.enableStandardItemLighting(); GL11.glPopAttrib(); } @@ -334,7 +335,7 @@ public abstract class AEBaseGui extends GuiContainer } @Override - protected void mouseClicked( int xCoord, int yCoord, int btn ) + protected void mouseClicked( int xCoord, int yCoord, int btn ) throws IOException { this.drag_click.clear(); @@ -576,7 +577,7 @@ public abstract class AEBaseGui extends GuiContainer final List slots = this.getInventorySlots(); for( Slot inventorySlot : slots ) { - if( inventorySlot != null && inventorySlot.canTakeStack( this.mc.thePlayer ) && inventorySlot.getHasStack() && inventorySlot.inventory == slot.inventory && Container.func_94527_a( inventorySlot, this.dbl_whichItem, true ) ) + if( inventorySlot != null && inventorySlot.canTakeStack( this.mc.thePlayer ) && inventorySlot.getHasStack() && inventorySlot.inventory == slot.inventory && Container.canAddItemToSlot( inventorySlot, this.dbl_whichItem, true ) ) { this.handleMouseClick( inventorySlot, inventorySlot.slotNumber, ctrlDown, 1 ); } @@ -657,7 +658,7 @@ public abstract class AEBaseGui extends GuiContainer for( Slot slot : slots ) { // isPointInRegion - if( this.func_146978_c( slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX, mouseY ) ) + if( this.isPointInRegion( slot.xDisplayPosition, slot.yDisplayPosition, 16, 16, mouseX, mouseY ) ) { return slot; } @@ -669,7 +670,7 @@ public abstract class AEBaseGui extends GuiContainer public abstract void drawBG( int offsetX, int offsetY, int mouseX, int mouseY ); @Override - public void handleMouseInput() + public void handleMouseInput() throws IOException { super.handleMouseInput(); @@ -728,7 +729,7 @@ public abstract class AEBaseGui extends GuiContainer GL11.glEnable( GL12.GL_RESCALE_NORMAL ); GL11.glEnable( GL11.GL_DEPTH_TEST ); RenderHelper.enableGUIStandardItemLighting(); - itemRender.renderItemAndEffectIntoGUI( this.fontRendererObj, this.mc.renderEngine, is, x, y ); + itemRender.renderItemAndEffectIntoGUI( is, x, y ); GL11.glPopAttrib(); itemRender.zLevel = 0.0F; @@ -803,7 +804,6 @@ public abstract class AEBaseGui extends GuiContainer this.bindTexture( "guis/states.png" ); GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); - Tessellator tessellator = Tessellator.instance; try { int uv_y = (int) Math.floor( aes.getIcon() / 16 ); @@ -821,15 +821,18 @@ public abstract class AEBaseGui extends GuiContainer float par5 = 16; float par6 = 16; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + float f = 0.00390625F; float f1 = 0.00390625F; - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_F( 1.0f, 1.0f, 1.0f, aes.getOpacityOfIcon() ); - tessellator.addVertexWithUV( par1 + 0, par2 + par6, this.zLevel, ( par3 + 0 ) * f, ( par4 + par6 ) * f1 ); - tessellator.addVertexWithUV( par1 + par5, par2 + par6, this.zLevel, ( par3 + par5 ) * f, ( par4 + par6 ) * f1 ); - tessellator.addVertexWithUV( par1 + par5, par2 + 0, this.zLevel, ( par3 + par5 ) * f, ( par4 + 0 ) * f1 ); - tessellator.addVertexWithUV( par1 + 0, par2 + 0, this.zLevel, ( par3 + 0 ) * f, ( par4 + 0 ) * f1 ); - tessellator.setColorRGBA_F( 1.0f, 1.0f, 1.0f, 1.0f ); + worldrenderer.startDrawingQuads(); + worldrenderer.setColorRGBA_F( 1.0f, 1.0f, 1.0f, aes.getOpacityOfIcon() ); + worldrenderer.addVertexWithUV( par1 + 0, par2 + par6, this.zLevel, ( par3 + 0 ) * f, ( par4 + par6 ) * f1 ); + worldrenderer.addVertexWithUV( par1 + par5, par2 + par6, this.zLevel, ( par3 + par5 ) * f, ( par4 + par6 ) * f1 ); + worldrenderer.addVertexWithUV( par1 + par5, par2 + 0, this.zLevel, ( par3 + par5 ) * f, ( par4 + 0 ) * f1 ); + worldrenderer.addVertexWithUV( par1 + 0, par2 + 0, this.zLevel, ( par3 + 0 ) * f, ( par4 + 0 ) * f1 ); + worldrenderer.setColorRGBA_F( 1.0f, 1.0f, 1.0f, 1.0f ); tessellator.draw(); } catch( Exception err ) diff --git a/src/main/java/appeng/client/gui/AEBaseMEGui.java b/src/main/java/appeng/client/gui/AEBaseMEGui.java index 8b04675d..4d9950ba 100644 --- a/src/main/java/appeng/client/gui/AEBaseMEGui.java +++ b/src/main/java/appeng/client/gui/AEBaseMEGui.java @@ -26,7 +26,6 @@ import java.util.Locale; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; - import appeng.api.storage.data.IAEItemStack; import appeng.client.me.SlotME; import appeng.core.AEConfig; diff --git a/src/main/java/appeng/client/gui/config/AEConfigGui.java b/src/main/java/appeng/client/gui/config/AEConfigGui.java index 34bf74f4..281e9e05 100644 --- a/src/main/java/appeng/client/gui/config/AEConfigGui.java +++ b/src/main/java/appeng/client/gui/config/AEConfigGui.java @@ -25,10 +25,8 @@ import java.util.List; import net.minecraft.client.gui.GuiScreen; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.ConfigElement; - -import cpw.mods.fml.client.config.GuiConfig; -import cpw.mods.fml.client.config.IConfigElement; - +import net.minecraftforge.fml.client.config.GuiConfig; +import net.minecraftforge.fml.client.config.IConfigElement; import appeng.core.AEConfig; import appeng.core.AppEng; diff --git a/src/main/java/appeng/client/gui/config/AEConfigGuiFactory.java b/src/main/java/appeng/client/gui/config/AEConfigGuiFactory.java index a1c66930..12e825ff 100644 --- a/src/main/java/appeng/client/gui/config/AEConfigGuiFactory.java +++ b/src/main/java/appeng/client/gui/config/AEConfigGuiFactory.java @@ -23,8 +23,7 @@ import java.util.Set; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; - -import cpw.mods.fml.client.IModGuiFactory; +import net.minecraftforge.fml.client.IModGuiFactory; public class AEConfigGuiFactory implements IModGuiFactory diff --git a/src/main/java/appeng/client/gui/implementations/GuiCellWorkbench.java b/src/main/java/appeng/client/gui/implementations/GuiCellWorkbench.java index 0d984c79..c8119d17 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCellWorkbench.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCellWorkbench.java @@ -21,13 +21,13 @@ package appeng.client.gui.implementations; import java.io.IOException; -import org.lwjgl.input.Mouse; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import org.lwjgl.input.Mouse; + import appeng.api.config.ActionItems; import appeng.api.config.CopyMode; import appeng.api.config.FuzzyMode; diff --git a/src/main/java/appeng/client/gui/implementations/GuiChest.java b/src/main/java/appeng/client/gui/implementations/GuiChest.java index 75bb50bf..e48a946a 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiChest.java +++ b/src/main/java/appeng/client/gui/implementations/GuiChest.java @@ -19,9 +19,10 @@ package appeng.client.gui.implementations; +import java.io.IOException; + import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; - import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiTabButton; import appeng.container.implementations.ContainerChest; @@ -44,7 +45,7 @@ public class GuiChest extends AEBaseGui } @Override - protected void actionPerformed( GuiButton par1GuiButton ) + protected void actionPerformed( GuiButton par1GuiButton ) throws IOException { super.actionPerformed( par1GuiButton ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiCondenser.java b/src/main/java/appeng/client/gui/implementations/GuiCondenser.java index 7b157701..d1c3ed93 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCondenser.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCondenser.java @@ -19,11 +19,13 @@ package appeng.client.gui.implementations; -import org.lwjgl.input.Mouse; +import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.Settings; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiImgButton; @@ -51,7 +53,7 @@ public class GuiCondenser extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java b/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java index a2641cbc..2876b8ea 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftAmount.java @@ -19,10 +19,11 @@ package appeng.client.gui.implementations; +import java.io.IOException; + import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.definitions.IDefinitions; import appeng.api.definitions.IParts; @@ -175,7 +176,7 @@ public class GuiCraftAmount extends AEBaseGui } @Override - protected void keyTyped( char character, int key ) + protected void keyTyped( char character, int key ) throws IOException { if( !this.checkHotbarKeys( key ) ) { @@ -225,7 +226,7 @@ public class GuiCraftAmount extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java index 188f91ca..2ab55155 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftConfirm.java @@ -26,15 +26,13 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import com.google.common.base.Joiner; - -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + import appeng.api.AEApi; import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; @@ -54,6 +52,8 @@ import appeng.parts.reporting.PartPatternTerminal; import appeng.parts.reporting.PartTerminal; import appeng.util.Platform; +import com.google.common.base.Joiner; + public class GuiCraftConfirm extends AEBaseGui { @@ -530,7 +530,7 @@ public class GuiCraftConfirm extends AEBaseGui } @Override - protected void keyTyped( char character, int key ) + protected void keyTyped( char character, int key ) throws IOException { if( !this.checkHotbarKeys( key ) ) { @@ -543,7 +543,7 @@ public class GuiCraftConfirm extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java b/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java index d3888cc5..8363211e 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftingCPU.java @@ -26,15 +26,13 @@ import java.util.LinkedList; import java.util.List; import java.util.concurrent.TimeUnit; -import com.google.common.base.Joiner; - -import org.apache.commons.lang3.time.DurationFormatUtils; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import org.apache.commons.lang3.time.DurationFormatUtils; +import org.lwjgl.opengl.GL11; + import appeng.api.AEApi; import appeng.api.config.SortDir; import appeng.api.config.SortOrder; @@ -54,6 +52,8 @@ import appeng.core.sync.packets.PacketValueConfig; import appeng.util.Platform; import appeng.util.ReadableNumberConverter; +import com.google.common.base.Joiner; + public class GuiCraftingCPU extends AEBaseGui implements ISortSource { @@ -115,7 +115,7 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java b/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java index 728fcf19..09e99aec 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftingStatus.java @@ -25,12 +25,12 @@ package appeng.client.gui.implementations; import java.io.IOException; -import org.lwjgl.input.Mouse; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import org.lwjgl.input.Mouse; + import appeng.api.AEApi; import appeng.api.definitions.IDefinitions; import appeng.api.definitions.IParts; @@ -107,7 +107,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiCraftingTerm.java b/src/main/java/appeng/client/gui/implementations/GuiCraftingTerm.java index 9cf53c18..151e8a13 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiCraftingTerm.java +++ b/src/main/java/appeng/client/gui/implementations/GuiCraftingTerm.java @@ -23,7 +23,6 @@ import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; - import appeng.api.config.ActionItems; import appeng.api.config.Settings; import appeng.api.storage.ITerminalHost; diff --git a/src/main/java/appeng/client/gui/implementations/GuiDrive.java b/src/main/java/appeng/client/gui/implementations/GuiDrive.java index 3beeb59b..66b56b28 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiDrive.java +++ b/src/main/java/appeng/client/gui/implementations/GuiDrive.java @@ -19,9 +19,10 @@ package appeng.client.gui.implementations; +import java.io.IOException; + import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; - import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiTabButton; import appeng.container.implementations.ContainerDrive; @@ -44,7 +45,7 @@ public class GuiDrive extends AEBaseGui } @Override - protected void actionPerformed( GuiButton par1GuiButton ) + protected void actionPerformed( GuiButton par1GuiButton ) throws IOException { super.actionPerformed( par1GuiButton ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiFormationPlane.java b/src/main/java/appeng/client/gui/implementations/GuiFormationPlane.java index 70e47062..c0cec718 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiFormationPlane.java +++ b/src/main/java/appeng/client/gui/implementations/GuiFormationPlane.java @@ -19,11 +19,13 @@ package appeng.client.gui.implementations; -import org.lwjgl.input.Mouse; +import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.FuzzyMode; import appeng.api.config.Settings; import appeng.api.config.YesNo; @@ -86,7 +88,7 @@ public class GuiFormationPlane extends GuiUpgradeable } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiGrinder.java b/src/main/java/appeng/client/gui/implementations/GuiGrinder.java index 2136dc88..71180e89 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiGrinder.java +++ b/src/main/java/appeng/client/gui/implementations/GuiGrinder.java @@ -20,7 +20,6 @@ package appeng.client.gui.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.client.gui.AEBaseGui; import appeng.container.implementations.ContainerGrinder; import appeng.core.localization.GuiText; diff --git a/src/main/java/appeng/client/gui/implementations/GuiIOPort.java b/src/main/java/appeng/client/gui/implementations/GuiIOPort.java index 3f7fe8bb..b554495d 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiIOPort.java +++ b/src/main/java/appeng/client/gui/implementations/GuiIOPort.java @@ -19,12 +19,14 @@ package appeng.client.gui.implementations; -import org.lwjgl.input.Mouse; +import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import org.lwjgl.input.Mouse; + import appeng.api.AEApi; import appeng.api.config.FullnessMode; import appeng.api.config.OperationMode; @@ -110,7 +112,7 @@ public class GuiIOPort extends GuiUpgradeable } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiInscriber.java b/src/main/java/appeng/client/gui/implementations/GuiInscriber.java index 5f636610..67e278bd 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInscriber.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInscriber.java @@ -20,7 +20,6 @@ package appeng.client.gui.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiProgressBar; import appeng.client.gui.widgets.GuiProgressBar.Direction; diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterface.java b/src/main/java/appeng/client/gui/implementations/GuiInterface.java index d1273997..0dbdea3f 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterface.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterface.java @@ -19,11 +19,13 @@ package appeng.client.gui.implementations; -import org.lwjgl.input.Mouse; +import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.Settings; import appeng.api.config.YesNo; import appeng.client.gui.widgets.GuiImgButton; @@ -93,7 +95,7 @@ public class GuiInterface extends GuiUpgradeable } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java index 9ebe406c..4d315eb3 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java +++ b/src/main/java/appeng/client/gui/implementations/GuiInterfaceTerminal.java @@ -19,6 +19,7 @@ package appeng.client.gui.implementations; +import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -28,15 +29,13 @@ import java.util.Map; import java.util.Set; import java.util.WeakHashMap; -import com.google.common.collect.HashMultimap; - -import org.lwjgl.opengl.GL11; - import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import org.lwjgl.opengl.GL11; + import appeng.api.AEApi; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiScrollbar; @@ -48,6 +47,8 @@ import appeng.core.localization.GuiText; import appeng.parts.reporting.PartMonitor; import appeng.util.Platform; +import com.google.common.collect.HashMultimap; + public class GuiInterfaceTerminal extends AEBaseGui { @@ -142,7 +143,7 @@ public class GuiInterfaceTerminal extends AEBaseGui } @Override - protected void mouseClicked( int xCoord, int yCoord, int btn ) + protected void mouseClicked( int xCoord, int yCoord, int btn ) throws IOException { this.searchField.mouseClicked( xCoord, yCoord, btn ); @@ -185,7 +186,7 @@ public class GuiInterfaceTerminal extends AEBaseGui } @Override - protected void keyTyped( char character, int key ) + protected void keyTyped( char character, int key ) throws IOException { if( !this.checkHotbarKeys( key ) ) { @@ -213,7 +214,7 @@ public class GuiInterfaceTerminal extends AEBaseGui this.refreshList = true; } - for( Object oKey : in.func_150296_c() ) + for( Object oKey : in.getKeySet() ) { String key = (String) oKey; if( key.startsWith( "=" ) ) diff --git a/src/main/java/appeng/client/gui/implementations/GuiLevelEmitter.java b/src/main/java/appeng/client/gui/implementations/GuiLevelEmitter.java index 62a2c490..a1eac918 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiLevelEmitter.java +++ b/src/main/java/appeng/client/gui/implementations/GuiLevelEmitter.java @@ -21,11 +21,11 @@ package appeng.client.gui.implementations; import java.io.IOException; -import org.lwjgl.input.Mouse; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.FuzzyMode; import appeng.api.config.LevelType; import appeng.api.config.RedstoneMode; @@ -167,7 +167,7 @@ public class GuiLevelEmitter extends GuiUpgradeable } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); @@ -238,7 +238,7 @@ public class GuiLevelEmitter extends GuiUpgradeable } @Override - protected void keyTyped( char character, int key ) + protected void keyTyped( char character, int key ) throws IOException { if( !this.checkHotbarKeys( key ) ) { diff --git a/src/main/java/appeng/client/gui/implementations/GuiMAC.java b/src/main/java/appeng/client/gui/implementations/GuiMAC.java index ef259879..8b6f786e 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiMAC.java +++ b/src/main/java/appeng/client/gui/implementations/GuiMAC.java @@ -20,7 +20,6 @@ package appeng.client.gui.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.config.RedstoneMode; import appeng.api.config.Settings; import appeng.client.gui.widgets.GuiImgButton; diff --git a/src/main/java/appeng/client/gui/implementations/GuiMEMonitorable.java b/src/main/java/appeng/client/gui/implementations/GuiMEMonitorable.java index 0dcd3b9d..fed161b3 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiMEMonitorable.java +++ b/src/main/java/appeng/client/gui/implementations/GuiMEMonitorable.java @@ -22,14 +22,14 @@ package appeng.client.gui.implementations; import java.io.IOException; import java.util.List; -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; + import appeng.api.config.SearchBoxMode; import appeng.api.config.Settings; import appeng.api.config.TerminalStyle; @@ -362,7 +362,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi } @Override - protected void mouseClicked( int xCoord, int yCoord, int btn ) + protected void mouseClicked( int xCoord, int yCoord, int btn ) throws IOException { Enum searchMode = AEConfig.instance.settings.getSetting( Settings.SEARCH_MODE ); @@ -457,7 +457,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi } @Override - protected void keyTyped( char character, int key ) + protected void keyTyped( char character, int key ) throws IOException { if( !this.checkHotbarKeys( key ) ) { diff --git a/src/main/java/appeng/client/gui/implementations/GuiMEPortableCell.java b/src/main/java/appeng/client/gui/implementations/GuiMEPortableCell.java index 263f66a5..9637696e 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiMEPortableCell.java +++ b/src/main/java/appeng/client/gui/implementations/GuiMEPortableCell.java @@ -20,7 +20,6 @@ package appeng.client.gui.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.implementations.guiobjects.IPortableCell; import appeng.container.implementations.ContainerMEPortableCell; diff --git a/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java b/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java index bd9a2550..e4659e8f 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java +++ b/src/main/java/appeng/client/gui/implementations/GuiNetworkStatus.java @@ -19,16 +19,17 @@ package appeng.client.gui.implementations; +import java.io.IOException; import java.util.List; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + import appeng.api.config.Settings; import appeng.api.config.SortDir; import appeng.api.config.SortOrder; @@ -66,7 +67,7 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiNetworkTool.java b/src/main/java/appeng/client/gui/implementations/GuiNetworkTool.java index d3aa702c..ddd679e4 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiNetworkTool.java +++ b/src/main/java/appeng/client/gui/implementations/GuiNetworkTool.java @@ -23,7 +23,6 @@ import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.implementations.guiobjects.INetworkTool; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiToggleButton; @@ -46,7 +45,7 @@ public class GuiNetworkTool extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiPatternTerm.java b/src/main/java/appeng/client/gui/implementations/GuiPatternTerm.java index 72b7efa5..dae544b2 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiPatternTerm.java +++ b/src/main/java/appeng/client/gui/implementations/GuiPatternTerm.java @@ -25,7 +25,6 @@ import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; - import appeng.api.config.ActionItems; import appeng.api.config.Settings; import appeng.api.storage.ITerminalHost; diff --git a/src/main/java/appeng/client/gui/implementations/GuiPriority.java b/src/main/java/appeng/client/gui/implementations/GuiPriority.java index 62dddb1c..01af445a 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiPriority.java +++ b/src/main/java/appeng/client/gui/implementations/GuiPriority.java @@ -24,7 +24,6 @@ import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IDefinitions; @@ -185,7 +184,7 @@ public class GuiPriority extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); @@ -245,7 +244,7 @@ public class GuiPriority extends AEBaseGui } @Override - protected void keyTyped( char character, int key ) + protected void keyTyped( char character, int key ) throws IOException { if( !this.checkHotbarKeys( key ) ) { diff --git a/src/main/java/appeng/client/gui/implementations/GuiQNB.java b/src/main/java/appeng/client/gui/implementations/GuiQNB.java index fdc65985..36dd17fc 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiQNB.java +++ b/src/main/java/appeng/client/gui/implementations/GuiQNB.java @@ -20,7 +20,6 @@ package appeng.client.gui.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.client.gui.AEBaseGui; import appeng.container.implementations.ContainerQNB; import appeng.core.localization.GuiText; diff --git a/src/main/java/appeng/client/gui/implementations/GuiQuartzKnife.java b/src/main/java/appeng/client/gui/implementations/GuiQuartzKnife.java index 7641061a..b61c0c45 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiQuartzKnife.java +++ b/src/main/java/appeng/client/gui/implementations/GuiQuartzKnife.java @@ -23,7 +23,6 @@ import java.io.IOException; import net.minecraft.client.gui.GuiTextField; import net.minecraft.entity.player.InventoryPlayer; - import appeng.client.gui.AEBaseGui; import appeng.container.implementations.ContainerQuartzKnife; import appeng.core.AELog; @@ -49,7 +48,7 @@ public class GuiQuartzKnife extends AEBaseGui { super.initGui(); - this.name = new GuiTextField( this.fontRendererObj, this.guiLeft + 24, this.guiTop + 32, 79, this.fontRendererObj.FONT_HEIGHT ); + this.name = new GuiTextField( 0,this.fontRendererObj, this.guiLeft + 24, this.guiTop + 32, 79, this.fontRendererObj.FONT_HEIGHT ); this.name.setEnableBackgroundDrawing( false ); this.name.setMaxStringLength( 32 ); this.name.setTextColor( 0xFFFFFF ); @@ -73,7 +72,7 @@ public class GuiQuartzKnife extends AEBaseGui } @Override - protected void keyTyped( char character, int key ) + protected void keyTyped( char character, int key ) throws IOException { if( this.name.textboxKeyTyped( character, key ) ) { diff --git a/src/main/java/appeng/client/gui/implementations/GuiSecurity.java b/src/main/java/appeng/client/gui/implementations/GuiSecurity.java index cd53849a..601d8884 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiSecurity.java +++ b/src/main/java/appeng/client/gui/implementations/GuiSecurity.java @@ -22,7 +22,6 @@ package appeng.client.gui.implementations; import java.io.IOException; import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.config.SecurityPermissions; import appeng.api.config.SortOrder; import appeng.api.storage.ITerminalHost; diff --git a/src/main/java/appeng/client/gui/implementations/GuiSkyChest.java b/src/main/java/appeng/client/gui/implementations/GuiSkyChest.java index 960cafe7..149e45ce 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiSkyChest.java +++ b/src/main/java/appeng/client/gui/implementations/GuiSkyChest.java @@ -20,7 +20,6 @@ package appeng.client.gui.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.client.gui.AEBaseGui; import appeng.container.implementations.ContainerSkyChest; import appeng.core.localization.GuiText; diff --git a/src/main/java/appeng/client/gui/implementations/GuiSpatialIOPort.java b/src/main/java/appeng/client/gui/implementations/GuiSpatialIOPort.java index 287a8958..a0e188ae 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiSpatialIOPort.java +++ b/src/main/java/appeng/client/gui/implementations/GuiSpatialIOPort.java @@ -19,11 +19,13 @@ package appeng.client.gui.implementations; -import org.lwjgl.input.Mouse; +import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.Settings; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiImgButton; @@ -48,7 +50,7 @@ public class GuiSpatialIOPort extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiStorageBus.java b/src/main/java/appeng/client/gui/implementations/GuiStorageBus.java index 78654e28..71602647 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiStorageBus.java +++ b/src/main/java/appeng/client/gui/implementations/GuiStorageBus.java @@ -21,11 +21,11 @@ package appeng.client.gui.implementations; import java.io.IOException; -import org.lwjgl.input.Mouse; - import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.AccessRestriction; import appeng.api.config.ActionItems; import appeng.api.config.FuzzyMode; @@ -106,7 +106,7 @@ public class GuiStorageBus extends GuiUpgradeable } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiUpgradeable.java b/src/main/java/appeng/client/gui/implementations/GuiUpgradeable.java index b4f27816..15f24d80 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiUpgradeable.java +++ b/src/main/java/appeng/client/gui/implementations/GuiUpgradeable.java @@ -19,11 +19,13 @@ package appeng.client.gui.implementations; -import org.lwjgl.input.Mouse; +import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.FuzzyMode; import appeng.api.config.RedstoneMode; import appeng.api.config.Settings; @@ -158,7 +160,7 @@ public class GuiUpgradeable extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiVibrationChamber.java b/src/main/java/appeng/client/gui/implementations/GuiVibrationChamber.java index fc2d16b3..bbbc2ac5 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiVibrationChamber.java +++ b/src/main/java/appeng/client/gui/implementations/GuiVibrationChamber.java @@ -19,10 +19,10 @@ package appeng.client.gui.implementations; -import org.lwjgl.opengl.GL11; - import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.opengl.GL11; + import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiProgressBar; import appeng.client.gui.widgets.GuiProgressBar.Direction; diff --git a/src/main/java/appeng/client/gui/implementations/GuiWireless.java b/src/main/java/appeng/client/gui/implementations/GuiWireless.java index ded8dd26..74af8ef4 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiWireless.java +++ b/src/main/java/appeng/client/gui/implementations/GuiWireless.java @@ -19,11 +19,13 @@ package appeng.client.gui.implementations; -import org.lwjgl.input.Mouse; +import java.io.IOException; import net.minecraft.client.gui.GuiButton; import net.minecraft.entity.player.InventoryPlayer; +import org.lwjgl.input.Mouse; + import appeng.api.config.Settings; import appeng.client.gui.AEBaseGui; import appeng.client.gui.widgets.GuiImgButton; @@ -46,7 +48,7 @@ public class GuiWireless extends AEBaseGui } @Override - protected void actionPerformed( GuiButton btn ) + protected void actionPerformed( GuiButton btn ) throws IOException { super.actionPerformed( btn ); diff --git a/src/main/java/appeng/client/gui/implementations/GuiWirelessTerm.java b/src/main/java/appeng/client/gui/implementations/GuiWirelessTerm.java index c8c40a60..2fb46475 100644 --- a/src/main/java/appeng/client/gui/implementations/GuiWirelessTerm.java +++ b/src/main/java/appeng/client/gui/implementations/GuiWirelessTerm.java @@ -20,7 +20,6 @@ package appeng.client.gui.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.implementations.guiobjects.IPortableCell; diff --git a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java index d154c8d3..4c591dee 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiImgButton.java +++ b/src/main/java/appeng/client/gui/widgets/GuiImgButton.java @@ -23,12 +23,12 @@ import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + import appeng.api.config.AccessRestriction; import appeng.api.config.ActionItems; import appeng.api.config.CondenserOutput; @@ -202,7 +202,7 @@ public class GuiImgButton extends GuiButton implements ITooltip } par1Minecraft.renderEngine.bindTexture( ExtraBlockTextures.GuiTexture( "guis/states.png" ) ); - this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + this.hovered = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; int uv_y = (int) Math.floor( iconIndex / 16 ); int uv_x = iconIndex - uv_y * 16; @@ -225,7 +225,7 @@ public class GuiImgButton extends GuiButton implements ITooltip } par1Minecraft.renderEngine.bindTexture( ExtraBlockTextures.GuiTexture( "guis/states.png" ) ); - this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + this.hovered = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; int uv_y = (int) Math.floor( iconIndex / 16 ); int uv_x = iconIndex - uv_y * 16; diff --git a/src/main/java/appeng/client/gui/widgets/GuiNumberBox.java b/src/main/java/appeng/client/gui/widgets/GuiNumberBox.java index 81448c41..8c59e2be 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiNumberBox.java +++ b/src/main/java/appeng/client/gui/widgets/GuiNumberBox.java @@ -30,7 +30,7 @@ public class GuiNumberBox extends GuiTextField public GuiNumberBox( FontRenderer fontRenderer, int x, int y, int width, int height, Class type ) { - super( fontRenderer, x, y, width, height ); + super( 0, fontRenderer, x, y, width, height ); this.type = type; } diff --git a/src/main/java/appeng/client/gui/widgets/GuiProgressBar.java b/src/main/java/appeng/client/gui/widgets/GuiProgressBar.java index 544e9b95..a126bdf5 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiProgressBar.java +++ b/src/main/java/appeng/client/gui/widgets/GuiProgressBar.java @@ -22,7 +22,6 @@ package appeng.client.gui.widgets; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.ResourceLocation; - import appeng.container.interfaces.IProgressProvider; import appeng.core.localization.GuiText; diff --git a/src/main/java/appeng/client/gui/widgets/GuiTabButton.java b/src/main/java/appeng/client/gui/widgets/GuiTabButton.java index ef10a250..fd352962 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiTabButton.java +++ b/src/main/java/appeng/client/gui/widgets/GuiTabButton.java @@ -19,16 +19,15 @@ package appeng.client.gui.widgets; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.ItemStack; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + import appeng.client.texture.ExtraBlockTextures; @@ -81,7 +80,7 @@ public class GuiTabButton extends GuiButton implements ITooltip { GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f ); minecraft.renderEngine.bindTexture( ExtraBlockTextures.GuiTexture( "guis/states.png" ) ); - this.field_146123_n = x >= this.xPosition && y >= this.yPosition && x < this.xPosition + this.width && y < this.yPosition + this.height; + this.hovered = x >= this.xPosition && y >= this.yPosition && x < this.xPosition + this.width && y < this.yPosition + this.height; int uv_x = ( this.hideEdge > 0 ? 11 : 13 ); @@ -107,8 +106,7 @@ public class GuiTabButton extends GuiButton implements ITooltip GL11.glEnable( GL11.GL_LIGHTING ); GL11.glEnable( GL12.GL_RESCALE_NORMAL ); RenderHelper.enableGUIStandardItemLighting(); - FontRenderer fontrenderer = minecraft.fontRenderer; - this.itemRenderer.renderItemAndEffectIntoGUI( fontrenderer, minecraft.renderEngine, this.myItem, offsetX + this.xPosition + 3, this.yPosition + 3 ); + this.itemRenderer.renderItemAndEffectIntoGUI( this.myItem, offsetX + this.xPosition + 3, this.yPosition + 3 ); GL11.glDisable( GL11.GL_LIGHTING ); this.itemRenderer.zLevel = 0.0F; diff --git a/src/main/java/appeng/client/gui/widgets/GuiToggleButton.java b/src/main/java/appeng/client/gui/widgets/GuiToggleButton.java index d6a1bd11..9c7e8bc3 100644 --- a/src/main/java/appeng/client/gui/widgets/GuiToggleButton.java +++ b/src/main/java/appeng/client/gui/widgets/GuiToggleButton.java @@ -21,12 +21,12 @@ package appeng.client.gui.widgets; import java.util.regex.Pattern; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + import appeng.client.texture.ExtraBlockTextures; @@ -68,7 +68,7 @@ public class GuiToggleButton extends GuiButton implements ITooltip GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f ); par1Minecraft.renderEngine.bindTexture( ExtraBlockTextures.GuiTexture( "guis/states.png" ) ); - this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + this.hovered = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; int uv_y = (int) Math.floor( iconIndex / 16 ); int uv_x = iconIndex - uv_y * 16; diff --git a/src/main/java/appeng/client/gui/widgets/MEGuiTextField.java b/src/main/java/appeng/client/gui/widgets/MEGuiTextField.java index 8e09092f..57ed0186 100644 --- a/src/main/java/appeng/client/gui/widgets/MEGuiTextField.java +++ b/src/main/java/appeng/client/gui/widgets/MEGuiTextField.java @@ -52,7 +52,7 @@ public class MEGuiTextField extends GuiTextField */ public MEGuiTextField( FontRenderer fontRenderer, int xPos, int yPos, int width, int height ) { - super( fontRenderer, xPos + PADDING, yPos + PADDING, width - 2 * PADDING - fontRenderer.getCharWidth( '_' ), height - 2 * PADDING ); + super( 0, fontRenderer, xPos + PADDING, yPos + PADDING, width - 2 * PADDING - fontRenderer.getCharWidth( '_' ), height - 2 * PADDING ); this._xPos = xPos; this._yPos = yPos; diff --git a/src/main/java/appeng/client/me/ClientDCInternalInv.java b/src/main/java/appeng/client/me/ClientDCInternalInv.java index e01dc5eb..c830350f 100644 --- a/src/main/java/appeng/client/me/ClientDCInternalInv.java +++ b/src/main/java/appeng/client/me/ClientDCInternalInv.java @@ -22,7 +22,6 @@ package appeng.client.me; import javax.annotation.Nonnull; import net.minecraft.util.StatCollector; - import appeng.tile.inventory.AppEngInternalInventory; import appeng.util.ItemSorters; diff --git a/src/main/java/appeng/client/me/InternalSlotME.java b/src/main/java/appeng/client/me/InternalSlotME.java index 5c91b6c7..57bdb542 100644 --- a/src/main/java/appeng/client/me/InternalSlotME.java +++ b/src/main/java/appeng/client/me/InternalSlotME.java @@ -20,7 +20,6 @@ package appeng.client.me; import net.minecraft.item.ItemStack; - import appeng.api.storage.data.IAEItemStack; diff --git a/src/main/java/appeng/client/me/ItemRepo.java b/src/main/java/appeng/client/me/ItemRepo.java index 20d74e50..b09c6d47 100644 --- a/src/main/java/appeng/client/me/ItemRepo.java +++ b/src/main/java/appeng/client/me/ItemRepo.java @@ -26,9 +26,7 @@ import java.util.Collections; import java.util.regex.Pattern; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.relauncher.ReflectionHelper; - +import net.minecraftforge.fml.relauncher.ReflectionHelper; import appeng.api.AEApi; import appeng.api.config.SearchBoxMode; import appeng.api.config.Settings; diff --git a/src/main/java/appeng/client/me/SlotDisconnected.java b/src/main/java/appeng/client/me/SlotDisconnected.java index c0ecf570..920982c7 100644 --- a/src/main/java/appeng/client/me/SlotDisconnected.java +++ b/src/main/java/appeng/client/me/SlotDisconnected.java @@ -22,7 +22,6 @@ package appeng.client.me; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.container.slot.AppEngSlot; import appeng.items.misc.ItemEncodedPattern; import appeng.util.Platform; diff --git a/src/main/java/appeng/client/me/SlotME.java b/src/main/java/appeng/client/me/SlotME.java index 1545c1e5..94e8e365 100644 --- a/src/main/java/appeng/client/me/SlotME.java +++ b/src/main/java/appeng/client/me/SlotME.java @@ -23,7 +23,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; - import appeng.api.storage.data.IAEItemStack; diff --git a/src/main/java/appeng/client/render/AppEngRenderItem.java b/src/main/java/appeng/client/render/AppEngRenderItem.java index 25313be3..a02cc268 100644 --- a/src/main/java/appeng/client/render/AppEngRenderItem.java +++ b/src/main/java/appeng/client/render/AppEngRenderItem.java @@ -19,14 +19,16 @@ package appeng.client.render; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.client.resources.model.ModelManager; import net.minecraft.item.ItemStack; +import org.lwjgl.opengl.GL11; + import appeng.api.storage.data.IAEItemStack; import appeng.core.AEConfig; import appeng.core.localization.GuiText; @@ -43,13 +45,25 @@ import appeng.util.ReadableNumberConverter; */ public class AppEngRenderItem extends RenderItem { + public AppEngRenderItem( + TextureManager textureManager, + ModelManager modelManager ) + { + super( textureManager, modelManager ); + } + private static final ISlimReadableNumberConverter SLIM_CONVERTER = ReadableNumberConverter.INSTANCE; private static final IWideReadableNumberConverter WIDE_CONVERTER = ReadableNumberConverter.INSTANCE; public IAEItemStack aeStack; @Override - public void renderItemOverlayIntoGUI( FontRenderer fontRenderer, TextureManager textureManager, ItemStack is, int par4, int par5, String par6Str ) + public void renderItemOverlayIntoGUI( + FontRenderer fontRenderer, + ItemStack is, + int xPos, + int yPos, + String text ) { if( is != null ) { @@ -70,12 +84,13 @@ public class AppEngRenderItem extends RenderItem GL11.glDisable( GL11.GL_TEXTURE_2D ); GL11.glDisable( GL11.GL_ALPHA_TEST ); GL11.glDisable( GL11.GL_BLEND ); - Tessellator tessellator = Tessellator.instance; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer wr = tessellator.getWorldRenderer(); int l = 255 - k << 16 | k << 8; int i1 = ( 255 - k ) / 4 << 16 | 16128; - this.renderQuad( tessellator, par4 + 2, par5 + 13, 13, 2, 0 ); - this.renderQuad( tessellator, par4 + 2, par5 + 13, 12, 1, i1 ); - this.renderQuad( tessellator, par4 + 2, par5 + 13, j1, 1, l ); + this.renderQuad( tessellator, xPos + 2, yPos + 13, 13, 2, 0 ); + this.renderQuad( tessellator, xPos + 2, yPos + 13, 12, 1, i1 ); + this.renderQuad( tessellator, xPos + 2, yPos + 13, j1, 1, l ); GL11.glEnable( GL11.GL_ALPHA_TEST ); GL11.glEnable( GL11.GL_TEXTURE_2D ); GL11.glEnable( GL11.GL_LIGHTING ); @@ -90,8 +105,8 @@ public class AppEngRenderItem extends RenderItem GL11.glDisable( GL11.GL_DEPTH_TEST ); GL11.glPushMatrix(); GL11.glScaled( scaleFactor, scaleFactor, scaleFactor ); - int X = (int) ( ( (float) par4 + offset + 16.0f - fontRenderer.getStringWidth( craftLabelText ) * scaleFactor ) * inverseScaleFactor ); - int Y = (int) ( ( (float) par5 + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); + int X = (int) ( ( (float) xPos + offset + 16.0f - fontRenderer.getStringWidth( craftLabelText ) * scaleFactor ) * inverseScaleFactor ); + int Y = (int) ( ( (float) yPos + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); fontRenderer.drawStringWithShadow( craftLabelText, X, Y, 16777215 ); GL11.glPopMatrix(); GL11.glEnable( GL11.GL_LIGHTING ); @@ -107,8 +122,8 @@ public class AppEngRenderItem extends RenderItem GL11.glDisable( GL11.GL_DEPTH_TEST ); GL11.glPushMatrix(); GL11.glScaled( scaleFactor, scaleFactor, scaleFactor ); - int X = (int) ( ( (float) par4 + offset + 16.0f - fontRenderer.getStringWidth( stackSize ) * scaleFactor ) * inverseScaleFactor ); - int Y = (int) ( ( (float) par5 + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); + int X = (int) ( ( (float) xPos + offset + 16.0f - fontRenderer.getStringWidth( stackSize ) * scaleFactor ) * inverseScaleFactor ); + int Y = (int) ( ( (float) yPos + offset + 16.0f - 7.0f * scaleFactor ) * inverseScaleFactor ); fontRenderer.drawStringWithShadow( stackSize, X, Y, 16777215 ); GL11.glPopMatrix(); GL11.glEnable( GL11.GL_LIGHTING ); @@ -121,12 +136,14 @@ public class AppEngRenderItem extends RenderItem private void renderQuad( Tessellator par1Tessellator, int par2, int par3, int par4, int par5, int par6 ) { - par1Tessellator.startDrawingQuads(); - par1Tessellator.setColorOpaque_I( par6 ); - par1Tessellator.addVertex( par2, par3, 0.0D ); - par1Tessellator.addVertex( par2, par3 + par5, 0.0D ); - par1Tessellator.addVertex( par2 + par4, par3 + par5, 0.0D ); - par1Tessellator.addVertex( par2 + par4, par3, 0.0D ); + WorldRenderer wr = par1Tessellator.getWorldRenderer(); + + wr.startDrawingQuads(); + wr.setColorOpaque_I( par6 ); + wr.addVertex( par2, par3, 0.0D ); + wr.addVertex( par2, par3 + par5, 0.0D ); + wr.addVertex( par2 + par4, par3 + par5, 0.0D ); + wr.addVertex( par2 + par4, par3, 0.0D ); par1Tessellator.draw(); } diff --git a/src/main/java/appeng/client/render/BaseBlockRender.java b/src/main/java/appeng/client/render/BaseBlockRender.java index 1af5a882..cd1ff9b2 100644 --- a/src/main/java/appeng/client/render/BaseBlockRender.java +++ b/src/main/java/appeng/client/render/BaseBlockRender.java @@ -24,30 +24,31 @@ import java.util.EnumSet; import javax.annotation.Nullable; -import org.lwjgl.BufferUtils; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.BufferUtils; +import org.lwjgl.opengl.GL11; +import appeng.api.util.AEPartLocation; import appeng.api.util.IOrientable; import appeng.block.AEBaseBlock; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; +import appeng.core.AppEng; import appeng.tile.AEBaseTile; import appeng.util.Platform; @@ -64,6 +65,9 @@ public class BaseBlockRender private final double renderDistance; private final FloatBuffer rotMat = BufferUtils.createFloatBuffer( 16 ); + private static int dynRender = 0; + private final ModelResourceLocation modelPath = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, "DynamicRender"+dynRender++ ), "inventory" ); + public BaseBlockRender() { this( false, 20 ); @@ -280,10 +284,8 @@ public class BaseBlockRender return this.renderDistance; } - public void renderInventory( B block, ItemStack item, RenderBlocks renderer, ItemRenderType type, Object[] data ) + public void renderInventory( B block, ItemStack item, IRenderHelper renderer, ItemRenderType type, Object[] data ) { - Tessellator tess = Tessellator.instance; - BlockRenderInfo info = block.getRendererInstance(); if( info.isValid() ) { @@ -292,17 +294,17 @@ public class BaseBlockRender block.setRenderStateByMeta( item.getItemDamage() ); } - renderer.uvRotateBottom = info.getTexture( ForgeDirection.DOWN ).setFlip( getOrientation( ForgeDirection.DOWN, ForgeDirection.SOUTH, ForgeDirection.UP ) ); - renderer.uvRotateTop = info.getTexture( ForgeDirection.UP ).setFlip( getOrientation( ForgeDirection.UP, ForgeDirection.SOUTH, ForgeDirection.UP ) ); + renderer.uvRotateBottom = info.getTexture( AEPartLocation.DOWN ).setFlip( getOrientation( EnumFacing.DOWN, EnumFacing.SOUTH, EnumFacing.UP ) ); + renderer.uvRotateTop = info.getTexture( AEPartLocation.UP ).setFlip( getOrientation( EnumFacing.UP, EnumFacing.SOUTH, EnumFacing.UP ) ); - renderer.uvRotateEast = info.getTexture( ForgeDirection.EAST ).setFlip( getOrientation( ForgeDirection.EAST, ForgeDirection.SOUTH, ForgeDirection.UP ) ); - renderer.uvRotateWest = info.getTexture( ForgeDirection.WEST ).setFlip( getOrientation( ForgeDirection.WEST, ForgeDirection.SOUTH, ForgeDirection.UP ) ); + renderer.uvRotateEast = info.getTexture( AEPartLocation.EAST ).setFlip( getOrientation( EnumFacing.EAST, EnumFacing.SOUTH, EnumFacing.UP ) ); + renderer.uvRotateWest = info.getTexture( AEPartLocation.WEST ).setFlip( getOrientation( EnumFacing.WEST, EnumFacing.SOUTH, EnumFacing.UP ) ); - renderer.uvRotateNorth = info.getTexture( ForgeDirection.NORTH ).setFlip( getOrientation( ForgeDirection.NORTH, ForgeDirection.SOUTH, ForgeDirection.UP ) ); - renderer.uvRotateSouth = info.getTexture( ForgeDirection.SOUTH ).setFlip( getOrientation( ForgeDirection.SOUTH, ForgeDirection.SOUTH, ForgeDirection.UP ) ); + renderer.uvRotateNorth = info.getTexture( AEPartLocation.NORTH ).setFlip( getOrientation( EnumFacing.NORTH, EnumFacing.SOUTH, EnumFacing.UP ) ); + renderer.uvRotateSouth = info.getTexture( AEPartLocation.SOUTH ).setFlip( getOrientation( EnumFacing.SOUTH, EnumFacing.SOUTH, EnumFacing.UP ) ); } - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), block, item, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), block, item, 0xffffff, renderer ); if( block.hasSubtypes() ) { @@ -312,11 +314,11 @@ public class BaseBlockRender renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; } - public static int getOrientation( ForgeDirection in, ForgeDirection forward, ForgeDirection up ) + public static int getOrientation( EnumFacing in, EnumFacing forward, EnumFacing up ) { - if( in == null || in == ForgeDirection.UNKNOWN // 1 - || forward == null || forward == ForgeDirection.UNKNOWN // 2 - || up == null || up == ForgeDirection.UNKNOWN ) + if( in == null // 1 + || forward == null // 2 + || up == null ) { return 0; } @@ -328,7 +330,7 @@ public class BaseBlockRender return ORIENTATION_MAP[a][b][c]; } - public void renderInvBlock( EnumSet sides, B block, ItemStack item, Tessellator tess, int color, RenderBlocks renderer ) + public void renderInvBlock( EnumSet sides, B block, ItemStack item, int color, IRenderHelper tess ) { int meta = 0; if( block != null && block.hasSubtypes() && item != null ) @@ -336,64 +338,55 @@ public class BaseBlockRender meta = item.getItemDamage(); } - if( sides.contains( ForgeDirection.DOWN ) ) + IAESprite[] icons = tess.getIcon( item == null ? block.getDefaultState() : block.getStateFromMeta( item.getMetadata() ) ); + BlockPos zero = new BlockPos(0,0,0); + + if( sides.contains( AEPartLocation.DOWN ) ) { - tess.startDrawingQuads(); tess.setNormal( 0.0F, -1.0F, 0.0F ); tess.setColorOpaque_I( color ); - renderer.renderFaceYNeg( block, 0.0D, 0.0D, 0.0D, this.firstNotNull( renderer.overrideBlockTexture, block.getRendererInstance().getTexture( ForgeDirection.DOWN ), block.getIcon( ForgeDirection.DOWN.ordinal(), meta ) ) ); - tess.draw(); + tess.renderFaceYNeg( block, zero, this.firstNotNull( tess.overrideBlockTexture, block.getRendererInstance().getTexture( AEPartLocation.DOWN ), icons[ AEPartLocation.DOWN.ordinal() ] ) ); } - if( sides.contains( ForgeDirection.UP ) ) + if( sides.contains( AEPartLocation.UP ) ) { - tess.startDrawingQuads(); tess.setNormal( 0.0F, 1.0F, 0.0F ); tess.setColorOpaque_I( color ); - renderer.renderFaceYPos( block, 0.0D, 0.0D, 0.0D, this.firstNotNull( renderer.overrideBlockTexture, block.getRendererInstance().getTexture( ForgeDirection.UP ), block.getIcon( ForgeDirection.UP.ordinal(), meta ) ) ); - tess.draw(); + tess.renderFaceYPos( block, zero, this.firstNotNull( tess.overrideBlockTexture, block.getRendererInstance().getTexture( AEPartLocation.UP ), icons[ AEPartLocation.UP.ordinal() ] ) ); } - if( sides.contains( ForgeDirection.NORTH ) ) + if( sides.contains( AEPartLocation.NORTH ) ) { - tess.startDrawingQuads(); tess.setNormal( 0.0F, 0.0F, -1.0F ); tess.setColorOpaque_I( color ); - renderer.renderFaceZNeg( block, 0.0D, 0.0D, 0.0D, this.firstNotNull( renderer.overrideBlockTexture, block.getRendererInstance().getTexture( ForgeDirection.NORTH ), block.getIcon( ForgeDirection.NORTH.ordinal(), meta ) ) ); - tess.draw(); + tess.renderFaceZNeg( block, zero, this.firstNotNull( tess.overrideBlockTexture, block.getRendererInstance().getTexture( AEPartLocation.NORTH ), icons[ AEPartLocation.NORTH.ordinal() ] ) ); } - if( sides.contains( ForgeDirection.SOUTH ) ) + if( sides.contains( AEPartLocation.SOUTH ) ) { - tess.startDrawingQuads(); tess.setNormal( 0.0F, 0.0F, 1.0F ); tess.setColorOpaque_I( color ); - renderer.renderFaceZPos( block, 0.0D, 0.0D, 0.0D, this.firstNotNull( renderer.overrideBlockTexture, block.getRendererInstance().getTexture( ForgeDirection.SOUTH ), block.getIcon( ForgeDirection.SOUTH.ordinal(), meta ) ) ); - tess.draw(); + tess.renderFaceZPos( block, zero, this.firstNotNull( tess.overrideBlockTexture, block.getRendererInstance().getTexture( AEPartLocation.SOUTH ), icons[ AEPartLocation.SOUTH.ordinal() ] ) ); } - if( sides.contains( ForgeDirection.WEST ) ) + if( sides.contains( AEPartLocation.WEST ) ) { - tess.startDrawingQuads(); tess.setNormal( -1.0F, 0.0F, 0.0F ); tess.setColorOpaque_I( color ); - renderer.renderFaceXNeg( block, 0.0D, 0.0D, 0.0D, this.firstNotNull( renderer.overrideBlockTexture, block.getRendererInstance().getTexture( ForgeDirection.WEST ), block.getIcon( ForgeDirection.WEST.ordinal(), meta ) ) ); - tess.draw(); + tess.renderFaceXNeg( block, zero, this.firstNotNull( tess.overrideBlockTexture, block.getRendererInstance().getTexture( AEPartLocation.WEST ), icons[ AEPartLocation.WEST.ordinal() ] ) ); } - if( sides.contains( ForgeDirection.EAST ) ) + if( sides.contains( AEPartLocation.EAST ) ) { - tess.startDrawingQuads(); tess.setNormal( 1.0F, 0.0F, 0.0F ); tess.setColorOpaque_I( color ); - renderer.renderFaceXPos( block, 0.0D, 0.0D, 0.0D, this.firstNotNull( renderer.overrideBlockTexture, block.getRendererInstance().getTexture( ForgeDirection.EAST ), block.getIcon( ForgeDirection.EAST.ordinal(), meta ) ) ); - tess.draw(); + tess.renderFaceXPos( block, zero, this.firstNotNull( tess.overrideBlockTexture, block.getRendererInstance().getTexture( AEPartLocation.EAST ), icons[ AEPartLocation.EAST.ordinal() ]) ); } } - public IIcon firstNotNull( IIcon... s ) + public IAESprite firstNotNull( IAESprite... s ) { - for( IIcon o : s ) + for( IAESprite o : s ) { if( o != null ) { @@ -403,62 +396,62 @@ public class BaseBlockRender return ExtraBlockTextures.getMissing(); } - public boolean renderInWorld( B block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( B block, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { - this.preRenderInWorld( block, world, x, y, z, renderer ); + this.preRenderInWorld( block, world, pos, renderer ); - boolean o = renderer.renderStandardBlock( block, x, y, z ); + boolean o = renderer.renderStandardBlock( block, pos ); this.postRenderInWorld( renderer ); return o; } - public void preRenderInWorld( B block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public void preRenderInWorld( B block, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { - ForgeDirection forward = ForgeDirection.SOUTH; - ForgeDirection up = ForgeDirection.UP; + EnumFacing forward = EnumFacing.SOUTH; + EnumFacing up = EnumFacing.UP; BlockRenderInfo info = block.getRendererInstance(); - IOrientable te = this.getOrientable( block, world, x, y, z ); + IOrientable te = this.getOrientable( block, world, pos ); if( te != null ) { - forward = te.getForward(); - up = te.getUp(); + forward = te.getForward() ; + up = te.getUp() ; - renderer.uvRotateBottom = info.getTexture( ForgeDirection.DOWN ).setFlip( getOrientation( ForgeDirection.DOWN, forward, up ) ); - renderer.uvRotateTop = info.getTexture( ForgeDirection.UP ).setFlip( getOrientation( ForgeDirection.UP, forward, up ) ); + renderer.uvRotateBottom = info.getTexture( AEPartLocation.DOWN ).setFlip( getOrientation( EnumFacing.DOWN, forward, up ) ); + renderer.uvRotateTop = info.getTexture( AEPartLocation.UP ).setFlip( getOrientation( EnumFacing.UP, forward, up ) ); - renderer.uvRotateEast = info.getTexture( ForgeDirection.EAST ).setFlip( getOrientation( ForgeDirection.EAST, forward, up ) ); - renderer.uvRotateWest = info.getTexture( ForgeDirection.WEST ).setFlip( getOrientation( ForgeDirection.WEST, forward, up ) ); + renderer.uvRotateEast = info.getTexture( AEPartLocation.EAST ).setFlip( getOrientation( EnumFacing.EAST, forward, up ) ); + renderer.uvRotateWest = info.getTexture( AEPartLocation.WEST ).setFlip( getOrientation( EnumFacing.WEST, forward, up ) ); - renderer.uvRotateNorth = info.getTexture( ForgeDirection.NORTH ).setFlip( getOrientation( ForgeDirection.NORTH, forward, up ) ); - renderer.uvRotateSouth = info.getTexture( ForgeDirection.SOUTH ).setFlip( getOrientation( ForgeDirection.SOUTH, forward, up ) ); + renderer.uvRotateNorth = info.getTexture( AEPartLocation.NORTH ).setFlip( getOrientation( EnumFacing.NORTH, forward, up ) ); + renderer.uvRotateSouth = info.getTexture( AEPartLocation.SOUTH ).setFlip( getOrientation( EnumFacing.SOUTH, forward, up ) ); } } - public void postRenderInWorld( RenderBlocks renderer ) + public void postRenderInWorld( IRenderHelper renderer ) { renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; } @Nullable - public IOrientable getOrientable( B block, IBlockAccess w, int x, int y, int z ) + public IOrientable getOrientable( B block, IBlockAccess w, BlockPos pos ) { - return block.getOrientable( w, x, y, z ); + return block.getOrientable( w, pos ); } - protected void setInvRenderBounds( RenderBlocks renderer, int i, int j, int k, int l, int m, int n ) + protected void setInvRenderBounds( IRenderHelper renderer, int i, int j, int k, int l, int m, int n ) { renderer.setRenderBounds( i / 16.0, j / 16.0, k / 16.0, l / 16.0, m / 16.0, n / 16.0 ); } - protected void renderBlockBounds( RenderBlocks renderer, + protected void renderBlockBounds( IRenderHelper renderer, double minX, double minY, double minZ, double maxX, double maxY, double maxZ, - ForgeDirection x, ForgeDirection y, ForgeDirection z ) + EnumFacing x, EnumFacing y, EnumFacing z ) { minX /= 16.0; minY /= 16.0; @@ -467,27 +460,27 @@ public class BaseBlockRender maxY /= 16.0; maxZ /= 16.0; - double aX = minX * x.offsetX + minY * y.offsetX + minZ * z.offsetX; - double aY = minX * x.offsetY + minY * y.offsetY + minZ * z.offsetY; - double aZ = minX * x.offsetZ + minY * y.offsetZ + minZ * z.offsetZ; + double aX = minX * x.getFrontOffsetX() + minY * y.getFrontOffsetX() + minZ * z.getFrontOffsetX(); + double aY = minX * x.getFrontOffsetY() + minY * y.getFrontOffsetY() + minZ * z.getFrontOffsetY(); + double aZ = minX * x.getFrontOffsetZ() + minY * y.getFrontOffsetZ() + minZ * z.getFrontOffsetZ(); - double bX = maxX * x.offsetX + maxY * y.offsetX + maxZ * z.offsetX; - double bY = maxX * x.offsetY + maxY * y.offsetY + maxZ * z.offsetY; - double bZ = maxX * x.offsetZ + maxY * y.offsetZ + maxZ * z.offsetZ; + double bX = maxX * x.getFrontOffsetX() + maxY * y.getFrontOffsetX() + maxZ * z.getFrontOffsetX(); + double bY = maxX * x.getFrontOffsetY() + maxY * y.getFrontOffsetY() + maxZ * z.getFrontOffsetY(); + double bZ = maxX * x.getFrontOffsetZ() + maxY * y.getFrontOffsetZ() + maxZ * z.getFrontOffsetZ(); - if( x.offsetX + y.offsetX + z.offsetX < 0 ) + if( x.getFrontOffsetX() + y.getFrontOffsetX() + z.getFrontOffsetX() < 0 ) { aX += 1; bX += 1; } - if( x.offsetY + y.offsetY + z.offsetY < 0 ) + if( x.getFrontOffsetY() + y.getFrontOffsetY() + z.getFrontOffsetY() < 0 ) { aY += 1; bY += 1; } - if( x.offsetZ + y.offsetZ + z.offsetZ < 0 ) + if( x.getFrontOffsetZ() + y.getFrontOffsetZ() + z.getFrontOffsetZ() < 0 ) { aZ += 1; bZ += 1; @@ -502,10 +495,8 @@ public class BaseBlockRender } @SideOnly( Side.CLIENT ) - protected void renderCutoutFace( B block, IIcon ico, int x, int y, int z, RenderBlocks renderer, ForgeDirection orientation, float edgeThickness ) + protected void renderCutoutFace( B block, IAESprite ico, BlockPos pos, IRenderHelper tess, EnumFacing orientation, float edgeThickness ) { - Tessellator tess = Tessellator.instance; - double offsetX = 0.0; double offsetY = 0.0; double offsetZ = 0.0; @@ -565,29 +556,29 @@ public class BaseBlockRender break; } - offsetX += x; - offsetY += y; - offsetZ += z; + offsetX += pos.getX(); + offsetY += pos.getY(); + offsetZ += pos.getZ(); - this.renderFace( tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, + this.renderFace(orientation, tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, // u -> u 0, 1.0, // v -> v 0, edgeThickness, ico, flip ); - this.renderFace( tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, + this.renderFace( orientation,tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, // u -> u 0.0, edgeThickness, // v -> v edgeThickness, 1.0 - edgeThickness, ico, flip ); - this.renderFace( tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, + this.renderFace( orientation,tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, // u -> u 1.0 - edgeThickness, 1.0, // v -> v edgeThickness, 1.0 - edgeThickness, ico, flip ); - this.renderFace( tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, + this.renderFace( orientation,tess, offsetX, offsetY, offsetZ, layerAX, layerAY, layerAZ, layerBX, layerBY, layerBZ, // u -> u 0, 1.0, // v -> v @@ -595,73 +586,73 @@ public class BaseBlockRender } @SideOnly( Side.CLIENT ) - private void renderFace( Tessellator tess, double offsetX, double offsetY, double offsetZ, double ax, double ay, double az, double bx, double by, double bz, double ua, double ub, double va, double vb, IIcon ico, boolean flip ) + private void renderFace( EnumFacing face, IRenderHelper tess, double offsetX, double offsetY, double offsetZ, double ax, double ay, double az, double bx, double by, double bz, double ua, double ub, double va, double vb, IAESprite ico, boolean flip ) { if( flip ) { - tess.addVertexWithUV( offsetX + ax * ua + bx * va, offsetY + ay * ua + by * va, offsetZ + az * ua + bz * va, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); - tess.addVertexWithUV( offsetX + ax * ua + bx * vb, offsetY + ay * ua + by * vb, offsetZ + az * ua + bz * vb, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); - tess.addVertexWithUV( offsetX + ax * ub + bx * vb, offsetY + ay * ub + by * vb, offsetZ + az * ub + bz * vb, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); - tess.addVertexWithUV( offsetX + ax * ub + bx * va, offsetY + ay * ub + by * va, offsetZ + az * ub + bz * va, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); + tess.addVertexWithUV( face,offsetX + ax * ua + bx * va, offsetY + ay * ua + by * va, offsetZ + az * ua + bz * va, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); + tess.addVertexWithUV( face,offsetX + ax * ua + bx * vb, offsetY + ay * ua + by * vb, offsetZ + az * ua + bz * vb, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); + tess.addVertexWithUV( face,offsetX + ax * ub + bx * vb, offsetY + ay * ub + by * vb, offsetZ + az * ub + bz * vb, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); + tess.addVertexWithUV( face,offsetX + ax * ub + bx * va, offsetY + ay * ub + by * va, offsetZ + az * ub + bz * va, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); } else { - tess.addVertexWithUV( offsetX + ax * ua + bx * va, offsetY + ay * ua + by * va, offsetZ + az * ua + bz * va, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); - tess.addVertexWithUV( offsetX + ax * ub + bx * va, offsetY + ay * ub + by * va, offsetZ + az * ub + bz * va, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); - tess.addVertexWithUV( offsetX + ax * ub + bx * vb, offsetY + ay * ub + by * vb, offsetZ + az * ub + bz * vb, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); - tess.addVertexWithUV( offsetX + ax * ua + bx * vb, offsetY + ay * ua + by * vb, offsetZ + az * ua + bz * vb, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); + tess.addVertexWithUV( face, offsetX + ax * ua + bx * va, offsetY + ay * ua + by * va, offsetZ + az * ua + bz * va, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); + tess.addVertexWithUV( face, offsetX + ax * ub + bx * va, offsetY + ay * ub + by * va, offsetZ + az * ub + bz * va, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( va * 16.0 ) ); + tess.addVertexWithUV( face, offsetX + ax * ub + bx * vb, offsetY + ay * ub + by * vb, offsetZ + az * ub + bz * vb, ico.getInterpolatedU( ub * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); + tess.addVertexWithUV( face, offsetX + ax * ua + bx * vb, offsetY + ay * ua + by * vb, offsetZ + az * ua + bz * vb, ico.getInterpolatedU( ua * 16.0 ), ico.getInterpolatedV( vb * 16.0 ) ); } } @SideOnly( Side.CLIENT ) - protected void renderFace( int x, int y, int z, B block, IIcon ico, RenderBlocks renderer, ForgeDirection orientation ) + protected void renderFace( BlockPos pos, B block, IAESprite ico, IRenderHelper renderer, EnumFacing orientation ) { switch( orientation ) { case NORTH: - renderer.renderFaceZNeg( block, x, y, z, ico ); + renderer.renderFaceZNeg( block, pos, ico ); break; case SOUTH: - renderer.renderFaceZPos( block, x, y, z, ico ); + renderer.renderFaceZPos( block, pos, ico ); break; case EAST: - renderer.renderFaceXPos( block, x, y, z, ico ); + renderer.renderFaceXPos( block, pos, ico ); break; case WEST: - renderer.renderFaceXNeg( block, x, y, z, ico ); + renderer.renderFaceXNeg( block, pos, ico ); break; case UP: - renderer.renderFaceYPos( block, x, y, z, ico ); + renderer.renderFaceYPos( block, pos, ico ); break; case DOWN: - renderer.renderFaceYNeg( block, x, y, z, ico ); + renderer.renderFaceYNeg( block, pos, ico ); break; default: break; } } - public void selectFace( RenderBlocks renderer, ForgeDirection west, ForgeDirection up, ForgeDirection forward, int u1, int u2, int v1, int v2 ) + public void selectFace( IRenderHelper renderer, EnumFacing west, EnumFacing up, EnumFacing forward, int u1, int u2, int v1, int v2 ) { v1 = 16 - v1; v2 = 16 - v2; - double minX = ( forward.offsetX > 0 ? 1 : 0 ) + this.mapFaceUV( west.offsetX, u1 ) + this.mapFaceUV( up.offsetX, v1 ); - double minY = ( forward.offsetY > 0 ? 1 : 0 ) + this.mapFaceUV( west.offsetY, u1 ) + this.mapFaceUV( up.offsetY, v1 ); - double minZ = ( forward.offsetZ > 0 ? 1 : 0 ) + this.mapFaceUV( west.offsetZ, u1 ) + this.mapFaceUV( up.offsetZ, v1 ); + double minX = ( forward.getFrontOffsetX() > 0 ? 1 : 0 ) + this.mapFaceUV( west.getFrontOffsetX(), u1 ) + this.mapFaceUV( up.getFrontOffsetX(), v1 ); + double minY = ( forward.getFrontOffsetY() > 0 ? 1 : 0 ) + this.mapFaceUV( west.getFrontOffsetY(), u1 ) + this.mapFaceUV( up.getFrontOffsetY(), v1 ); + double minZ = ( forward.getFrontOffsetZ() > 0 ? 1 : 0 ) + this.mapFaceUV( west.getFrontOffsetZ(), u1 ) + this.mapFaceUV( up.getFrontOffsetZ(), v1 ); - double maxX = ( forward.offsetX > 0 ? 1 : 0 ) + this.mapFaceUV( west.offsetX, u2 ) + this.mapFaceUV( up.offsetX, v2 ); - double maxY = ( forward.offsetY > 0 ? 1 : 0 ) + this.mapFaceUV( west.offsetY, u2 ) + this.mapFaceUV( up.offsetY, v2 ); - double maxZ = ( forward.offsetZ > 0 ? 1 : 0 ) + this.mapFaceUV( west.offsetZ, u2 ) + this.mapFaceUV( up.offsetZ, v2 ); + double maxX = ( forward.getFrontOffsetX() > 0 ? 1 : 0 ) + this.mapFaceUV( west.getFrontOffsetX(), u2 ) + this.mapFaceUV( up.getFrontOffsetX(), v2 ); + double maxY = ( forward.getFrontOffsetY() > 0 ? 1 : 0 ) + this.mapFaceUV( west.getFrontOffsetY(), u2 ) + this.mapFaceUV( up.getFrontOffsetY(), v2 ); + double maxZ = ( forward.getFrontOffsetZ() > 0 ? 1 : 0 ) + this.mapFaceUV( west.getFrontOffsetZ(), u2 ) + this.mapFaceUV( up.getFrontOffsetZ(), v2 ); - renderer.renderMinX = Math.max( 0.0, Math.min( minX, maxX ) - ( forward.offsetX != 0 ? 0 : 0.001 ) ); - renderer.renderMaxX = Math.min( 1.0, Math.max( minX, maxX ) + ( forward.offsetX != 0 ? 0 : 0.001 ) ); + renderer.renderMinX = Math.max( 0.0, Math.min( minX, maxX ) - ( forward.getFrontOffsetX() != 0 ? 0 : 0.001 ) ); + renderer.renderMaxX = Math.min( 1.0, Math.max( minX, maxX ) + ( forward.getFrontOffsetX() != 0 ? 0 : 0.001 ) ); - renderer.renderMinY = Math.max( 0.0, Math.min( minY, maxY ) - ( forward.offsetY != 0 ? 0 : 0.001 ) ); - renderer.renderMaxY = Math.min( 1.0, Math.max( minY, maxY ) + ( forward.offsetY != 0 ? 0 : 0.001 ) ); + renderer.renderMinY = Math.max( 0.0, Math.min( minY, maxY ) - ( forward.getFrontOffsetY() != 0 ? 0 : 0.001 ) ); + renderer.renderMaxY = Math.min( 1.0, Math.max( minY, maxY ) + ( forward.getFrontOffsetY() != 0 ? 0 : 0.001 ) ); - renderer.renderMinZ = Math.max( 0.0, Math.min( minZ, maxZ ) - ( forward.offsetZ != 0 ? 0 : 0.001 ) ); - renderer.renderMaxZ = Math.min( 1.0, Math.max( minZ, maxZ ) + ( forward.offsetZ != 0 ? 0 : 0.001 ) ); + renderer.renderMinZ = Math.max( 0.0, Math.min( minZ, maxZ ) - ( forward.getFrontOffsetZ() != 0 ? 0 : 0.001 ) ); + renderer.renderMaxZ = Math.min( 1.0, Math.max( minZ, maxZ ) + ( forward.getFrontOffsetZ() != 0 ? 0 : 0.001 ) ); } private double mapFaceUV( int offset, int uv ) @@ -679,14 +670,14 @@ public class BaseBlockRender return ( 16.0 - uv ) / 16.0; } - public void renderTile( B block, T tile, Tessellator tess, double x, double y, double z, float f, RenderBlocks renderer ) + public void renderTile( B block, T tile, WorldRenderer tess, double x, double y, double z, float f, IRenderHelper renderer ) { - ForgeDirection forward = ForgeDirection.SOUTH; - ForgeDirection up = ForgeDirection.UP; + AEPartLocation forward = AEPartLocation.SOUTH; + AEPartLocation up = AEPartLocation.UP; renderer.uvRotateBottom = renderer.uvRotateTop = renderer.uvRotateEast = renderer.uvRotateWest = renderer.uvRotateNorth = renderer.uvRotateSouth = 0; - this.applyTESRRotation( x, y, z, forward, up ); + this.applyTESRRotation( x, y, z, forward.getFacing(), up.getFacing() ); Minecraft.getMinecraft().getTextureManager().bindTexture( TextureMap.locationBlocksTexture ); RenderHelper.disableStandardItemLighting(); @@ -702,49 +693,38 @@ public class BaseBlockRender GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f ); - tess.setTranslation( -tile.xCoord, -tile.yCoord, -tile.zCoord ); - tess.startDrawingQuads(); + BlockPos pos = tile.getPos(); + renderer.setTranslation( -pos.getX(), -pos.getY(), -pos.getZ() ); // note that this is a terrible approach... renderer.setRenderBoundsFromBlock( block ); - renderer.renderStandardBlock( block, tile.xCoord, tile.yCoord, tile.zCoord ); + renderer.renderStandardBlock( block, pos ); - tess.draw(); - tess.setTranslation( 0, 0, 0 ); + renderer.setTranslation( 0, 0, 0 ); RenderHelper.enableStandardItemLighting(); renderer.uvRotateBottom = renderer.uvRotateTop = renderer.uvRotateEast = renderer.uvRotateWest = renderer.uvRotateNorth = renderer.uvRotateSouth = 0; } - protected void applyTESRRotation( double x, double y, double z, ForgeDirection forward, ForgeDirection up ) + protected void applyTESRRotation( double x, double y, double z, EnumFacing forward, EnumFacing up ) { if( forward != null && up != null ) { - if( forward == ForgeDirection.UNKNOWN ) - { - forward = ForgeDirection.SOUTH; - } + EnumFacing west = Platform.crossProduct( forward, up ); - if( up == ForgeDirection.UNKNOWN ) - { - up = ForgeDirection.UP; - } - - ForgeDirection west = Platform.crossProduct( forward, up ); - - this.rotMat.put( 0, west.offsetX ); - this.rotMat.put( 1, west.offsetY ); - this.rotMat.put( 2, west.offsetZ ); + this.rotMat.put( 0, west.getFrontOffsetX() ); + this.rotMat.put( 1, west.getFrontOffsetY() ); + this.rotMat.put( 2, west.getFrontOffsetZ() ); this.rotMat.put( 3, 0 ); - this.rotMat.put( 4, up.offsetX ); - this.rotMat.put( 5, up.offsetY ); - this.rotMat.put( 6, up.offsetZ ); + this.rotMat.put( 4, up.getFrontOffsetX() ); + this.rotMat.put( 5, up.getFrontOffsetY() ); + this.rotMat.put( 6, up.getFrontOffsetZ() ); this.rotMat.put( 7, 0 ); - this.rotMat.put( 8, forward.offsetX ); - this.rotMat.put( 9, forward.offsetY ); - this.rotMat.put( 10, forward.offsetZ ); + this.rotMat.put( 8, forward.getFrontOffsetX() ); + this.rotMat.put( 9, forward.getFrontOffsetY() ); + this.rotMat.put( 10, forward.getFrontOffsetZ() ); this.rotMat.put( 11, 0 ); this.rotMat.put( 12, 0 ); @@ -765,22 +745,27 @@ public class BaseBlockRender { if( itemstack != null ) { - EntityItem entityitem = new EntityItem( par1EntityItemFrame.getWorldObj(), 0.0D, 0.0D, 0.0D, itemstack ); + EntityItem entityitem = new EntityItem( par1EntityItemFrame.getWorld(), 0.0D, 0.0D, 0.0D, itemstack ); entityitem.getEntityItem().stackSize = 1; // set all this stuff and then do shit? meh? entityitem.hoverStart = 0; - entityitem.age = 0; + entityitem.setNoDespawn(); entityitem.rotationYaw = 0; GL11.glPushMatrix(); GL11.glTranslatef( 0, -0.14F, 0 ); - RenderItem.renderInFrame = true; - RenderManager.instance.renderEntityWithPosYaw( entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F ); - RenderItem.renderInFrame = false; + //RenderItem.renderInFrame = true; + Minecraft.getMinecraft().getRenderManager().renderEntityWithPosYaw( entityitem, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F ); + //RenderItem.renderInFrame = false; GL11.glPopMatrix(); } } + + public ModelResourceLocation getResourcePath() + { + return modelPath; + } } diff --git a/src/main/java/appeng/client/render/BlockRenderInfo.java b/src/main/java/appeng/client/render/BlockRenderInfo.java index 4c75509d..8d71b1bf 100644 --- a/src/main/java/appeng/client/render/BlockRenderInfo.java +++ b/src/main/java/appeng/client/render/BlockRenderInfo.java @@ -19,10 +19,9 @@ package appeng.client.render; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.client.texture.FlippableIcon; +import appeng.client.texture.IAESprite; import appeng.client.texture.TmpFlippableIcon; @@ -59,7 +58,7 @@ public class BlockRenderInfo this.westIcon = west; } - public void setTemporaryRenderIcon( IIcon icon ) + public void setTemporaryRenderIcon( IAESprite icon ) { if( icon == null ) { @@ -77,18 +76,18 @@ public class BlockRenderInfo } } - public void setTemporaryRenderIcons( IIcon nTopIcon, IIcon nBottomIcon, IIcon nSouthIcon, IIcon nNorthIcon, IIcon nEastIcon, IIcon nWestIcon ) + public void setTemporaryRenderIcons( IAESprite nTopIcon, IAESprite nBottomIcon, IAESprite nSouthIcon, IAESprite nNorthIcon, IAESprite nEastIcon, IAESprite nWestIcon ) { - this.tmpTopIcon.setOriginal( nTopIcon == null ? this.getTexture( ForgeDirection.UP ) : nTopIcon ); - this.tmpBottomIcon.setOriginal( nBottomIcon == null ? this.getTexture( ForgeDirection.DOWN ) : nBottomIcon ); - this.tmpSouthIcon.setOriginal( nSouthIcon == null ? this.getTexture( ForgeDirection.SOUTH ) : nSouthIcon ); - this.tmpNorthIcon.setOriginal( nNorthIcon == null ? this.getTexture( ForgeDirection.NORTH ) : nNorthIcon ); - this.tmpEastIcon.setOriginal( nEastIcon == null ? this.getTexture( ForgeDirection.EAST ) : nEastIcon ); - this.tmpWestIcon.setOriginal( nWestIcon == null ? this.getTexture( ForgeDirection.WEST ) : nWestIcon ); + this.tmpTopIcon.setOriginal( nTopIcon == null ? this.getTexture( AEPartLocation.UP ) : nTopIcon ); + this.tmpBottomIcon.setOriginal( nBottomIcon == null ? this.getTexture( AEPartLocation.DOWN ) : nBottomIcon ); + this.tmpSouthIcon.setOriginal( nSouthIcon == null ? this.getTexture( AEPartLocation.SOUTH ) : nSouthIcon ); + this.tmpNorthIcon.setOriginal( nNorthIcon == null ? this.getTexture( AEPartLocation.NORTH ) : nNorthIcon ); + this.tmpEastIcon.setOriginal( nEastIcon == null ? this.getTexture( AEPartLocation.EAST ) : nEastIcon ); + this.tmpWestIcon.setOriginal( nWestIcon == null ? this.getTexture( AEPartLocation.WEST ) : nWestIcon ); this.useTmp = true; } - public FlippableIcon getTexture( ForgeDirection dir ) + public FlippableIcon getTexture( AEPartLocation dir ) { if( this.useTmp ) { diff --git a/src/main/java/appeng/client/render/BusRenderHelper.java b/src/main/java/appeng/client/render/BusRenderHelper.java index 3029f328..b9d23bf2 100644 --- a/src/main/java/appeng/client/render/BusRenderHelper.java +++ b/src/main/java/appeng/client/render/BusRenderHelper.java @@ -20,32 +20,29 @@ package appeng.client.render; import java.util.EnumSet; + import javax.annotation.Nullable; -import com.google.common.base.Function; -import com.google.common.base.Optional; - import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.exceptions.MissingDefinition; -import appeng.api.parts.IBoxProvider; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartRenderHelper; -import appeng.api.parts.ISimplifiedBundle; +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseBlock; import appeng.block.networking.BlockCableBus; +import appeng.client.texture.IAESprite; import appeng.core.AEConfig; import appeng.core.features.AEFeature; import appeng.tile.AEBaseTile; +import com.google.common.base.Function; +import com.google.common.base.Optional; + @SideOnly( Side.CLIENT ) public final class BusRenderHelper implements IPartRenderHelper @@ -67,9 +64,9 @@ public final class BusRenderHelper implements IPartRenderHelper private double maxX; private double maxY; private double maxZ; - private ForgeDirection ax; - private ForgeDirection ay; - private ForgeDirection az; + private EnumFacing ax; + private EnumFacing ay; + private EnumFacing az; private int color; public BusRenderHelper() @@ -86,9 +83,9 @@ public final class BusRenderHelper implements IPartRenderHelper this.maxX = 16; this.maxY = 16; this.maxZ = 16; - this.ax = ForgeDirection.EAST; - this.az = ForgeDirection.SOUTH; - this.ay = ForgeDirection.UP; + this.ax = EnumFacing.EAST; + this.az = EnumFacing.SOUTH; + this.ay = EnumFacing.UP; this.color = HEX_WHITE; this.maybeBlock = AEApi.instance().definitions().blocks().multiPart().maybeBlock(); this.maybeBaseBlock = this.maybeBlock.transform( new BaseBlockTransformFunction() ); @@ -106,12 +103,12 @@ public final class BusRenderHelper implements IPartRenderHelper this.itemsRendered = 0; } - public double getBound( ForgeDirection side ) + public double getBound( AEPartLocation side ) { switch( side ) { default: - case UNKNOWN: + case INTERNAL: return 0.5; case DOWN: return this.minY; @@ -128,20 +125,22 @@ public final class BusRenderHelper implements IPartRenderHelper } } - public void setRenderColor( int color ) - { - for( Block block : AEApi.instance().definitions().blocks().multiPart().maybeBlock().asSet() ) + /* + public void setRenderColor( int color ) { - final BlockCableBus cableBus = (BlockCableBus) block; - cableBus.setRenderColor( color ); + for( Block block : AEApi.instance().definitions().blocks().multiPart().maybeBlock().asSet() ) + { + final BlockCableBus cableBus = (BlockCableBus) block; + cableBus.setRenderColor( color ); + } } - } - - public void setOrientation( ForgeDirection dx, ForgeDirection dy, ForgeDirection dz ) + */ + + public void setOrientation( EnumFacing dx, EnumFacing dy, EnumFacing dz ) { - this.ax = dx == null ? ForgeDirection.EAST : dx; - this.ay = dy == null ? ForgeDirection.UP : dy; - this.az = dz == null ? ForgeDirection.SOUTH : dz; + this.ax = dx == null ? EnumFacing.EAST : dx; + this.ay = dy == null ? EnumFacing.UP : dy; + this.az = dz == null ? EnumFacing.SOUTH : dz; } public double[] getBounds() @@ -207,19 +206,19 @@ public final class BusRenderHelper implements IPartRenderHelper } @Override - public ForgeDirection getWorldX() + public EnumFacing getWorldX() { return this.helper.ax; } @Override - public ForgeDirection getWorldY() + public EnumFacing getWorldY() { return this.helper.ay; } @Override - public ForgeDirection getWorldZ() + public EnumFacing getWorldZ() { return this.helper.az; } @@ -262,91 +261,6 @@ public final class BusRenderHelper implements IPartRenderHelper return false; } - @Override - public void normalRendering() - { - RenderBlocksWorkaround rbw = BusRenderer.INSTANCE.renderer; - rbw.calculations = true; - rbw.useTextures = true; - rbw.enableAO = false; - } - - @Override - public ISimplifiedBundle useSimplifiedRendering( int x, int y, int z, IBoxProvider p, ISimplifiedBundle sim ) - { - RenderBlocksWorkaround rbw = BusRenderer.INSTANCE.renderer; - - if( sim != null && this.maybeBlock.isPresent() && rbw.similarLighting( this.maybeBlock.get(), rbw.blockAccess, x, y, z, sim ) ) - { - rbw.populate( sim ); - rbw.faces = EnumSet.allOf( ForgeDirection.class ); - rbw.calculations = false; - rbw.useTextures = false; - - return sim; - } - else - { - boolean allFaces = rbw.renderAllFaces; - rbw.renderAllFaces = true; - rbw.calculations = true; - rbw.faces.clear(); - - this.bbc.started = false; - if( p == null ) - { - this.bbc.minX = this.bbc.minY = this.bbc.minZ = 0; - this.bbc.maxX = this.bbc.maxY = this.bbc.maxZ = 16; - } - else - { - p.getBoxes( this.bbc ); - - if( this.bbc.minX < 1 ) - { - this.bbc.minX = 1; - } - if( this.bbc.minY < 1 ) - { - this.bbc.minY = 1; - } - if( this.bbc.minZ < 1 ) - { - this.bbc.minZ = 1; - } - - if( this.bbc.maxX > 15 ) - { - this.bbc.maxX = 15; - } - if( this.bbc.maxY > 15 ) - { - this.bbc.maxY = 15; - } - if( this.bbc.maxZ > 15 ) - { - this.bbc.maxZ = 15; - } - } - - this.setBounds( this.bbc.minX, this.bbc.minY, this.bbc.minZ, this.bbc.maxX, this.bbc.maxY, this.bbc.maxZ ); - - this.bbr.renderBlockBounds( rbw, this.minX, this.minY, this.minZ, this.maxX, this.maxY, this.maxZ, this.ax, this.ay, this.az ); - - for( Block block : this.maybeBlock.asSet() ) - { - rbw.renderStandardBlock( block, x, y, z ); - } - - rbw.faces = EnumSet.allOf( ForgeDirection.class ); - rbw.renderAllFaces = allFaces; - rbw.calculations = false; - rbw.useTextures = false; - - return rbw.getLightingCache(); - } - } - @Override public void setBounds( float minX, float minY, float minZ, float maxX, float maxY, float maxZ ) { @@ -365,7 +279,7 @@ public final class BusRenderHelper implements IPartRenderHelper } @Override - public void setTexture( IIcon ico ) + public void setTexture( IAESprite ico ) { for( AEBaseBlock baseBlock : this.maybeBaseBlock.asSet() ) { @@ -374,9 +288,9 @@ public final class BusRenderHelper implements IPartRenderHelper } @Override - public void setTexture( IIcon down, IIcon up, IIcon north, IIcon south, IIcon west, IIcon east ) + public void setTexture( IAESprite down, IAESprite up, IAESprite north, IAESprite south, IAESprite west, IAESprite east ) { - IIcon[] list = new IIcon[6]; + IAESprite[] list = new IAESprite[6]; list[0] = down; list[1] = up; @@ -387,28 +301,28 @@ public final class BusRenderHelper implements IPartRenderHelper for( AEBaseBlock baseBlock : this.maybeBaseBlock.asSet() ) { - baseBlock.getRendererInstance().setTemporaryRenderIcons( list[this.mapRotation( ForgeDirection.UP ).ordinal()], list[this.mapRotation( ForgeDirection.DOWN ).ordinal()], list[this.mapRotation( ForgeDirection.SOUTH ).ordinal()], list[this.mapRotation( ForgeDirection.NORTH ).ordinal()], list[this.mapRotation( ForgeDirection.EAST ).ordinal()], list[this.mapRotation( ForgeDirection.WEST ).ordinal()] ); + baseBlock.getRendererInstance().setTemporaryRenderIcons( list[this.mapRotation( EnumFacing.UP ).ordinal()], list[this.mapRotation( EnumFacing.DOWN ).ordinal()], list[this.mapRotation( EnumFacing.SOUTH ).ordinal()], list[this.mapRotation( EnumFacing.NORTH ).ordinal()], list[this.mapRotation( EnumFacing.EAST ).ordinal()], list[this.mapRotation( EnumFacing.WEST ).ordinal()] ); } } - public ForgeDirection mapRotation( ForgeDirection dir ) + public EnumFacing mapRotation( EnumFacing dir ) { - ForgeDirection forward = this.az; - ForgeDirection up = this.ay; - ForgeDirection west = ForgeDirection.UNKNOWN; + EnumFacing forward = this.az; + EnumFacing up = this.ay; + EnumFacing west = null; if( forward == null || up == null ) { return dir; } - int west_x = forward.offsetY * up.offsetZ - forward.offsetZ * up.offsetY; - int west_y = forward.offsetZ * up.offsetX - forward.offsetX * up.offsetZ; - int west_z = forward.offsetX * up.offsetY - forward.offsetY * up.offsetX; + int west_x = forward.getFrontOffsetY() * up.getFrontOffsetZ() - forward.getFrontOffsetZ() * up.getFrontOffsetY(); + int west_y = forward.getFrontOffsetZ() * up.getFrontOffsetX() - forward.getFrontOffsetX() * up.getFrontOffsetZ(); + int west_z = forward.getFrontOffsetX() * up.getFrontOffsetY() - forward.getFrontOffsetY() * up.getFrontOffsetX(); - for( ForgeDirection dx : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing dx : EnumFacing.VALUES ) { - if( dx.offsetX == west_x && dx.offsetY == west_y && dx.offsetZ == west_z ) + if( dx.getFrontOffsetX() == west_x && dx.getFrontOffsetY() == west_y && dx.getFrontOffsetZ() == west_z ) { west = dx; } @@ -416,59 +330,59 @@ public final class BusRenderHelper implements IPartRenderHelper if( dir == forward ) { - return ForgeDirection.SOUTH; + return EnumFacing.SOUTH; } if( dir == forward.getOpposite() ) { - return ForgeDirection.NORTH; + return EnumFacing.NORTH; } if( dir == up ) { - return ForgeDirection.UP; + return EnumFacing.UP; } if( dir == up.getOpposite() ) { - return ForgeDirection.DOWN; + return EnumFacing.DOWN; } if( dir == west ) { - return ForgeDirection.WEST; + return EnumFacing.WEST; } if( dir == west.getOpposite() ) { - return ForgeDirection.EAST; + return EnumFacing.EAST; } - - return ForgeDirection.UNKNOWN; + + return null; } @Override - public void renderInventoryBox( RenderBlocks renderer ) + public void renderInventoryBox( IRenderHelper renderer ) { renderer.setRenderBounds( this.minX / 16.0, this.minY / 16.0, this.minZ / 16.0, this.maxX / 16.0, this.maxY / 16.0, this.maxZ / 16.0 ); for( AEBaseBlock baseBlock : this.maybeBaseBlock.asSet() ) { - this.bbr.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), baseBlock, null, Tessellator.instance, this.color, renderer ); + this.bbr.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), baseBlock, null, this.color, renderer ); } } @Override - public void renderInventoryFace( IIcon icon, ForgeDirection face, RenderBlocks renderer ) + public void renderInventoryFace( IAESprite icon, EnumFacing face, IRenderHelper renderer ) { renderer.setRenderBounds( this.minX / 16.0, this.minY / 16.0, this.minZ / 16.0, this.maxX / 16.0, this.maxY / 16.0, this.maxZ / 16.0 ); this.setTexture( icon ); for( AEBaseBlock baseBlock : this.maybeBaseBlock.asSet() ) { - this.bbr.renderInvBlock( EnumSet.of( face ), baseBlock, null, Tessellator.instance, this.color, renderer ); + this.bbr.renderInvBlock( EnumSet.of( AEPartLocation.fromFacing( face ) ), baseBlock, null, this.color, renderer ); } } @Override - public void renderBlock( int x, int y, int z, RenderBlocks renderer ) + public void renderBlock( BlockPos pos, IRenderHelper renderer ) { if( !this.renderThis() ) { @@ -480,21 +394,21 @@ public final class BusRenderHelper implements IPartRenderHelper final AEBaseBlock block = (AEBaseBlock) multiPart; BlockRenderInfo info = block.getRendererInstance(); - ForgeDirection forward = BusRenderHelper.INSTANCE.az; - ForgeDirection up = BusRenderHelper.INSTANCE.ay; + EnumFacing forward = BusRenderHelper.INSTANCE.az; + EnumFacing up = BusRenderHelper.INSTANCE.ay; - renderer.uvRotateBottom = info.getTexture( ForgeDirection.DOWN ).setFlip( BaseBlockRender.getOrientation( ForgeDirection.DOWN, forward, up ) ); - renderer.uvRotateTop = info.getTexture( ForgeDirection.UP ).setFlip( BaseBlockRender.getOrientation( ForgeDirection.UP, forward, up ) ); + renderer.uvRotateBottom = info.getTexture( AEPartLocation.DOWN ).setFlip( BaseBlockRender.getOrientation( EnumFacing.DOWN, forward, up ) ); + renderer.uvRotateTop = info.getTexture( AEPartLocation.UP ).setFlip( BaseBlockRender.getOrientation( EnumFacing.UP, forward, up ) ); - renderer.uvRotateEast = info.getTexture( ForgeDirection.EAST ).setFlip( BaseBlockRender.getOrientation( ForgeDirection.EAST, forward, up ) ); - renderer.uvRotateWest = info.getTexture( ForgeDirection.WEST ).setFlip( BaseBlockRender.getOrientation( ForgeDirection.WEST, forward, up ) ); + renderer.uvRotateEast = info.getTexture( AEPartLocation.EAST ).setFlip( BaseBlockRender.getOrientation( EnumFacing.EAST, forward, up ) ); + renderer.uvRotateWest = info.getTexture( AEPartLocation.WEST ).setFlip( BaseBlockRender.getOrientation( EnumFacing.WEST, forward, up ) ); - renderer.uvRotateNorth = info.getTexture( ForgeDirection.NORTH ).setFlip( BaseBlockRender.getOrientation( ForgeDirection.NORTH, forward, up ) ); - renderer.uvRotateSouth = info.getTexture( ForgeDirection.SOUTH ).setFlip( BaseBlockRender.getOrientation( ForgeDirection.SOUTH, forward, up ) ); + renderer.uvRotateNorth = info.getTexture( AEPartLocation.NORTH ).setFlip( BaseBlockRender.getOrientation( EnumFacing.NORTH, forward, up ) ); + renderer.uvRotateSouth = info.getTexture( AEPartLocation.SOUTH ).setFlip( BaseBlockRender.getOrientation( EnumFacing.SOUTH, forward, up ) ); this.bbr.renderBlockBounds( renderer, this.minX, this.minY, this.minZ, this.maxX, this.maxY, this.maxZ, this.ax, this.ay, this.az ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } } @@ -509,19 +423,19 @@ public final class BusRenderHelper implements IPartRenderHelper throw new MissingDefinition( "Tried to access the multi part block without it being defined." ); } - public void prepareBounds( RenderBlocks renderer ) + public void prepareBounds( IRenderHelper renderer ) { this.bbr.renderBlockBounds( renderer, this.minX, this.minY, this.minZ, this.maxX, this.maxY, this.maxZ, this.ax, this.ay, this.az ); } @Override - public void setFacesToRender( EnumSet faces ) + public void setFacesToRender( EnumSet faces ) { BusRenderer.INSTANCE.renderer.renderFaces = faces; } @Override - public void renderBlockCurrentBounds( int x, int y, int z, RenderBlocks renderer ) + public void renderBlockCurrentBounds( BlockPos pos, IRenderHelper renderer ) { if( !this.renderThis() ) { @@ -530,12 +444,12 @@ public final class BusRenderHelper implements IPartRenderHelper for( Block block : this.maybeBlock.asSet() ) { - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } } @Override - public void renderFaceCutout( int x, int y, int z, IIcon ico, ForgeDirection face, float edgeThickness, RenderBlocks renderer ) + public void renderFaceCutout( BlockPos pos, IAESprite ico, EnumFacing face, float edgeThickness, IRenderHelper renderer ) { if( !this.renderThis() ) { @@ -562,20 +476,18 @@ public final class BusRenderHelper implements IPartRenderHelper case WEST: face = this.ax.getOpposite(); break; - case UNKNOWN: - break; default: break; } for( AEBaseBlock block : this.maybeBaseBlock.asSet() ) { - this.bbr.renderCutoutFace( block, ico, x, y, z, renderer, face, edgeThickness ); + this.bbr.renderCutoutFace( block, ico, pos, renderer, face, edgeThickness ); } } @Override - public void renderFace( int x, int y, int z, IIcon ico, ForgeDirection face, RenderBlocks renderer ) + public void renderFace( BlockPos pos, IAESprite ico, EnumFacing face, IRenderHelper renderer ) { if( !this.renderThis() ) { @@ -603,32 +515,30 @@ public final class BusRenderHelper implements IPartRenderHelper case WEST: face = this.ax.getOpposite(); break; - case UNKNOWN: - break; default: break; } for( AEBaseBlock block : this.maybeBaseBlock.asSet() ) { - this.bbr.renderFace( x, y, z, block, ico, renderer, face ); + this.bbr.renderFace( pos, block, ico, renderer, face ); } } @Override - public ForgeDirection getWorldX() + public EnumFacing getWorldX() { return this.ax; } @Override - public ForgeDirection getWorldY() + public EnumFacing getWorldY() { return this.ay; } @Override - public ForgeDirection getWorldZ() + public EnumFacing getWorldZ() { return this.az; } diff --git a/src/main/java/appeng/client/render/BusRenderer.java b/src/main/java/appeng/client/render/BusRenderer.java index cf099776..12779c51 100644 --- a/src/main/java/appeng/client/render/BusRenderer.java +++ b/src/main/java/appeng/client/render/BusRenderer.java @@ -22,21 +22,20 @@ package appeng.client.render; import java.util.HashMap; import java.util.Map; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; import net.minecraftforge.client.IItemRenderer; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.api.parts.IAlphaPassItem; import appeng.api.parts.IFacadePart; import appeng.api.parts.IPart; import appeng.api.parts.IPartItem; +import appeng.api.util.AEPartLocation; import appeng.client.ClientHelper; import appeng.core.AEConfig; import appeng.core.features.AEFeature; @@ -50,7 +49,7 @@ public class BusRenderer implements IItemRenderer public static final BusRenderer INSTANCE = new BusRenderer(); private static final Map RENDER_PART = new HashMap(); - public final RenderBlocksWorkaround renderer = new RenderBlocksWorkaround(); + public IRenderHelper renderer; @Override public boolean handleRenderType( ItemStack item, ItemRenderType type ) @@ -113,24 +112,23 @@ public class BusRenderer implements IItemRenderer GL11.glScaled( 1.2, 1.2, 1. ); GL11.glColor4f( 1, 1, 1, 1 ); - Tessellator.instance.setColorOpaque_F( 1, 1, 1 ); - Tessellator.instance.setBrightness( 14 << 20 | 14 << 4 ); + renderer.setColorOpaque_F( 1, 1, 1 ); + renderer.setBrightness( 14 << 20 | 14 << 4 ); BusRenderHelper.INSTANCE.setBounds( 0, 0, 0, 1, 1, 1 ); BusRenderHelper.INSTANCE.setTexture( null ); BusRenderHelper.INSTANCE.setInvColor( 0xffffff ); this.renderer.blockAccess = ClientHelper.proxy.getWorld(); - BusRenderHelper.INSTANCE.setOrientation( ForgeDirection.EAST, ForgeDirection.UP, ForgeDirection.SOUTH ); + BusRenderHelper.INSTANCE.setOrientation( EnumFacing.EAST, EnumFacing.UP, EnumFacing.SOUTH ); this.renderer.uvRotateBottom = this.renderer.uvRotateEast = this.renderer.uvRotateNorth = this.renderer.uvRotateSouth = this.renderer.uvRotateTop = this.renderer.uvRotateWest = 0; - this.renderer.useInventoryTint = false; this.renderer.overrideBlockTexture = null; if( item.getItem() instanceof IFacadeItem ) { IFacadeItem fi = (IFacadeItem) item.getItem(); - IFacadePart fp = fi.createPartFromItemStack( item, ForgeDirection.SOUTH ); + IFacadePart fp = fi.createPartFromItemStack( item, AEPartLocation.SOUTH ); if( type == ItemRenderType.EQUIPPED_FIRST_PERSON ) { diff --git a/src/main/java/appeng/client/render/CableRenderHelper.java b/src/main/java/appeng/client/render/CableRenderHelper.java index 06a6ce20..30b7048b 100644 --- a/src/main/java/appeng/client/render/CableRenderHelper.java +++ b/src/main/java/appeng/client/render/CableRenderHelper.java @@ -20,17 +20,19 @@ package appeng.client.render; import java.util.ArrayList; -import java.util.EnumSet; import java.util.List; import net.minecraft.client.Minecraft; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; +import net.minecraftforge.client.MinecraftForgeClient; import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IFacadePart; import appeng.api.parts.IPart; +import appeng.api.util.AEAxisAlignedBB; +import appeng.api.util.AEPartLocation; import appeng.parts.BusCollisionHelper; import appeng.parts.CableBusContainer; @@ -48,19 +50,23 @@ public class CableRenderHelper public void renderStatic( CableBusContainer cableBusContainer, IFacadeContainer iFacadeContainer ) { TileEntity te = cableBusContainer.getTile(); - RenderBlocksWorkaround renderer = BusRenderer.INSTANCE.renderer; + IRenderHelper renderer = BusRenderer.INSTANCE.renderer; if( renderer.overrideBlockTexture != null ) { BusRenderHelper.INSTANCE.setPass( 0 ); } + else + { + BusRenderHelper.INSTANCE.setPass( MinecraftForgeClient.getRenderLayer() == EnumWorldBlockLayer.TRANSLUCENT ? 1 : 0 ); + } if( renderer.blockAccess == null ) { renderer.blockAccess = Minecraft.getMinecraft().theWorld; } - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = cableBusContainer.getPart( s ); if( part != null ) @@ -68,14 +74,14 @@ public class CableRenderHelper this.setSide( s ); renderer.renderAllFaces = true; - renderer.flipTexture = false; + //renderer.flipTexture = false; renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; + renderer.setOverrideBlockTexture( null ); - part.renderStatic( te.xCoord, te.yCoord, te.zCoord, BusRenderHelper.INSTANCE, renderer ); + part.renderStatic( te.getPos(), BusRenderHelper.INSTANCE, renderer ); - renderer.faces = EnumSet.allOf( ForgeDirection.class ); - renderer.calculations = true; - renderer.useTextures = true; + //renderer.faces = EnumSet.allOf( EnumFacing.class ); + //renderer.useTextures = true; } } @@ -85,7 +91,7 @@ public class CableRenderHelper * snag list of boxes... */ List boxes = new ArrayList(); - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = cableBusContainer.getPart( s ); if( part != null ) @@ -117,12 +123,12 @@ public class CableRenderHelper } } - for( ForgeDirection s : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation s : AEPartLocation.SIDE_LOCATIONS ) { IFacadePart fPart = iFacadeContainer.getFacade( s ); if( fPart != null ) { - AxisAlignedBB b = null; + AEAxisAlignedBB b = null; fPart.setThinFacades( useThinFacades ); AxisAlignedBB pb = fPart.getPrimaryBox(); for( AxisAlignedBB bb : boxes ) @@ -131,7 +137,7 @@ public class CableRenderHelper { if( b == null ) { - b = bb; + b = AEAxisAlignedBB.fromBounds( bb ); } else { @@ -147,62 +153,62 @@ public class CableRenderHelper renderer.flipTexture = false; renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; + renderer.setOverrideBlockTexture( null ); this.setSide( s ); - fPart.renderStatic( te.xCoord, te.yCoord, te.zCoord, BusRenderHelper.INSTANCE, renderer, iFacadeContainer, b, cableBusContainer.getPart( s ) == null ); + + fPart.renderStatic( te.getPos(), BusRenderHelper.INSTANCE, renderer, iFacadeContainer, b == null ? null : b.getBoundingBox(), cableBusContainer.getPart( s ) == null ); } } - renderer.isFacade = false; - renderer.enableAO = false; - renderer.setTexture( null ); - renderer.calculations = true; + //renderer.isFacade = false; + //renderer.enableAO = false; + // renderer.sett } } - private void setSide( ForgeDirection s ) + private void setSide( AEPartLocation s ) { - ForgeDirection ax; - ForgeDirection ay; - ForgeDirection az; + EnumFacing ax; + EnumFacing ay; + EnumFacing az; switch( s ) { case DOWN: - ax = ForgeDirection.EAST; - ay = ForgeDirection.NORTH; - az = ForgeDirection.DOWN; + ax = EnumFacing.EAST; + ay = EnumFacing.NORTH; + az = EnumFacing.DOWN; break; case UP: - ax = ForgeDirection.EAST; - ay = ForgeDirection.SOUTH; - az = ForgeDirection.UP; + ax = EnumFacing.EAST; + ay = EnumFacing.SOUTH; + az = EnumFacing.UP; break; case EAST: - ax = ForgeDirection.SOUTH; - ay = ForgeDirection.UP; - az = ForgeDirection.EAST; + ax = EnumFacing.SOUTH; + ay = EnumFacing.UP; + az = EnumFacing.EAST; break; case WEST: - ax = ForgeDirection.NORTH; - ay = ForgeDirection.UP; - az = ForgeDirection.WEST; + ax = EnumFacing.NORTH; + ay = EnumFacing.UP; + az = EnumFacing.WEST; break; case NORTH: - ax = ForgeDirection.WEST; - ay = ForgeDirection.UP; - az = ForgeDirection.NORTH; + ax = EnumFacing.WEST; + ay = EnumFacing.UP; + az = EnumFacing.NORTH; break; case SOUTH: - ax = ForgeDirection.EAST; - ay = ForgeDirection.UP; - az = ForgeDirection.SOUTH; + ax = EnumFacing.EAST; + ay = EnumFacing.UP; + az = EnumFacing.SOUTH; break; - case UNKNOWN: default: - ax = ForgeDirection.EAST; - ay = ForgeDirection.UP; - az = ForgeDirection.SOUTH; + ax = EnumFacing.EAST; + ay = EnumFacing.UP; + az = EnumFacing.SOUTH; break; } @@ -211,52 +217,51 @@ public class CableRenderHelper public void renderDynamic( CableBusContainer cableBusContainer, double x, double y, double z ) { - for( ForgeDirection s : ForgeDirection.values() ) + for( EnumFacing s : EnumFacing.values() ) { IPart part = cableBusContainer.getPart( s ); if( part != null ) { - ForgeDirection ax; - ForgeDirection ay; - ForgeDirection az; + EnumFacing ax; + EnumFacing ay; + EnumFacing az; switch( s ) { case DOWN: - ax = ForgeDirection.EAST; - ay = ForgeDirection.NORTH; - az = ForgeDirection.DOWN; + ax = EnumFacing.EAST; + ay = EnumFacing.NORTH; + az = EnumFacing.DOWN; break; case UP: - ax = ForgeDirection.EAST; - ay = ForgeDirection.SOUTH; - az = ForgeDirection.UP; + ax = EnumFacing.EAST; + ay = EnumFacing.SOUTH; + az = EnumFacing.UP; break; case EAST: - ax = ForgeDirection.SOUTH; - ay = ForgeDirection.UP; - az = ForgeDirection.EAST; + ax = EnumFacing.SOUTH; + ay = EnumFacing.UP; + az = EnumFacing.EAST; break; case WEST: - ax = ForgeDirection.NORTH; - ay = ForgeDirection.UP; - az = ForgeDirection.WEST; + ax = EnumFacing.NORTH; + ay = EnumFacing.UP; + az = EnumFacing.WEST; break; case NORTH: - ax = ForgeDirection.WEST; - ay = ForgeDirection.UP; - az = ForgeDirection.NORTH; + ax = EnumFacing.WEST; + ay = EnumFacing.UP; + az = EnumFacing.NORTH; break; case SOUTH: - ax = ForgeDirection.EAST; - ay = ForgeDirection.UP; - az = ForgeDirection.SOUTH; + ax = EnumFacing.EAST; + ay = EnumFacing.UP; + az = EnumFacing.SOUTH; break; - case UNKNOWN: default: - ax = ForgeDirection.EAST; - ay = ForgeDirection.UP; - az = ForgeDirection.SOUTH; + ax = EnumFacing.EAST; + ay = EnumFacing.UP; + az = EnumFacing.SOUTH; break; } diff --git a/src/main/java/appeng/client/render/IRenderHelper.java b/src/main/java/appeng/client/render/IRenderHelper.java new file mode 100644 index 00000000..8031e1c4 --- /dev/null +++ b/src/main/java/appeng/client/render/IRenderHelper.java @@ -0,0 +1,613 @@ +package appeng.client.render; + +import java.util.ArrayList; +import java.util.EnumSet; +import java.util.List; + +import javax.vecmath.Tuple3f; +import javax.vecmath.Vector3f; + +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.BlockFaceUV; +import net.minecraft.client.renderer.block.model.BlockPartFace; +import net.minecraft.client.renderer.block.model.BlockPartRotation; +import net.minecraft.client.renderer.block.model.FaceBakery; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.resources.model.IBakedModel; +import net.minecraft.client.resources.model.ModelRotation; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumFacing.Axis; +import net.minecraft.util.EnumWorldBlockLayer; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.client.MinecraftForgeClient; +import net.minecraftforge.client.model.IColoredBakedQuad; +import appeng.block.AEBaseBlock; +import appeng.client.texture.BaseIcon; +import appeng.client.texture.IAESprite; +import appeng.client.texture.MissingIcon; +import appeng.items.AEBaseItem; +import appeng.items.parts.ItemMultiPart; + +public class IRenderHelper +{ + + private static final class CachedModel implements IBakedModel + { + List[] faces = new List[6]; + List general; + + public CachedModel() + { + general = new ArrayList(); + for ( EnumFacing f : EnumFacing.VALUES ) + faces[f.ordinal()] = new ArrayList(); + } + + @Override + public boolean isGui3d() + { + return true; + } + + @Override + public boolean isBuiltInRenderer() + { + return false; + } + + @Override + public boolean isAmbientOcclusion() + { + return true; + } + + @Override + public TextureAtlasSprite getTexture() + { + return null; + } + + @Override + public ItemCameraTransforms getItemCameraTransforms() + { + return ItemCameraTransforms.DEFAULT; + } + + @Override + public List getGeneralQuads() + { + return general; + } + + @Override + public List getFaceQuads( + EnumFacing p_177551_1_ ) + { + return faces[p_177551_1_.ordinal()]; + } + } + + public int uvRotateBottom; + public int uvRotateEast; + public int uvRotateNorth; + public int uvRotateSouth; + public int uvRotateTop; + public int uvRotateWest; + public IAESprite overrideBlockTexture; + public boolean renderAllFaces; + + public double renderMinX; + public double renderMaxX; + + public double renderMinY; + public double renderMaxY; + + public double renderMinZ; + public double renderMaxZ; + + public IBlockAccess blockAccess; + + CachedModel generatedModel = new CachedModel(); + + // used to create faces... + final FaceBakery faceBakery = new FaceBakery(); + + float tx=0,ty=0,tz=0; + final float[] defUVs = new float[] { 0, 0, 1, 1 }; + + public void setRenderBoundsFromBlock( + Block block ) + { + if ( block == null ) return; + + renderMinX = block.getBlockBoundsMinX(); + renderMinY = block.getBlockBoundsMinY(); + renderMinZ = block.getBlockBoundsMinZ(); + renderMaxX = block.getBlockBoundsMaxX(); + renderMaxY = block.getBlockBoundsMaxY(); + renderMaxZ = block.getBlockBoundsMaxZ(); + } + + public void setRenderBounds( + double d, + double e, + double f, + double g, + double h, + double i ) + { + renderMinX = d; + renderMinY = e; + renderMinZ = f; + renderMaxX = g; + renderMaxY = h; + renderMaxZ = i; + } + + int color = -1; + + public void setBrightness( + int i ) + { + brightness=i; + } + + public void setColorRGBA_F( + int r, + int g, + int b, + float a ) + { + int alpha = ( int ) ( a * 0xff ); + color = alpha << 24 | + r << 16 | + b << 8 | + b; + } + + public void setColorOpaque_I( + int whiteVariant ) + { + int alpha = 0xff; + color = //alpha << 24 | + whiteVariant; + } + public void setColorOpaque( + int r, + int g, + int b ) + { + int alpha = 0xff; + color =// alpha << 24 | + r << 16 | + g << 8 | + b; + } + + public void setColorOpaque_F( + int r, + int g, + int b ) + { + int alpha = 0xff; + color = //alpha << 24 | + Math.min( 0xff, Math.max( 0, r ) ) << 16 | + Math.min( 0xff, Math.max( 0, g ) ) << 8 | + Math.min( 0xff, Math.max( 0, b ) ); + } + + public void setColorOpaque_F( + float rf, + float bf, + float gf ) + { + int r = (int)( rf * 0xff ); + int g = (int)( gf * 0xff ); + int b = (int)( bf * 0xff ); + int alpha = 0xff; + color = //alpha << 24 | + Math.min( 0xff, Math.max( 0, r ) ) << 16 | + Math.min( 0xff, Math.max( 0, g ) ) << 8 | + Math.min( 0xff, Math.max( 0, b ) ); + } + + public IAESprite getIcon( + ItemStack is ) + { + Item it = is.getItem(); + + if ( it instanceof ItemMultiPart ) + return ( (ItemMultiPart) it).getIcon( is); + + Block blk = Block.getBlockFromItem( it ); + + if ( blk != null ) + return getIcon(blk.getStateFromMeta( is.getMetadata() ))[0]; + + if ( it instanceof AEBaseItem ) + { + IAESprite ico = ( (AEBaseItem)it ).getIcon(is); + if ( ico != null ) return ico; + } + + return new MissingIcon( is ); + } + + + public IAESprite[] getIcon( + IBlockState state ) + { + IAESprite[] out = new IAESprite[6]; + + Block blk = state.getBlock(); + if ( blk instanceof AEBaseBlock ) + { + AEBaseBlock base = (AEBaseBlock)blk; + for ( EnumFacing face : EnumFacing.VALUES ) + out[face.ordinal()] = base.getIcon( face, state ); + } + else + { + TextureAtlasSprite spite = Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture( state ); + if ( spite == null ) + { + out[0] = new MissingIcon( blk ); + out[1] = new MissingIcon( blk ); + out[2] = new MissingIcon( blk ); + out[3] = new MissingIcon( blk ); + out[4] = new MissingIcon( blk ); + out[5] = new MissingIcon( blk ); + } + else + { + IAESprite mySpite = new BaseIcon( spite ); + out[0] = mySpite; + out[1] = mySpite; + out[2] = mySpite; + out[3] = mySpite; + out[4] = mySpite; + out[5] = mySpite; + } + } + + return out; + } + + public IAESprite[] getIcon( IBlockAccess world, BlockPos pos) + { + IBlockState state = world.getBlockState( pos ); + Block blk = state.getBlock(); + + if ( blk instanceof AEBaseBlock ) + { + IAESprite[] out = new IAESprite[6]; + + AEBaseBlock base = (AEBaseBlock)blk; + for ( EnumFacing face : EnumFacing.VALUES ) + out[face.ordinal()] = base.getIcon( world, pos, face ); + + return out; + } + + return getIcon( state ); + } + + int point =0; + int brightness = -1; + float[][] points = new float[4][]; + + public void addVertexWithUV( + EnumFacing face, + double x, + double y, + double z, + double u, + double v ) + { + points[point++] = new float[]{ (float)x+tx, (float)y+ty, (float)z+tz, (float)u, (float)v }; + + if ( point == 4 ) + { + brightness = -1; + int[] vertData = new int[]{ + Float.floatToRawIntBits( points[0][0] ), + Float.floatToRawIntBits( points[0][1] ), + Float.floatToRawIntBits( points[0][2] ), + brightness, + Float.floatToRawIntBits( points[0][3] ), + Float.floatToRawIntBits( points[0][4] ), + 0, + + Float.floatToRawIntBits( points[1][0] ), + Float.floatToRawIntBits( points[1][1] ), + Float.floatToRawIntBits( points[1][2] ), + brightness, + Float.floatToRawIntBits( points[1][3] ), + Float.floatToRawIntBits( points[1][4] ), + 0, + + Float.floatToRawIntBits( points[2][0] ), + Float.floatToRawIntBits( points[2][1] ), + Float.floatToRawIntBits( points[2][2] ), + brightness, + Float.floatToRawIntBits( points[2][3] ), + Float.floatToRawIntBits( points[2][4] ), + 0, + + Float.floatToRawIntBits( points[3][0] ), + Float.floatToRawIntBits( points[3][1] ), + Float.floatToRawIntBits( points[3][2] ), + brightness, + Float.floatToRawIntBits( points[3][3] ), + Float.floatToRawIntBits( points[3][4] ), + 0, + }; + + generatedModel.general.add( new IColoredBakedQuad.ColoredBakedQuad( vertData, color, face )); + + point=0; + } + } + + public boolean renderStandardBlock( + Block block, + BlockPos pos ) + { + //setRenderBoundsFromBlock( block ); + + IAESprite[] textures = getIcon( blockAccess,pos ); + setColorOpaque_I( 0xffffff ); + + renderFaceXNeg( block, pos, textures[EnumFacing.WEST.ordinal()] ); + renderFaceXPos( block, pos, textures[EnumFacing.EAST.ordinal()] ); + renderFaceYNeg( block, pos, textures[EnumFacing.DOWN.ordinal()] ); + renderFaceYPos( block, pos, textures[EnumFacing.UP.ordinal()] ); + renderFaceZNeg( block, pos, textures[EnumFacing.NORTH.ordinal()] ); + renderFaceZPos( block, pos, textures[EnumFacing.SOUTH.ordinal()] ); + + return false; + } + + public void setTranslation( + int x, + int y, + int z ) + { + tx=x; + ty=y; + tz=z; + } + + public boolean isAlphaPass() + { + return MinecraftForgeClient.getRenderLayer() == EnumWorldBlockLayer.TRANSLUCENT; + } + + final float quadsUV[] = new float[] { 0,0,1,1,0,0,1,1}; + public EnumSet renderFaces = EnumSet.allOf(EnumFacing.class); + public boolean flipTexture=false; + private List faces = new ArrayList(); + + private float[] getFaceUvs( + final EnumFacing face, + final Vector3f to_16, + final Vector3f from_16 ) + { + float from_a = 0; + float from_b = 0; + float to_a = 0; + float to_b = 0; + + switch ( face ) + { + case UP: + from_a = from_16.x / 16.0f; + from_b = from_16.z / 16.0f; + to_a = to_16.x / 16.0f; + to_b = to_16.z / 16.0f; + break; + case DOWN: + from_a = from_16.x / 16.0f; + from_b = from_16.z / 16.0f; + to_a = to_16.x / 16.0f; + to_b = to_16.z / 16.0f; + break; + case SOUTH: + from_a = from_16.x / 16.0f; + from_b = from_16.y / 16.0f; + to_a = to_16.x / 16.0f; + to_b = to_16.y / 16.0f; + break; + case NORTH: + from_a = from_16.x / 16.0f; + from_b = from_16.y / 16.0f; + to_a = to_16.x / 16.0f; + to_b = to_16.y / 16.0f; + break; + case EAST: + from_a = from_16.y / 16.0f; + from_b = from_16.z / 16.0f; + to_a = to_16.y / 16.0f; + to_b = to_16.z / 16.0f; + break; + case WEST: + from_a = from_16.y / 16.0f; + from_b = from_16.z / 16.0f; + to_a = to_16.y / 16.0f; + to_b = to_16.z / 16.0f; + break; + default: + } + + from_a = 1.0f - from_a; + from_b = 1.0f - from_b; + to_a = 1.0f - to_a; + to_b = 1.0f - to_b; + + final float[] afloat = new float[] {// :P + 16.0f * ( quadsUV[0] + quadsUV[2] * from_a + quadsUV[4] * from_b ), // 0 + 16.0f * ( quadsUV[1] + quadsUV[3] * from_a + quadsUV[5] * from_b ), // 1 + + 16.0f * ( quadsUV[0] + quadsUV[2] * to_a + quadsUV[4] * from_b ), // 2 + 16.0f * ( quadsUV[1] + quadsUV[3] * to_a + quadsUV[5] * from_b ), // 3 + + 16.0f * ( quadsUV[0] + quadsUV[2] * to_a + quadsUV[4] * to_b ), // 2 + 16.0f * ( quadsUV[1] + quadsUV[3] * to_a + quadsUV[5] * to_b ), // 3 + + 16.0f * ( quadsUV[0] + quadsUV[2] * from_a + quadsUV[4] * to_b ), // 0 + 16.0f * ( quadsUV[1] + quadsUV[3] * from_a + quadsUV[5] * to_b ), // 1 + }; + + return afloat; + } + + public void renderFaceXNeg( + Block blk, + BlockPos pos, + IAESprite lights ) + { + boolean isEdge = renderMinX < 0.0001; + Vector3f to = new Vector3f( (float)renderMinX* 16.0f, (float)renderMinY* 16.0f, (float)renderMinZ * 16.0f); + Vector3f from = new Vector3f( (float)renderMinX* 16.0f, (float)renderMaxY* 16.0f, (float)renderMaxZ * 16.0f); + + final EnumFacing myFace = EnumFacing.WEST; + addFace(myFace, isEdge,to,from,defUVs,lights ); + } + + public void renderFaceYNeg( + Block blk, + BlockPos pos, + IAESprite lights ) + { + boolean isEdge = renderMinY < 0.0001; + Vector3f to = new Vector3f( (float)renderMinX* 16.0f, (float)renderMinY* 16.0f, (float)renderMinZ* 16.0f ); + Vector3f from = new Vector3f( (float)renderMaxX* 16.0f, (float)renderMinY* 16.0f, (float)renderMaxZ* 16.0f ); + + final EnumFacing myFace = EnumFacing.DOWN; + addFace(myFace, isEdge,to,from,defUVs, lights ); + } + + public void renderFaceZNeg( + Block blk, + BlockPos pos, + IAESprite lights ) + { + boolean isEdge = renderMinZ < 0.0001; + Vector3f to = new Vector3f( (float)renderMinX* 16.0f, (float)renderMinY* 16.0f, (float)renderMinZ* 16.0f ); + Vector3f from = new Vector3f( (float)renderMaxX* 16.0f, (float)renderMaxY* 16.0f, (float)renderMinZ* 16.0f ); + + final EnumFacing myFace = EnumFacing.NORTH; + addFace(myFace, isEdge,to,from,defUVs, lights ); + } + + public void renderFaceYPos( + Block blk, + BlockPos pos, + IAESprite lights ) + { + boolean isEdge = renderMaxY > 0.9999; + Vector3f to = new Vector3f( (float)renderMinX* 16.0f, (float)renderMaxY* 16.0f, (float)renderMinZ* 16.0f ); + Vector3f from = new Vector3f( (float)renderMaxX* 16.0f, (float)renderMaxY* 16.0f, (float)renderMaxZ * 16.0f); + + final EnumFacing myFace = EnumFacing.UP; + addFace(myFace, isEdge,to,from,defUVs,lights ); + } + + public void renderFaceZPos( + Block blk, + BlockPos pos, + IAESprite lights ) + { + boolean isEdge = renderMaxZ > 0.9999; + Vector3f to = new Vector3f( (float)renderMinX* 16.0f, (float)renderMinY* 16.0f, (float)renderMaxZ* 16.0f ); + Vector3f from = new Vector3f( (float)renderMaxX* 16.0f, (float)renderMaxY* 16.0f, (float)renderMaxZ* 16.0f ); + + final EnumFacing myFace = EnumFacing.SOUTH; + addFace(myFace, isEdge,to,from,defUVs,lights ); + } + + public void renderFaceXPos( + Block blk, + BlockPos pos, + IAESprite lights ) + { + boolean isEdge = renderMaxX > 0.9999; + Vector3f to = new Vector3f( (float)renderMaxX * 16.0f, (float)renderMinY* 16.0f, (float)renderMinZ* 16.0f ); + Vector3f from = new Vector3f( (float)renderMaxX* 16.0f, (float)renderMaxY* 16.0f, (float)renderMaxZ* 16.0f ); + + final EnumFacing myFace = EnumFacing.EAST; + addFace(myFace, isEdge,to,from,defUVs, lights ); + } + + private void addFace( + EnumFacing face , boolean isEdge, + Vector3f to, + Vector3f from, + float[] defUVs2, + IAESprite texture ) + { + if ( overrideBlockTexture != null ) + texture = overrideBlockTexture; + + faces.add( new SMFace(face,isEdge,color,to,from,defUVs2,new IconUnwrapper(texture))); + } + + EnumFacing currentFace = EnumFacing.UP; + + public void setNormal( + float x, + float y, + float z ) + { + if ( x > 0.5 ) currentFace = EnumFacing.EAST; + if ( x < -0.5 ) currentFace = EnumFacing.WEST; + if ( y > 0.5 ) currentFace = EnumFacing.UP; + if ( y < -0.5 ) currentFace = EnumFacing.DOWN; + if ( z > 0.5 ) currentFace = EnumFacing.SOUTH; + if ( z < -0.5 ) currentFace = EnumFacing.NORTH; + } + + public void setOverrideBlockTexture( + IAESprite object ) + { + overrideBlockTexture = object; + } + + public void finalizeModel( boolean Flip ) + { + ModelRotation mr = ModelRotation.X0_Y0; + + if ( Flip ) + mr = ModelRotation.X0_Y180; + + for ( SMFace face : faces ) + { + final EnumFacing myFace = face.face; + final float[] uvs = getFaceUvs( myFace, face.from, face.to ); + + final BlockFaceUV uv = new BlockFaceUV( uvs, 0 ); + final BlockPartFace bpf = new BlockPartFace( myFace, face.color, "", uv ); + + BakedQuad bf = faceBakery.makeBakedQuad( face.to, face.from, bpf, face.spite, myFace, mr, null, true, true ); + bf = new IColoredBakedQuad.ColoredBakedQuad( bf.getVertexData(), face.color, bf.getFace() ); + + if ( face.isEdge ) + this.generatedModel.getFaceQuads( myFace ).add( bf ); + else + this.generatedModel.getGeneralQuads().add( bf ); + } + } + + public IBakedModel getOutput() + { + return generatedModel; + } + +} diff --git a/src/main/java/appeng/client/render/ISimpleBlockRenderingHandler.java b/src/main/java/appeng/client/render/ISimpleBlockRenderingHandler.java new file mode 100644 index 00000000..d1f1c9ca --- /dev/null +++ b/src/main/java/appeng/client/render/ISimpleBlockRenderingHandler.java @@ -0,0 +1,23 @@ +package appeng.client.render; + +import net.minecraft.block.Block; +import net.minecraft.util.BlockPos; +import net.minecraft.world.IBlockAccess; + +public interface ISimpleBlockRenderingHandler +{ + + void renderInventoryBlock( + Block block, + int metadata, + int modelID, + IRenderHelper renderer ); + + boolean renderWorldBlock( + IBlockAccess world, + BlockPos pos, + Block block, + int modelId, + IRenderHelper renderer ); + +} diff --git a/src/main/java/appeng/client/render/IconUnwrapper.java b/src/main/java/appeng/client/render/IconUnwrapper.java new file mode 100644 index 00000000..a246f03a --- /dev/null +++ b/src/main/java/appeng/client/render/IconUnwrapper.java @@ -0,0 +1,87 @@ + +package appeng.client.render; + +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import appeng.client.texture.IAESprite; + + +public class IconUnwrapper extends TextureAtlasSprite +{ + + int width; + int height; + + float max_u; + float min_u; + float min_v; + float max_v; + + protected IconUnwrapper( + IAESprite src ) + { + super( src.getIconName() ); + width = src.getIconWidth(); + height = src.getIconHeight(); + min_u = src.getMinU(); + max_u = src.getMaxU(); + min_v = src.getMinV(); + max_v = src.getMaxV(); + } + + @Override + public int getIconWidth() + { + return width; + } + + @Override + public int getIconHeight() + { + return height; + } + + @Override + public float getMaxU() + { + return max_u; + } + + @Override + public float getMinV() + { + return min_v; + } + + @Override + public float getMaxV() + { + return max_v; + } + + @Override + public String getIconName() + { + return super.getIconName(); + } + + @Override + public float getMinU() + { + return min_u; + } + + @Override + public float getInterpolatedU(double d) + { + float f = this.max_u - this.min_u; + return this.min_u + f * (float)d / 16.0F; + } + + @Override + public float getInterpolatedV(double d) + { + float f = this.max_v - this.min_v; + return this.min_v + f * ((float)d / 16.0F); + } + +} diff --git a/src/main/java/appeng/client/render/ItemRenderer.java b/src/main/java/appeng/client/render/ItemRenderer.java index 69590909..45ca2d4d 100644 --- a/src/main/java/appeng/client/render/ItemRenderer.java +++ b/src/main/java/appeng/client/render/ItemRenderer.java @@ -19,11 +19,11 @@ package appeng.client.render; -import org.lwjgl.opengl.GL11; - import net.minecraft.item.ItemStack; import net.minecraftforge.client.IItemRenderer; +import org.lwjgl.opengl.GL11; + public class ItemRenderer implements IItemRenderer { diff --git a/src/main/java/appeng/client/render/RenderBlocksWorkaround.java b/src/main/java/appeng/client/render/RenderBlocksWorkaround.java index d18635b2..c5b14fcf 100644 --- a/src/main/java/appeng/client/render/RenderBlocksWorkaround.java +++ b/src/main/java/appeng/client/render/RenderBlocksWorkaround.java @@ -19,711 +19,28 @@ package appeng.client.render; -import java.lang.reflect.Field; -import java.util.Arrays; import java.util.EnumSet; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import appeng.api.parts.ISimplifiedBundle; -import appeng.core.AELog; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly( Side.CLIENT ) -public class RenderBlocksWorkaround extends RenderBlocks +public class RenderBlocksWorkaround extends IRenderHelper { - final int[] lightHashTmp = new int[27]; - public boolean calculations = true; - public EnumSet renderFaces = EnumSet.allOf( ForgeDirection.class ); - public EnumSet faces = EnumSet.allOf( ForgeDirection.class ); - public boolean isFacade = false; - public boolean useTextures = true; - public float opacity = 1.0f; - Field fBrightness; - Field fColor; - private LightingCache lightState = new LightingCache(); - - public int getCurrentColor() + public boolean flipTexture; + public EnumSet faces; + public boolean useTextures; + public EnumSet renderFaces; + public float opacity; + + public void setTexture( + Object object ) { - try - { - if( this.fColor == null ) - { - try - { - this.fColor = Tessellator.class.getDeclaredField( "color" ); - } - catch( Throwable t ) - { - this.fColor = Tessellator.class.getDeclaredField( "field_78402_m" ); - } - this.fColor.setAccessible( true ); - } - return (Integer) this.fColor.get( Tessellator.instance ); - } - catch( Throwable t ) - { - return 0; - } - } - - public int getCurrentBrightness() - { - try - { - if( this.fBrightness == null ) - { - try - { - this.fBrightness = Tessellator.class.getDeclaredField( "brightness" ); - } - catch( Throwable t ) - { - this.fBrightness = Tessellator.class.getDeclaredField( "field_78401_l" ); - } - this.fBrightness.setAccessible( true ); - } - return (Integer) this.fBrightness.get( Tessellator.instance ); - } - catch( Throwable t ) - { - return 0; - } - } - - public void setTexture( IIcon ico ) - { - this.lightState.rXPos = this.lightState.rXNeg = this.lightState.rYPos = this.lightState.rYNeg = this.lightState.rZPos = this.lightState.rZNeg = ico; - } - - public void setTexture( IIcon rYNeg, IIcon rYPos, IIcon rZNeg, IIcon rZPos, IIcon rXNeg, IIcon rXPos ) - { - this.lightState.rXPos = rXPos; - this.lightState.rXNeg = rXNeg; - this.lightState.rYPos = rYPos; - this.lightState.rYNeg = rYNeg; - this.lightState.rZPos = rZPos; - this.lightState.rZNeg = rZNeg; - } - - public boolean renderStandardBlockNoCalculations( Block b, int x, int y, int z ) - { - Tessellator.instance.setBrightness( this.lightState.bXPos ); - this.restoreAO( this.lightState.aoXPos, this.lightState.foXPos ); - this.renderFaceXPos( b, x, y, z, this.useTextures ? this.lightState.rXPos : this.getBlockIcon( b, this.blockAccess, x, y, z, ForgeDirection.EAST.ordinal() ) ); - - Tessellator.instance.setBrightness( this.lightState.bXNeg ); - this.restoreAO( this.lightState.aoXNeg, this.lightState.foXNeg ); - this.renderFaceXNeg( b, x, y, z, this.useTextures ? this.lightState.rXNeg : this.getBlockIcon( b, this.blockAccess, x, y, z, ForgeDirection.WEST.ordinal() ) ); - - Tessellator.instance.setBrightness( this.lightState.bYPos ); - this.restoreAO( this.lightState.aoYPos, this.lightState.foYPos ); - this.renderFaceYPos( b, x, y, z, this.useTextures ? this.lightState.rYPos : this.getBlockIcon( b, this.blockAccess, x, y, z, ForgeDirection.UP.ordinal() ) ); - - Tessellator.instance.setBrightness( this.lightState.bYNeg ); - this.restoreAO( this.lightState.aoYNeg, this.lightState.foYNeg ); - this.renderFaceYNeg( b, x, y, z, this.useTextures ? this.lightState.rYNeg : this.getBlockIcon( b, this.blockAccess, x, y, z, ForgeDirection.DOWN.ordinal() ) ); - - Tessellator.instance.setBrightness( this.lightState.bZPos ); - this.restoreAO( this.lightState.aoZPos, this.lightState.foZPos ); - this.renderFaceZPos( b, x, y, z, this.useTextures ? this.lightState.rZPos : this.getBlockIcon( b, this.blockAccess, x, y, z, ForgeDirection.SOUTH.ordinal() ) ); - - Tessellator.instance.setBrightness( this.lightState.bZNeg ); - this.restoreAO( this.lightState.aoZNeg, this.lightState.foZNeg ); - this.renderFaceZNeg( b, x, y, z, this.useTextures ? this.lightState.rZNeg : this.getBlockIcon( b, this.blockAccess, x, y, z, ForgeDirection.NORTH.ordinal() ) ); - - return true; - } - - private void restoreAO( int[] z, float[] c ) - { - this.brightnessBottomLeft = z[0]; - this.brightnessBottomRight = z[1]; - this.brightnessTopLeft = z[2]; - this.brightnessTopRight = z[3]; - Tessellator.instance.setColorRGBA_I( z[4], (int) ( this.opacity * 255 ) ); - - this.colorRedTopLeft = c[0]; - this.colorGreenTopLeft = c[1]; - this.colorBlueTopLeft = c[2]; - this.colorRedBottomLeft = c[3]; - this.colorGreenBottomLeft = c[4]; - this.colorBlueBottomLeft = c[5]; - this.colorRedBottomRight = c[6]; - this.colorGreenBottomRight = c[7]; - this.colorBlueBottomRight = c[8]; - this.colorRedTopRight = c[9]; - this.colorGreenTopRight = c[10]; - this.colorBlueTopRight = c[11]; - } - - private void saveAO( int[] z, float[] c ) - { - z[0] = this.brightnessBottomLeft; - z[1] = this.brightnessBottomRight; - z[2] = this.brightnessTopLeft; - z[3] = this.brightnessTopRight; - z[4] = this.getCurrentColor(); - - c[0] = this.colorRedTopLeft; - c[1] = this.colorGreenTopLeft; - c[2] = this.colorBlueTopLeft; - c[3] = this.colorRedBottomLeft; - c[4] = this.colorGreenBottomLeft; - c[5] = this.colorBlueBottomLeft; - c[6] = this.colorRedBottomRight; - c[7] = this.colorGreenBottomRight; - c[8] = this.colorBlueBottomRight; - c[9] = this.colorRedTopRight; - c[10] = this.colorGreenTopRight; - c[11] = this.colorBlueTopRight; - } - - @Override - public boolean renderStandardBlock( Block blk, int x, int y, int z ) - { - try - { - if( this.calculations ) - { - this.lightState.lightHash = this.getLightingHash( blk, this.blockAccess, x, y, z ); - return super.renderStandardBlock( blk, x, y, z ); - } - else - { - this.enableAO = this.lightState.isAO; - boolean out = this.renderStandardBlockNoCalculations( blk, x, y, z ); - this.enableAO = false; - return out; - } - } - catch( Throwable t ) - { - AELog.error( t ); - // meh - } - return false; - } - - @Override - public void renderFaceYNeg( Block par1Block, double par2, double par4, double par6, IIcon par8Icon ) - { - if( this.faces.contains( ForgeDirection.DOWN ) ) - { - if( !this.renderFaces.contains( ForgeDirection.DOWN ) ) - { - return; - } - - if( this.isFacade ) - { - Tessellator tessellator = Tessellator.instance; - - double d3 = par8Icon.getInterpolatedU( this.renderMinX * 16.0D ); - double d4 = par8Icon.getInterpolatedU( this.renderMaxX * 16.0D ); - double d5 = par8Icon.getInterpolatedV( this.renderMinZ * 16.0D ); - double d6 = par8Icon.getInterpolatedV( this.renderMaxZ * 16.0D ); - - double d11 = par2 + this.renderMinX; - double d12 = par2 + this.renderMaxX; - double d13 = par4 + this.renderMinY; - double d14 = par6 + this.renderMinZ; - double d15 = par6 + this.renderMaxZ; - - if( this.enableAO ) - { - this.partialLightingColoring( 1.0 - this.renderMinX, this.renderMaxZ ); - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - this.partialLightingColoring( 1.0 - this.renderMinX, this.renderMinZ ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - this.partialLightingColoring( 1.0 - this.renderMaxX, this.renderMinZ ); - tessellator.addVertexWithUV( d12, d13, d14, d4, d5 ); - this.partialLightingColoring( 1.0 - this.renderMaxX, this.renderMaxZ ); - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - } - else - { - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - tessellator.addVertexWithUV( d12, d13, d14, d4, d5 ); - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - } - } - else - { - super.renderFaceYNeg( par1Block, par2, par4, par6, par8Icon ); - } - } - else - { - this.lightState.isAO = this.enableAO; - this.lightState.rYNeg = par8Icon; - this.saveAO( this.lightState.aoYNeg, this.lightState.foYNeg ); - this.lightState.bYNeg = this.getCurrentBrightness(); - } - } - - @Override - public void renderFaceYPos( Block par1Block, double par2, double par4, double par6, IIcon par8Icon ) - { - if( this.faces.contains( ForgeDirection.UP ) ) - { - if( !this.renderFaces.contains( ForgeDirection.UP ) ) - { - return; - } - - if( this.isFacade ) - { - Tessellator tessellator = Tessellator.instance; - - double d3 = par8Icon.getInterpolatedU( this.renderMinX * 16.0D ); - double d4 = par8Icon.getInterpolatedU( this.renderMaxX * 16.0D ); - double d5 = par8Icon.getInterpolatedV( this.renderMinZ * 16.0D ); - double d6 = par8Icon.getInterpolatedV( this.renderMaxZ * 16.0D ); - - double d11 = par2 + this.renderMinX; - double d12 = par2 + this.renderMaxX; - double d13 = par4 + this.renderMaxY; - double d14 = par6 + this.renderMinZ; - double d15 = par6 + this.renderMaxZ; - - if( this.enableAO ) - { - this.partialLightingColoring( this.renderMaxX, this.renderMaxZ ); - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - this.partialLightingColoring( this.renderMaxX, this.renderMinZ ); - tessellator.addVertexWithUV( d12, d13, d14, d4, d5 ); - this.partialLightingColoring( this.renderMinX, this.renderMinZ ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - this.partialLightingColoring( this.renderMinX, this.renderMaxZ ); - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - } - else - { - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - tessellator.addVertexWithUV( d12, d13, d14, d4, d5 ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - } - } - else - { - super.renderFaceYPos( par1Block, par2, par4, par6, par8Icon ); - } - } - else - { - this.lightState.isAO = this.enableAO; - this.lightState.rYPos = par8Icon; - this.saveAO( this.lightState.aoYPos, this.lightState.foYPos ); - this.lightState.bYPos = this.getCurrentBrightness(); - } - } - - @Override - public void renderFaceZNeg( Block par1Block, double par2, double par4, double par6, IIcon par8Icon ) - { - if( this.faces.contains( ForgeDirection.NORTH ) ) - { - if( !this.renderFaces.contains( ForgeDirection.NORTH ) ) - { - return; - } - - if( this.isFacade ) - { - Tessellator tessellator = Tessellator.instance; - - double d3 = par8Icon.getInterpolatedU( 16.0D - this.renderMinX * 16.0D ); - double d4 = par8Icon.getInterpolatedU( 16.0D - this.renderMaxX * 16.0D ); - double d5 = par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D ); - double d6 = par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D ); - - double d11 = par2 + this.renderMinX; - double d12 = par2 + this.renderMaxX; - double d13 = par4 + this.renderMinY; - double d14 = par4 + this.renderMaxY; - double d15 = par6 + this.renderMinZ; - - if( this.enableAO ) - { - this.partialLightingColoring( this.renderMaxY, 1.0 - this.renderMinX ); - tessellator.addVertexWithUV( d11, d14, d15, d3, d5 ); - this.partialLightingColoring( this.renderMaxY, 1.0 - this.renderMaxX ); - tessellator.addVertexWithUV( d12, d14, d15, d4, d5 ); - this.partialLightingColoring( this.renderMinY, 1.0 - this.renderMaxX ); - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - this.partialLightingColoring( this.renderMinY, 1.0 - this.renderMinX ); - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - } - else - { - tessellator.addVertexWithUV( d11, d14, d15, d3, d5 ); - tessellator.addVertexWithUV( d12, d14, d15, d4, d5 ); - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - } - } - else - { - super.renderFaceZNeg( par1Block, par2, par4, par6, par8Icon ); - } - } - else - { - this.lightState.isAO = this.enableAO; - this.lightState.rZNeg = par8Icon; - this.saveAO( this.lightState.aoZNeg, this.lightState.foZNeg ); - this.lightState.bZNeg = this.getCurrentBrightness(); - } - } - - @Override - public void renderFaceZPos( Block par1Block, double par2, double par4, double par6, IIcon par8Icon ) - { - if( this.faces.contains( ForgeDirection.SOUTH ) ) - { - if( !this.renderFaces.contains( ForgeDirection.SOUTH ) ) - { - return; - } - - if( this.isFacade ) - { - Tessellator tessellator = Tessellator.instance; - - double d3 = par8Icon.getInterpolatedU( this.renderMinX * 16.0D ); - double d4 = par8Icon.getInterpolatedU( this.renderMaxX * 16.0D ); - double d5 = par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D ); - double d6 = par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D ); - - double d11 = par2 + this.renderMinX; - double d12 = par2 + this.renderMaxX; - double d13 = par4 + this.renderMinY; - double d14 = par4 + this.renderMaxY; - double d15 = par6 + this.renderMaxZ; - - if( this.enableAO ) - { - this.partialLightingColoring( 1.0 - this.renderMinX, this.renderMaxY ); - tessellator.addVertexWithUV( d11, d14, d15, d3, d5 ); - this.partialLightingColoring( 1.0 - this.renderMinX, this.renderMinY ); - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - this.partialLightingColoring( 1.0 - this.renderMaxX, this.renderMinY ); - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - this.partialLightingColoring( 1.0 - this.renderMaxX, this.renderMaxY ); - tessellator.addVertexWithUV( d12, d14, d15, d4, d5 ); - } - else - { - tessellator.addVertexWithUV( d11, d14, d15, d3, d5 ); - tessellator.addVertexWithUV( d11, d13, d15, d3, d6 ); - tessellator.addVertexWithUV( d12, d13, d15, d4, d6 ); - tessellator.addVertexWithUV( d12, d14, d15, d4, d5 ); - } - } - else - { - super.renderFaceZPos( par1Block, par2, par4, par6, par8Icon ); - } - } - else - { - this.lightState.isAO = this.enableAO; - this.lightState.rZPos = par8Icon; - this.saveAO( this.lightState.aoZPos, this.lightState.foZPos ); - this.lightState.bZPos = this.getCurrentBrightness(); - } - } - - @Override - public void renderFaceXNeg( Block par1Block, double par2, double par4, double par6, IIcon par8Icon ) - { - if( this.faces.contains( ForgeDirection.WEST ) ) - { - if( !this.renderFaces.contains( ForgeDirection.WEST ) ) - { - return; - } - - if( this.isFacade ) - { - Tessellator tessellator = Tessellator.instance; - - double d3 = par8Icon.getInterpolatedU( this.renderMinZ * 16.0D ); - double d4 = par8Icon.getInterpolatedU( this.renderMaxZ * 16.0D ); - double d5 = par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D ); - double d6 = par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D ); - - double d11 = par2 + this.renderMinX; - double d12 = par4 + this.renderMinY; - double d13 = par4 + this.renderMaxY; - double d14 = par6 + this.renderMinZ; - double d15 = par6 + this.renderMaxZ; - - if( this.enableAO ) - { - this.partialLightingColoring( this.renderMaxY, this.renderMaxZ ); - tessellator.addVertexWithUV( d11, d13, d15, d4, d5 ); - this.partialLightingColoring( this.renderMaxY, this.renderMinZ ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - this.partialLightingColoring( this.renderMinY, this.renderMinZ ); - tessellator.addVertexWithUV( d11, d12, d14, d3, d6 ); - this.partialLightingColoring( this.renderMinY, this.renderMaxZ ); - tessellator.addVertexWithUV( d11, d12, d15, d4, d6 ); - } - else - { - tessellator.addVertexWithUV( d11, d13, d15, d4, d5 ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - tessellator.addVertexWithUV( d11, d12, d14, d3, d6 ); - tessellator.addVertexWithUV( d11, d12, d15, d4, d6 ); - } - } - else - { - super.renderFaceXNeg( par1Block, par2, par4, par6, par8Icon ); - } - } - else - { - this.lightState.isAO = this.enableAO; - this.lightState.rXNeg = par8Icon; - this.saveAO( this.lightState.aoXNeg, this.lightState.foXNeg ); - this.lightState.bXNeg = this.getCurrentBrightness(); - } - } - - @Override - public void renderFaceXPos( Block par1Block, double par2, double par4, double par6, IIcon par8Icon ) - { - if( this.faces.contains( ForgeDirection.EAST ) ) - { - if( !this.renderFaces.contains( ForgeDirection.EAST ) ) - { - return; - } - - if( this.isFacade ) - { - Tessellator tessellator = Tessellator.instance; - - double d3 = par8Icon.getInterpolatedU( 16.0D - this.renderMinZ * 16.0D ); - double d4 = par8Icon.getInterpolatedU( 16.0D - this.renderMaxZ * 16.0D ); - double d5 = par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D ); - double d6 = par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D ); - - double d11 = par2 + this.renderMaxX; - double d12 = par4 + this.renderMinY; - double d13 = par4 + this.renderMaxY; - double d14 = par6 + this.renderMinZ; - double d15 = par6 + this.renderMaxZ; - - if( this.enableAO ) - { - this.partialLightingColoring( 1.0 - this.renderMinY, this.renderMaxZ ); - tessellator.addVertexWithUV( d11, d12, d15, d4, d6 ); - this.partialLightingColoring( 1.0 - this.renderMinY, this.renderMinZ ); - tessellator.addVertexWithUV( d11, d12, d14, d3, d6 ); - this.partialLightingColoring( 1.0 - this.renderMaxY, this.renderMinZ ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - this.partialLightingColoring( 1.0 - this.renderMaxY, this.renderMaxZ ); - tessellator.addVertexWithUV( d11, d13, d15, d4, d5 ); - } - else - { - tessellator.addVertexWithUV( d11, d12, d15, d4, d6 ); - tessellator.addVertexWithUV( d11, d12, d14, d3, d6 ); - tessellator.addVertexWithUV( d11, d13, d14, d3, d5 ); - tessellator.addVertexWithUV( d11, d13, d15, d4, d5 ); - } - } - else - { - super.renderFaceXPos( par1Block, par2, par4, par6, par8Icon ); - } - } - else - { - this.lightState.isAO = this.enableAO; - this.lightState.rXPos = par8Icon; - this.saveAO( this.lightState.aoXPos, this.lightState.foXPos ); - this.lightState.bXPos = this.getCurrentBrightness(); - } - } - - private void partialLightingColoring( double u, double v ) - { - double rA = this.colorRedTopLeft * u + ( 1.0 - u ) * this.colorRedTopRight; - double rB = this.colorRedBottomLeft * u + ( 1.0 - u ) * this.colorRedBottomRight; - float r = (float) ( rA * v + rB * ( 1.0 - v ) ); - - double gA = this.colorGreenTopLeft * u + ( 1.0 - u ) * this.colorGreenTopRight; - double gB = this.colorGreenBottomLeft * u + ( 1.0 - u ) * this.colorGreenBottomRight; - float g = (float) ( gA * v + gB * ( 1.0 - v ) ); - - double bA = this.colorBlueTopLeft * u + ( 1.0 - u ) * this.colorBlueTopRight; - double bB = this.colorBlueBottomLeft * u + ( 1.0 - u ) * this.colorBlueBottomRight; - float b = (float) ( bA * v + bB * ( 1.0 - v ) ); - - double highA = ( this.brightnessTopLeft >> 16 & 255 ) * u + ( 1.0 - u ) * ( this.brightnessTopRight >> 16 & 255 ); - double highB = ( this.brightnessBottomLeft >> 16 & 255 ) * u + ( 1.0 - u ) * ( this.brightnessBottomRight >> 16 & 255 ); - int high = ( (int) ( highA * v + highB * ( 1.0 - v ) ) ) & 255; - - double lowA = ( ( this.brightnessTopLeft & 255 ) ) * u + ( 1.0 - u ) * ( ( this.brightnessTopRight & 255 ) ); - double lowB = ( ( this.brightnessBottomLeft & 255 ) ) * u + ( 1.0 - u ) * ( ( this.brightnessBottomRight & 255 ) ); - int low = ( (int) ( lowA * v + lowB * ( 1.0 - v ) ) ) & 255; - - int out = ( high << 16 ) | low; - - Tessellator.instance.setColorRGBA_F( r, g, b, this.opacity ); - Tessellator.instance.setBrightness( out ); - } - - public boolean similarLighting( Block blk, IBlockAccess w, int x, int y, int z, ISimplifiedBundle sim ) - { - int lh = this.getLightingHash( blk, w, x, y, z ); - return ( (LightingCache) sim ).lightHash == lh; - } - - private int getLightingHash( Block blk, IBlockAccess w, int x, int y, int z ) - { - int o = 0; - - for( int i = -1; i <= 1; i++ ) - { - for( int j = -1; j <= 1; j++ ) - { - for( int k = -1; k <= 1; k++ ) - { - - this.lightHashTmp[o] = blk.getMixedBrightnessForBlock( this.blockAccess, x + i, y + j, z + k ); - o++; - } - } - } - - return Arrays.hashCode( this.lightHashTmp ); - } - - public void populate( ISimplifiedBundle sim ) - { - this.lightState = new LightingCache( (LightingCache) sim ); - } - - public ISimplifiedBundle getLightingCache() - { - return new LightingCache( this.lightState ); - } - - private static class LightingCache implements ISimplifiedBundle - { - - public final int[] aoXPos; - public final int[] aoXNeg; - public final int[] aoYPos; - public final int[] aoYNeg; - public final int[] aoZPos; - public final int[] aoZNeg; - public final float[] foXPos; - public final float[] foXNeg; - public final float[] foYPos; - public final float[] foYNeg; - public final float[] foZPos; - public final float[] foZNeg; - public IIcon rXPos; - public IIcon rXNeg; - public IIcon rYPos; - public IIcon rYNeg; - public IIcon rZPos; - public IIcon rZNeg; - public boolean isAO; - public int bXPos; - public int bXNeg; - public int bYPos; - public int bYNeg; - public int bZPos; - public int bZNeg; - public int lightHash; - - public LightingCache( LightingCache secondCSrc ) - { - this.rXPos = secondCSrc.rXPos; - this.rXNeg = secondCSrc.rXNeg; - this.rYPos = secondCSrc.rYPos; - this.rYNeg = secondCSrc.rYNeg; - this.rZPos = secondCSrc.rZPos; - this.rZNeg = secondCSrc.rZNeg; - - this.isAO = secondCSrc.isAO; - - this.bXPos = secondCSrc.bXPos; - this.bXNeg = secondCSrc.bXNeg; - this.bYPos = secondCSrc.bYPos; - this.bYNeg = secondCSrc.bYNeg; - this.bZPos = secondCSrc.bZPos; - this.bZNeg = secondCSrc.bZNeg; - - this.aoXPos = secondCSrc.aoXPos.clone(); - this.aoXNeg = secondCSrc.aoXNeg.clone(); - this.aoYPos = secondCSrc.aoYPos.clone(); - this.aoYNeg = secondCSrc.aoYNeg.clone(); - this.aoZPos = secondCSrc.aoZPos.clone(); - this.aoZNeg = secondCSrc.aoZNeg.clone(); - - this.foXPos = secondCSrc.foXPos.clone(); - this.foXNeg = secondCSrc.foXNeg.clone(); - this.foYPos = secondCSrc.foYPos.clone(); - this.foYNeg = secondCSrc.foYNeg.clone(); - this.foZPos = secondCSrc.foZPos.clone(); - this.foZNeg = secondCSrc.foZNeg.clone(); - - this.lightHash = secondCSrc.lightHash; - } - - public LightingCache() - { - this.rXPos = null; - this.rXNeg = null; - this.rYPos = null; - this.rYNeg = null; - this.rZPos = null; - this.rZNeg = null; - - this.isAO = false; - - this.bXPos = 0; - this.bXNeg = 0; - this.bYPos = 0; - this.bYNeg = 0; - this.bZPos = 0; - this.bZNeg = 0; - - this.aoXPos = new int[5]; - this.aoXNeg = new int[5]; - this.aoYPos = new int[5]; - this.aoYNeg = new int[5]; - this.aoZPos = new int[5]; - this.aoZNeg = new int[5]; - - this.foXPos = new float[12]; - this.foXNeg = new float[12]; - this.foYPos = new float[12]; - this.foYNeg = new float[12]; - this.foZPos = new float[12]; - this.foZNeg = new float[12]; - - this.lightHash = 0; - } + // TODO Auto-generated method stub + } + } diff --git a/src/main/java/appeng/client/render/SMFace.java b/src/main/java/appeng/client/render/SMFace.java new file mode 100644 index 00000000..dbe91f71 --- /dev/null +++ b/src/main/java/appeng/client/render/SMFace.java @@ -0,0 +1,40 @@ +package appeng.client.render; + +import javax.vecmath.Vector3f; + +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.util.EnumFacing; + +public class SMFace +{ + + public final EnumFacing face; + public final boolean isEdge; + + public final Vector3f to; + public final Vector3f from; + + public final float[] uv; + + public final TextureAtlasSprite spite; + + public final int color; + + public SMFace( + EnumFacing face , boolean isEdge, + int color, + Vector3f to, + Vector3f from, + float[] defUVs2, + TextureAtlasSprite iconUnwrapper ) + { + this.color = color; + this.face=face; + this.isEdge = isEdge; + this.to=to; + this.from=from; + this.uv = defUVs2; + this.spite = iconUnwrapper; + } + +} diff --git a/src/main/java/appeng/client/render/SpatialSkyRender.java b/src/main/java/appeng/client/render/SpatialSkyRender.java index 4550b8ac..0f03d1bf 100644 --- a/src/main/java/appeng/client/render/SpatialSkyRender.java +++ b/src/main/java/appeng/client/render/SpatialSkyRender.java @@ -21,16 +21,17 @@ package appeng.client.render; import java.util.Random; -import org.lwjgl.opengl.GL11; - import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraftforge.client.IRenderHandler; +import org.lwjgl.opengl.GL11; + public class SpatialSkyRender extends IRenderHandler { @@ -74,7 +75,8 @@ public class SpatialSkyRender extends IRenderHandler GL11.glDisable( GL11.GL_BLEND ); GL11.glDepthMask( false ); GL11.glColor4f( 0.0f, 0.0f, 0.0f, 1.0f ); - Tessellator tessellator = Tessellator.instance; + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); for( int i = 0; i < 6; ++i ) { @@ -105,12 +107,12 @@ public class SpatialSkyRender extends IRenderHandler GL11.glRotatef( -90.0F, 0.0F, 0.0F, 1.0F ); } - tessellator.startDrawingQuads(); - tessellator.setColorOpaque_I( 0 ); - tessellator.addVertexWithUV( -100.0D, -100.0D, -100.0D, 0.0D, 0.0D ); - tessellator.addVertexWithUV( -100.0D, -100.0D, 100.0D, 0.0D, 16.0D ); - tessellator.addVertexWithUV( 100.0D, -100.0D, 100.0D, 16.0D, 16.0D ); - tessellator.addVertexWithUV( 100.0D, -100.0D, -100.0D, 16.0D, 0.0D ); + worldrenderer.startDrawingQuads(); + worldrenderer.setColorOpaque_I( 0 ); + worldrenderer.addVertexWithUV( -100.0D, -100.0D, -100.0D, 0.0D, 0.0D ); + worldrenderer.addVertexWithUV( -100.0D, -100.0D, 100.0D, 0.0D, 16.0D ); + worldrenderer.addVertexWithUV( 100.0D, -100.0D, 100.0D, 16.0D, 16.0D ); + worldrenderer.addVertexWithUV( 100.0D, -100.0D, -100.0D, 16.0D, 0.0D ); tessellator.draw(); GL11.glPopMatrix(); } @@ -142,8 +144,9 @@ public class SpatialSkyRender extends IRenderHandler private void renderTwinkles() { - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); + Tessellator tessellator = Tessellator.getInstance(); + WorldRenderer worldrenderer = tessellator.getWorldRenderer(); + worldrenderer.startDrawingQuads(); for( int i = 0; i < 50; ++i ) { @@ -183,7 +186,7 @@ public class SpatialSkyRender extends IRenderHandler double d23 = d17 * d12 - d20 * d13; double d24 = d23 * d9 - d21 * d10; double d25 = d21 * d9 + d23 * d10; - tessellator.addVertex( x + d24, y + d22, z + d25 ); + worldrenderer.addVertex( x + d24, y + d22, z + d25 ); } } } diff --git a/src/main/java/appeng/client/render/TESRWrapper.java b/src/main/java/appeng/client/render/TESRWrapper.java index 9c0280b9..21fa5510 100644 --- a/src/main/java/appeng/client/render/TESRWrapper.java +++ b/src/main/java/appeng/client/render/TESRWrapper.java @@ -19,16 +19,14 @@ package appeng.client.render; -import org.lwjgl.opengl.GL11; - import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.block.AEBaseBlock; import appeng.core.AELog; @@ -39,7 +37,7 @@ import appeng.tile.AEBaseTile; public class TESRWrapper extends TileEntitySpecialRenderer { - public final RenderBlocks renderBlocksInstance = new RenderBlocks(); + public final IRenderHelper renderBlocksInstance = new IRenderHelper(); private final BaseBlockRender blkRender; private final double maxDistance; @@ -51,7 +49,7 @@ public class TESRWrapper extends TileEntitySpecialRenderer } @Override - public final void renderTileEntityAt( TileEntity te, double x, double y, double z, float f ) + public final void renderTileEntityAt( TileEntity te, double x, double y, double z, float f, int something ) { if( te instanceof AEBaseTile ) { @@ -64,14 +62,14 @@ public class TESRWrapper extends TileEntitySpecialRenderer return; } - Tessellator tess = Tessellator.instance; + Tessellator tess = Tessellator.getInstance(); try { GL11.glPushMatrix(); - this.renderBlocksInstance.blockAccess = te.getWorldObj(); - this.blkRender.renderTile( (AEBaseBlock) b, (AEBaseTile) te, tess, x, y, z, f, this.renderBlocksInstance ); + this.renderBlocksInstance.blockAccess = te.getWorld(); + this.blkRender.renderTile( (AEBaseBlock) b, (AEBaseTile) te, tess.getWorldRenderer(), x, y, z, f, this.renderBlocksInstance ); GL11.glPopMatrix(); } diff --git a/src/main/java/appeng/client/render/WorldRender.java b/src/main/java/appeng/client/render/WorldRender.java index 26236c36..e0006702 100644 --- a/src/main/java/appeng/client/render/WorldRender.java +++ b/src/main/java/appeng/client/render/WorldRender.java @@ -22,16 +22,12 @@ package appeng.client.render; import java.util.HashMap; import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.block.AEBaseBlock; import appeng.core.AELog; @@ -42,8 +38,7 @@ public final class WorldRender implements ISimpleBlockRenderingHandler public static final WorldRender INSTANCE = new WorldRender(); public final HashMap blockRenders = new HashMap(); - final int renderID = RenderingRegistry.getNextAvailableRenderId(); - private final RenderBlocks renderer = new RenderBlocks(); + private final IRenderHelper renderer = new IRenderHelper(); boolean hasError = false; private WorldRender() @@ -56,29 +51,17 @@ public final class WorldRender implements ISimpleBlockRenderingHandler } @Override - public void renderInventoryBlock( Block block, int metadata, int modelID, RenderBlocks renderer ) + public void renderInventoryBlock( Block block, int metadata, int modelID, IRenderHelper renderer ) { // wtf is this for? } @Override - public boolean renderWorldBlock( IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer ) + public boolean renderWorldBlock( IBlockAccess world, BlockPos pos, Block block, int modelId, IRenderHelper renderer ) { AEBaseBlock blk = (AEBaseBlock) block; renderer.setRenderBoundsFromBlock( block ); - return this.getRender( blk ).renderInWorld( blk, world, x, y, z, renderer ); - } - - @Override - public boolean shouldRender3DInInventory( int modelId ) - { - return true; - } - - @Override - public int getRenderId() - { - return this.renderID; + return this.getRender( blk ).renderInWorld( blk, world, pos, renderer ); } private BaseBlockRender getRender( AEBaseBlock block ) diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java b/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java index 5f8d7ee4..99536b8f 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockAssembler.java @@ -21,26 +21,25 @@ package appeng.client.render.blocks; import java.util.EnumSet; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGridHost; import appeng.api.parts.IBoxProvider; import appeng.api.parts.IPart; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; +import appeng.api.util.AEPartLocation; import appeng.api.util.IOrientable; import appeng.block.crafting.BlockMolecularAssembler; import appeng.client.render.BaseBlockRender; -import appeng.client.render.BusRenderHelper; import appeng.client.render.BusRenderer; +import appeng.client.render.IRenderHelper; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.client.texture.TaughtIcon; import appeng.parts.networking.PartCable; import appeng.tile.crafting.TileMolecularAssembler; @@ -56,209 +55,204 @@ public class RenderBlockAssembler extends BaseBlockRender 0; - boolean isConflict = meta == 2; + BlockController.ControllerBlockState meta = ( ControllerBlockState ) world.getBlockState( pos ).getValue( BlockController.CONTROLLER_STATE ); + boolean hasPower = meta != BlockController.ControllerBlockState.OFFLINE; + boolean isConflict = meta == BlockController.ControllerBlockState.CONFLICTED; ExtraBlockTextures lights = null; @@ -124,7 +124,7 @@ public class RenderBlockController extends BaseBlockRender= 2 ) { - int v = ( Math.abs( x ) + Math.abs( y ) + Math.abs( z ) ) % 2; + int v = ( Math.abs( pos.getX() ) + Math.abs( pos.getY() ) + Math.abs( pos.getZ() ) ) % 2; renderer.uvRotateEast = renderer.uvRotateBottom = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; if( v == 0 ) @@ -156,17 +156,17 @@ public class RenderBlockController extends BaseBlockRender= 0 ) + if( pos.getY() >= 0 ) { - return world.getTileEntity( x, y, z ); + return world.getTileEntity( pos ); } return null; } diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPU.java b/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPU.java index 6bb4173c..a6b0637a 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPU.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPU.java @@ -22,21 +22,23 @@ package appeng.client.render.blocks; import java.util.EnumSet; import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraftforge.client.MinecraftForgeClient; import appeng.api.AEApi; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.block.crafting.BlockCraftingMonitor; import appeng.block.crafting.BlockCraftingUnit; import appeng.client.render.BaseBlockRender; import appeng.client.render.BusRenderHelper; import appeng.client.render.BusRenderer; +import appeng.client.render.IRenderHelper; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.tile.crafting.TileCraftingMonitorTile; import appeng.tile.crafting.TileCraftingTile; @@ -55,29 +57,35 @@ public class RenderBlockCraftingCPU 0 || side.offsetY > 0 || side.offsetZ > 0 ) + if( side.getFrontOffsetX() > 0 || side.getFrontOffsetY() > 0 || side.getFrontOffsetZ() > 0 ) { return 16; } @@ -197,9 +194,9 @@ public class RenderBlockCraftingCPU 15.999 ) ) + AEPartLocation dir = AEPartLocation.fromFacing( a ); + if( !( i.getBound( dir ) < 0.001 || i.getBound( dir ) > 15.999 ) ) { switch( a ) { @@ -344,21 +343,20 @@ public class RenderBlockCraftingCPU 0 || side.offsetY > 0 || side.offsetZ > 0 ) + if( side.getFrontOffsetX() > 0 || side.getFrontOffsetY() > 0 || side.getFrontOffsetZ() > 0 ) { return 16; } diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java b/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java index 5ce02869..be1de3d4 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockCraftingCPUMonitor.java @@ -19,21 +19,21 @@ package appeng.client.render.blocks; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import appeng.api.storage.data.IAEItemStack; import appeng.block.crafting.BlockCraftingMonitor; import appeng.client.ClientHelper; +import appeng.client.render.IRenderHelper; import appeng.core.AELog; import appeng.tile.crafting.TileCraftingMonitorTile; import appeng.util.IWideReadableNumberConverter; @@ -57,11 +57,11 @@ public class RenderBlockCraftingCPUMonitor extends RenderBlockCraftingCPU } @Override - public void renderInventory( BlockCrank blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( BlockCrank blk, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { renderer.renderAllFaces = true; @@ -59,16 +62,16 @@ public class RenderBlockCrank extends BaseBlockRender } @Override - public boolean renderInWorld( BlockCrank imb, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( BlockCrank imb, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { return true; } @Override - public void renderTile( BlockCrank blk, TileCrank tile, Tessellator tess, double x, double y, double z, float f, RenderBlocks renderBlocks ) + public void renderTile( BlockCrank blk, TileCrank tile, WorldRenderer tess, double x, double y, double z, float f, IRenderHelper renderBlocks ) { - TileCrank tc = (TileCrank) tile; - if( tc.getUp() == null || tc.getUp() == ForgeDirection.UNKNOWN ) + TileCrank tc = tile; + if( tc.getUp() == null || tc.getUp() == null ) { return; } @@ -86,28 +89,36 @@ public class RenderBlockCrank extends BaseBlockRender } GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f ); - this.applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() ); GL11.glTranslated( 0.5, 0, 0.5 ); GL11.glRotatef( tc.visibleRotation, 0, 1, 0 ); + GL11.glScalef( -1, 1, 1 ); GL11.glTranslated( -0.5, 0, -0.5 ); - tess.setTranslation( -tc.xCoord, -tc.yCoord, -tc.zCoord ); - tess.startDrawingQuads(); + //tess.setTranslation( -tc.getPos().getX(), -tc.getPos().getY(), -tc.getPos().getZ() ); + //tess.startDrawingQuads(); + + RenderItem ri = Minecraft.getMinecraft().getRenderItem(); + + ItemStack stack = new ItemStack( blk ); + IBakedModel model = ri.getItemModelMesher().getItemModel( stack ); + Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelRenderer().renderModelBrightnessColor(model, 1.0F, 1.0F, 1.0F, 1.0F); + + /* renderBlocks.renderAllFaces = true; - renderBlocks.blockAccess = tc.getWorldObj(); + renderBlocks.blockAccess = tc.getWorld(); renderBlocks.setRenderBounds( 0.5D - 0.05, 0.5D - 0.5, 0.5D - 0.05, 0.5D + 0.05, 0.5D + 0.1, 0.5D + 0.05 ); - renderBlocks.renderStandardBlock( blk, tc.xCoord, tc.yCoord, tc.zCoord ); - + renderBlocks.renderStandardBlock( blk, tc.getPos()); renderBlocks.setRenderBounds( 0.70D - 0.15, 0.55D - 0.05, 0.5D - 0.05, 0.70D + 0.15, 0.55D + 0.05, 0.5D + 0.05 ); - renderBlocks.renderStandardBlock( blk, tc.xCoord, tc.yCoord, tc.zCoord ); + renderBlocks.renderStandardBlock( blk, tc.getPos() ); + */ - tess.draw(); - tess.setTranslation( 0, 0, 0 ); + //Tessellator.getInstance().draw(); + //tess.setTranslation( 0, 0, 0 ); RenderHelper.enableStandardItemLighting(); } } diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java b/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java index ac01a73d..db9e7cd0 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockEnergyCube.java @@ -19,14 +19,14 @@ package appeng.client.render.blocks; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; - import appeng.api.implementations.items.IAEItemPowerStorage; import appeng.block.networking.BlockEnergyCell; import appeng.client.render.BaseBlockRender; +import appeng.client.render.IRenderHelper; import appeng.tile.networking.TileEnergyCell; @@ -39,7 +39,7 @@ public class RenderBlockEnergyCube extends BaseBlockRender } @Override - public void renderInventory( BlockPaint block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( BlockPaint block, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { } @Override - public boolean renderInWorld( BlockPaint imb, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( BlockPaint imb, IBlockAccess world, BlockPos pos, IRenderHelper tess ) { - TilePaint tp = imb.getTileEntity( world, x, y, z ); + TilePaint tp = imb.getTileEntity( world, pos ); boolean out = false; if( tp != null ) { // super.renderInWorld( imb, world, x, y, z, renderer ); + int x = pos.getX(); + int y = pos.getY(); + int z = pos.getZ(); - IIcon[] icoSet = new IIcon[] { imb.getIcon( 0, 0 ), ExtraBlockTextures.BlockPaint2.getIcon(), ExtraBlockTextures.BlockPaint3.getIcon() }; - - Tessellator tess = Tessellator.instance; + IAESprite[] icoSet = new IAESprite[] { imb.getIcon( EnumFacing.UP, imb.getDefaultState() ), ExtraBlockTextures.BlockPaint2.getIcon(), ExtraBlockTextures.BlockPaint3.getIcon() }; int lumen = 14 << 20 | 14 << 4; - int brightness = imb.getMixedBrightnessForBlock( world, x, y, z ); + int brightness = imb.getMixedBrightnessForBlock( world, pos ); double offsetConstant = 0.001; - EnumSet validSides = EnumSet.noneOf( ForgeDirection.class ); + EnumSet validSides = EnumSet.noneOf( EnumFacing.class ); - for( ForgeDirection side : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing side : EnumFacing.VALUES ) { if( tp.isSideValid( side ) ) { @@ -108,13 +107,13 @@ public class RenderBlockPaint extends BaseBlockRender pos_x = Math.max( buffer, Math.min( 1.0 - buffer, pos_x ) ); pos_y = Math.max( buffer, Math.min( 1.0 - buffer, pos_y ) ); - if( s.side == ForgeDirection.SOUTH || s.side == ForgeDirection.NORTH ) + if( s.side == EnumFacing.SOUTH || s.side == EnumFacing.NORTH ) { pos_x += x; pos_y += y; } - else if( s.side == ForgeDirection.UP || s.side == ForgeDirection.DOWN ) + else if( s.side == EnumFacing.UP || s.side == EnumFacing.DOWN ) { pos_x += x; pos_y += z; @@ -125,54 +124,55 @@ public class RenderBlockPaint extends BaseBlockRender pos_x += y; pos_y += z; } - - IIcon ico = icoSet[s.getSeed() % icoSet.length]; - + + IAESprite ico = icoSet[s.getSeed() % icoSet.length]; + EnumFacing rs = s.side.getOpposite(); + switch( s.side ) { case UP: offset = 1.0 - offset; - tess.addVertexWithUV( pos_x - buffer, y + offset, pos_y - buffer, ico.getMinU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x + buffer, y + offset, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x + buffer, y + offset, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); - tess.addVertexWithUV( pos_x - buffer, y + offset, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); + tess.addVertexWithUV( rs,pos_x - buffer, y + offset, pos_y - buffer, ico.getMinU(), ico.getMinV() ); + tess.addVertexWithUV( rs,pos_x + buffer, y + offset, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); + tess.addVertexWithUV( rs,pos_x + buffer, y + offset, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); + tess.addVertexWithUV( rs,pos_x - buffer, y + offset, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); break; case DOWN: - tess.addVertexWithUV( pos_x + buffer, y + offset, pos_y - buffer, ico.getMinU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x - buffer, y + offset, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x - buffer, y + offset, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); - tess.addVertexWithUV( pos_x + buffer, y + offset, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, pos_x + buffer, y + offset, pos_y - buffer, ico.getMinU(), ico.getMinV() ); + tess.addVertexWithUV( rs, pos_x - buffer, y + offset, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); + tess.addVertexWithUV( rs, pos_x - buffer, y + offset, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, pos_x + buffer, y + offset, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); break; case EAST: offset = 1.0 - offset; - tess.addVertexWithUV( x + offset, pos_x + buffer, pos_y - buffer, ico.getMinU(), ico.getMinV() ); - tess.addVertexWithUV( x + offset, pos_x - buffer, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); - tess.addVertexWithUV( x + offset, pos_x - buffer, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); - tess.addVertexWithUV( x + offset, pos_x + buffer, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, x + offset, pos_x + buffer, pos_y - buffer, ico.getMinU(), ico.getMinV() ); + tess.addVertexWithUV( rs, x + offset, pos_x - buffer, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); + tess.addVertexWithUV( rs, x + offset, pos_x - buffer, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, x + offset, pos_x + buffer, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); break; case WEST: - tess.addVertexWithUV( x + offset, pos_x - buffer, pos_y - buffer, ico.getMinU(), ico.getMinV() ); - tess.addVertexWithUV( x + offset, pos_x + buffer, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); - tess.addVertexWithUV( x + offset, pos_x + buffer, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); - tess.addVertexWithUV( x + offset, pos_x - buffer, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, x + offset, pos_x - buffer, pos_y - buffer, ico.getMinU(), ico.getMinV() ); + tess.addVertexWithUV( rs, x + offset, pos_x + buffer, pos_y - buffer, ico.getMaxU(), ico.getMinV() ); + tess.addVertexWithUV( rs, x + offset, pos_x + buffer, pos_y + buffer, ico.getMaxU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, x + offset, pos_x - buffer, pos_y + buffer, ico.getMinU(), ico.getMaxV() ); break; case SOUTH: offset = 1.0 - offset; - tess.addVertexWithUV( pos_x + buffer, pos_y - buffer, z + offset, ico.getMinU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x - buffer, pos_y - buffer, z + offset, ico.getMaxU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x - buffer, pos_y + buffer, z + offset, ico.getMaxU(), ico.getMaxV() ); - tess.addVertexWithUV( pos_x + buffer, pos_y + buffer, z + offset, ico.getMinU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, pos_x + buffer, pos_y - buffer, z + offset, ico.getMinU(), ico.getMinV() ); + tess.addVertexWithUV( rs, pos_x - buffer, pos_y - buffer, z + offset, ico.getMaxU(), ico.getMinV() ); + tess.addVertexWithUV( rs, pos_x - buffer, pos_y + buffer, z + offset, ico.getMaxU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, pos_x + buffer, pos_y + buffer, z + offset, ico.getMinU(), ico.getMaxV() ); break; case NORTH: - tess.addVertexWithUV( pos_x - buffer, pos_y - buffer, z + offset, ico.getMinU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x + buffer, pos_y - buffer, z + offset, ico.getMaxU(), ico.getMinV() ); - tess.addVertexWithUV( pos_x + buffer, pos_y + buffer, z + offset, ico.getMaxU(), ico.getMaxV() ); - tess.addVertexWithUV( pos_x - buffer, pos_y + buffer, z + offset, ico.getMinU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, pos_x - buffer, pos_y - buffer, z + offset, ico.getMinU(), ico.getMinV() ); + tess.addVertexWithUV( rs, pos_x + buffer, pos_y - buffer, z + offset, ico.getMaxU(), ico.getMinV() ); + tess.addVertexWithUV( rs, pos_x + buffer, pos_y + buffer, z + offset, ico.getMaxU(), ico.getMaxV() ); + tess.addVertexWithUV( rs, pos_x - buffer, pos_y + buffer, z + offset, ico.getMinU(), ico.getMaxV() ); break; default: diff --git a/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java b/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java index 30f55839..bb900b9f 100644 --- a/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java +++ b/src/main/java/appeng/client/render/blocks/RenderBlockQuartzAccelerator.java @@ -19,14 +19,14 @@ package appeng.client.render.blocks; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; - import appeng.block.misc.BlockQuartzGrowthAccelerator; import appeng.client.render.BaseBlockRender; +import appeng.client.render.IRenderHelper; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.tile.misc.TileQuartzGrowthAccelerator; @@ -39,20 +39,20 @@ public class RenderBlockQuartzAccelerator extends BaseBlockRender { - private int centerX = 0; - private int centerY = 0; - private int centerZ = 0; + BlockPos center; private BlockWireless blk; private boolean hasChan = false; private boolean hasPower = false; @@ -56,60 +54,56 @@ public class RenderBlockWireless extends BaseBlockRender } @Override - public void renderInventory( BlockDrive block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( BlockDrive block, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { - renderer.overrideBlockTexture = ExtraBlockTextures.getMissing(); - this.renderInvBlock( EnumSet.of( ForgeDirection.SOUTH ), block, is, Tessellator.instance, 0x000000, renderer ); + renderer.overrideBlockTexture = ExtraBlockTextures.White.getIcon(); + this.renderInvBlock( EnumSet.of( AEPartLocation.SOUTH ), block, is, 0x000000, renderer ); renderer.overrideBlockTexture = null; super.renderInventory( block, is, renderer, type, obj ); } @Override - public boolean renderInWorld( BlockDrive imb, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( BlockDrive imb, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { - TileDrive sp = imb.getTileEntity( world, x, y, z ); + TileDrive sp = imb.getTileEntity( world, pos ); renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 ); - ForgeDirection up = sp.getUp(); - ForgeDirection forward = sp.getForward(); - ForgeDirection west = Platform.crossProduct( forward, up ); + EnumFacing up = sp.getUp(); + EnumFacing forward = sp.getForward(); + EnumFacing west = Platform.crossProduct( forward, up ); - boolean result = super.renderInWorld( imb, world, x, y, z, renderer ); - Tessellator tess = Tessellator.instance; + boolean result = super.renderInWorld( imb, world, pos, renderer ); - IIcon ico = ExtraBlockTextures.MEStorageCellTextures.getIcon(); + IAESprite ico = ExtraBlockTextures.MEStorageCellTextures.getIcon(); - int b = world.getLightBrightnessForSkyBlocks( x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ, 0 ); + int b = world.getCombinedLight( pos.offset( forward ), 0 ); for( int yy = 0; yy < 5; yy++ ) { @@ -80,7 +79,7 @@ public class RenderDrive extends BaseBlockRender int spin = 0; - switch( forward.offsetX + forward.offsetY * 2 + forward.offsetZ * 3 ) + switch( forward.getFrontOffsetX() + forward.getFrontOffsetY() * 2 + forward.getFrontOffsetZ() * 3 ) { case 1: switch( up ) @@ -192,6 +191,7 @@ public class RenderDrive extends BaseBlockRender break; } + double u1 = ico.getInterpolatedU( ( spin % 4 < 2 ) ? 1 : 6 ); double u2 = ico.getInterpolatedU( ( ( spin + 1 ) % 4 < 2 ) ? 1 : 6 ); double u3 = ico.getInterpolatedU( ( ( spin + 2 ) % 4 < 2 ) ? 1 : 6 ); @@ -210,49 +210,53 @@ public class RenderDrive extends BaseBlockRender double v3 = ico.getInterpolatedV( ( ( spin + 3 ) % 4 < 2 ) ? m : mx ); double v4 = ico.getInterpolatedV( ( ( spin ) % 4 < 2 ) ? m : mx ); - tess.setBrightness( b ); - tess.setColorOpaque_I( 0xffffff ); - switch( forward.offsetX + forward.offsetY * 2 + forward.offsetZ * 3 ) + int x= pos.getX(); + int y= pos.getY(); + int z= pos.getZ(); + + renderer.setBrightness( b ); + renderer.setColorOpaque_I( 0xffffff ); + switch( forward.getFrontOffsetX() + forward.getFrontOffsetY() * 2 + forward.getFrontOffsetZ() * 3 ) { case 1: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u4, v4 ); break; case -1: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); break; case -2: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); break; case 2: - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); break; case 3: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); break; case -3: - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); break; } - if( ( forward == ForgeDirection.UP && up == ForgeDirection.SOUTH ) || forward == ForgeDirection.DOWN ) + if( ( forward == EnumFacing.UP && up == EnumFacing.SOUTH ) || forward == EnumFacing.DOWN ) { this.selectFace( renderer, west, up, forward, 3 + xx * 7, 4 + xx * 7, 1 + yy * 3, 2 + yy * 3 ); } @@ -263,7 +267,7 @@ public class RenderDrive extends BaseBlockRender if( stat != 0 ) { - IIcon whiteIcon = ExtraBlockTextures.White.getIcon(); + IAESprite whiteIcon = ExtraBlockTextures.White.getIcon(); u1 = whiteIcon.getInterpolatedU( ( spin % 4 < 2 ) ? 1 : 6 ); u2 = whiteIcon.getInterpolatedU( ( ( spin + 1 ) % 4 < 2 ) ? 1 : 6 ); u3 = whiteIcon.getInterpolatedU( ( ( spin + 2 ) % 4 < 2 ) ? 1 : 6 ); @@ -276,63 +280,63 @@ public class RenderDrive extends BaseBlockRender if( sp.isPowered() ) { - tess.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); } else { - tess.setBrightness( 0 ); + renderer.setBrightness( 0 ); } if( stat == 1 ) { - Tessellator.instance.setColorOpaque_I( 0x00ff00 ); + renderer.setColorOpaque_I( 0x00ff00 ); } if( stat == 2 ) { - Tessellator.instance.setColorOpaque_I( 0xffaa00 ); + renderer.setColorOpaque_I( 0xffaa00 ); } if( stat == 3 ) { - Tessellator.instance.setColorOpaque_I( 0xff0000 ); + renderer.setColorOpaque_I( 0xff0000 ); } - switch( forward.offsetX + forward.offsetY * 2 + forward.offsetZ * 3 ) + switch( forward.getFrontOffsetX() + forward.getFrontOffsetY() * 2 + forward.getFrontOffsetZ() * 3 ) { case 1: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward, x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u4, v4 ); break; case -1: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); break; case -2: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); break; case 2: - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMinZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMinZ, u4, v4 ); break; case 3: - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); break; case -3: - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); - tess.addVertexWithUV( x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); - tess.addVertexWithUV( x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMinY, z + renderer.renderMaxZ, u1, v1 ); + renderer.addVertexWithUV( forward,x + renderer.renderMinX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u2, v2 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMaxY, z + renderer.renderMaxZ, u3, v3 ); + renderer.addVertexWithUV( forward,x + renderer.renderMaxX, y + renderer.renderMinY, z + renderer.renderMaxZ, u4, v4 ); break; } } diff --git a/src/main/java/appeng/client/render/blocks/RenderMEChest.java b/src/main/java/appeng/client/render/blocks/RenderMEChest.java index 4a6f398f..6baa0e46 100644 --- a/src/main/java/appeng/client/render/blocks/RenderMEChest.java +++ b/src/main/java/appeng/client/render/blocks/RenderMEChest.java @@ -21,21 +21,21 @@ package appeng.client.render.blocks; import java.util.EnumSet; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.storage.ICellHandler; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.block.storage.BlockChest; import appeng.client.render.BaseBlockRender; +import appeng.client.render.IRenderHelper; import appeng.client.texture.ExtraBlockTextures; import appeng.client.texture.FlippableIcon; +import appeng.client.texture.IAESprite; import appeng.client.texture.OffsetIcon; import appeng.tile.storage.TileChest; import appeng.util.Platform; @@ -50,23 +50,23 @@ public class RenderMEChest extends BaseBlockRender } @Override - public void renderInventory( BlockChest block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( BlockChest block, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { - Tessellator.instance.setBrightness( 0 ); - renderer.overrideBlockTexture = ExtraBlockTextures.getMissing(); - this.renderInvBlock( EnumSet.of( ForgeDirection.SOUTH ), block, is, Tessellator.instance, 0x000000, renderer ); + renderer.setBrightness( 0 ); + renderer.overrideBlockTexture = ExtraBlockTextures.White.getIcon(); + this.renderInvBlock( EnumSet.of( AEPartLocation.SOUTH ), block, is, 0x000000, renderer ); renderer.overrideBlockTexture = ExtraBlockTextures.MEChest.getIcon(); - this.renderInvBlock( EnumSet.of( ForgeDirection.UP ), block, is, Tessellator.instance, this.adjustBrightness( AEColor.Transparent.whiteVariant, 0.7 ), renderer ); + this.renderInvBlock( EnumSet.of( AEPartLocation.UP ), block, is, this.adjustBrightness( AEColor.Transparent.whiteVariant, 0.7 ), renderer ); renderer.overrideBlockTexture = null; super.renderInventory( block, is, renderer, type, obj ); } @Override - public boolean renderInWorld( BlockChest imb, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( BlockChest imb, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { - TileChest sp = imb.getTileEntity( world, x, y, z ); + TileChest sp = imb.getTileEntity( world, pos ); renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 ); if( sp == null ) @@ -74,14 +74,14 @@ public class RenderMEChest extends BaseBlockRender return false; } - ForgeDirection up = sp.getUp(); - ForgeDirection forward = sp.getForward(); - ForgeDirection west = Platform.crossProduct( forward, up ); + EnumFacing up = sp.getUp(); + EnumFacing forward = sp.getForward(); + EnumFacing west = Platform.crossProduct( forward, up ); - this.preRenderInWorld( imb, world, x, y, z, renderer ); + this.preRenderInWorld( imb, world, pos, renderer ); int stat = sp.getCellStatus( 0 ); - boolean result = renderer.renderStandardBlock( imb, x, y, z ); + boolean result = renderer.renderStandardBlock( imb, pos ); this.selectFace( renderer, west, up, forward, 5, 16 - 5, 9, 12 ); @@ -92,40 +92,40 @@ public class RenderMEChest extends BaseBlockRender offsetV = 3; } - int b = world.getLightBrightnessForSkyBlocks( x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ, 0 ); - Tessellator.instance.setBrightness( b ); - Tessellator.instance.setColorOpaque_I( 0xffffff ); + int b = world.getCombinedLight( pos.offset( forward ), 0 ); + renderer.setBrightness( b ); + renderer.setColorOpaque_I( 0xffffff ); FlippableIcon flippableIcon = new FlippableIcon( new OffsetIcon( ExtraBlockTextures.MEStorageCellTextures.getIcon(), offsetU, offsetV ) ); - if( forward == ForgeDirection.EAST && ( up == ForgeDirection.NORTH || up == ForgeDirection.SOUTH ) ) + if( forward == EnumFacing.EAST && ( up == EnumFacing.NORTH || up == EnumFacing.SOUTH ) ) { flippableIcon.setFlip( true, false ); } - else if( forward == ForgeDirection.NORTH && up == ForgeDirection.EAST ) + else if( forward == EnumFacing.NORTH && up == EnumFacing.EAST ) { flippableIcon.setFlip( false, true ); } - else if( forward == ForgeDirection.NORTH && up == ForgeDirection.WEST ) + else if( forward == EnumFacing.NORTH && up == EnumFacing.WEST ) { flippableIcon.setFlip( true, false ); } - else if( forward == ForgeDirection.DOWN && up == ForgeDirection.EAST ) + else if( forward == EnumFacing.DOWN && up == EnumFacing.EAST ) { flippableIcon.setFlip( false, true ); } - else if( forward == ForgeDirection.DOWN ) + else if( forward == EnumFacing.DOWN ) { flippableIcon.setFlip( true, false ); } /* * 1.7.2 - * else if ( forward == ForgeDirection.EAST && up == ForgeDirection.UP ) flippableIcon.setFlip( true, false ); + * else if ( forward == AEPartLocation.EAST && up == AEPartLocation.UP ) flippableIcon.setFlip( true, false ); * else if ( - * forward == ForgeDirection.NORTH && up == ForgeDirection.UP ) flippableIcon.setFlip( true, false ); + * forward == AEPartLocation.NORTH && up == AEPartLocation.UP ) flippableIcon.setFlip( true, false ); */ - this.renderFace( x, y, z, imb, flippableIcon, renderer, forward ); + this.renderFace( pos, imb, flippableIcon, renderer, forward ); if( stat != 0 ) { @@ -135,48 +135,48 @@ public class RenderMEChest extends BaseBlockRender b = 15 << 20 | 15 << 4; } - Tessellator.instance.setBrightness( b ); + renderer.setBrightness( b ); if( stat == 1 ) { - Tessellator.instance.setColorOpaque_I( 0x00ff00 ); + renderer.setColorOpaque_I( 0x00ff00 ); } if( stat == 2 ) { - Tessellator.instance.setColorOpaque_I( 0xffaa00 ); + renderer.setColorOpaque_I( 0xffaa00 ); } if( stat == 3 ) { - Tessellator.instance.setColorOpaque_I( 0xff0000 ); + renderer.setColorOpaque_I( 0xff0000 ); } this.selectFace( renderer, west, up, forward, 9, 10, 11, 12 ); - this.renderFace( x, y, z, imb, ExtraBlockTextures.White.getIcon(), renderer, forward ); + this.renderFace( pos, imb, ExtraBlockTextures.White.getIcon(), renderer, forward ); } - b = world.getLightBrightnessForSkyBlocks( x + up.offsetX, y + up.offsetY, z + up.offsetZ, 0 ); + b = world.getCombinedLight( pos.offset( up ), 0 ); if( sp.isPowered() ) { b = 15 << 20 | 15 << 4; } - Tessellator.instance.setBrightness( b ); - Tessellator.instance.setColorOpaque_I( 0xffffff ); + renderer.setBrightness( b ); + renderer.setColorOpaque_I( 0xffffff ); renderer.setRenderBounds( 0, 0, 0, 1, 1, 1 ); ICellHandler ch = AEApi.instance().registries().cell().getHandler( sp.getStorageType() ); - Tessellator.instance.setColorOpaque_I( sp.getColor().whiteVariant ); - IIcon ico = ch == null ? null : ch.getTopTexture_Light(); - this.renderFace( x, y, z, imb, ico == null ? ExtraBlockTextures.MEChest.getIcon() : ico, renderer, up ); + renderer.setColorOpaque_I( sp.getColor().whiteVariant ); + IAESprite ico = ch == null ? null : ch.getTopTexture_Light(); + this.renderFace( pos, imb, ico == null ? ExtraBlockTextures.MEChest.getIcon() : ico, renderer, up ); if( ico != null ) { - Tessellator.instance.setColorOpaque_I( sp.getColor().mediumVariant ); + renderer.setColorOpaque_I( sp.getColor().mediumVariant ); ico = ch == null ? null : ch.getTopTexture_Medium(); - this.renderFace( x, y, z, imb, ico == null ? ExtraBlockTextures.MEChest.getIcon() : ico, renderer, up ); + this.renderFace( pos, imb, ico == null ? ExtraBlockTextures.MEChest.getIcon() : ico, renderer, up ); - Tessellator.instance.setColorOpaque_I( sp.getColor().blackVariant ); + renderer.setColorOpaque_I( sp.getColor().blackVariant ); ico = ch == null ? null : ch.getTopTexture_Dark(); - this.renderFace( x, y, z, imb, ico == null ? ExtraBlockTextures.MEChest.getIcon() : ico, renderer, up ); + this.renderFace( pos, imb, ico == null ? ExtraBlockTextures.MEChest.getIcon() : ico, renderer, up ); } renderer.overrideBlockTexture = null; diff --git a/src/main/java/appeng/client/render/blocks/RenderNull.java b/src/main/java/appeng/client/render/blocks/RenderNull.java index 507d786d..612c9f85 100644 --- a/src/main/java/appeng/client/render/blocks/RenderNull.java +++ b/src/main/java/appeng/client/render/blocks/RenderNull.java @@ -19,13 +19,13 @@ package appeng.client.render.blocks; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; - import appeng.block.AEBaseBlock; import appeng.client.render.BaseBlockRender; +import appeng.client.render.IRenderHelper; import appeng.tile.AEBaseTile; @@ -38,13 +38,13 @@ public class RenderNull extends BaseBlockRender } @Override - public void renderInventory( AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( AEBaseBlock block, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { } @Override - public boolean renderInWorld( AEBaseBlock block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( AEBaseBlock block, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { return true; } diff --git a/src/main/java/appeng/client/render/blocks/RenderQNB.java b/src/main/java/appeng/client/render/blocks/RenderQNB.java index 5bb8d152..f21f3b08 100644 --- a/src/main/java/appeng/client/render/blocks/RenderQNB.java +++ b/src/main/java/appeng/client/render/blocks/RenderQNB.java @@ -23,23 +23,23 @@ import java.util.Collection; import java.util.EnumSet; import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IDefinitions; import appeng.api.definitions.IParts; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.block.qnb.BlockQuantumBase; import appeng.client.render.BaseBlockRender; +import appeng.client.render.IRenderHelper; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.tile.qnb.TileQuantumBridge; @@ -47,7 +47,7 @@ public class RenderQNB extends BaseBlockRender sides = tqb.getConnections(); + EnumSet sides = tqb.getConnections(); - Item transGlassCable = parts.cableGlass().item( AEColor.Transparent ); - this.renderCableAt( 0.11D, world, x, y, z, block, renderer, transGlassCable.getIconIndex( parts.cableGlass().stack( AEColor.Transparent, 1 ) ), 0.141D, sides ); + this.renderCableAt( 0.11D, world, pos, block, renderer, renderer.getIcon( parts.cableGlass().stack( AEColor.Transparent, 1 ) ), 0.141D, sides ); Item transCoveredCable = parts.cableCovered().item( AEColor.Transparent ); - this.renderCableAt( 0.188D, world, x, y, z, block, renderer, transCoveredCable.getIconIndex( parts.cableCovered().stack( AEColor.Transparent, 1 ) ), 0.1875D, sides ); + this.renderCableAt( 0.188D, world, pos, block, renderer, renderer.getIcon( parts.cableCovered().stack( AEColor.Transparent, 1 ) ), 0.1875D, sides ); } float renderMin = 2.0f / 16.0f; float renderMax = 14.0f / 16.0f; renderer.setRenderBounds( renderMin, renderMin, renderMin, renderMax, renderMax, renderMax ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } else { @@ -98,18 +97,18 @@ public class RenderQNB extends BaseBlockRender connections ) + private void renderCableAt( double thickness, IBlockAccess world, BlockPos pos, BlockQuantumBase block, IRenderHelper renderer, IAESprite texture, double pull, Collection connections ) { block.getRendererInstance().setTemporaryRenderIcon( texture ); - if( connections.contains( ForgeDirection.UNKNOWN ) ) - { - renderer.setRenderBounds( 0.5D - thickness, 0.5D - thickness, 0.5D - thickness, 0.5D + thickness, 0.5D + thickness, 0.5D + thickness ); - renderer.renderStandardBlock( block, x, y, z ); - } - - if( connections.contains( ForgeDirection.WEST ) ) + if( connections.contains( AEPartLocation.WEST ) ) { renderer.setRenderBounds( 0.0D, 0.5D - thickness, 0.5D - thickness, 0.5D - thickness - pull, 0.5D + thickness, 0.5D + thickness ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } - if( connections.contains( ForgeDirection.EAST ) ) + if( connections.contains( AEPartLocation.EAST ) ) { renderer.setRenderBounds( 0.5D + thickness + pull, 0.5D - thickness, 0.5D - thickness, 1.0D, 0.5D + thickness, 0.5D + thickness ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } - if( connections.contains( ForgeDirection.NORTH ) ) + if( connections.contains( AEPartLocation.NORTH ) ) { renderer.setRenderBounds( 0.5D - thickness, 0.5D - thickness, 0.0D, 0.5D + thickness, 0.5D + thickness, 0.5D - thickness - pull ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } - if( connections.contains( ForgeDirection.SOUTH ) ) + if( connections.contains( AEPartLocation.SOUTH ) ) { renderer.setRenderBounds( 0.5D - thickness, 0.5D - thickness, 0.5D + thickness + pull, 0.5D + thickness, 0.5D + thickness, 1.0D ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } - if( connections.contains( ForgeDirection.DOWN ) ) + if( connections.contains( AEPartLocation.DOWN ) ) { renderer.setRenderBounds( 0.5D - thickness, 0.0D, 0.5D - thickness, 0.5D + thickness, 0.5D - thickness - pull, 0.5D + thickness ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } - if( connections.contains( ForgeDirection.UP ) ) + if( connections.contains( AEPartLocation.UP ) ) { renderer.setRenderBounds( 0.5D - thickness, 0.5D + thickness + pull, 0.5D - thickness, 0.5D + thickness, 1.0D, 0.5D + thickness ); - renderer.renderStandardBlock( block, x, y, z ); + renderer.renderStandardBlock( block, pos ); } block.getRendererInstance().setTemporaryRenderIcon( null ); diff --git a/src/main/java/appeng/client/render/blocks/RenderQuartzGlass.java b/src/main/java/appeng/client/render/blocks/RenderQuartzGlass.java index a4ae3d5e..6b2f6a2e 100644 --- a/src/main/java/appeng/client/render/blocks/RenderQuartzGlass.java +++ b/src/main/java/appeng/client/render/blocks/RenderQuartzGlass.java @@ -21,15 +21,15 @@ package appeng.client.render.blocks; import java.util.Random; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; +import appeng.api.util.AEPartLocation; import appeng.block.solids.BlockQuartzGlass; import appeng.client.render.BaseBlockRender; +import appeng.client.render.IRenderHelper; import appeng.client.texture.ExtraBlockTextures; import appeng.client.texture.OffsetIcon; import appeng.tile.AEBaseTile; @@ -58,7 +58,7 @@ public class RenderQuartzGlass extends BaseBlockRender } @Override - public void renderInventory( OreQuartz blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( OreQuartz blk, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { super.renderInventory( blk, is, renderer, type, obj ); blk.getRendererInstance().setTemporaryRenderIcon( ExtraBlockTextures.OreQuartzStone.getIcon() ); @@ -48,15 +48,15 @@ public class RenderQuartzOre extends BaseBlockRender } @Override - public boolean renderInWorld( OreQuartz block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( OreQuartz block, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { - OreQuartz blk = (OreQuartz) block; + OreQuartz blk = block; blk.setEnhanceBrightness( true ); - super.renderInWorld( block, world, x, y, z, renderer ); + super.renderInWorld( block, world, pos, renderer ); blk.setEnhanceBrightness( false ); blk.getRendererInstance().setTemporaryRenderIcon( ExtraBlockTextures.OreQuartzStone.getIcon() ); - boolean out = super.renderInWorld( block, world, x, y, z, renderer ); + boolean out = super.renderInWorld( block, world, pos, renderer ); blk.getRendererInstance().setTemporaryRenderIcon( null ); return out; diff --git a/src/main/java/appeng/client/render/blocks/RenderQuartzTorch.java b/src/main/java/appeng/client/render/blocks/RenderQuartzTorch.java index b78a841f..49ebb95c 100644 --- a/src/main/java/appeng/client/render/blocks/RenderQuartzTorch.java +++ b/src/main/java/appeng/client/render/blocks/RenderQuartzTorch.java @@ -21,19 +21,17 @@ package appeng.client.render.blocks; import java.util.EnumSet; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.api.util.IOrientable; import appeng.api.util.IOrientableBlock; import appeng.block.AEBaseBlock; -import appeng.block.misc.BlockQuartzTorch; import appeng.client.render.BaseBlockRender; +import appeng.client.render.IRenderHelper; import appeng.tile.AEBaseTile; @@ -46,10 +44,8 @@ public class RenderQuartzTorch extends BaseBlockRender } @Override - public void renderInventory( AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( AEBaseBlock blk, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { - Tessellator tess = Tessellator.instance; - float Point2 = 6.0f / 16.0f; float Point3 = 7.0f / 16.0f; float Point13 = 10.0f / 16.0f; @@ -67,41 +63,39 @@ public class RenderQuartzTorch extends BaseBlockRender float zOff = 0.0f; renderer.setRenderBounds( Point3 + xOff, renderBottom + yOff, Point3 + zOff, Point12 + xOff, renderTop + yOff, Point12 + zOff ); - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), blk, is, 0xffffff, renderer ); renderer.setRenderBounds( Point3 + xOff, renderTop + yOff, Point3 + zOff, Point3 + singlePixel + xOff, renderTop + singlePixel + yOff, Point3 + singlePixel + zOff ); - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), blk, is, 0xffffff, renderer ); renderer.setRenderBounds( Point12 - singlePixel + xOff, renderBottom - singlePixel + yOff, Point12 - singlePixel + zOff, Point12 + xOff, renderBottom + yOff, Point12 + zOff ); - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), blk, is, 0xffffff, renderer ); - blk.getRendererInstance().setTemporaryRenderIcon( Blocks.hopper.getIcon( 0, 0 ) ); + blk.getRendererInstance().setTemporaryRenderIcon( renderer.getIcon( Blocks.hopper.getDefaultState() )[0] ); renderer.renderAllFaces = true; renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point2 + zOff, Point13 + xOff, top + yOff, Point3 + zOff ); - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), blk, is, 0xffffff, renderer ); renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point12 + zOff, Point13 + xOff, top + yOff, Point13 + zOff ); - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), blk, is, 0xffffff, renderer ); renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point3 + zOff, Point3 + xOff, top + yOff, Point12 + zOff ); - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), blk, is, 0xffffff, renderer ); renderer.setRenderBounds( Point12 + xOff, bottom + yOff, Point3 + zOff, Point13 + xOff, top + yOff, Point12 + zOff ); - this.renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer ); + this.renderInvBlock( EnumSet.allOf( AEPartLocation.class ), blk, is, 0xffffff, renderer ); renderer.renderAllFaces = false; blk.getRendererInstance().setTemporaryRenderIcon( null ); } @Override - public boolean renderInWorld( AEBaseBlock block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( AEBaseBlock blk, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { - BlockQuartzTorch blk = (BlockQuartzTorch) block; - - IOrientable te = ( (IOrientableBlock) block ).getOrientable( world, x, y, z ); + IOrientable te = ( (IOrientableBlock) blk ).getOrientable( world, pos ); float Point2 = 6.0f / 16.0f; float Point3 = 7.0f / 16.0f; @@ -122,87 +116,87 @@ public class RenderQuartzTorch extends BaseBlockRender renderer.renderAllFaces = true; if( te != null ) { - ForgeDirection forward = te.getUp(); - xOff = forward.offsetX * -( 4.0f / 16.0f ); - yOff = forward.offsetY * -( 4.0f / 16.0f ); - zOff = forward.offsetZ * -( 4.0f / 16.0f ); + AEPartLocation forward = AEPartLocation.fromFacing( te.getUp() ); + xOff = forward.xOffset * -( 4.0f / 16.0f ); + yOff = forward.yOffset * -( 4.0f / 16.0f ); + zOff = forward.zOffset * -( 4.0f / 16.0f ); } renderer.setRenderBounds( Point3 + xOff, renderBottom + yOff, Point3 + zOff, Point12 + xOff, renderTop + yOff, Point12 + zOff ); - super.renderInWorld( block, world, x, y, z, renderer ); + super.renderInWorld( blk, world, pos, renderer ); - int r = ( x + y + z ) % 2; + int r = ( pos.getX() + pos.getY() + pos.getZ() ) % 2; if( r == 0 ) { renderer.setRenderBounds( Point3 + xOff, renderTop + yOff, Point3 + zOff, Point3 + singlePixel + xOff, renderTop + singlePixel + yOff, Point3 + singlePixel + zOff ); - super.renderInWorld( block, world, x, y, z, renderer ); + super.renderInWorld( blk, world, pos, renderer ); renderer.setRenderBounds( Point12 - singlePixel + xOff, renderBottom - singlePixel + yOff, Point12 - singlePixel + zOff, Point12 + xOff, renderBottom + yOff, Point12 + zOff ); - super.renderInWorld( block, world, x, y, z, renderer ); + super.renderInWorld( blk, world, pos, renderer ); } else { renderer.setRenderBounds( Point3 + xOff, renderBottom - singlePixel + yOff, Point3 + zOff, Point3 + singlePixel + xOff, renderBottom + yOff, Point3 + singlePixel + zOff ); - super.renderInWorld( block, world, x, y, z, renderer ); + super.renderInWorld( blk, world, pos, renderer ); renderer.setRenderBounds( Point12 - singlePixel + xOff, renderTop + yOff, Point12 - singlePixel + zOff, Point12 + xOff, renderTop + singlePixel + yOff, Point12 + zOff ); - super.renderInWorld( block, world, x, y, z, renderer ); + super.renderInWorld( blk, world, pos, renderer ); } - blk.getRendererInstance().setTemporaryRenderIcon( Blocks.hopper.getIcon( 0, 0 ) ); + blk.getRendererInstance().setTemporaryRenderIcon( renderer.getIcon( Blocks.hopper.getDefaultState() )[0] ); renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point2 + zOff, Point13 + xOff, top + yOff, Point3 + zOff ); - boolean out = renderer.renderStandardBlock( blk, x, y, z ); + boolean out = renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point12 + zOff, Point13 + xOff, top + yOff, Point13 + zOff ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point2 + xOff, bottom + yOff, Point3 + zOff, Point3 + xOff, top + yOff, Point12 + zOff ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point12 + xOff, bottom + yOff, Point3 + zOff, Point13 + xOff, top + yOff, Point12 + zOff ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); if( te != null ) { - ForgeDirection forward = te.getUp(); + AEPartLocation forward = AEPartLocation.fromFacing( te.getUp()); switch( forward ) { case EAST: renderer.setRenderBounds( 0, bottom + yOff, bottom + zOff, Point2 + xOff, top + yOff, top + zOff ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); break; case WEST: renderer.setRenderBounds( Point13 + xOff, bottom + yOff, bottom + zOff, 1.0, top + yOff, top + zOff ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); break; case NORTH: renderer.setRenderBounds( bottom + xOff, bottom + yOff, Point13 + zOff, top + xOff, top + yOff, 1.0 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); break; case SOUTH: renderer.setRenderBounds( bottom + xOff, bottom + yOff, 0, top + xOff, top + yOff, Point2 + zOff ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); break; case UP: renderer.setRenderBounds( Point2, 0, Point2, Point3, bottom + yOff, Point3 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point2, 0, Point12, Point3, bottom + yOff, Point13 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point12, 0, Point2, Point13, bottom + yOff, Point3 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point12, 0, Point12, Point13, bottom + yOff, Point13 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); break; case DOWN: renderer.setRenderBounds( Point2, top + yOff, Point2, Point3, 1.0, Point3 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point2, top + yOff, Point12, Point3, 1.0, Point13 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point12, top + yOff, Point2, Point13, 1.0, Point3 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); renderer.setRenderBounds( Point12, top + yOff, Point12, Point13, 1.0, Point13 ); - renderer.renderStandardBlock( blk, x, y, z ); + renderer.renderStandardBlock( blk, pos ); break; default: } diff --git a/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java b/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java index fc24e6ca..4ca1f950 100644 --- a/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java +++ b/src/main/java/appeng/client/render/blocks/RenderSpatialPylon.java @@ -19,18 +19,18 @@ package appeng.client.render.blocks; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.block.spatial.BlockSpatialPylon; import appeng.client.render.BaseBlockRender; import appeng.client.render.BlockRenderInfo; +import appeng.client.render.IRenderHelper; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.tile.spatial.TileSpatialPylon; @@ -43,7 +43,7 @@ public class RenderSpatialPylon extends BaseBlockRender } @Override - public void renderInventory( BlockTinyTNT block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj ) + public void renderInventory( BlockTinyTNT block, ItemStack is, IRenderHelper renderer, ItemRenderType type, Object[] obj ) { + renderer.setOverrideBlockTexture( new FullIcon( Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture( Blocks.tnt.getDefaultState() )) ); renderer.setRenderBounds( 0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f ); super.renderInventory( block, is, renderer, type, obj ); } @Override - public boolean renderInWorld( BlockTinyTNT imb, IBlockAccess world, int x, int y, int z, RenderBlocks renderer ) + public boolean renderInWorld( BlockTinyTNT imb, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) { + renderer.setOverrideBlockTexture( new FullIcon( Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture( Blocks.tnt.getDefaultState() )) ); renderer.renderAllFaces = true; renderer.setRenderBounds( 0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f ); - boolean out = super.renderInWorld( imb, world, x, y, z, renderer ); + boolean out = super.renderInWorld( imb, world, pos, renderer ); renderer.renderAllFaces = false; return out; } diff --git a/src/main/java/appeng/client/render/blocks/RendererCableBus.java b/src/main/java/appeng/client/render/blocks/RendererCableBus.java index 99a45d08..3cca03ae 100644 --- a/src/main/java/appeng/client/render/blocks/RendererCableBus.java +++ b/src/main/java/appeng/client/render/blocks/RendererCableBus.java @@ -19,18 +19,30 @@ package appeng.client.render.blocks; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; import net.minecraftforge.client.IItemRenderer.ItemRenderType; - +import appeng.api.parts.IFacadePart; +import appeng.api.parts.IPart; +import appeng.api.parts.IPartItem; +import appeng.api.util.AEPartLocation; import appeng.block.networking.BlockCableBus; +import appeng.client.ClientHelper; import appeng.client.render.BaseBlockRender; import appeng.client.render.BusRenderHelper; import appeng.client.render.BusRenderer; +import appeng.client.render.IRenderHelper; +import appeng.facade.IFacadeItem; import appeng.tile.AEBaseTile; import appeng.tile.networking.TileCableBus; +import appeng.util.Platform; public class RendererCableBus extends BaseBlockRender @@ -42,22 +54,81 @@ public class RendererCableBus extends BaseBlockRender RENDER_PART = new HashMap(); + + @Override + public boolean renderInWorld( BlockCableBus block, IBlockAccess world, BlockPos pos, IRenderHelper renderer ) + { + AEBaseTile t = block.getTileEntity( world, pos ); if( t instanceof TileCableBus ) { + BusRenderer.INSTANCE.renderer = renderer; // post data to this... BusRenderer.INSTANCE.renderer.renderAllFaces = true; BusRenderer.INSTANCE.renderer.blockAccess = renderer.blockAccess; BusRenderer.INSTANCE.renderer.overrideBlockTexture = renderer.overrideBlockTexture; - ( (TileCableBus) t ).cb.renderStatic( x, y, z ); + ( (TileCableBus) t ).cb.renderStatic(); BusRenderer.INSTANCE.renderer.renderAllFaces = false; } @@ -65,12 +136,12 @@ public class RendererCableBus extends BaseBlockRender 4.0 ) { diff --git a/src/main/java/appeng/client/render/effects/CraftingFx.java b/src/main/java/appeng/client/render/effects/CraftingFx.java index 4172dba1..7d370301 100644 --- a/src/main/java/appeng/client/render/effects/CraftingFx.java +++ b/src/main/java/appeng/client/render/effects/CraftingFx.java @@ -20,16 +20,15 @@ package appeng.client.render.effects; import net.minecraft.client.particle.EntityBreakingFX; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.entity.Entity; import net.minecraft.item.Item; -import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.api.util.AEPartLocation; import appeng.client.texture.ExtraBlockTextures; @@ -37,7 +36,7 @@ import appeng.client.texture.ExtraBlockTextures; public class CraftingFx extends EntityBreakingFX { - private final IIcon particleTextureIndex; + private final TextureAtlasSprite particleTextureIndex; private final int startBlkX; private final int startBlkY; @@ -52,7 +51,7 @@ public class CraftingFx extends EntityBreakingFX this.particleRed = 1; this.particleAlpha = 1.3f; this.particleScale = 1.5f; - this.particleTextureIndex = ExtraBlockTextures.BlockEnergyParticle.getIcon(); + this.particleTextureIndex = ExtraBlockTextures.BlockEnergyParticle.getIcon().getAtlas(); this.particleMaxAge /= 1.2; this.startBlkX = MathHelper.floor_double( this.posX ); @@ -69,8 +68,8 @@ public class CraftingFx extends EntityBreakingFX } @Override - public void renderParticle( Tessellator par1Tessellator, float partialTick, float x, float y, float z, float rx, float rz ) - { + public void func_180434_a(WorldRenderer par1Tessellator, Entity p_180434_2_, float partialTick, float x, float y, float z, float rx, float rz) + { if( partialTick < 0 || partialTick > 1 ) { return; @@ -105,11 +104,11 @@ public class CraftingFx extends EntityBreakingFX } } - public void fromItem( ForgeDirection d ) + public void fromItem( AEPartLocation d ) { - this.posX += 0.2 * d.offsetX; - this.posY += 0.2 * d.offsetY; - this.posZ += 0.2 * d.offsetZ; + this.posX += 0.2 * d.xOffset; + this.posY += 0.2 * d.yOffset; + this.posZ += 0.2 * d.zOffset; this.particleScale *= 0.8f; } diff --git a/src/main/java/appeng/client/render/effects/EnergyFx.java b/src/main/java/appeng/client/render/effects/EnergyFx.java index 94ed79d7..5dd00895 100644 --- a/src/main/java/appeng/client/render/effects/EnergyFx.java +++ b/src/main/java/appeng/client/render/effects/EnergyFx.java @@ -20,16 +20,15 @@ package appeng.client.render.effects; import net.minecraft.client.particle.EntityBreakingFX; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.entity.Entity; import net.minecraft.item.Item; -import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.api.util.AEPartLocation; import appeng.client.texture.ExtraBlockTextures; @@ -37,7 +36,7 @@ import appeng.client.texture.ExtraBlockTextures; public class EnergyFx extends EntityBreakingFX { - private final IIcon particleTextureIndex; + private final TextureAtlasSprite particleTextureIndex; private final int startBlkX; private final int startBlkY; @@ -52,7 +51,7 @@ public class EnergyFx extends EntityBreakingFX this.particleRed = 255; this.particleAlpha = 1.4f; this.particleScale = 3.5f; - this.particleTextureIndex = ExtraBlockTextures.BlockEnergyParticle.getIcon(); + this.particleTextureIndex = ExtraBlockTextures.BlockEnergyParticle.getIcon().getAtlas(); this.startBlkX = MathHelper.floor_double( this.posX ); this.startBlkY = MathHelper.floor_double( this.posY ); @@ -68,8 +67,8 @@ public class EnergyFx extends EntityBreakingFX } @Override - public void renderParticle( Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7 ) - { + public void func_180434_a(WorldRenderer par1Tessellator, Entity p_180434_2_, float par2, float par3, float par4, float par5, float par6, float par7) + { float f6 = this.particleTextureIndex.getMinU(); float f7 = this.particleTextureIndex.getMaxU(); float f8 = this.particleTextureIndex.getMinV(); @@ -95,11 +94,11 @@ public class EnergyFx extends EntityBreakingFX } } - public void fromItem( ForgeDirection d ) + public void fromItem( AEPartLocation d ) { - this.posX += 0.2 * d.offsetX; - this.posY += 0.2 * d.offsetY; - this.posZ += 0.2 * d.offsetZ; + this.posX += 0.2 * d.xOffset; + this.posY += 0.2 * d.yOffset; + this.posZ += 0.2 * d.zOffset; this.particleScale *= 0.8f; } diff --git a/src/main/java/appeng/client/render/effects/LightningFX.java b/src/main/java/appeng/client/render/effects/LightningFX.java index 7ac2ef3c..cc0c2532 100644 --- a/src/main/java/appeng/client/render/effects/LightningFX.java +++ b/src/main/java/appeng/client/render/effects/LightningFX.java @@ -23,7 +23,8 @@ import java.util.Random; import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.MathHelper; import net.minecraft.world.World; @@ -83,8 +84,8 @@ public class LightningFX extends EntityFX } @Override - public void renderParticle( Tessellator tess, float l, float rX, float rY, float rZ, float rYZ, float rXY ) - { + public void func_180434_a(WorldRenderer tess, Entity p_180434_2_, float l, float rX, float rY, float rZ, float rYZ, float rXY ) + { float j = 1.0f; tess.setColorRGBA_F( this.particleRed * j * 0.9f, this.particleGreen * j * 0.95f, this.particleBlue * j, this.particleAlpha ); if( this.particleAge == 3 ) @@ -201,7 +202,7 @@ public class LightningFX extends EntityFX this.hasData = false; } - private void draw( Tessellator tess, double[] a, double[] b, double f6, double f8 ) + private void draw( WorldRenderer tess, double[] a, double[] b, double f6, double f8 ) { if( this.hasData ) { diff --git a/src/main/java/appeng/client/render/effects/MatterCannonFX.java b/src/main/java/appeng/client/render/effects/MatterCannonFX.java index 7efaae48..e417ccdc 100644 --- a/src/main/java/appeng/client/render/effects/MatterCannonFX.java +++ b/src/main/java/appeng/client/render/effects/MatterCannonFX.java @@ -20,19 +20,19 @@ package appeng.client.render.effects; import net.minecraft.client.particle.EntityBreakingFX; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.entity.Entity; import net.minecraft.item.Item; -import net.minecraft.util.IIcon; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.client.texture.ExtraBlockTextures; public class MatterCannonFX extends EntityBreakingFX { - private final IIcon particleTextureIndex; + private final TextureAtlasSprite particleTextureIndex; public MatterCannonFX( World par1World, double par2, double par4, double par6, Item par8Item ) { @@ -46,11 +46,11 @@ public class MatterCannonFX extends EntityBreakingFX this.motionX = 0.0f; this.motionY = 0.0f; this.motionZ = 0.0f; - this.particleTextureIndex = ExtraBlockTextures.BlockMatterCannonParticle.getIcon(); + this.particleTextureIndex = ExtraBlockTextures.BlockMatterCannonParticle.getIcon().getAtlas(); this.noClip = true; } - public void fromItem( ForgeDirection d ) + public void fromItem( AEPartLocation d ) { this.particleScale *= 1.2f; } @@ -70,8 +70,8 @@ public class MatterCannonFX extends EntityBreakingFX } @Override - public void renderParticle( Tessellator par1Tessellator, float par2, float par3, float par4, float par5, float par6, float par7 ) - { + public void func_180434_a(WorldRenderer par1Tessellator, Entity p_180434_2_, float par2, float par3, float par4, float par5, float par6, float par7 ) + { float f6 = this.particleTextureIndex.getMinU(); float f7 = this.particleTextureIndex.getMaxU(); float f8 = this.particleTextureIndex.getMinV(); diff --git a/src/main/java/appeng/client/render/effects/VibrantFX.java b/src/main/java/appeng/client/render/effects/VibrantFX.java index 5a94a3c5..b325a9bf 100644 --- a/src/main/java/appeng/client/render/effects/VibrantFX.java +++ b/src/main/java/appeng/client/render/effects/VibrantFX.java @@ -21,9 +21,8 @@ package appeng.client.render.effects; import net.minecraft.client.particle.EntityFX; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly( Side.CLIENT ) diff --git a/src/main/java/appeng/client/render/items/ItemEncodedPatternRenderer.java b/src/main/java/appeng/client/render/items/ItemEncodedPatternRenderer.java deleted file mode 100644 index 640a71cb..00000000 --- a/src/main/java/appeng/client/render/items/ItemEncodedPatternRenderer.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.client.render.items; - - -import org.lwjgl.input.Keyboard; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -import appeng.items.misc.ItemEncodedPattern; - - -public class ItemEncodedPatternRenderer implements IItemRenderer -{ - - final RenderItem ri = new RenderItem(); - boolean recursive; - - @Override - public boolean handleRenderType( ItemStack item, ItemRenderType type ) - { - boolean isShiftHeld = Keyboard.isKeyDown( Keyboard.KEY_LSHIFT ) || Keyboard.isKeyDown( Keyboard.KEY_RSHIFT ); - - if( !this.recursive && type == IItemRenderer.ItemRenderType.INVENTORY && isShiftHeld ) - { - ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem(); - if( iep.getOutput( item ) != null ) - { - return true; - } - } - - return false; - } - - @Override - public boolean shouldUseRenderHelper( ItemRenderType type, ItemStack item, ItemRendererHelper helper ) - { - return false; - } - - @Override - public void renderItem( ItemRenderType type, ItemStack item, Object... data ) - { - this.recursive = true; - - ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem(); - - ItemStack is = iep.getOutput( item ); - Minecraft mc = Minecraft.getMinecraft(); - - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); - RenderHelper.enableGUIStandardItemLighting(); - this.ri.renderItemAndEffectIntoGUI( mc.fontRenderer, mc.getTextureManager(), is, 0, 0 ); - RenderHelper.disableStandardItemLighting(); - GL11.glPopAttrib(); - - this.recursive = false; - } -} diff --git a/src/main/java/appeng/client/render/items/PaintBallRender.java b/src/main/java/appeng/client/render/items/PaintBallRender.java deleted file mode 100644 index 4376561c..00000000 --- a/src/main/java/appeng/client/render/items/PaintBallRender.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.client.render.items; - - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraftforge.client.IItemRenderer; - -import appeng.api.util.AEColor; -import appeng.client.texture.ExtraItemTextures; -import appeng.items.misc.ItemPaintBall; - - -public class PaintBallRender implements IItemRenderer -{ - - @Override - public boolean handleRenderType( ItemStack item, ItemRenderType type ) - { - return true; - } - - @Override - public boolean shouldUseRenderHelper( ItemRenderType type, ItemStack item, ItemRendererHelper helper ) - { - return helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION; - } - - @Override - public void renderItem( ItemRenderType type, ItemStack item, Object... data ) - { - IIcon par2Icon = item.getIconIndex(); - if( item.getItemDamage() >= 20 ) - { - par2Icon = ExtraItemTextures.ItemPaintBallShimmer.getIcon(); - } - - float f4 = par2Icon.getMinU(); - float f5 = par2Icon.getMaxU(); - float f6 = par2Icon.getMinV(); - float f7 = par2Icon.getMaxV(); - float f12 = 0.0625F; - - ItemPaintBall ipb = (ItemPaintBall) item.getItem(); - - Tessellator tessellator = Tessellator.instance; - GL11.glPushMatrix(); - GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); - - AEColor col = ipb.getColor( item ); - - int colorValue = item.getItemDamage() >= 20 ? col.mediumVariant : col.mediumVariant; - int r = ( colorValue >> 16 ) & 0xff; - int g = ( colorValue >> 8 ) & 0xff; - int b = ( colorValue ) & 0xff; - - int full = (int) ( 255 * 0.3 ); - float fail = 0.7f; - - if( item.getItemDamage() >= 20 ) - { - GL11.glColor4ub( (byte) ( full + r * fail ), (byte) ( full + g * fail ), (byte) ( full + b * fail ), (byte) 255 ); - } - else - { - GL11.glColor4ub( (byte) r, (byte) g, (byte) b, (byte) 255 ); - } - - if( type == ItemRenderType.INVENTORY ) - { - GL11.glScalef( 16F, 16F, 10F ); - GL11.glTranslatef( 0.0F, 1.0F, 0.0F ); - GL11.glRotatef( 180F, 1.0F, 0.0F, 0.0F ); - GL11.glEnable( GL11.GL_ALPHA_TEST ); - - tessellator.startDrawingQuads(); - tessellator.setNormal( 0.0F, 1.0F, 0.0F ); - tessellator.addVertexWithUV( 0, 0, 0, f4, f7 ); - tessellator.addVertexWithUV( 1, 0, 0, f5, f7 ); - tessellator.addVertexWithUV( 1, 1, 0, f5, f6 ); - tessellator.addVertexWithUV( 0, 1, 0, f4, f6 ); - tessellator.draw(); - } - else - { - if( type == ItemRenderType.EQUIPPED_FIRST_PERSON ) - { - GL11.glTranslatef( 0.0F, 0.0F, 0.0F ); - } - else - { - GL11.glTranslatef( -0.5F, -0.3F, 0.01F ); - } - ItemRenderer.renderItemIn2D( tessellator, f5, f6, f4, f7, par2Icon.getIconWidth(), par2Icon.getIconHeight(), f12 ); - - GL11.glDisable( GL11.GL_CULL_FACE ); - GL11.glColor4f( 1, 1, 1, 1.0F ); - GL11.glScalef( 1F, 1.1F, 1F ); - GL11.glTranslatef( 0.0F, 1.07F, f12 / -2.0f ); - GL11.glRotatef( 180F, 1.0F, 0.0F, 0.0F ); - } - - GL11.glColor4f( 1, 1, 1, 1.0F ); - - GL11.glPopAttrib(); - GL11.glPopMatrix(); - } -} diff --git a/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java b/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java index d2203ae8..8e4278e7 100644 --- a/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java +++ b/src/main/java/appeng/client/render/items/ToolBiometricCardRender.java @@ -19,22 +19,11 @@ package appeng.client.render.items; -import com.mojang.authlib.GameProfile; - -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; import net.minecraftforge.client.IItemRenderer; -import appeng.api.implementations.items.IBiometricCard; -import appeng.api.util.AEColor; -import appeng.client.texture.ExtraItemTextures; - -public class ToolBiometricCardRender implements IItemRenderer +public class ToolBiometricCardRender implements IItemRenderer // TileEntityItemStackRenderer { @Override @@ -52,7 +41,8 @@ public class ToolBiometricCardRender implements IItemRenderer @Override public void renderItem( ItemRenderType type, ItemStack item, Object... data ) { - IIcon par2Icon = item.getIconIndex(); + /* + TextureAtlasSprite par2Icon = item.getIconIndex(); float f4 = par2Icon.getMinU(); float f5 = par2Icon.getMaxU(); @@ -154,5 +144,6 @@ public class ToolBiometricCardRender implements IItemRenderer GL11.glPopAttrib(); GL11.glPopMatrix(); + */ } } diff --git a/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java b/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java index 17c1baee..dbe00a6c 100644 --- a/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java +++ b/src/main/java/appeng/client/render/items/ToolColorApplicatorRender.java @@ -19,18 +19,9 @@ package appeng.client.render.items; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.ItemRenderer; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; import net.minecraftforge.client.IItemRenderer; -import appeng.api.util.AEColor; -import appeng.client.texture.ExtraItemTextures; -import appeng.items.tools.powered.ToolColorApplicator; - public class ToolColorApplicatorRender implements IItemRenderer { @@ -50,7 +41,8 @@ public class ToolColorApplicatorRender implements IItemRenderer @Override public void renderItem( ItemRenderType type, ItemStack item, Object... data ) { - IIcon par2Icon = item.getIconIndex(); + /* + TextureAtlasSprite par2Icon = item.getIconIndex(); float f4 = par2Icon.getMinU(); float f5 = par2Icon.getMaxU(); @@ -101,9 +93,9 @@ public class ToolColorApplicatorRender implements IItemRenderer GL11.glRotatef( 180F, 1.0F, 0.0F, 0.0F ); } - IIcon dark = ExtraItemTextures.ToolColorApplicatorTip_Dark.getIcon(); - IIcon med = ExtraItemTextures.ToolColorApplicatorTip_Medium.getIcon(); - IIcon light = ExtraItemTextures.ToolColorApplicatorTip_Light.getIcon(); + TextureAtlasSprite dark = ExtraItemTextures.ToolColorApplicatorTip_Dark.getIcon(); + TextureAtlasSprite med = ExtraItemTextures.ToolColorApplicatorTip_Medium.getIcon(); + TextureAtlasSprite light = ExtraItemTextures.ToolColorApplicatorTip_Light.getIcon(); GL11.glScalef( 1F / 16F, 1F / 16F, 1F ); if( type != ItemRenderType.INVENTORY ) @@ -158,5 +150,6 @@ public class ToolColorApplicatorRender implements IItemRenderer GL11.glPopAttrib(); GL11.glPopMatrix(); + */ } } diff --git a/src/main/java/appeng/client/texture/BaseIcon.java b/src/main/java/appeng/client/texture/BaseIcon.java new file mode 100644 index 00000000..c90f93fb --- /dev/null +++ b/src/main/java/appeng/client/texture/BaseIcon.java @@ -0,0 +1,76 @@ +package appeng.client.texture; + +import net.minecraft.client.renderer.texture.TextureAtlasSprite; + +public class BaseIcon implements IAESprite +{ + final private TextureAtlasSprite spite; + + public BaseIcon( TextureAtlasSprite src ) + { + spite = src; + } + + @Override + public int getIconWidth() + { + return spite.getIconWidth(); + } + + @Override + public int getIconHeight() + { + return spite.getIconHeight(); + } + + @Override + public float getMaxU() + { + return spite.getMaxU(); + } + + @Override + public float getInterpolatedU( + double px ) + { + return spite.getInterpolatedU( px ); + } + + @Override + public float getMinV() + { + return spite.getMinV(); + } + + @Override + public float getMaxV() + { + return spite.getMaxV(); + } + + @Override + public String getIconName() + { + return spite.getIconName(); + } + + @Override + public float getInterpolatedV( + double px ) + { + return spite.getInterpolatedV( px ); + } + + @Override + public float getMinU() + { + return spite.getMinU(); + } + + @Override + public TextureAtlasSprite getAtlas() + { + return spite; + } + +} diff --git a/src/main/java/appeng/client/texture/CableBusTextures.java b/src/main/java/appeng/client/texture/CableBusTextures.java index 33961702..117393b3 100644 --- a/src/main/java/appeng/client/texture/CableBusTextures.java +++ b/src/main/java/appeng/client/texture/CableBusTextures.java @@ -20,12 +20,12 @@ package appeng.client.texture; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.core.AppEng; public enum CableBusTextures @@ -78,7 +78,7 @@ public enum CableBusTextures PartWirelessSides( "PartWirelessSides" ), PartStorageSides( "PartStorageSides" ), PartStorageBack( "PartStorageBack" ); private final String name; - public IIcon IIcon; + public IAESprite IIcon; CableBusTextures( String name ) { @@ -91,7 +91,7 @@ public enum CableBusTextures } @SideOnly( Side.CLIENT ) - public static IIcon getMissing() + public static TextureAtlasSprite getMissing() { return ( (TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture( TextureMap.locationBlocksTexture ) ).getAtlasSprite( "missingno" ); } @@ -101,13 +101,13 @@ public enum CableBusTextures return this.name; } - public IIcon getIcon() + public IAESprite getIcon() { return this.IIcon; } public void registerIcon( TextureMap map ) { - this.IIcon = map.registerIcon( "appliedenergistics2:" + this.name ); + IIcon = new BaseIcon( map.registerSprite( new ResourceLocation( AppEng.MOD_ID, "blocks/" + name ) ) ); } } diff --git a/src/main/java/appeng/client/texture/ExtraBlockTextures.java b/src/main/java/appeng/client/texture/ExtraBlockTextures.java index 066267f8..a45da106 100644 --- a/src/main/java/appeng/client/texture/ExtraBlockTextures.java +++ b/src/main/java/appeng/client/texture/ExtraBlockTextures.java @@ -21,11 +21,10 @@ package appeng.client.texture; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.core.AppEng; public enum ExtraBlockTextures @@ -89,7 +88,7 @@ public enum ExtraBlockTextures BlockPaint2( "BlockPaint2" ), BlockPaint3( "BlockPaint3" ); private final String name; - public IIcon IIcon; + public IAESprite IIcon; ExtraBlockTextures( String name ) { @@ -102,9 +101,9 @@ public enum ExtraBlockTextures } @SideOnly( Side.CLIENT ) - public static IIcon getMissing() + public static IAESprite getMissing() { - return ( (TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture( TextureMap.locationBlocksTexture ) ).getAtlasSprite( "missingno" ); + return new BaseIcon( ( (TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture( TextureMap.locationBlocksTexture ) ).getAtlasSprite( "missingno" ) ); } public String getName() @@ -112,13 +111,13 @@ public enum ExtraBlockTextures return this.name; } - public IIcon getIcon() + public IAESprite getIcon() { return this.IIcon; } public void registerIcon( TextureMap map ) { - this.IIcon = map.registerIcon( "appliedenergistics2:" + this.name ); + IIcon = new BaseIcon( map.registerSprite( new ResourceLocation( AppEng.MOD_ID, "blocks/" + name ) ) ); } } diff --git a/src/main/java/appeng/client/texture/ExtraItemTextures.java b/src/main/java/appeng/client/texture/ExtraItemTextures.java index 8c2cd3d8..982830b9 100644 --- a/src/main/java/appeng/client/texture/ExtraItemTextures.java +++ b/src/main/java/appeng/client/texture/ExtraItemTextures.java @@ -19,13 +19,9 @@ package appeng.client.texture; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import appeng.core.AppEng; public enum ExtraItemTextures @@ -39,7 +35,7 @@ public enum ExtraItemTextures ToolColorApplicatorTip_Light( "ToolColorApplicatorTip_Light" ); private final String name; - public IIcon IIcon; + public IAESprite IIcon; ExtraItemTextures( String name ) { @@ -51,24 +47,18 @@ public enum ExtraItemTextures return new ResourceLocation( "appliedenergistics2", "textures/" + string ); } - @SideOnly( Side.CLIENT ) - public static IIcon getMissing() - { - return ( (TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture( TextureMap.locationItemsTexture ) ).getAtlasSprite( "missingno" ); - } - public String getName() { return this.name; } - public IIcon getIcon() + public IAESprite getIcon() { return this.IIcon; } public void registerIcon( TextureMap map ) { - this.IIcon = map.registerIcon( "appliedenergistics2:" + this.name ); + IIcon = new BaseIcon( map.registerSprite( new ResourceLocation( AppEng.MOD_ID, "items/" + name ) ) ); } } diff --git a/src/main/java/appeng/client/texture/FlippableIcon.java b/src/main/java/appeng/client/texture/FlippableIcon.java index 1db6e69f..2fc94aea 100644 --- a/src/main/java/appeng/client/texture/FlippableIcon.java +++ b/src/main/java/appeng/client/texture/FlippableIcon.java @@ -18,24 +18,25 @@ package appeng.client.texture; - -import net.minecraft.util.IIcon; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; -public class FlippableIcon implements IIcon +public class FlippableIcon implements IAESprite { - protected IIcon original; + protected IAESprite original; boolean flip_u; boolean flip_v; - public FlippableIcon( IIcon o ) - { - if( o == null ) - { - throw new IllegalArgumentException( "Cannot create a wrapper icon with a null icon." ); - } + @Override + public TextureAtlasSprite getAtlas() + { + return original.getAtlas(); + } + + public FlippableIcon( IAESprite o ) + { this.original = o; this.flip_u = false; this.flip_v = false; @@ -119,7 +120,7 @@ public class FlippableIcon implements IIcon return this.original.getIconName(); } - public IIcon getOriginal() + public IAESprite getOriginal() { return this.original; } diff --git a/src/main/java/appeng/client/texture/FullIcon.java b/src/main/java/appeng/client/texture/FullIcon.java index 272a76ae..6cb3fa53 100644 --- a/src/main/java/appeng/client/texture/FullIcon.java +++ b/src/main/java/appeng/client/texture/FullIcon.java @@ -19,18 +19,17 @@ package appeng.client.texture; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -public class FullIcon implements IIcon +public class FullIcon implements IAESprite { - private final IIcon p; + private final TextureAtlasSprite p; - public FullIcon( IIcon o ) + public FullIcon( TextureAtlasSprite o ) { if( o == null ) { @@ -40,6 +39,12 @@ public class FullIcon implements IIcon this.p = o; } + @Override + public TextureAtlasSprite getAtlas() + { + return p; + } + @Override public int getIconWidth() { diff --git a/src/main/java/appeng/client/texture/IAESprite.java b/src/main/java/appeng/client/texture/IAESprite.java new file mode 100644 index 00000000..9b19a448 --- /dev/null +++ b/src/main/java/appeng/client/texture/IAESprite.java @@ -0,0 +1,30 @@ +package appeng.client.texture; + +import net.minecraft.client.renderer.texture.TextureAtlasSprite; + +public interface IAESprite +{ + + int getIconWidth(); + + int getIconHeight(); + + float getMaxU(); + + float getInterpolatedU( + double px ); + + float getMinV(); + + float getMaxV(); + + String getIconName(); + + float getInterpolatedV( + double px ); + + float getMinU(); + + TextureAtlasSprite getAtlas(); + +} diff --git a/src/main/java/appeng/client/texture/MissingIcon.java b/src/main/java/appeng/client/texture/MissingIcon.java index 3b8541e8..c0bfd2f2 100644 --- a/src/main/java/appeng/client/texture/MissingIcon.java +++ b/src/main/java/appeng/client/texture/MissingIcon.java @@ -21,21 +21,18 @@ package appeng.client.texture; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -public class MissingIcon implements IIcon +public class MissingIcon implements IAESprite { - - final boolean isBlock; - + TextureAtlasSprite missing; + public MissingIcon( Object forWhat ) { - this.isBlock = forWhat instanceof Block; } @Override @@ -45,11 +42,17 @@ public class MissingIcon implements IIcon } @SideOnly( Side.CLIENT ) - public IIcon getMissing() + public static TextureAtlasSprite getMissing() { - return ( (TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture( this.isBlock ? TextureMap.locationBlocksTexture : TextureMap.locationItemsTexture ) ).getAtlasSprite( "missingno" ); + return ( (TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture( TextureMap.locationBlocksTexture ) ).getAtlasSprite( "missingno" ); } + @Override + public TextureAtlasSprite getAtlas() + { + return getMissing(); + } + @Override public int getIconHeight() { diff --git a/src/main/java/appeng/client/texture/OffsetIcon.java b/src/main/java/appeng/client/texture/OffsetIcon.java index 33bb066b..e25719b1 100644 --- a/src/main/java/appeng/client/texture/OffsetIcon.java +++ b/src/main/java/appeng/client/texture/OffsetIcon.java @@ -19,28 +19,27 @@ package appeng.client.texture; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -public class OffsetIcon implements IIcon +public class OffsetIcon implements IAESprite { final float offsetX; final float offsetY; - private final IIcon p; + private final IAESprite p; - public OffsetIcon( IIcon o, float x, float y ) + public OffsetIcon( IAESprite iIcon, float x, float y ) { - if( o == null ) + if( iIcon == null ) { throw new IllegalArgumentException( "Cannot create a wrapper icon with a null icon." ); } - this.p = o; + this.p = iIcon; this.offsetX = x; this.offsetY = y; } @@ -115,4 +114,10 @@ public class OffsetIcon implements IIcon { return this.p.getInterpolatedU( Math.min( 16.0, Math.max( 0.0, d ) ) ); } + + @Override + public TextureAtlasSprite getAtlas() + { + return p.getAtlas(); + } } diff --git a/src/main/java/appeng/client/texture/TaughtIcon.java b/src/main/java/appeng/client/texture/TaughtIcon.java index 12699c34..26be277e 100644 --- a/src/main/java/appeng/client/texture/TaughtIcon.java +++ b/src/main/java/appeng/client/texture/TaughtIcon.java @@ -19,27 +19,32 @@ package appeng.client.texture; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -public class TaughtIcon implements IIcon +public class TaughtIcon implements IAESprite { final float tightness; - private final IIcon icon; + private final IAESprite icon; - public TaughtIcon( IIcon icon, float tightness ) + @Override + public TextureAtlasSprite getAtlas() { - if( icon == null ) + return icon.getAtlas(); + } + + public TaughtIcon( IAESprite iIcon, float tightness ) + { + if( iIcon == null ) { throw new IllegalArgumentException( "Cannot create a wrapper icon with a null icon." ); } - this.icon = icon; + this.icon = iIcon; this.tightness = tightness * 0.4f; } diff --git a/src/main/java/appeng/client/texture/TmpFlippableIcon.java b/src/main/java/appeng/client/texture/TmpFlippableIcon.java index ca789dc9..68f28a34 100644 --- a/src/main/java/appeng/client/texture/TmpFlippableIcon.java +++ b/src/main/java/appeng/client/texture/TmpFlippableIcon.java @@ -19,21 +19,17 @@ package appeng.client.texture; -import net.minecraft.init.Blocks; -import net.minecraft.util.IIcon; public class TmpFlippableIcon extends FlippableIcon { - - private static final IIcon NULL_ICON = new MissingIcon( Blocks.diamond_block ); - + public TmpFlippableIcon() { - super( NULL_ICON ); + super( null ); } - public void setOriginal( IIcon i ) + public void setOriginal( IAESprite i ) { this.setFlip( false, false ); @@ -55,7 +51,7 @@ public class TmpFlippableIcon extends FlippableIcon if( i == null ) { - this.original = NULL_ICON; + this.original = null; } else { diff --git a/src/main/java/appeng/container/AEBaseContainer.java b/src/main/java/appeng/container/AEBaseContainer.java index 8e156cd2..bb0469ff 100644 --- a/src/main/java/appeng/container/AEBaseContainer.java +++ b/src/main/java/appeng/container/AEBaseContainer.java @@ -40,8 +40,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.SecurityPermissions; @@ -865,7 +864,7 @@ public abstract class AEBaseContainer extends Container ais.setStackSize( myItem.getMaxStackSize() ); - InventoryAdaptor adp = InventoryAdaptor.getAdaptor( player, ForgeDirection.UNKNOWN ); + InventoryAdaptor adp = InventoryAdaptor.getAdaptor( player, EnumFacing.UP ); myItem.stackSize = (int) ais.getStackSize(); myItem = adp.simulateAdd( myItem ); @@ -1073,7 +1072,7 @@ public abstract class AEBaseContainer extends Container ais.setStackSize( myItem.getMaxStackSize() ); - InventoryAdaptor adp = InventoryAdaptor.getAdaptor( player, ForgeDirection.UNKNOWN ); + InventoryAdaptor adp = InventoryAdaptor.getAdaptor( player, EnumFacing.UP ); myItem.stackSize = (int) ais.getStackSize(); myItem = adp.simulateAdd( myItem ); diff --git a/src/main/java/appeng/container/ContainerOpenContext.java b/src/main/java/appeng/container/ContainerOpenContext.java index 0380132b..01438b6d 100644 --- a/src/main/java/appeng/container/ContainerOpenContext.java +++ b/src/main/java/appeng/container/ContainerOpenContext.java @@ -20,10 +20,10 @@ package appeng.container; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.parts.IPart; +import appeng.api.util.AEPartLocation; public class ContainerOpenContext @@ -34,7 +34,7 @@ public class ContainerOpenContext public int x; public int y; public int z; - public ForgeDirection side; + public AEPartLocation side; public ContainerOpenContext( Object myItem ) { @@ -48,6 +48,6 @@ public class ContainerOpenContext { return null; } - return this.w.getTileEntity( this.x, this.y, this.z ); + return this.w.getTileEntity( new BlockPos( x,y,z) ); } } diff --git a/src/main/java/appeng/container/guisync/SyncData.java b/src/main/java/appeng/container/guisync/SyncData.java index dca07d0d..fdac2312 100644 --- a/src/main/java/appeng/container/guisync/SyncData.java +++ b/src/main/java/appeng/container/guisync/SyncData.java @@ -25,7 +25,6 @@ import java.util.EnumSet; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.ICrafting; - import appeng.container.AEBaseContainer; import appeng.core.AELog; import appeng.core.sync.network.NetworkHandler; diff --git a/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java b/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java index f90a5422..ea3675e7 100644 --- a/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java +++ b/src/main/java/appeng/container/implementations/ContainerCellWorkbench.java @@ -27,7 +27,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - +import net.minecraft.util.IChatComponent; import appeng.api.AEApi; import appeng.api.config.CopyMode; import appeng.api.config.FuzzyMode; @@ -147,7 +147,7 @@ public class ContainerCellWorkbench extends ContainerUpgradeable ItemStack is = this.workBench.getInventoryByName( "cell" ).getStackInSlot( 0 ); if( Platform.isServer() ) { - if( this.workBench.getWorldObj().getTileEntity( this.workBench.xCoord, this.workBench.yCoord, this.workBench.zCoord ) != this.workBench ) + if( this.workBench.getWorld().getTileEntity( this.workBench.getPos() ) != this.workBench ) { this.isContainerValid = false; } @@ -295,13 +295,13 @@ public class ContainerCellWorkbench extends ContainerUpgradeable } @Override - public String getInventoryName() + public String getName() { return "Upgrades"; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -325,13 +325,17 @@ public class ContainerCellWorkbench extends ContainerUpgradeable } @Override - public void openInventory() + public void openInventory( + EntityPlayer player ) { + } - + @Override - public void closeInventory() + public void closeInventory( + EntityPlayer player ) { + } @Override @@ -339,5 +343,38 @@ public class ContainerCellWorkbench extends ContainerUpgradeable { return ContainerCellWorkbench.this.getCellUpgradeInventory().isItemValidForSlot( i, itemstack ); } + + @Override + public IChatComponent getDisplayName() + { + return null; + } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + ContainerCellWorkbench.this.getCellUpgradeInventory().clear(); + } } } diff --git a/src/main/java/appeng/container/implementations/ContainerChest.java b/src/main/java/appeng/container/implementations/ContainerChest.java index 0100f98f..0f43537c 100644 --- a/src/main/java/appeng/container/implementations/ContainerChest.java +++ b/src/main/java/appeng/container/implementations/ContainerChest.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.container.AEBaseContainer; import appeng.container.slot.SlotRestrictedInput; import appeng.tile.storage.TileChest; diff --git a/src/main/java/appeng/container/implementations/ContainerCondenser.java b/src/main/java/appeng/container/implementations/ContainerCondenser.java index 94146223..c60e3461 100644 --- a/src/main/java/appeng/container/implementations/ContainerCondenser.java +++ b/src/main/java/appeng/container/implementations/ContainerCondenser.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.config.CondenserOutput; import appeng.api.config.Settings; import appeng.container.AEBaseContainer; diff --git a/src/main/java/appeng/container/implementations/ContainerCraftAmount.java b/src/main/java/appeng/container/implementations/ContainerCraftAmount.java index ed512352..2adfd7c9 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftAmount.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftAmount.java @@ -22,7 +22,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.world.World; - import appeng.api.config.SecurityPermissions; import appeng.api.networking.IGrid; import appeng.api.networking.security.BaseActionSource; diff --git a/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java b/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java index a1f31d8d..298258d7 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftConfirm.java @@ -24,8 +24,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.concurrent.Future; -import com.google.common.collect.ImmutableSet; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; @@ -33,7 +31,6 @@ import net.minecraft.inventory.ICrafting; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.SecurityPermissions; @@ -63,6 +60,8 @@ import appeng.parts.reporting.PartPatternTerminal; import appeng.parts.reporting.PartTerminal; import appeng.util.Platform; +import com.google.common.collect.ImmutableSet; + public class ContainerCraftConfirm extends AEBaseContainer { diff --git a/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java b/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java index f6fed9d3..c90bed5f 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftingCPU.java @@ -25,8 +25,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; @@ -38,6 +36,7 @@ import appeng.api.networking.storage.IBaseMonitor; import appeng.api.storage.IMEMonitorHandlerReceiver; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.AEPartLocation; import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; import appeng.core.AELog; @@ -70,8 +69,8 @@ public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorH if( host != null ) { - this.findNode( host, ForgeDirection.UNKNOWN ); - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + this.findNode( host, AEPartLocation.INTERNAL ); + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { this.findNode( host, d ); } @@ -88,7 +87,7 @@ public class ContainerCraftingCPU extends AEBaseContainer implements IMEMonitorH } } - private void findNode( IGridHost host, ForgeDirection d ) + private void findNode( IGridHost host, AEPartLocation d ) { if( this.network == null ) { diff --git a/src/main/java/appeng/container/implementations/ContainerCraftingStatus.java b/src/main/java/appeng/container/implementations/ContainerCraftingStatus.java index 4f382ee7..f4cc55d6 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftingStatus.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftingStatus.java @@ -22,15 +22,14 @@ package appeng.container.implementations; import java.util.ArrayList; import java.util.Collections; -import com.google.common.collect.ImmutableSet; - import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.networking.crafting.ICraftingCPU; import appeng.api.networking.crafting.ICraftingGrid; import appeng.api.storage.ITerminalHost; import appeng.container.guisync.GuiSync; +import com.google.common.collect.ImmutableSet; + public class ContainerCraftingStatus extends ContainerCraftingCPU { diff --git a/src/main/java/appeng/container/implementations/ContainerCraftingTerm.java b/src/main/java/appeng/container/implementations/ContainerCraftingTerm.java index 39cb8dcb..58943f92 100644 --- a/src/main/java/appeng/container/implementations/ContainerCraftingTerm.java +++ b/src/main/java/appeng/container/implementations/ContainerCraftingTerm.java @@ -24,7 +24,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; - import appeng.api.storage.ITerminalHost; import appeng.container.ContainerNull; import appeng.container.slot.SlotCraftingMatrix; diff --git a/src/main/java/appeng/container/implementations/ContainerDrive.java b/src/main/java/appeng/container/implementations/ContainerDrive.java index a00a94d1..3e570656 100644 --- a/src/main/java/appeng/container/implementations/ContainerDrive.java +++ b/src/main/java/appeng/container/implementations/ContainerDrive.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.container.AEBaseContainer; import appeng.container.slot.SlotRestrictedInput; import appeng.tile.storage.TileDrive; diff --git a/src/main/java/appeng/container/implementations/ContainerFormationPlane.java b/src/main/java/appeng/container/implementations/ContainerFormationPlane.java index 4ec34bc0..42b11852 100644 --- a/src/main/java/appeng/container/implementations/ContainerFormationPlane.java +++ b/src/main/java/appeng/container/implementations/ContainerFormationPlane.java @@ -21,7 +21,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; - import appeng.api.config.FuzzyMode; import appeng.api.config.SecurityPermissions; import appeng.api.config.Settings; diff --git a/src/main/java/appeng/container/implementations/ContainerGrinder.java b/src/main/java/appeng/container/implementations/ContainerGrinder.java index b187746c..1de44a8a 100644 --- a/src/main/java/appeng/container/implementations/ContainerGrinder.java +++ b/src/main/java/appeng/container/implementations/ContainerGrinder.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.container.AEBaseContainer; import appeng.container.slot.SlotInaccessible; import appeng.container.slot.SlotOutput; diff --git a/src/main/java/appeng/container/implementations/ContainerIOPort.java b/src/main/java/appeng/container/implementations/ContainerIOPort.java index 2dcb2538..ce2745f1 100644 --- a/src/main/java/appeng/container/implementations/ContainerIOPort.java +++ b/src/main/java/appeng/container/implementations/ContainerIOPort.java @@ -21,7 +21,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; - import appeng.api.config.FullnessMode; import appeng.api.config.OperationMode; import appeng.api.config.RedstoneMode; diff --git a/src/main/java/appeng/container/implementations/ContainerInscriber.java b/src/main/java/appeng/container/implementations/ContainerInscriber.java index d7eeab63..b6f0934b 100644 --- a/src/main/java/appeng/container/implementations/ContainerInscriber.java +++ b/src/main/java/appeng/container/implementations/ContainerInscriber.java @@ -22,7 +22,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.definitions.IItemDefinition; import appeng.api.features.IInscriberRecipe; diff --git a/src/main/java/appeng/container/implementations/ContainerInterface.java b/src/main/java/appeng/container/implementations/ContainerInterface.java index 71dbd054..fafdf819 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterface.java +++ b/src/main/java/appeng/container/implementations/ContainerInterface.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.api.config.SecurityPermissions; import appeng.api.config.Settings; import appeng.api.config.YesNo; diff --git a/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java b/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java index f24c561f..04490a13 100644 --- a/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java +++ b/src/main/java/appeng/container/implementations/ContainerInterfaceTerminal.java @@ -29,8 +29,7 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.config.Settings; import appeng.api.config.YesNo; import appeng.api.networking.IGrid; @@ -283,13 +282,13 @@ public final class ContainerInterfaceTerminal extends AEBaseContainer case SHIFT_CLICK: IInventory mySlot = slotInv.getWrapper( slot ); - InventoryAdaptor playerInv = InventoryAdaptor.getAdaptor( player, ForgeDirection.UNKNOWN ); + InventoryAdaptor playerInv = InventoryAdaptor.getAdaptor( player, EnumFacing.UP ); mySlot.setInventorySlotContents( 0, playerInv.addItems( mySlot.getStackInSlot( 0 ) ) ); break; case MOVE_REGION: - InventoryAdaptor playerInvAd = InventoryAdaptor.getAdaptor( player, ForgeDirection.UNKNOWN ); + InventoryAdaptor playerInvAd = InventoryAdaptor.getAdaptor( player, EnumFacing.UP ); for( int x = 0; x < inv.server.getSizeInventory(); x++ ) { inv.server.setInventorySlotContents( x, playerInvAd.addItems( inv.server.getStackInSlot( x ) ) ); diff --git a/src/main/java/appeng/container/implementations/ContainerLevelEmitter.java b/src/main/java/appeng/container/implementations/ContainerLevelEmitter.java index 5135344e..a47c1d8e 100644 --- a/src/main/java/appeng/container/implementations/ContainerLevelEmitter.java +++ b/src/main/java/appeng/container/implementations/ContainerLevelEmitter.java @@ -23,10 +23,8 @@ import net.minecraft.client.gui.GuiTextField; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.FuzzyMode; import appeng.api.config.LevelType; import appeng.api.config.RedstoneMode; diff --git a/src/main/java/appeng/container/implementations/ContainerMAC.java b/src/main/java/appeng/container/implementations/ContainerMAC.java index 81d49d30..3d132fcb 100644 --- a/src/main/java/appeng/container/implementations/ContainerMAC.java +++ b/src/main/java/appeng/container/implementations/ContainerMAC.java @@ -23,7 +23,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.world.World; - import appeng.api.config.RedstoneMode; import appeng.api.config.SecurityPermissions; import appeng.api.config.Settings; @@ -64,7 +63,7 @@ public class ContainerMAC extends ContainerUpgradeable implements IProgressProvi if( is.getItem() instanceof ItemEncodedPattern ) { - World w = this.getTileEntity().getWorldObj(); + World w = this.getTileEntity().getWorld(); ItemEncodedPattern iep = (ItemEncodedPattern) is.getItem(); ICraftingPatternDetails ph = iep.getPatternForItem( is, w ); if( ph.isCraftable() ) diff --git a/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java b/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java index 525848f6..533d1bd3 100644 --- a/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java +++ b/src/main/java/appeng/container/implementations/ContainerMEMonitorable.java @@ -28,8 +28,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -54,6 +52,7 @@ import appeng.api.storage.IMEMonitorHandlerReceiver; import appeng.api.storage.ITerminalHost; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.AEPartLocation; import appeng.api.util.IConfigManager; import appeng.api.util.IConfigurableObject; import appeng.container.AEBaseContainer; @@ -122,7 +121,7 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa } else if( monitorable instanceof IGridHost ) { - IGridNode node = ( (IGridHost) monitorable ).getGridNode( ForgeDirection.UNKNOWN ); + IGridNode node = ( (IGridHost) monitorable ).getGridNode( AEPartLocation.INTERNAL ); if( node != null ) { this.networkNode = node; diff --git a/src/main/java/appeng/container/implementations/ContainerMEPortableCell.java b/src/main/java/appeng/container/implementations/ContainerMEPortableCell.java index 4aad8c4b..ba72fa27 100644 --- a/src/main/java/appeng/container/implementations/ContainerMEPortableCell.java +++ b/src/main/java/appeng/container/implementations/ContainerMEPortableCell.java @@ -21,7 +21,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; - import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.implementations.guiobjects.IPortableCell; diff --git a/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java b/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java index 6f083f67..ff287860 100644 --- a/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java +++ b/src/main/java/appeng/container/implementations/ContainerNetworkStatus.java @@ -25,8 +25,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.implementations.guiobjects.INetworkTool; import appeng.api.networking.IGrid; @@ -36,6 +34,7 @@ import appeng.api.networking.IGridNode; import appeng.api.networking.energy.IEnergyGrid; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.AEPartLocation; import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; import appeng.core.sync.network.NetworkHandler; @@ -65,8 +64,8 @@ public class ContainerNetworkStatus extends AEBaseContainer if( host != null ) { - this.findNode( host, ForgeDirection.UNKNOWN ); - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + this.findNode( host, AEPartLocation.INTERNAL ); + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { this.findNode( host, d ); } @@ -78,7 +77,7 @@ public class ContainerNetworkStatus extends AEBaseContainer } } - private void findNode( IGridHost host, ForgeDirection d ) + private void findNode( IGridHost host, AEPartLocation d ) { if( this.network == null ) { diff --git a/src/main/java/appeng/container/implementations/ContainerNetworkTool.java b/src/main/java/appeng/container/implementations/ContainerNetworkTool.java index 3cebae3f..7823c4e4 100644 --- a/src/main/java/appeng/container/implementations/ContainerNetworkTool.java +++ b/src/main/java/appeng/container/implementations/ContainerNetworkTool.java @@ -22,7 +22,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.implementations.guiobjects.INetworkTool; import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; diff --git a/src/main/java/appeng/container/implementations/ContainerPatternTerm.java b/src/main/java/appeng/container/implementations/ContainerPatternTerm.java index 2573c7a2..773f2a52 100644 --- a/src/main/java/appeng/container/implementations/ContainerPatternTerm.java +++ b/src/main/java/appeng/container/implementations/ContainerPatternTerm.java @@ -36,8 +36,7 @@ import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.definitions.IDefinitions; @@ -349,7 +348,7 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA IAEItemStack out = packetPatternSlot.slotItem.copy(); InventoryAdaptor inv = new AdaptorPlayerHand( this.getPlayerInv().player ); - InventoryAdaptor playerInv = InventoryAdaptor.getAdaptor( this.getPlayerInv().player, ForgeDirection.UNKNOWN ); + InventoryAdaptor playerInv = InventoryAdaptor.getAdaptor( this.getPlayerInv().player, EnumFacing.UP ); if( packetPatternSlot.shift ) { inv = playerInv; diff --git a/src/main/java/appeng/container/implementations/ContainerPriority.java b/src/main/java/appeng/container/implementations/ContainerPriority.java index a554957f..323f5c67 100644 --- a/src/main/java/appeng/container/implementations/ContainerPriority.java +++ b/src/main/java/appeng/container/implementations/ContainerPriority.java @@ -23,10 +23,8 @@ import net.minecraft.client.gui.GuiTextField; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.tileentity.TileEntity; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.SecurityPermissions; import appeng.api.parts.IPart; import appeng.container.AEBaseContainer; diff --git a/src/main/java/appeng/container/implementations/ContainerQNB.java b/src/main/java/appeng/container/implementations/ContainerQNB.java index 25956d5d..a5b6aa69 100644 --- a/src/main/java/appeng/container/implementations/ContainerQNB.java +++ b/src/main/java/appeng/container/implementations/ContainerQNB.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.container.AEBaseContainer; import appeng.container.slot.SlotRestrictedInput; import appeng.tile.qnb.TileQuantumBridge; diff --git a/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java b/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java index df53d532..c64aa35e 100644 --- a/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java +++ b/src/main/java/appeng/container/implementations/ContainerQuartzKnife.java @@ -24,9 +24,9 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IChatComponent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; - import appeng.api.AEApi; import appeng.container.AEBaseContainer; import appeng.container.slot.QuartzKnifeOutput; @@ -194,13 +194,13 @@ public class ContainerQuartzKnife extends AEBaseContainer implements IAEAppEngIn } @Override - public String getInventoryName() + public String getName() { return "Quartz Knife Output"; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -224,20 +224,55 @@ public class ContainerQuartzKnife extends AEBaseContainer implements IAEAppEngIn } @Override - public void openInventory() + public void openInventory( + EntityPlayer player ) { - + } - + @Override - public void closeInventory() + public void closeInventory( + EntityPlayer player ) { - + } - + @Override public boolean isItemValidForSlot( int var1, ItemStack var2 ) { return false; } + + @Override + public IChatComponent getDisplayName() + { + return null; + } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + this.inSlot.setInventorySlotContents( 0, null ); + } } diff --git a/src/main/java/appeng/container/implementations/ContainerSecurity.java b/src/main/java/appeng/container/implementations/ContainerSecurity.java index 31325b76..e17485ae 100644 --- a/src/main/java/appeng/container/implementations/ContainerSecurity.java +++ b/src/main/java/appeng/container/implementations/ContainerSecurity.java @@ -24,7 +24,6 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.config.SecurityPermissions; import appeng.api.features.INetworkEncodable; diff --git a/src/main/java/appeng/container/implementations/ContainerSkyChest.java b/src/main/java/appeng/container/implementations/ContainerSkyChest.java index de85dbc7..2da37e43 100644 --- a/src/main/java/appeng/container/implementations/ContainerSkyChest.java +++ b/src/main/java/appeng/container/implementations/ContainerSkyChest.java @@ -19,11 +19,9 @@ package appeng.container.implementations; +import invtweaks.api.container.ChestContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; - -import invtweaks.api.container.ChestContainer; - import appeng.container.AEBaseContainer; import appeng.container.slot.SlotNormal; import appeng.tile.storage.TileSkyChest; @@ -48,7 +46,7 @@ public class ContainerSkyChest extends AEBaseContainer } } - this.chest.openInventory(); + this.chest.openInventory(ip.player); this.bindPlayerInventory( ip, 0, 195 - /* height of player inventory */82 ); } @@ -57,6 +55,6 @@ public class ContainerSkyChest extends AEBaseContainer public void onContainerClosed( EntityPlayer par1EntityPlayer ) { super.onContainerClosed( par1EntityPlayer ); - this.chest.closeInventory(); + this.chest.closeInventory(par1EntityPlayer); } } diff --git a/src/main/java/appeng/container/implementations/ContainerSpatialIOPort.java b/src/main/java/appeng/container/implementations/ContainerSpatialIOPort.java index 5fe4b262..d7f40147 100644 --- a/src/main/java/appeng/container/implementations/ContainerSpatialIOPort.java +++ b/src/main/java/appeng/container/implementations/ContainerSpatialIOPort.java @@ -20,12 +20,11 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.SecurityPermissions; import appeng.api.networking.IGrid; import appeng.api.networking.energy.IEnergyGrid; import appeng.api.networking.spatial.ISpatialCache; +import appeng.api.util.AEPartLocation; import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; import appeng.container.slot.SlotOutput; @@ -56,7 +55,7 @@ public class ContainerSpatialIOPort extends AEBaseContainer if( Platform.isServer() ) { - this.network = spatialIOPort.getGridNode( ForgeDirection.UNKNOWN ).getGrid(); + this.network = spatialIOPort.getGridNode( AEPartLocation.INTERNAL ).getGrid(); } this.addSlotToContainer( new SlotRestrictedInput( SlotRestrictedInput.PlacableItemType.SPATIAL_STORAGE_CELLS, spatialIOPort, 0, 52, 48, this.invPlayer ) ); diff --git a/src/main/java/appeng/container/implementations/ContainerStorageBus.java b/src/main/java/appeng/container/implementations/ContainerStorageBus.java index a5ec6b6d..d85850ba 100644 --- a/src/main/java/appeng/container/implementations/ContainerStorageBus.java +++ b/src/main/java/appeng/container/implementations/ContainerStorageBus.java @@ -24,7 +24,6 @@ import java.util.Iterator; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.FuzzyMode; diff --git a/src/main/java/appeng/container/implementations/ContainerUpgradeable.java b/src/main/java/appeng/container/implementations/ContainerUpgradeable.java index 9ff79a6f..45f067b6 100644 --- a/src/main/java/appeng/container/implementations/ContainerUpgradeable.java +++ b/src/main/java/appeng/container/implementations/ContainerUpgradeable.java @@ -23,8 +23,8 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - import appeng.api.config.FuzzyMode; import appeng.api.config.RedstoneMode; import appeng.api.config.SecurityPermissions; @@ -74,19 +74,19 @@ public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSl if( te instanceof TileEntity ) { TileEntity myTile = (TileEntity) te; - w = myTile.getWorldObj(); - xCoord = myTile.xCoord; - yCoord = myTile.yCoord; - zCoord = myTile.zCoord; + w = myTile.getWorld(); + xCoord = myTile.getPos().getX(); + yCoord = myTile.getPos().getY(); + zCoord = myTile.getPos().getZ(); } if( te instanceof IPart ) { TileEntity mk = te.getTile(); - w = mk.getWorldObj(); - xCoord = mk.xCoord; - yCoord = mk.yCoord; - zCoord = mk.zCoord; + w = mk.getWorld(); + xCoord = mk.getPos().getX(); + yCoord = mk.getPos().getY(); + zCoord = mk.getPos().getZ(); } IInventory pi = this.getPlayerInv(); @@ -97,7 +97,7 @@ public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSl { this.lockPlayerInventorySlot( x ); this.tbSlot = x; - this.tbInventory = (NetworkToolViewer) ( (IGuiItem) pii.getItem() ).getGuiObject( pii, w, xCoord, yCoord, zCoord ); + this.tbInventory = (NetworkToolViewer) ( (IGuiItem) pii.getItem() ).getGuiObject( pii, w, new BlockPos( xCoord, yCoord, zCoord ) ); break; } } diff --git a/src/main/java/appeng/container/implementations/ContainerVibrationChamber.java b/src/main/java/appeng/container/implementations/ContainerVibrationChamber.java index 38794a65..133951b4 100644 --- a/src/main/java/appeng/container/implementations/ContainerVibrationChamber.java +++ b/src/main/java/appeng/container/implementations/ContainerVibrationChamber.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; import appeng.container.interfaces.IProgressProvider; diff --git a/src/main/java/appeng/container/implementations/ContainerWireless.java b/src/main/java/appeng/container/implementations/ContainerWireless.java index 4352d19a..afc721fd 100644 --- a/src/main/java/appeng/container/implementations/ContainerWireless.java +++ b/src/main/java/appeng/container/implementations/ContainerWireless.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.container.AEBaseContainer; import appeng.container.guisync.GuiSync; import appeng.container.slot.SlotRestrictedInput; diff --git a/src/main/java/appeng/container/implementations/ContainerWirelessTerm.java b/src/main/java/appeng/container/implementations/ContainerWirelessTerm.java index a13d73dc..086d8c7d 100644 --- a/src/main/java/appeng/container/implementations/ContainerWirelessTerm.java +++ b/src/main/java/appeng/container/implementations/ContainerWirelessTerm.java @@ -20,7 +20,6 @@ package appeng.container.implementations; import net.minecraft.entity.player.InventoryPlayer; - import appeng.core.AEConfig; import appeng.core.localization.PlayerMessages; import appeng.helpers.WirelessTerminalGuiObject; diff --git a/src/main/java/appeng/container/slot/AppEngCraftingSlot.java b/src/main/java/appeng/container/slot/AppEngCraftingSlot.java index 1fa83d44..493b15f4 100644 --- a/src/main/java/appeng/container/slot/AppEngCraftingSlot.java +++ b/src/main/java/appeng/container/slot/AppEngCraftingSlot.java @@ -23,17 +23,15 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.Item; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; +import net.minecraft.item.crafting.CraftingManager; import net.minecraft.stats.AchievementList; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; - -import cpw.mods.fml.common.FMLCommonHandler; public class AppEngCraftingSlot extends AppEngSlot @@ -120,7 +118,7 @@ public class AppEngCraftingSlot extends AppEngSlot this.thePlayer.addStat( AchievementList.bakeCake, 1 ); } - if( par1ItemStack.getItem() instanceof ItemPickaxe && ( (ItemTool) par1ItemStack.getItem() ).func_150913_i() != Item.ToolMaterial.WOOD ) + if( par1ItemStack.getItem() instanceof ItemPickaxe && ( (ItemTool) par1ItemStack.getItem() ).getToolMaterial() != Item.ToolMaterial.WOOD ) { this.thePlayer.addStat( AchievementList.buildBetterPickaxe, 1 ); } @@ -142,43 +140,45 @@ public class AppEngCraftingSlot extends AppEngSlot } @Override - public void onPickupFromSlot( EntityPlayer par1EntityPlayer, ItemStack par2ItemStack ) + public void onPickupFromSlot( EntityPlayer playerIn, ItemStack stack ) { - FMLCommonHandler.instance().firePlayerCraftingEvent( par1EntityPlayer, par2ItemStack, this.craftMatrix ); - this.onCrafting( par2ItemStack ); + net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerCraftingEvent(playerIn, stack, craftMatrix); + this.onCrafting(stack); + net.minecraftforge.common.ForgeHooks.setCraftingPlayer(playerIn); + InventoryCrafting ic = new InventoryCrafting( this.myContainer, 3, 3 ); + + for ( int x=0; x < this.craftMatrix.getSizeInventory(); x++ ) + ic.setInventorySlotContents( x, this.craftMatrix.getStackInSlot( x ) ); + + ItemStack[] aitemstack = CraftingManager.getInstance().func_180303_b(ic, playerIn.worldObj); + + for ( int x=0; x < this.craftMatrix.getSizeInventory(); x++ ) + craftMatrix.setInventorySlotContents( x, ic.getStackInSlot( x ) ); + + net.minecraftforge.common.ForgeHooks.setCraftingPlayer(null); - for( int i = 0; i < this.craftMatrix.getSizeInventory(); ++i ) - { - ItemStack itemstack1 = this.craftMatrix.getStackInSlot( i ); + for (int i = 0; i < aitemstack.length; ++i) + { + ItemStack itemstack1 = this.craftMatrix.getStackInSlot(i); + ItemStack itemstack2 = aitemstack[i]; - if( itemstack1 != null ) - { - this.craftMatrix.decrStackSize( i, 1 ); + if (itemstack1 != null) + { + this.craftMatrix.decrStackSize(i, 1); + } - if( itemstack1.getItem().hasContainerItem( itemstack1 ) ) - { - ItemStack itemstack2 = itemstack1.getItem().getContainerItem( itemstack1 ); - - if( itemstack2 != null && itemstack2.isItemStackDamageable() && itemstack2.getItemDamage() > itemstack2.getMaxDamage() ) - { - MinecraftForge.EVENT_BUS.post( new PlayerDestroyItemEvent( this.thePlayer, itemstack2 ) ); - continue; - } - - if( !itemstack1.getItem().doesContainerItemLeaveCraftingGrid( itemstack1 ) || !this.thePlayer.inventory.addItemStackToInventory( itemstack2 ) ) - { - if( this.craftMatrix.getStackInSlot( i ) == null ) - { - this.craftMatrix.setInventorySlotContents( i, itemstack2 ); - } - else - { - this.thePlayer.dropPlayerItemWithRandomChoice( itemstack2, false ); - } - } - } - } - } + if (itemstack2 != null) + { + if (this.craftMatrix.getStackInSlot(i) == null) + { + this.craftMatrix.setInventorySlotContents(i, itemstack2); + } + else if (!this.thePlayer.inventory.addItemStackToInventory(itemstack2)) + { + this.thePlayer.dropPlayerItemWithRandomChoice(itemstack2, false); + } + } + } } /** diff --git a/src/main/java/appeng/container/slot/AppEngSlot.java b/src/main/java/appeng/container/slot/AppEngSlot.java index 9882c1ea..26ea484f 100644 --- a/src/main/java/appeng/container/slot/AppEngSlot.java +++ b/src/main/java/appeng/container/slot/AppEngSlot.java @@ -23,7 +23,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; - import appeng.container.AEBaseContainer; import appeng.tile.inventory.AppEngInternalInventory; @@ -141,7 +140,7 @@ public class AppEngSlot extends Slot } @Override - public boolean func_111238_b() + public boolean canBeHovered() { return this.isEnabled(); } diff --git a/src/main/java/appeng/container/slot/SlotCraftingTerm.java b/src/main/java/appeng/container/slot/SlotCraftingTerm.java index 17d6053e..fccaa401 100644 --- a/src/main/java/appeng/container/slot/SlotCraftingTerm.java +++ b/src/main/java/appeng/container/slot/SlotCraftingTerm.java @@ -28,7 +28,7 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; - +import net.minecraft.util.BlockPos; import appeng.api.config.Actionable; import appeng.api.networking.energy.IEnergySource; import appeng.api.networking.security.BaseActionSource; @@ -140,7 +140,7 @@ public class SlotCraftingTerm extends AppEngCraftingSlot { List drops = new ArrayList(); drops.add( extra ); - Platform.spawnDrops( who.worldObj, (int) who.posX, (int) who.posY, (int) who.posZ, drops ); + Platform.spawnDrops( who.worldObj, new BlockPos( (int) who.posX, (int) who.posY, (int) who.posZ ), drops ); return; } } @@ -270,7 +270,7 @@ public class SlotCraftingTerm extends AppEngCraftingSlot if( drops.size() > 0 ) { - Platform.spawnDrops( p.worldObj, (int) p.posX, (int) p.posY, (int) p.posZ, drops ); + Platform.spawnDrops( p.worldObj, new BlockPos( (int) p.posX, (int) p.posY, (int) p.posZ ), drops ); } } } diff --git a/src/main/java/appeng/container/slot/SlotMACPattern.java b/src/main/java/appeng/container/slot/SlotMACPattern.java index 05cff8e0..268ff474 100644 --- a/src/main/java/appeng/container/slot/SlotMACPattern.java +++ b/src/main/java/appeng/container/slot/SlotMACPattern.java @@ -21,7 +21,6 @@ package appeng.container.slot; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.container.implementations.ContainerMAC; diff --git a/src/main/java/appeng/container/slot/SlotPatternTerm.java b/src/main/java/appeng/container/slot/SlotPatternTerm.java index ad45ced8..c85238dd 100644 --- a/src/main/java/appeng/container/slot/SlotPatternTerm.java +++ b/src/main/java/appeng/container/slot/SlotPatternTerm.java @@ -24,7 +24,6 @@ import java.io.IOException; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.networking.energy.IEnergySource; import appeng.api.networking.security.BaseActionSource; diff --git a/src/main/java/appeng/container/slot/SlotRestrictedInput.java b/src/main/java/appeng/container/slot/SlotRestrictedInput.java index eafe6a32..de7308cc 100644 --- a/src/main/java/appeng/container/slot/SlotRestrictedInput.java +++ b/src/main/java/appeng/container/slot/SlotRestrictedInput.java @@ -28,7 +28,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.AEApi; import appeng.api.definitions.IDefinitions; import appeng.api.definitions.IItems; diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index 9942594e..467fe8d3 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -26,12 +26,10 @@ import java.util.List; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; - -import cpw.mods.fml.client.event.ConfigChangedEvent; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.ModContainer; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - +import net.minecraftforge.fml.client.event.ConfigChangedEvent; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.ModContainer; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import appeng.api.config.CondenserOutput; import appeng.api.config.PowerMultiplier; import appeng.api.config.PowerUnits; @@ -184,7 +182,7 @@ public final class AEConfig extends Configuration implements IConfigurableObject } } - ModContainer imb = cpw.mods.fml.common.Loader.instance().getIndexedModList().get( "ImmibisCore" ); + ModContainer imb = net.minecraftforge.fml.common.Loader.instance().getIndexedModList().get( "ImmibisCore" ); if( imb != null ) { List version = Arrays.asList( "59.0.0", "59.0.1", "59.0.2" ); diff --git a/src/main/java/appeng/core/AELog.java b/src/main/java/appeng/core/AELog.java index b9d1e2ed..34acce49 100644 --- a/src/main/java/appeng/core/AELog.java +++ b/src/main/java/appeng/core/AELog.java @@ -19,9 +19,10 @@ package appeng.core; -import org.apache.logging.log4j.Level; +import net.minecraft.util.BlockPos; +import net.minecraftforge.fml.relauncher.FMLRelaunchLog; -import cpw.mods.fml.relauncher.FMLRelaunchLog; +import org.apache.logging.log4j.Level; import appeng.core.features.AEFeature; import appeng.tile.AEBaseTile; @@ -80,11 +81,11 @@ public final class AELog log( Level.ERROR, format, data ); } - public static void blockUpdate( int xCoord, int yCoord, int zCoord, AEBaseTile aeBaseTile ) + public static void blockUpdate( BlockPos pos, AEBaseTile aeBaseTile ) { if( AEConfig.instance.isFeatureEnabled( AEFeature.UpdateLogging ) ) { - info( aeBaseTile.getClass().getName() + " @ " + xCoord + ", " + yCoord + ", " + zCoord ); + info( aeBaseTile.getClass().getName() + " @ " + pos ); } } diff --git a/src/main/java/appeng/core/Api.java b/src/main/java/appeng/core/Api.java index ed4ba296..3f000d27 100644 --- a/src/main/java/appeng/core/Api.java +++ b/src/main/java/appeng/core/Api.java @@ -19,8 +19,6 @@ package appeng.core; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.IAppEngApi; import appeng.api.definitions.Blocks; import appeng.api.definitions.Items; @@ -32,6 +30,7 @@ import appeng.api.networking.IGridBlock; import appeng.api.networking.IGridConnection; import appeng.api.networking.IGridNode; import appeng.api.storage.IStorageHelper; +import appeng.api.util.AEPartLocation; import appeng.core.api.ApiPart; import appeng.core.api.ApiStorage; import appeng.core.features.registries.RegistryContainer; @@ -129,6 +128,6 @@ public final class Api implements IAppEngApi @Override public IGridConnection createGridConnection( IGridNode a, IGridNode b ) throws FailedConnection { - return new GridConnection( a, b, ForgeDirection.UNKNOWN ); + return new GridConnection( a, b, AEPartLocation.INTERNAL ); } } diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index c6f72291..f14456b7 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -21,23 +21,21 @@ package appeng.core; import java.io.File; import java.util.concurrent.TimeUnit; + import javax.annotation.Nonnull; -import com.google.common.base.Stopwatch; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLInterModComms; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLServerAboutToStartEvent; -import cpw.mods.fml.common.event.FMLServerStartingEvent; -import cpw.mods.fml.common.event.FMLServerStoppingEvent; -import cpw.mods.fml.common.network.NetworkRegistry; - +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLInterModComms; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.event.FMLServerAboutToStartEvent; +import net.minecraftforge.fml.common.event.FMLServerStartingEvent; +import net.minecraftforge.fml.common.event.FMLServerStoppingEvent; +import net.minecraftforge.fml.common.network.NetworkRegistry; import appeng.core.crash.CrashInfo; import appeng.core.crash.IntegrationCrashEnhancement; import appeng.core.crash.ModCrashEnhancement; @@ -51,8 +49,10 @@ import appeng.services.VersionChecker; import appeng.services.version.VersionCheckerConfig; import appeng.util.Platform; +import com.google.common.base.Stopwatch; -@Mod( modid = AppEng.MOD_ID, acceptedMinecraftVersions = "[1.7.10]", name = AppEng.MOD_NAME, version = AEConfig.VERSION, dependencies = AppEng.MOD_DEPENDENCIES, guiFactory = "appeng.client.gui.config.AEConfigGuiFactory" ) + +@Mod( modid = AppEng.MOD_ID, acceptedMinecraftVersions = "[1.8]", name = AppEng.MOD_NAME, version = AEConfig.VERSION, dependencies = AppEng.MOD_DEPENDENCIES, guiFactory = "appeng.client.gui.config.AEConfigGuiFactory" ) public final class AppEng { public static final String MOD_ID = "appliedenergistics2"; @@ -124,7 +124,7 @@ public final class AppEng if( Platform.isClient() ) { - CommonHelper.proxy.init(); + CommonHelper.proxy.preinit(); } Registration.INSTANCE.preInitialize( event ); diff --git a/src/main/java/appeng/core/CommonHelper.java b/src/main/java/appeng/core/CommonHelper.java index 7ed38b09..f41d067d 100644 --- a/src/main/java/appeng/core/CommonHelper.java +++ b/src/main/java/appeng/core/CommonHelper.java @@ -25,10 +25,9 @@ import java.util.Random; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; - -import cpw.mods.fml.common.SidedProxy; - +import net.minecraftforge.fml.common.SidedProxy; import appeng.api.parts.CableRenderMode; import appeng.block.AEBaseBlock; import appeng.client.EffectType; @@ -41,7 +40,7 @@ public abstract class CommonHelper @SidedProxy( clientSide = "appeng.client.ClientHelper", serverSide = "appeng.server.ServerHelper" ) public static CommonHelper proxy; - public abstract void init(); + public abstract void preinit(); public abstract World getWorld(); @@ -68,4 +67,9 @@ public abstract class CommonHelper public abstract void updateRenderMode( EntityPlayer player ); public abstract void missingCoreMod(); + + public abstract void configureIcon(Object item, String name ); + + public abstract ResourceLocation addIcon( + String string ); } diff --git a/src/main/java/appeng/core/CreativeTab.java b/src/main/java/appeng/core/CreativeTab.java index cd5d4bd8..39ed53d9 100644 --- a/src/main/java/appeng/core/CreativeTab.java +++ b/src/main/java/appeng/core/CreativeTab.java @@ -23,7 +23,6 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IDefinitions; diff --git a/src/main/java/appeng/core/CreativeTabFacade.java b/src/main/java/appeng/core/CreativeTabFacade.java index 9ecb28b5..33900511 100644 --- a/src/main/java/appeng/core/CreativeTabFacade.java +++ b/src/main/java/appeng/core/CreativeTabFacade.java @@ -19,16 +19,15 @@ package appeng.core; -import com.google.common.base.Optional; - import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.items.parts.ItemFacade; +import com.google.common.base.Optional; + public final class CreativeTabFacade extends CreativeTabs { diff --git a/src/main/java/appeng/core/FacadeConfig.java b/src/main/java/appeng/core/FacadeConfig.java index 05065364..21a0ec73 100644 --- a/src/main/java/appeng/core/FacadeConfig.java +++ b/src/main/java/appeng/core/FacadeConfig.java @@ -26,9 +26,8 @@ import java.util.regex.Pattern; import net.minecraft.block.Block; import net.minecraftforge.common.config.Configuration; - -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.common.registry.GameRegistry.UniqueIdentifier; public class FacadeConfig extends Configuration diff --git a/src/main/java/appeng/core/IMCHandler.java b/src/main/java/appeng/core/IMCHandler.java index 8f99bc1f..4a517109 100644 --- a/src/main/java/appeng/core/IMCHandler.java +++ b/src/main/java/appeng/core/IMCHandler.java @@ -22,8 +22,7 @@ package appeng.core; import java.util.HashMap; import java.util.Map; -import cpw.mods.fml.common.event.FMLInterModComms; - +import net.minecraftforge.fml.common.event.FMLInterModComms; import appeng.api.config.TunnelType; import appeng.core.api.IIMCProcessor; import appeng.core.api.imc.IMCBlackListSpatial; diff --git a/src/main/java/appeng/core/PlayerMappings.java b/src/main/java/appeng/core/PlayerMappings.java index 9dc96bd0..332113bf 100644 --- a/src/main/java/appeng/core/PlayerMappings.java +++ b/src/main/java/appeng/core/PlayerMappings.java @@ -22,11 +22,10 @@ package appeng.core; import java.util.Map; import java.util.UUID; -import com.google.common.base.Optional; - import net.minecraftforge.common.config.ConfigCategory; +import net.minecraftforge.fml.relauncher.FMLRelaunchLog; -import cpw.mods.fml.relauncher.FMLRelaunchLog; +import com.google.common.base.Optional; /** diff --git a/src/main/java/appeng/core/PlayerMappingsInitializer.java b/src/main/java/appeng/core/PlayerMappingsInitializer.java index 97cbf8f5..a37df014 100644 --- a/src/main/java/appeng/core/PlayerMappingsInitializer.java +++ b/src/main/java/appeng/core/PlayerMappingsInitializer.java @@ -25,9 +25,7 @@ import java.util.UUID; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Property; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; - +import net.minecraftforge.fml.relauncher.FMLRelaunchLog; import appeng.util.UUIDMatcher; diff --git a/src/main/java/appeng/core/RecipeLoader.java b/src/main/java/appeng/core/RecipeLoader.java index cfed19b7..8e39692a 100644 --- a/src/main/java/appeng/core/RecipeLoader.java +++ b/src/main/java/appeng/core/RecipeLoader.java @@ -22,9 +22,8 @@ package appeng.core; import java.io.File; import java.io.IOException; import java.net.URISyntaxException; -import javax.annotation.Nonnull; -import com.google.common.base.Preconditions; +import javax.annotation.Nonnull; import org.apache.commons.io.FileUtils; @@ -33,6 +32,8 @@ import appeng.recipes.loader.ConfigLoader; import appeng.recipes.loader.JarLoader; import appeng.recipes.loader.RecipeResourceCopier; +import com.google.common.base.Preconditions; + /** * handles the decision if recipes should be loaded from jar, loaded from file system or force copied from jar diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 94468ffa..b4534d51 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -27,16 +27,13 @@ import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.ChestGenHooks; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.RecipeSorter; import net.minecraftforge.oredict.RecipeSorter.Category; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.VillagerRegistry; - import appeng.api.AEApi; import appeng.api.IAppEngApi; import appeng.api.config.Upgrades; @@ -74,7 +71,6 @@ import appeng.core.features.registries.entries.CreativeCellHandler; import appeng.core.localization.GuiText; import appeng.core.localization.PlayerMessages; import appeng.core.stats.PlayerStatsRegistration; -import appeng.hooks.AETrading; import appeng.hooks.TickHandler; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; @@ -165,7 +161,7 @@ public final class Registration // Register all detected handlers and features (items, blocks) in pre-init for( IFeatureHandler handler : definitions.getFeatureHandlerRegistry().getRegisteredFeatureHandlers() ) { - handler.register(); + handler.register(event.getSide() ); } for( IAEFeature feature : definitions.getFeatureRegistry().getRegisteredFeatures() ) @@ -698,7 +694,8 @@ public final class Registration // add villager trading to black smiths for a few basic materials if( AEConfig.instance.isFeatureEnabled( AEFeature.VillagerTrading ) ) { - VillagerRegistry.instance().registerVillageTradeHandler( 3, new AETrading() ); + // TODO: VILLAGER TRADING + // VillagerRegistry.instance().getRegisteredVillagers()..registerVillageTradeHandler( 3, new AETrading() ); } if( AEConfig.instance.isFeatureEnabled( AEFeature.CertusQuartzWorldGen ) ) diff --git a/src/main/java/appeng/core/WorldSettings.java b/src/main/java/appeng/core/WorldSettings.java index 71079de4..4279a47c 100644 --- a/src/main/java/appeng/core/WorldSettings.java +++ b/src/main/java/appeng/core/WorldSettings.java @@ -32,9 +32,6 @@ import java.util.Map; import java.util.UUID; import java.util.WeakHashMap; -import com.google.common.base.Optional; -import com.mojang.authlib.GameProfile; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; @@ -43,7 +40,6 @@ import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; - import appeng.api.util.WorldCoord; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketNewStorageDimension; @@ -53,6 +49,9 @@ import appeng.me.GridStorage; import appeng.me.GridStorageSearch; import appeng.services.CompassService; +import com.google.common.base.Optional; +import com.mojang.authlib.GameProfile; + public class WorldSettings extends Configuration { @@ -343,7 +342,7 @@ public class WorldSettings extends Configuration { for( int newDim : this.get( "DimensionManager", "StorageCells", new int[0] ).getIntList() ) { - manager.scheduleOutboundPacket( ( new PacketNewStorageDimension( newDim ) ).getProxy() ); + manager.sendPacket( ( new PacketNewStorageDimension( newDim ) ).getProxy() ); } } else diff --git a/src/main/java/appeng/core/api/ApiPart.java b/src/main/java/appeng/core/api/ApiPart.java index 82bec292..25bdfc54 100644 --- a/src/main/java/appeng/core/api/ApiPart.java +++ b/src/main/java/appeng/core/api/ApiPart.java @@ -28,7 +28,13 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; -import com.google.common.base.Joiner; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.world.World; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; @@ -39,18 +45,10 @@ import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodInsnNode; import org.objectweb.asm.tree.MethodNode; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.client.MinecraftForgeClient; - import appeng.api.parts.CableRenderMode; import appeng.api.parts.IPartHelper; import appeng.api.parts.IPartItem; import appeng.api.parts.LayerBase; -import appeng.client.render.BusRenderer; import appeng.core.AELog; import appeng.core.CommonHelper; import appeng.integration.IntegrationRegistry; @@ -60,6 +58,8 @@ import appeng.parts.PartPlacement; import appeng.tile.networking.TileCableBus; import appeng.util.Platform; +import com.google.common.base.Joiner; + public class ApiPart implements IPartHelper { @@ -333,14 +333,15 @@ public class ApiPart implements IPartHelper { if( Platform.isClient() && i instanceof Item ) { - MinecraftForgeClient.registerItemRenderer( (Item) i, BusRenderer.INSTANCE ); + CommonHelper.proxy.configureIcon( i, null ); + // MinecraftForgeClient.registerItemRenderer( (Item) i, BusRenderer.INSTANCE ); } } @Override - public boolean placeBus( ItemStack is, int x, int y, int z, int side, EntityPlayer player, World w ) + public boolean placeBus( ItemStack is, BlockPos pos, EnumFacing side, EntityPlayer player, World w ) { - return PartPlacement.place( is, x, y, z, side, player, w, PartPlacement.PlaceType.PLACE_ITEM, 0 ); + return PartPlacement.place( is, pos, side, player, w, PartPlacement.PlaceType.PLACE_ITEM, 0 ); } @Override diff --git a/src/main/java/appeng/core/api/ApiStorage.java b/src/main/java/appeng/core/api/ApiStorage.java index 1d693613..6ccbdf7f 100644 --- a/src/main/java/appeng/core/api/ApiStorage.java +++ b/src/main/java/appeng/core/api/ApiStorage.java @@ -19,14 +19,13 @@ package appeng.core.api; -import java.io.IOException; - import io.netty.buffer.ByteBuf; +import java.io.IOException; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; - import appeng.api.networking.crafting.ICraftingLink; import appeng.api.networking.crafting.ICraftingRequester; import appeng.api.networking.energy.IEnergySource; diff --git a/src/main/java/appeng/core/api/IIMCProcessor.java b/src/main/java/appeng/core/api/IIMCProcessor.java index 47e0b55b..84ddcf2b 100644 --- a/src/main/java/appeng/core/api/IIMCProcessor.java +++ b/src/main/java/appeng/core/api/IIMCProcessor.java @@ -19,7 +19,7 @@ package appeng.core.api; -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; +import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage; public interface IIMCProcessor diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index 115c0bf3..4eb3e38d 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -19,19 +19,13 @@ package appeng.core.api.definitions; -import java.util.EnumSet; -import java.util.Set; - -import com.google.common.collect.ImmutableSet; - import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlocks; import appeng.api.definitions.ITileDefinition; -import appeng.api.util.IOrientableBlock; -import appeng.block.AEBaseSlabBlock; import appeng.block.crafting.BlockCraftingMonitor; import appeng.block.crafting.BlockCraftingStorage; import appeng.block.crafting.BlockCraftingUnit; +import appeng.block.crafting.BlockCraftingUnit.CraftingUnitType; import appeng.block.crafting.BlockMolecularAssembler; import appeng.block.grindstone.BlockCrank; import appeng.block.grindstone.BlockGrinder; @@ -64,25 +58,18 @@ import appeng.block.solids.BlockQuartzGlass; import appeng.block.solids.BlockQuartzLamp; import appeng.block.solids.BlockQuartzPillar; import appeng.block.solids.BlockSkyStone; +import appeng.block.solids.BlockSkyStone.SkystoneType; import appeng.block.solids.OreQuartz; import appeng.block.solids.OreQuartzCharged; import appeng.block.spatial.BlockMatrixFrame; import appeng.block.spatial.BlockSpatialIOPort; import appeng.block.spatial.BlockSpatialPylon; -import appeng.block.stair.ChiseledQuartzStairBlock; -import appeng.block.stair.FluixStairBlock; -import appeng.block.stair.QuartzPillarStairBlock; -import appeng.block.stair.QuartzStairBlock; -import appeng.block.stair.SkyStoneBlockStairBlock; -import appeng.block.stair.SkyStoneBrickStairBlock; -import appeng.block.stair.SkyStoneSmallBrickStairBlock; -import appeng.block.stair.SkyStoneStairBlock; +import appeng.block.stair.BlockStairCommon; import appeng.block.storage.BlockChest; import appeng.block.storage.BlockDrive; import appeng.block.storage.BlockIOPort; import appeng.block.storage.BlockSkyChest; -import appeng.core.features.AEFeature; -import appeng.core.features.WrappedDamageItemDefinition; +import appeng.block.storage.BlockSkyChest.SkyChestType; import appeng.debug.BlockChunkloader; import appeng.debug.BlockCubeGenerator; import appeng.debug.BlockItemGen; @@ -104,8 +91,12 @@ public final class ApiBlocks implements IBlocks private final IBlockDefinition quartzVibrantGlass; private final IBlockDefinition quartzTorch; private final IBlockDefinition fluix; - private final IBlockDefinition skyStone; + private final IBlockDefinition skyStone_stone; + private final IBlockDefinition skyStone_block; + private final IBlockDefinition skyStone_brick; + private final IBlockDefinition skyStone_smallbrick; private final IBlockDefinition skyChest; + private final IBlockDefinition skyChestBlock; private final IBlockDefinition skyCompass; private final ITileDefinition grindStone; private final ITileDefinition crankHandle; @@ -150,6 +141,7 @@ public final class ApiBlocks implements IBlocks private final IBlockDefinition quartzStair; private final IBlockDefinition chiseledQuartzStair; private final IBlockDefinition quartzPillarStair; + /* private final IBlockDefinition skyStoneSlab; private final IBlockDefinition skyStoneBlockSlab; private final IBlockDefinition skyStoneBrickSlab; @@ -158,39 +150,31 @@ public final class ApiBlocks implements IBlocks private final IBlockDefinition quartzSlab; private final IBlockDefinition chiseledQuartzSlab; private final IBlockDefinition quartzPillarSlab; + */ private final IBlockDefinition itemGen; private final IBlockDefinition chunkLoader; private final IBlockDefinition phantomNode; private final IBlockDefinition cubeGenerator; - private final Set orientables; - public ApiBlocks( DefinitionConstructor constructor ) { - final BlockLightDetector lightDetector = new BlockLightDetector(); - final BlockQuartzPillar quartzPillar = new BlockQuartzPillar(); - final BlockSkyStone skyStone = new BlockSkyStone(); - final BlockFluix fluixBlock = new BlockFluix(); - final BlockQuartzGrowthAccelerator cga = new BlockQuartzGrowthAccelerator(); - final BlockQuartzTorch quartzTorch = new BlockQuartzTorch(); - final BlockQuartz quartzBlock = new BlockQuartz(); - final BlockQuartzChiseled chiseledQuartz = new BlockQuartzChiseled(); - - this.orientables = ImmutableSet.of( lightDetector, quartzPillar, skyStone, cga, quartzTorch ); - this.quartzOre = constructor.registerBlockDefinition( new OreQuartz() ); this.quartzOreCharged = constructor.registerBlockDefinition( new OreQuartzCharged() ); this.matrixFrame = constructor.registerBlockDefinition( new BlockMatrixFrame() ); - this.quartz = constructor.registerBlockDefinition( quartzBlock ); - this.quartzPillar = constructor.registerBlockDefinition( quartzPillar ); - this.quartzChiseled = constructor.registerBlockDefinition( chiseledQuartz ); + this.quartz = constructor.registerBlockDefinition( new BlockQuartz() ); + this.quartzPillar = constructor.registerBlockDefinition( new BlockQuartzPillar() ); + this.quartzChiseled = constructor.registerBlockDefinition( new BlockQuartzChiseled() ); this.quartzGlass = constructor.registerBlockDefinition( new BlockQuartzGlass() ); this.quartzVibrantGlass = constructor.registerBlockDefinition( new BlockQuartzLamp() ); - this.quartzTorch = constructor.registerBlockDefinition( quartzTorch ); - this.fluix = constructor.registerBlockDefinition( fluixBlock ); - this.skyStone = constructor.registerBlockDefinition( skyStone ); - this.skyChest = constructor.registerBlockDefinition( new BlockSkyChest() ); + this.quartzTorch = constructor.registerBlockDefinition( new BlockQuartzTorch() ); + this.fluix = constructor.registerBlockDefinition( new BlockFluix() ); + this.skyStone_stone = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.stone ) ); + this.skyStone_block = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.block ) ); + this.skyStone_brick = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.brick ) ); + this.skyStone_smallbrick = constructor.registerBlockDefinition( new BlockSkyStone( SkystoneType.smallbrick ) ); + this.skyChest = constructor.registerBlockDefinition( new BlockSkyChest(SkyChestType.STONE) ); + this.skyChestBlock = constructor.registerBlockDefinition( new BlockSkyChest(SkyChestType.BLOCK) ); this.skyCompass = constructor.registerBlockDefinition( new BlockSkyCompass() ); this.grindStone = constructor.registerTileDefinition( new BlockGrinder() ); this.crankHandle = constructor.registerTileDefinition( new BlockCrank() ); @@ -213,49 +197,56 @@ public final class ApiBlocks implements IBlocks this.condenser = constructor.registerTileDefinition( new BlockCondenser() ); this.energyAcceptor = constructor.registerTileDefinition( new BlockEnergyAcceptor() ); this.vibrationChamber = constructor.registerTileDefinition( new BlockVibrationChamber() ); - this.quartzGrowthAccelerator = constructor.registerTileDefinition( cga ); + this.quartzGrowthAccelerator = constructor.registerTileDefinition( new BlockQuartzGrowthAccelerator() ); this.energyCell = constructor.registerTileDefinition( new BlockEnergyCell() ); this.energyCellDense = constructor.registerTileDefinition( new BlockDenseEnergyCell() ); this.energyCellCreative = constructor.registerTileDefinition( new BlockCreativeEnergyCell() ); - this.craftingUnit = constructor.registerTileDefinition( new BlockCraftingUnit() ); - this.craftingAccelerator = new WrappedDamageItemDefinition( this.craftingUnit, 1 ); - this.craftingStorage1k = constructor.registerTileDefinition( new BlockCraftingStorage() ); - this.craftingStorage4k = new WrappedDamageItemDefinition( this.craftingStorage1k, 1 ); - this.craftingStorage16k = new WrappedDamageItemDefinition( this.craftingStorage1k, 2 ); - this.craftingStorage64k = new WrappedDamageItemDefinition( this.craftingStorage1k, 3 ); + this.craftingUnit = constructor.registerTileDefinition( new BlockCraftingUnit(CraftingUnitType.UNIT) ); + this.craftingAccelerator = constructor.registerTileDefinition( new BlockCraftingUnit(CraftingUnitType.ACCELERATOR) ); + this.craftingStorage1k = constructor.registerTileDefinition( new BlockCraftingStorage(CraftingUnitType.STORAGE_1K) ); + this.craftingStorage4k = constructor.registerTileDefinition( new BlockCraftingStorage(CraftingUnitType.STORAGE_4K) ); + this.craftingStorage16k = constructor.registerTileDefinition( new BlockCraftingStorage(CraftingUnitType.STORAGE_16K) ); + this.craftingStorage64k = constructor.registerTileDefinition( new BlockCraftingStorage(CraftingUnitType.STORAGE_64K) ); this.craftingMonitor = constructor.registerTileDefinition( new BlockCraftingMonitor() ); this.molecularAssembler = constructor.registerTileDefinition( new BlockMolecularAssembler() ); - this.lightDetector = constructor.registerTileDefinition( lightDetector ); + this.lightDetector = constructor.registerTileDefinition( new BlockLightDetector() ); this.paint = constructor.registerTileDefinition( new BlockPaint() ); - this.skyStoneStair = constructor.registerBlockDefinition( new SkyStoneStairBlock( skyStone, 0 ) ); - this.skyStoneBlockStair = constructor.registerBlockDefinition( new SkyStoneBlockStairBlock( skyStone, 1 ) ); - this.skyStoneBrickStair = constructor.registerBlockDefinition( new SkyStoneBrickStairBlock( skyStone, 2 ) ); - this.skyStoneSmallBrickStair = constructor.registerBlockDefinition( new SkyStoneSmallBrickStairBlock( skyStone, 3 ) ); - - this.fluixStair = constructor.registerBlockDefinition( new FluixStairBlock( fluixBlock ) ); - - this.quartzStair = constructor.registerBlockDefinition( new QuartzStairBlock( quartzBlock ) ); - - this.chiseledQuartzStair = constructor.registerBlockDefinition( new ChiseledQuartzStairBlock( chiseledQuartz ) ); - - this.quartzPillarStair = constructor.registerBlockDefinition( new QuartzPillarStairBlock( quartzPillar ) ); - - this.skyStoneSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone, 0, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneSlabBlock" ) ); - this.skyStoneBlockSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone, 1, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneBlockSlabBlock" ) ); - this.skyStoneBrickSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone, 2, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneBrickSlabBlock" ) ); - this.skyStoneSmallBrickSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone, 3, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneSmallBrickSlabBlock" ) ); - this.fluixSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( fluixBlock, 0, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "FluixSlabBlock" ) ); - this.quartzSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( quartzBlock, 0, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "QuartzSlabBlock" ) ); - this.chiseledQuartzSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( chiseledQuartz, 0, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "ChiseledQuartzSlabBlock" ) );; - this.quartzPillarSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( quartzPillar, 0, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "QuartzPillarSlabBlock" ) ); + this.skyStoneStair = makeStairs( constructor,skyStone_stone, "skystone_stone" ) ; + this.skyStoneBlockStair = makeStairs( constructor,skyStone_block, "skystone_block" ) ; + this.skyStoneBrickStair = makeStairs( constructor,skyStone_brick, "skystone_brick" ) ; + this.skyStoneSmallBrickStair = makeStairs( constructor, skyStone_smallbrick, "skystone_smallbrick" ) ; + this.fluixStair = makeStairs( constructor, fluix, "fluix" ) ; + this.quartzStair = makeStairs( constructor,quartz, "quartz" ) ; + this.chiseledQuartzStair = makeStairs( constructor, quartzChiseled, "quartz_chiseled" ) ; + this.quartzPillarStair = makeStairs( constructor, quartzPillar, "quartz_pillar" ) ; + // TODO Re-Add Slabs... + /* + this.skyStoneSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_stone, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneSlabBlock" ) ); + this.skyStoneBlockSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_block, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneBlockSlabBlock" ) ); + this.skyStoneBrickSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_brick, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneBrickSlabBlock" ) ); + this.skyStoneSmallBrickSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( skyStone_smallbrick, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "SkyStoneSmallBrickSlabBlock" ) ); + this.fluixSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( fluixBlock, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "FluixSlabBlock" ) ); + this.quartzSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( quartzBlock, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "QuartzSlabBlock" ) ); + this.chiseledQuartzSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( chiseledQuartz, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "ChiseledQuartzSlabBlock" ) );; + this.quartzPillarSlab = constructor.registerBlockDefinition( new AEBaseSlabBlock( quartzPillar, EnumSet.of(AEFeature.DecorativeQuartzBlocks), false, "QuartzPillarSlabBlock" ) ) + */ + this.itemGen = constructor.registerBlockDefinition( new BlockItemGen() ); this.chunkLoader = constructor.registerBlockDefinition( new BlockChunkloader() ); this.phantomNode = constructor.registerBlockDefinition( new BlockPhantomNode() ); this.cubeGenerator = constructor.registerBlockDefinition( new BlockCubeGenerator() ); } + private IBlockDefinition makeStairs(DefinitionConstructor constructor, + IBlockDefinition block, String name ) + { + if ( block.maybeBlock().isPresent() ) + return constructor.registerBlockDefinition( new BlockStairCommon( block.maybeBlock().get(), name )); + return null; + } + @Override public IBlockDefinition quartzOre() { @@ -319,7 +310,25 @@ public final class ApiBlocks implements IBlocks @Override public IBlockDefinition skyStone() { - return this.skyStone; + return this.skyStone_stone; + } + + @Override + public IBlockDefinition skyStoneBlock() + { + return this.skyStone_block; + } + + @Override + public IBlockDefinition skyStoneBrick() + { + return this.skyStone_brick; + } + + @Override + public IBlockDefinition skyStoneSmallBrick() + { + return this.skyStone_smallbrick; } @Override @@ -328,6 +337,12 @@ public final class ApiBlocks implements IBlocks return this.skyChest; } + @Override + public IBlockDefinition skyChestBlock() + { + return this.skyChestBlock; + } + @Override public IBlockDefinition skyCompass() { @@ -382,6 +397,7 @@ public final class ApiBlocks implements IBlocks return this.quartzPillarStair; } + /* @Override public IBlockDefinition skyStoneSlab() { @@ -429,7 +445,8 @@ public final class ApiBlocks implements IBlocks { return this.quartzPillarSlab; } - +*/ + @Override public ITileDefinition grindStone() { @@ -660,8 +677,4 @@ public final class ApiBlocks implements IBlocks return this.cubeGenerator; } - public Set orientables() - { - return this.orientables; - } } diff --git a/src/main/java/appeng/core/api/definitions/ApiParts.java b/src/main/java/appeng/core/api/definitions/ApiParts.java index 27a2ae57..581f1805 100644 --- a/src/main/java/appeng/core/api/definitions/ApiParts.java +++ b/src/main/java/appeng/core/api/definitions/ApiParts.java @@ -57,10 +57,10 @@ public final class ApiParts implements IParts private final IItemDefinition p2PTunnelRedstone; private final IItemDefinition p2PTunnelItems; private final IItemDefinition p2PTunnelLiquids; - private final IItemDefinition p2PTunnelEU; - private final IItemDefinition p2PTunnelRF; + //private final IItemDefinition p2PTunnelEU; + //private final IItemDefinition p2PTunnelRF; private final IItemDefinition p2PTunnelLight; - private final IItemDefinition p2PTunnelOpenComputers; + //private final IItemDefinition p2PTunnelOpenComputers; private final IItemDefinition cableAnchor; private final IItemDefinition monitor; private final IItemDefinition semiDarkMonitor; @@ -100,10 +100,10 @@ public final class ApiParts implements IParts this.p2PTunnelRedstone = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelRedstone ) ); this.p2PTunnelItems = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelItems ) ); this.p2PTunnelLiquids = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelLiquids ) ); - this.p2PTunnelEU = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelEU ) ); - this.p2PTunnelRF = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelRF ) ); + //this.p2PTunnelEU = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelEU ) ); + //this.p2PTunnelRF = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelRF ) ); this.p2PTunnelLight = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelLight ) ); - this.p2PTunnelOpenComputers = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelOpenComputers ) ); + //this.p2PTunnelOpenComputers = new DamagedItemDefinition( itemMultiPart.createPart( PartType.P2PTunnelOpenComputers ) ); this.cableAnchor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.CableAnchor ) ); this.monitor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.Monitor ) ); this.semiDarkMonitor = new DamagedItemDefinition( itemMultiPart.createPart( PartType.SemiDarkMonitor ) ); @@ -257,7 +257,8 @@ public final class ApiParts implements IParts { return this.p2PTunnelLiquids; } - + +/* @Override public IItemDefinition p2PTunnelEU() { @@ -269,19 +270,22 @@ public final class ApiParts implements IParts { return this.p2PTunnelRF; } - +*/ + @Override public IItemDefinition p2PTunnelLight() { return this.p2PTunnelLight; } - + +/* @Override public IItemDefinition p2PTunnelOpenComputers() { return this.p2PTunnelOpenComputers; } - +*/ + @Override public IItemDefinition cableAnchor() { diff --git a/src/main/java/appeng/core/api/definitions/DefinitionConstructor.java b/src/main/java/appeng/core/api/definitions/DefinitionConstructor.java index 4b3be3c7..7322d345 100644 --- a/src/main/java/appeng/core/api/definitions/DefinitionConstructor.java +++ b/src/main/java/appeng/core/api/definitions/DefinitionConstructor.java @@ -2,7 +2,6 @@ package appeng.core.api.definitions; import net.minecraft.item.Item; - import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IItemDefinition; import appeng.api.definitions.ITileDefinition; diff --git a/src/main/java/appeng/core/api/imc/IMCBlackListSpatial.java b/src/main/java/appeng/core/api/imc/IMCBlackListSpatial.java index 30663ddd..131443d6 100644 --- a/src/main/java/appeng/core/api/imc/IMCBlackListSpatial.java +++ b/src/main/java/appeng/core/api/imc/IMCBlackListSpatial.java @@ -21,9 +21,7 @@ package appeng.core.api.imc; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; - +import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage; import appeng.api.AEApi; import appeng.core.AELog; import appeng.core.api.IIMCProcessor; diff --git a/src/main/java/appeng/core/api/imc/IMCGrinder.java b/src/main/java/appeng/core/api/imc/IMCGrinder.java index d8c0284c..6e50050d 100644 --- a/src/main/java/appeng/core/api/imc/IMCGrinder.java +++ b/src/main/java/appeng/core/api/imc/IMCGrinder.java @@ -55,9 +55,7 @@ package appeng.core.api.imc; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; - +import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage; import appeng.api.AEApi; import appeng.core.api.IIMCProcessor; diff --git a/src/main/java/appeng/core/api/imc/IMCMatterCannon.java b/src/main/java/appeng/core/api/imc/IMCMatterCannon.java index 958363c4..87126e7e 100644 --- a/src/main/java/appeng/core/api/imc/IMCMatterCannon.java +++ b/src/main/java/appeng/core/api/imc/IMCMatterCannon.java @@ -34,9 +34,7 @@ package appeng.core.api.imc; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; - +import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage; import appeng.api.AEApi; import appeng.core.api.IIMCProcessor; diff --git a/src/main/java/appeng/core/api/imc/IMCP2PAttunement.java b/src/main/java/appeng/core/api/imc/IMCP2PAttunement.java index 59f1b5b0..dd27a244 100644 --- a/src/main/java/appeng/core/api/imc/IMCP2PAttunement.java +++ b/src/main/java/appeng/core/api/imc/IMCP2PAttunement.java @@ -33,9 +33,7 @@ package appeng.core.api.imc; import java.util.Arrays; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; - +import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage; import appeng.api.AEApi; import appeng.api.config.TunnelType; import appeng.core.api.IIMCProcessor; diff --git a/src/main/java/appeng/core/api/imc/IMCSpatial.java b/src/main/java/appeng/core/api/imc/IMCSpatial.java index fb82b773..4c0ce5c0 100644 --- a/src/main/java/appeng/core/api/imc/IMCSpatial.java +++ b/src/main/java/appeng/core/api/imc/IMCSpatial.java @@ -25,8 +25,7 @@ FMLInterModComms.sendMessage( "appliedenergistics2", "whitelist-spatial", "mymod package appeng.core.api.imc; -import cpw.mods.fml.common.event.FMLInterModComms.IMCMessage; - +import net.minecraftforge.fml.common.event.FMLInterModComms.IMCMessage; import appeng.api.AEApi; import appeng.core.AELog; import appeng.core.api.IIMCProcessor; diff --git a/src/main/java/appeng/core/crash/BaseCrashEnhancement.java b/src/main/java/appeng/core/crash/BaseCrashEnhancement.java index 905e3c3b..94694763 100644 --- a/src/main/java/appeng/core/crash/BaseCrashEnhancement.java +++ b/src/main/java/appeng/core/crash/BaseCrashEnhancement.java @@ -19,7 +19,7 @@ package appeng.core.crash; -import cpw.mods.fml.common.ICrashCallable; +import net.minecraftforge.fml.common.ICrashCallable; abstract class BaseCrashEnhancement implements ICrashCallable diff --git a/src/main/java/appeng/core/features/AEBlockFeatureHandler.java b/src/main/java/appeng/core/features/AEBlockFeatureHandler.java index a2de3287..bced6111 100644 --- a/src/main/java/appeng/core/features/AEBlockFeatureHandler.java +++ b/src/main/java/appeng/core/features/AEBlockFeatureHandler.java @@ -21,15 +21,15 @@ package appeng.core.features; import java.util.EnumSet; -import com.google.common.base.Optional; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameData; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; import appeng.api.definitions.IBlockDefinition; import appeng.block.AEBaseBlock; import appeng.core.CommonHelper; import appeng.core.CreativeTab; -import appeng.util.Platform; + +import com.google.common.base.Optional; public final class AEBlockFeatureHandler implements IFeatureHandler @@ -62,20 +62,27 @@ public final class AEBlockFeatureHandler implements IFeatureHandler } @Override - public void register() + public void register(Side side) { if( this.enabled ) { String name = this.extractor.get(); this.featured.setCreativeTab( CreativeTab.instance ); - this.featured.setBlockName( /* "tile." */"appliedenergistics2." + name ); - this.featured.setBlockTextureName( "appliedenergistics2:" + name ); + this.featured.setUnlocalizedName( /* "tile." */"appliedenergistics2." + name ); + this.featured.setBlockTextureName( name ); final String registryName = "tile." + name; // Bypass the forge magic with null to register our own itemblock later. GameRegistry.registerBlock( this.featured, null, registryName ); GameRegistry.registerItem( this.definition.maybeItem().get(), registryName ); + + // register the block/item conversion... + if ( this.featured != null && this.definition.maybeItem().isPresent() ) + GameData.getBlockItemMap().put( this.featured, this.definition.maybeItem().get() ); + + if ( side == Side.CLIENT) + CommonHelper.proxy.configureIcon( this.featured, name ); } } } diff --git a/src/main/java/appeng/core/features/AECableBusFeatureHandler.java b/src/main/java/appeng/core/features/AECableBusFeatureHandler.java index 90ae8156..e4977b17 100644 --- a/src/main/java/appeng/core/features/AECableBusFeatureHandler.java +++ b/src/main/java/appeng/core/features/AECableBusFeatureHandler.java @@ -21,12 +21,10 @@ package appeng.core.features; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.tileentity.TileEntity; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameData; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; import appeng.api.definitions.ITileDefinition; import appeng.block.AEBaseTileBlock; import appeng.block.networking.BlockCableBus; @@ -34,6 +32,8 @@ import appeng.core.CommonHelper; import appeng.core.CreativeTab; import appeng.util.Platform; +import com.google.common.base.Optional; + public final class AECableBusFeatureHandler implements IFeatureHandler { @@ -68,14 +68,14 @@ public final class AECableBusFeatureHandler implements IFeatureHandler * Registration of the {@link TileEntity} will actually be handled by {@link BlockCableBus#setupTile()}. */ @Override - public void register() + public void register(Side side) { if( this.enabled ) { String name = this.extractor.get(); this.featured.setCreativeTab( CreativeTab.instance ); - this.featured.setBlockName( /* "tile." */"appliedenergistics2." + name ); - this.featured.setBlockTextureName( "appliedenergistics2:" + name ); + this.featured.setUnlocalizedName( /* "tile." */"appliedenergistics2." + name ); + this.featured.setBlockTextureName( name ); if( Platform.isClient() ) { @@ -87,6 +87,13 @@ public final class AECableBusFeatureHandler implements IFeatureHandler // Bypass the forge magic with null to register our own itemblock later. GameRegistry.registerBlock( this.featured, null, registryName ); GameRegistry.registerItem( this.definition.maybeItem().get(), registryName ); + + // register the block/item conversion... + if ( this.featured != null && this.definition.maybeItem().isPresent() ) + GameData.getBlockItemMap().put( this.featured, this.definition.maybeItem().get() ); + + if ( side == Side.CLIENT) + CommonHelper.proxy.configureIcon( this.featured, name ); } } } diff --git a/src/main/java/appeng/core/features/AETileBlockFeatureHandler.java b/src/main/java/appeng/core/features/AETileBlockFeatureHandler.java index 3aadf68a..d1346ef6 100644 --- a/src/main/java/appeng/core/features/AETileBlockFeatureHandler.java +++ b/src/main/java/appeng/core/features/AETileBlockFeatureHandler.java @@ -21,16 +21,17 @@ package appeng.core.features; import java.util.EnumSet; -import com.google.common.base.Optional; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameData; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; import appeng.api.definitions.ITileDefinition; import appeng.block.AEBaseTileBlock; import appeng.core.CommonHelper; import appeng.core.CreativeTab; import appeng.util.Platform; +import com.google.common.base.Optional; + public final class AETileBlockFeatureHandler implements IFeatureHandler { @@ -62,14 +63,14 @@ public final class AETileBlockFeatureHandler implements IFeatureHandler } @Override - public void register() + public void register(Side side) { if( this.enabled ) { String name = this.extractor.get(); this.featured.setCreativeTab( CreativeTab.instance ); - this.featured.setBlockName( /* "tile." */"appliedenergistics2." + name ); - this.featured.setBlockTextureName( "appliedenergistics2:" + name ); + this.featured.setUnlocalizedName( /* "tile." */"appliedenergistics2." + name ); + this.featured.setBlockTextureName( name ); if( Platform.isClient() ) { @@ -81,7 +82,15 @@ public final class AETileBlockFeatureHandler implements IFeatureHandler // Bypass the forge magic with null to register our own itemblock later. GameRegistry.registerBlock( this.featured, null, registryName ); GameRegistry.registerItem( this.definition.maybeItem().get(), registryName ); + + // register the block/item conversion... + if ( this.featured != null && this.definition.maybeItem().isPresent() ) + GameData.getBlockItemMap().put( this.featured, this.definition.maybeItem().get() ); + GameRegistry.registerTileEntity( this.featured.getTileEntityClass(), this.featured.toString() ); + + if ( side == Side.CLIENT) + CommonHelper.proxy.configureIcon( this.featured, name ); } } } diff --git a/src/main/java/appeng/core/features/BlockDefinition.java b/src/main/java/appeng/core/features/BlockDefinition.java index 83e14a2f..80097de8 100644 --- a/src/main/java/appeng/core/features/BlockDefinition.java +++ b/src/main/java/appeng/core/features/BlockDefinition.java @@ -21,19 +21,19 @@ package appeng.core.features; import java.lang.reflect.Constructor; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.collect.ObjectArrays; - import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; - import appeng.api.definitions.IBlockDefinition; import appeng.block.AEBaseBlock; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; +import com.google.common.collect.ObjectArrays; + public class BlockDefinition extends ItemDefinition implements IBlockDefinition { @@ -151,8 +151,8 @@ public class BlockDefinition extends ItemDefinition implements IBlockDefinition } @Override - public final boolean isSameAs( IBlockAccess world, int x, int y, int z ) + public final boolean isSameAs( IBlockAccess world, BlockPos pos ) { - return this.enabled && world.getBlock( x, y, z ) == this.block; + return this.enabled && world.getBlockState( pos ).getBlock() == this.block; } } diff --git a/src/main/java/appeng/core/features/ColoredItemDefinition.java b/src/main/java/appeng/core/features/ColoredItemDefinition.java index 070a0a9d..ad5d524e 100644 --- a/src/main/java/appeng/core/features/ColoredItemDefinition.java +++ b/src/main/java/appeng/core/features/ColoredItemDefinition.java @@ -23,7 +23,6 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; - import appeng.api.util.AEColor; import appeng.api.util.AEColoredItemDefinition; diff --git a/src/main/java/appeng/core/features/DamagedItemDefinition.java b/src/main/java/appeng/core/features/DamagedItemDefinition.java index 86c97c3d..4d595a24 100644 --- a/src/main/java/appeng/core/features/DamagedItemDefinition.java +++ b/src/main/java/appeng/core/features/DamagedItemDefinition.java @@ -21,15 +21,15 @@ package appeng.core.features; import javax.annotation.Nonnull; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; - import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; - import appeng.api.definitions.IItemDefinition; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; + public final class DamagedItemDefinition implements IItemDefinition { @@ -68,7 +68,7 @@ public final class DamagedItemDefinition implements IItemDefinition } @Override - public boolean isSameAs( IBlockAccess world, int x, int y, int z ) + public boolean isSameAs( IBlockAccess world, BlockPos pos ) { return false; } diff --git a/src/main/java/appeng/core/features/DefinitionConverter.java b/src/main/java/appeng/core/features/DefinitionConverter.java index 8f022955..6f075fa7 100644 --- a/src/main/java/appeng/core/features/DefinitionConverter.java +++ b/src/main/java/appeng/core/features/DefinitionConverter.java @@ -7,8 +7,8 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; - import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IComparableDefinition; import appeng.api.definitions.IItemDefinition; @@ -86,7 +86,7 @@ public final class DefinitionConverter } @Override - public boolean sameAsBlock( IBlockAccess world, int x, int y, int z ) + public boolean sameAsBlock( IBlockAccess world, BlockPos pos ) { return false; } @@ -139,9 +139,9 @@ public final class DefinitionConverter } @Override - public boolean sameAsBlock( IBlockAccess world, int x, int y, int z ) + public boolean sameAsBlock( IBlockAccess world, BlockPos pos ) { - return this.definition.isSameAs( world, x, y, z ); + return this.definition.isSameAs( world, pos ); } } diff --git a/src/main/java/appeng/core/features/IFeatureHandler.java b/src/main/java/appeng/core/features/IFeatureHandler.java index de16fc2e..832454fd 100644 --- a/src/main/java/appeng/core/features/IFeatureHandler.java +++ b/src/main/java/appeng/core/features/IFeatureHandler.java @@ -19,6 +19,7 @@ package appeng.core.features; +import net.minecraftforge.fml.relauncher.Side; import appeng.api.definitions.IItemDefinition; @@ -28,5 +29,5 @@ public interface IFeatureHandler IItemDefinition getDefinition(); - void register(); + void register(Side side ); } diff --git a/src/main/java/appeng/core/features/ItemDefinition.java b/src/main/java/appeng/core/features/ItemDefinition.java index 8c0d55e4..9c69c69a 100644 --- a/src/main/java/appeng/core/features/ItemDefinition.java +++ b/src/main/java/appeng/core/features/ItemDefinition.java @@ -19,16 +19,16 @@ package appeng.core.features; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; - import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; - import appeng.api.definitions.IItemDefinition; import appeng.util.Platform; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; + public class ItemDefinition implements IItemDefinition { @@ -70,7 +70,7 @@ public class ItemDefinition implements IItemDefinition } @Override - public boolean isSameAs( IBlockAccess world, int x, int y, int z ) + public boolean isSameAs( IBlockAccess world, BlockPos pos ) { return false; } diff --git a/src/main/java/appeng/core/features/ItemFeatureHandler.java b/src/main/java/appeng/core/features/ItemFeatureHandler.java index 324d8ceb..24252c66 100644 --- a/src/main/java/appeng/core/features/ItemFeatureHandler.java +++ b/src/main/java/appeng/core/features/ItemFeatureHandler.java @@ -21,17 +21,17 @@ package appeng.core.features; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.item.Item; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; import appeng.api.definitions.IItemDefinition; +import appeng.core.CommonHelper; import appeng.core.CreativeTab; import appeng.core.CreativeTabFacade; import appeng.items.parts.ItemFacade; +import com.google.common.base.Optional; + public final class ItemFeatureHandler implements IFeatureHandler { @@ -63,12 +63,14 @@ public final class ItemFeatureHandler implements IFeatureHandler } @Override - public void register() + public void register(Side side) { if( this.enabled ) { String name = this.extractor.get(); - this.item.setTextureName( "appliedenergistics2:" + name ); + String itemPhysicalName = name; + + //this.item.setTextureName( "appliedenergistics2:" + name ); this.item.setUnlocalizedName( /* "item." */"appliedenergistics2." + name ); if( this.item instanceof ItemFacade ) @@ -90,6 +92,20 @@ public final class ItemFeatureHandler implements IFeatureHandler } GameRegistry.registerItem( this.item, "item." + name ); + + if ( side == Side.CLIENT ) + { + CommonHelper.proxy.configureIcon( item, itemPhysicalName ); + } } } + + + private void configureIcon( + Item item, + int meta, + String name ) + { + } + } diff --git a/src/main/java/appeng/core/features/MaterialStackSrc.java b/src/main/java/appeng/core/features/MaterialStackSrc.java index 9b4ee560..04efcde6 100644 --- a/src/main/java/appeng/core/features/MaterialStackSrc.java +++ b/src/main/java/appeng/core/features/MaterialStackSrc.java @@ -21,7 +21,6 @@ package appeng.core.features; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - import appeng.items.materials.MaterialType; diff --git a/src/main/java/appeng/core/features/SlabBlockFeatureHandler.java b/src/main/java/appeng/core/features/SlabBlockFeatureHandler.java deleted file mode 100644 index e394e7d7..00000000 --- a/src/main/java/appeng/core/features/SlabBlockFeatureHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.core.features; - - -import java.util.EnumSet; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockSlab; -import appeng.api.definitions.IBlockDefinition; -import appeng.block.AEBaseItemBlockSlab; -import appeng.block.AEBaseSlabBlock; -import appeng.core.CreativeTab; - -import com.google.common.base.Optional; - -import cpw.mods.fml.common.registry.GameRegistry; - - -public class SlabBlockFeatureHandler implements IFeatureHandler -{ - private final AEBaseSlabBlock slabs; - private final FeatureNameExtractor extractor; - private final boolean enabled; - private final BlockDefinition definition; - - public SlabBlockFeatureHandler( EnumSet features, AEBaseSlabBlock slabs ) - { - final ActivityState state = new FeaturedActiveChecker( features ).getActivityState(); - this.slabs = slabs; - this.extractor = new FeatureNameExtractor( slabs.getClass(), Optional.absent()); - this.enabled = state == ActivityState.Enabled; - this.definition = new BlockDefinition( slabs, state ); - } - - @Override - public final boolean isFeatureAvailable() - { - return this.enabled; - } - - @Override - public final IBlockDefinition getDefinition() - { - return this.definition; - } - - @Override - public final void register() - { - if( this.enabled ) - { - this.slabs.setCreativeTab( CreativeTab.instance ); - GameRegistry.registerBlock( slabs, AEBaseItemBlockSlab.class, "tile." + slabs.name(), slabs, slabs.doubleSlabs(), false); - GameRegistry.registerBlock( slabs.doubleSlabs(), AEBaseItemBlockSlab.class, "tile." + slabs.name() + ".double", slabs, slabs.doubleSlabs(), true); - } - } -} diff --git a/src/main/java/appeng/core/features/StairBlockFeatureHandler.java b/src/main/java/appeng/core/features/StairBlockFeatureHandler.java index 06073fbf..daa78dcf 100644 --- a/src/main/java/appeng/core/features/StairBlockFeatureHandler.java +++ b/src/main/java/appeng/core/features/StairBlockFeatureHandler.java @@ -21,15 +21,14 @@ package appeng.core.features; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.block.BlockStairs; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.relauncher.Side; import appeng.api.definitions.IBlockDefinition; import appeng.core.CreativeTab; +import com.google.common.base.Optional; + public class StairBlockFeatureHandler implements IFeatureHandler { @@ -61,14 +60,14 @@ public class StairBlockFeatureHandler implements IFeatureHandler } @Override - public final void register() + public final void register(Side side) { if( this.enabled ) { String name = this.extractor.get(); this.stairs.setCreativeTab( CreativeTab.instance ); - this.stairs.setBlockName( "appliedenergistics2." + name ); - this.stairs.setBlockTextureName( "appliedenergistics2:" + name ); + this.stairs.setUnlocalizedName( "appliedenergistics2." + name ); + //this.stairs.setBlockTextureName( "appliedenergistics2:" + name ); GameRegistry.registerBlock( this.stairs, "tile." + name ); } diff --git a/src/main/java/appeng/core/features/TileDefinition.java b/src/main/java/appeng/core/features/TileDefinition.java index 22a40145..2e67401d 100644 --- a/src/main/java/appeng/core/features/TileDefinition.java +++ b/src/main/java/appeng/core/features/TileDefinition.java @@ -19,14 +19,13 @@ package appeng.core.features; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; - import net.minecraft.tileentity.TileEntity; - import appeng.api.definitions.ITileDefinition; import appeng.block.AEBaseTileBlock; +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; + public final class TileDefinition extends BlockDefinition implements ITileDefinition { diff --git a/src/main/java/appeng/core/features/WrappedDamageItemDefinition.java b/src/main/java/appeng/core/features/WrappedDamageItemDefinition.java deleted file mode 100644 index dcc127de..00000000 --- a/src/main/java/appeng/core/features/WrappedDamageItemDefinition.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.core.features; - - -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockAccess; - -import appeng.api.definitions.ITileDefinition; - - -public final class WrappedDamageItemDefinition implements ITileDefinition -{ - private final ITileDefinition definition; - private final int damage; - - public WrappedDamageItemDefinition( ITileDefinition definition, int damage ) - { - Preconditions.checkNotNull( definition ); - Preconditions.checkArgument( damage >= 0 ); - - this.definition = definition; - this.damage = damage; - } - - @Override - public Optional> maybeEntity() - { - return this.definition.maybeEntity(); - } - - @Override - public Optional maybeBlock() - { - return this.definition.maybeBlock(); - } - - @Override - public Optional maybeItemBlock() - { - return this.definition.maybeItemBlock(); - } - - @Override - public Optional maybeItem() - { - return this.definition.maybeItem(); - } - - @Override - public Optional maybeStack( final int stackSize ) - { - return this.definition.maybeBlock().transform( new BlockTransformFunction( stackSize, this.damage ) ); - } - - @Override - public boolean isSameAs( ItemStack comparableStack ) - { - if( comparableStack == null ) - { - return false; - } - - final boolean sameItem = this.definition.isSameAs( new ItemStack( comparableStack.getItem() ) ); - final boolean sameDamage = comparableStack.getItemDamage() == this.damage; - - return sameItem && sameDamage; - } - - @Override - public boolean isSameAs( IBlockAccess world, int x, int y, int z ) - { - return this.definition.isSameAs( world, x, y, z ) && world.getBlockMetadata( x, y, z ) == this.damage; - } - - private static final class BlockTransformFunction implements Function - { - private final int stackSize; - private final int damage; - - public BlockTransformFunction( int stackSize, int damage ) - { - Preconditions.checkArgument( stackSize > 0 ); - Preconditions.checkArgument( damage >= 0 ); - - this.stackSize = stackSize; - this.damage = damage; - } - - @Override - public ItemStack apply( Block input ) - { - Preconditions.checkNotNull( input ); - - return new ItemStack( input, this.stackSize, this.damage ); - } - } -} diff --git a/src/main/java/appeng/core/features/registries/CellRegistry.java b/src/main/java/appeng/core/features/registries/CellRegistry.java index 3e5680db..9886e9b2 100644 --- a/src/main/java/appeng/core/features/registries/CellRegistry.java +++ b/src/main/java/appeng/core/features/registries/CellRegistry.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.storage.ICellHandler; import appeng.api.storage.ICellRegistry; import appeng.api.storage.IMEInventoryHandler; diff --git a/src/main/java/appeng/core/features/registries/ExternalStorageRegistry.java b/src/main/java/appeng/core/features/registries/ExternalStorageRegistry.java index 085b8aa1..5780608c 100644 --- a/src/main/java/appeng/core/features/registries/ExternalStorageRegistry.java +++ b/src/main/java/appeng/core/features/registries/ExternalStorageRegistry.java @@ -23,8 +23,7 @@ import java.util.ArrayList; import java.util.List; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IExternalStorageRegistry; @@ -50,7 +49,7 @@ public class ExternalStorageRegistry implements IExternalStorageRegistry } @Override - public IExternalStorageHandler getHandler( TileEntity te, ForgeDirection d, StorageChannel chan, BaseActionSource mySrc ) + public IExternalStorageHandler getHandler( TileEntity te, EnumFacing d, StorageChannel chan, BaseActionSource mySrc ) { for( IExternalStorageHandler x : this.Handlers ) { diff --git a/src/main/java/appeng/core/features/registries/GrinderRecipeManager.java b/src/main/java/appeng/core/features/registries/GrinderRecipeManager.java index cb1215d7..90230be6 100644 --- a/src/main/java/appeng/core/features/registries/GrinderRecipeManager.java +++ b/src/main/java/appeng/core/features/registries/GrinderRecipeManager.java @@ -28,7 +28,6 @@ import java.util.Map.Entry; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; - import appeng.api.features.IGrinderEntry; import appeng.api.features.IGrinderRegistry; import appeng.core.AEConfig; diff --git a/src/main/java/appeng/core/features/registries/InscriberRegistry.java b/src/main/java/appeng/core/features/registries/InscriberRegistry.java index 6915cc7b..8c0fce82 100644 --- a/src/main/java/appeng/core/features/registries/InscriberRegistry.java +++ b/src/main/java/appeng/core/features/registries/InscriberRegistry.java @@ -11,7 +11,6 @@ import java.util.Set; import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; - import appeng.api.features.IInscriberRecipe; import appeng.api.features.IInscriberRecipeBuilder; import appeng.api.features.IInscriberRegistry; diff --git a/src/main/java/appeng/core/features/registries/LocatableRegistry.java b/src/main/java/appeng/core/features/registries/LocatableRegistry.java index 3ce6f10a..872cab47 100644 --- a/src/main/java/appeng/core/features/registries/LocatableRegistry.java +++ b/src/main/java/appeng/core/features/registries/LocatableRegistry.java @@ -23,9 +23,7 @@ import java.util.HashMap; import java.util.Map; import net.minecraftforge.common.MinecraftForge; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import appeng.api.events.LocatableEventAnnounce; import appeng.api.events.LocatableEventAnnounce.LocatableEvent; import appeng.api.features.ILocatable; diff --git a/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java b/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java index 72a07ed8..73782e26 100644 --- a/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java +++ b/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java @@ -23,7 +23,6 @@ import java.util.HashMap; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; - import appeng.api.features.IMatterCannonAmmoRegistry; import appeng.recipes.ores.IOreListener; import appeng.recipes.ores.OreDictionaryHandler; diff --git a/src/main/java/appeng/core/features/registries/MovableTileRegistry.java b/src/main/java/appeng/core/features/registries/MovableTileRegistry.java index 0558af32..46314ce7 100644 --- a/src/main/java/appeng/core/features/registries/MovableTileRegistry.java +++ b/src/main/java/appeng/core/features/registries/MovableTileRegistry.java @@ -25,7 +25,6 @@ import java.util.LinkedList; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; - import appeng.api.exceptions.AppEngException; import appeng.api.movable.IMovableHandler; import appeng.api.movable.IMovableRegistry; diff --git a/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java b/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java index 8495c3f6..dbbda85f 100644 --- a/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java +++ b/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java @@ -21,16 +21,16 @@ package appeng.core.features.registries; import java.util.HashMap; import java.util.Map; + import javax.annotation.Nullable; import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidContainerRegistry; +import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; - -import cpw.mods.fml.common.registry.GameRegistry; - import appeng.api.AEApi; import appeng.api.config.TunnelType; import appeng.api.definitions.IBlocks; @@ -158,14 +158,14 @@ public final class P2PTunnelRegistry implements IP2PTunnelRegistry @Nullable private ItemStack getModItem( String modID, String name, int meta ) { - ItemStack myItemStack = GameRegistry.findItemStack( modID, name, 1 ); + Item item = GameRegistry.findItem( modID, name ); - if( myItemStack == null ) + if( item == null ) { return null; } - - myItemStack.setItemDamage( meta ); + + ItemStack myItemStack = new ItemStack( item, 1, meta ); return myItemStack; } diff --git a/src/main/java/appeng/core/features/registries/PlayerRegistry.java b/src/main/java/appeng/core/features/registries/PlayerRegistry.java index eda915f3..cc77f546 100644 --- a/src/main/java/appeng/core/features/registries/PlayerRegistry.java +++ b/src/main/java/appeng/core/features/registries/PlayerRegistry.java @@ -19,13 +19,12 @@ package appeng.core.features.registries; -import com.mojang.authlib.GameProfile; - import net.minecraft.entity.player.EntityPlayer; - import appeng.api.features.IPlayerRegistry; import appeng.core.WorldSettings; +import com.mojang.authlib.GameProfile; + public class PlayerRegistry implements IPlayerRegistry { diff --git a/src/main/java/appeng/core/features/registries/SpecialComparisonRegistry.java b/src/main/java/appeng/core/features/registries/SpecialComparisonRegistry.java index 013cb5f1..3c43c21e 100644 --- a/src/main/java/appeng/core/features/registries/SpecialComparisonRegistry.java +++ b/src/main/java/appeng/core/features/registries/SpecialComparisonRegistry.java @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.features.IItemComparison; import appeng.api.features.IItemComparisonProvider; import appeng.api.features.ISpecialComparisonRegistry; diff --git a/src/main/java/appeng/core/features/registries/WirelessRegistry.java b/src/main/java/appeng/core/features/registries/WirelessRegistry.java index bba934a2..3cdd60c8 100644 --- a/src/main/java/appeng/core/features/registries/WirelessRegistry.java +++ b/src/main/java/appeng/core/features/registries/WirelessRegistry.java @@ -25,7 +25,6 @@ import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.features.ILocatable; import appeng.api.features.IWirelessTermHandler; diff --git a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java index 7992b989..9ccdec56 100644 --- a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java +++ b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java @@ -23,7 +23,6 @@ import java.util.HashSet; import net.minecraft.world.World; import net.minecraft.world.WorldProvider; - import appeng.api.features.IWorldGen; @@ -96,8 +95,8 @@ public final class WorldGenRegistry implements IWorldGen } boolean isBadProvider = this.types[type.ordinal()].badProviders.contains( w.provider.getClass() ); - boolean isBadDimension = this.types[type.ordinal()].badDimensions.contains( w.provider.dimensionId ); - boolean isGoodDimension = this.types[type.ordinal()].enabledDimensions.contains( w.provider.dimensionId ); + boolean isBadDimension = this.types[type.ordinal()].badDimensions.contains( w.provider.getDimensionId() ); + boolean isGoodDimension = this.types[type.ordinal()].enabledDimensions.contains( w.provider.getDimensionId() ); if( isBadProvider || isBadDimension ) { diff --git a/src/main/java/appeng/core/features/registries/entries/AppEngGrinderRecipe.java b/src/main/java/appeng/core/features/registries/entries/AppEngGrinderRecipe.java index e88e0ce5..1e56482f 100644 --- a/src/main/java/appeng/core/features/registries/entries/AppEngGrinderRecipe.java +++ b/src/main/java/appeng/core/features/registries/entries/AppEngGrinderRecipe.java @@ -20,7 +20,6 @@ package appeng.core.features.registries.entries; import net.minecraft.item.ItemStack; - import appeng.api.features.IGrinderEntry; diff --git a/src/main/java/appeng/core/features/registries/entries/BasicCellHandler.java b/src/main/java/appeng/core/features/registries/entries/BasicCellHandler.java index 2bca6cf0..40944ac1 100644 --- a/src/main/java/appeng/core/features/registries/entries/BasicCellHandler.java +++ b/src/main/java/appeng/core/features/registries/entries/BasicCellHandler.java @@ -22,8 +22,6 @@ package appeng.core.features.registries.entries; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; - import appeng.api.implementations.tiles.IChestOrDrive; import appeng.api.storage.ICellHandler; import appeng.api.storage.ICellInventory; @@ -32,7 +30,9 @@ import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.ISaveProvider; import appeng.api.storage.StorageChannel; +import appeng.api.util.AEPartLocation; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.core.sync.GuiBridge; import appeng.me.storage.CellInventory; import appeng.me.storage.CellInventoryHandler; @@ -59,19 +59,19 @@ public class BasicCellHandler implements ICellHandler } @Override - public IIcon getTopTexture_Light() + public IAESprite getTopTexture_Light() { return ExtraBlockTextures.BlockMEChestItems_Light.getIcon(); } @Override - public IIcon getTopTexture_Medium() + public IAESprite getTopTexture_Medium() { return ExtraBlockTextures.BlockMEChestItems_Medium.getIcon(); } @Override - public IIcon getTopTexture_Dark() + public IAESprite getTopTexture_Dark() { return ExtraBlockTextures.BlockMEChestItems_Dark.getIcon(); } @@ -79,7 +79,7 @@ public class BasicCellHandler implements ICellHandler @Override public void openChestGui( EntityPlayer player, IChestOrDrive chest, ICellHandler cellHandler, IMEInventoryHandler inv, ItemStack is, StorageChannel chan ) { - Platform.openGUI( player, (TileEntity) chest, chest.getUp(), GuiBridge.GUI_ME ); + Platform.openGUI( player, (TileEntity) chest, AEPartLocation.fromFacing( chest.getUp() ), GuiBridge.GUI_ME ); } @Override diff --git a/src/main/java/appeng/core/features/registries/entries/CreativeCellHandler.java b/src/main/java/appeng/core/features/registries/entries/CreativeCellHandler.java index 021c4b97..1876fd81 100644 --- a/src/main/java/appeng/core/features/registries/entries/CreativeCellHandler.java +++ b/src/main/java/appeng/core/features/registries/entries/CreativeCellHandler.java @@ -22,15 +22,15 @@ package appeng.core.features.registries.entries; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; - import appeng.api.implementations.tiles.IChestOrDrive; import appeng.api.storage.ICellHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.ISaveProvider; import appeng.api.storage.StorageChannel; +import appeng.api.util.AEPartLocation; import appeng.client.texture.ExtraBlockTextures; +import appeng.client.texture.IAESprite; import appeng.core.sync.GuiBridge; import appeng.items.storage.ItemCreativeStorageCell; import appeng.me.storage.CreativeCellInventory; @@ -57,19 +57,19 @@ public class CreativeCellHandler implements ICellHandler } @Override - public IIcon getTopTexture_Light() + public IAESprite getTopTexture_Light() { return ExtraBlockTextures.BlockMEChestItems_Light.getIcon(); } @Override - public IIcon getTopTexture_Medium() + public IAESprite getTopTexture_Medium() { return ExtraBlockTextures.BlockMEChestItems_Medium.getIcon(); } @Override - public IIcon getTopTexture_Dark() + public IAESprite getTopTexture_Dark() { return ExtraBlockTextures.BlockMEChestItems_Dark.getIcon(); } @@ -77,7 +77,7 @@ public class CreativeCellHandler implements ICellHandler @Override public void openChestGui( EntityPlayer player, IChestOrDrive chest, ICellHandler cellHandler, IMEInventoryHandler inv, ItemStack is, StorageChannel chan ) { - Platform.openGUI( player, (TileEntity) chest, chest.getUp(), GuiBridge.GUI_ME ); + Platform.openGUI( player, (TileEntity) chest, AEPartLocation.fromFacing( chest.getUp() ), GuiBridge.GUI_ME ); } @Override diff --git a/src/main/java/appeng/core/features/registries/entries/ExternalIInv.java b/src/main/java/appeng/core/features/registries/entries/ExternalIInv.java index e754ba94..068df26c 100644 --- a/src/main/java/appeng/core/features/registries/entries/ExternalIInv.java +++ b/src/main/java/appeng/core/features/registries/entries/ExternalIInv.java @@ -21,8 +21,7 @@ package appeng.core.features.registries.entries; import net.minecraft.inventory.IInventory; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; @@ -35,13 +34,13 @@ public class ExternalIInv implements IExternalStorageHandler { @Override - public boolean canHandle( TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource mySrc ) + public boolean canHandle( TileEntity te, EnumFacing d, StorageChannel channel, BaseActionSource mySrc ) { return channel == StorageChannel.ITEMS && te instanceof IInventory; } @Override - public IMEInventory getInventory( TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src ) + public IMEInventory getInventory( TileEntity te, EnumFacing d, StorageChannel channel, BaseActionSource src ) { InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, d ); diff --git a/src/main/java/appeng/core/features/registries/entries/InscriberInscribeRecipe.java b/src/main/java/appeng/core/features/registries/entries/InscriberInscribeRecipe.java index 775209f4..d6f12d5a 100644 --- a/src/main/java/appeng/core/features/registries/entries/InscriberInscribeRecipe.java +++ b/src/main/java/appeng/core/features/registries/entries/InscriberInscribeRecipe.java @@ -7,7 +7,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.minecraft.item.ItemStack; - import appeng.api.features.InscriberProcessType; diff --git a/src/main/java/appeng/core/features/registries/entries/InscriberRecipe.java b/src/main/java/appeng/core/features/registries/entries/InscriberRecipe.java index 2467b8c8..2456445f 100644 --- a/src/main/java/appeng/core/features/registries/entries/InscriberRecipe.java +++ b/src/main/java/appeng/core/features/registries/entries/InscriberRecipe.java @@ -8,13 +8,12 @@ import java.util.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.google.common.base.Optional; - import net.minecraft.item.ItemStack; - import appeng.api.features.IInscriberRecipe; import appeng.api.features.InscriberProcessType; +import com.google.common.base.Optional; + /** * Basic inscriber recipe diff --git a/src/main/java/appeng/core/stats/AchievementCraftingHandler.java b/src/main/java/appeng/core/stats/AchievementCraftingHandler.java index b98ca6e2..b9362116 100644 --- a/src/main/java/appeng/core/stats/AchievementCraftingHandler.java +++ b/src/main/java/appeng/core/stats/AchievementCraftingHandler.java @@ -19,9 +19,8 @@ package appeng.core.stats; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.PlayerEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.PlayerEvent; import appeng.util.Platform; diff --git a/src/main/java/appeng/core/stats/AchievementPickupHandler.java b/src/main/java/appeng/core/stats/AchievementPickupHandler.java index 91ba2d29..2f5dfb13 100644 --- a/src/main/java/appeng/core/stats/AchievementPickupHandler.java +++ b/src/main/java/appeng/core/stats/AchievementPickupHandler.java @@ -20,10 +20,8 @@ package appeng.core.stats; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.PlayerEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.PlayerEvent; import appeng.util.Platform; diff --git a/src/main/java/appeng/core/stats/Achievements.java b/src/main/java/appeng/core/stats/Achievements.java index 047c1ac2..8aab0ba7 100644 --- a/src/main/java/appeng/core/stats/Achievements.java +++ b/src/main/java/appeng/core/stats/Achievements.java @@ -22,7 +22,6 @@ package appeng.core.stats; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; - import appeng.api.AEApi; import appeng.api.definitions.IItemDefinition; import appeng.api.util.AEColor; diff --git a/src/main/java/appeng/core/stats/PlayerStatsRegistration.java b/src/main/java/appeng/core/stats/PlayerStatsRegistration.java index dca4192a..ece33d0c 100644 --- a/src/main/java/appeng/core/stats/PlayerStatsRegistration.java +++ b/src/main/java/appeng/core/stats/PlayerStatsRegistration.java @@ -23,9 +23,7 @@ import java.util.ArrayList; import net.minecraft.stats.Achievement; import net.minecraftforge.common.AchievementPage; - -import cpw.mods.fml.common.eventhandler.EventBus; - +import net.minecraftforge.fml.common.eventhandler.EventBus; import appeng.core.AEConfig; import appeng.core.features.AEFeature; @@ -38,7 +36,7 @@ import appeng.core.features.AEFeature; public class PlayerStatsRegistration { /** - * {@link cpw.mods.fml.common.eventhandler.EventBus} to which the handlers might get posted to depending if the feature is enabled + * {@link net.minecraftforge.fml.common.eventhandler.EventBus} to which the handlers might get posted to depending if the feature is enabled */ private final EventBus bus; @@ -48,7 +46,7 @@ public class PlayerStatsRegistration private final boolean isAchievementFeatureEnabled; /** - * Constructs this with an {@link cpw.mods.fml.common.eventhandler.EventBus} and {@link appeng.core.AEConfig}. + * Constructs this with an {@link net.minecraftforge.fml.common.eventhandler.EventBus} and {@link appeng.core.AEConfig}. * * @param bus {@see #bus} * @param config {@link appeng.core.AEConfig} which is used to determine if the {@link appeng.core.features.AEFeature#Achievements} is enabled diff --git a/src/main/java/appeng/core/sync/AppEngPacket.java b/src/main/java/appeng/core/sync/AppEngPacket.java index 9c2cd3ef..9dfa9ad4 100644 --- a/src/main/java/appeng/core/sync/AppEngPacket.java +++ b/src/main/java/appeng/core/sync/AppEngPacket.java @@ -21,10 +21,13 @@ package appeng.core.sync; import io.netty.buffer.ByteBuf; +import java.io.IOException; + import net.minecraft.entity.player.EntityPlayer; - -import cpw.mods.fml.common.network.internal.FMLProxyPacket; - +import net.minecraft.network.INetHandler; +import net.minecraft.network.Packet; +import net.minecraft.network.PacketBuffer; +import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; import appeng.core.AEConfig; import appeng.core.AELog; import appeng.core.features.AEFeature; @@ -32,11 +35,11 @@ import appeng.core.sync.network.INetworkInfo; import appeng.core.sync.network.NetworkHandler; -public abstract class AppEngPacket +public abstract class AppEngPacket implements Packet { AppEngPacketHandlerBase.PacketTypes id; - private ByteBuf p; + private PacketBuffer p; public void serverPacketData( INetworkInfo manager, AppEngPacket packet, EntityPlayer player ) { @@ -56,7 +59,7 @@ public abstract class AppEngPacket protected void configureWrite( ByteBuf data ) { data.capacity( data.readableBytes() ); - this.p = data; + this.p = new PacketBuffer(data); } public FMLProxyPacket getProxy() @@ -75,4 +78,27 @@ public abstract class AppEngPacket return pp; } + + @Override + public void readPacketData(PacketBuffer buf) throws IOException + { + throw new RuntimeException( "Not Implemented" ); + } + + @Override + public void writePacketData(PacketBuffer buf) throws IOException + { + throw new RuntimeException( "Not Implemented" ); + } + + PacketCallState caller; + + public void setCallParam( PacketCallState call ){caller = call;} + + @Override + public void processPacket(INetHandler handler) + { + caller.call(this); + } + } diff --git a/src/main/java/appeng/core/sync/AppEngPacketHandlerBase.java b/src/main/java/appeng/core/sync/AppEngPacketHandlerBase.java index 7c4521d5..185c89e3 100644 --- a/src/main/java/appeng/core/sync/AppEngPacketHandlerBase.java +++ b/src/main/java/appeng/core/sync/AppEngPacketHandlerBase.java @@ -19,13 +19,13 @@ package appeng.core.sync; +import io.netty.buffer.ByteBuf; + import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; -import io.netty.buffer.ByteBuf; - import appeng.core.sync.packets.PacketAssemblerAnimation; import appeng.core.sync.packets.PacketClick; import appeng.core.sync.packets.PacketCompassRequest; diff --git a/src/main/java/appeng/core/sync/GuiBridge.java b/src/main/java/appeng/core/sync/GuiBridge.java index 3161f0ea..df09f118 100644 --- a/src/main/java/appeng/core/sync/GuiBridge.java +++ b/src/main/java/appeng/core/sync/GuiBridge.java @@ -22,19 +22,15 @@ package appeng.core.sync; import java.lang.reflect.Constructor; import java.util.List; -import com.google.common.collect.Lists; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.common.network.IGuiHandler; -import cpw.mods.fml.relauncher.ReflectionHelper; - +import net.minecraftforge.fml.common.network.IGuiHandler; +import net.minecraftforge.fml.relauncher.ReflectionHelper; import appeng.api.AEApi; import appeng.api.config.SecurityPermissions; import appeng.api.definitions.IComparableDefinition; @@ -53,6 +49,7 @@ import appeng.api.networking.security.ISecurityGrid; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; import appeng.api.storage.ITerminalHost; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.client.gui.GuiNull; import appeng.container.AEBaseContainer; @@ -119,6 +116,8 @@ import appeng.tile.storage.TileIOPort; import appeng.tile.storage.TileSkyChest; import appeng.util.Platform; +import com.google.common.collect.Lists; + public enum GuiBridge implements IGuiHandler { @@ -247,7 +246,7 @@ public enum GuiBridge implements IGuiHandler @Override public Object getServerGuiElement( int ordinal, EntityPlayer player, World w, int x, int y, int z ) { - ForgeDirection side = ForgeDirection.getOrientation( ordinal & 0x07 ); + AEPartLocation side = AEPartLocation.fromOrdinal( ordinal & 0x07 ); GuiBridge ID = values()[ordinal >> 4]; boolean stem = ( ( ordinal >> 3 ) & 1 ) == 1; if( ID.type.isItem() ) @@ -269,7 +268,7 @@ public enum GuiBridge implements IGuiHandler } if( ID.type.isTile() ) { - TileEntity TE = w.getTileEntity( x, y, z ); + TileEntity TE = w.getTileEntity( new BlockPos(x,y,z) ); if( TE instanceof IPartHost ) { ( (IPartHost) TE ).getPart( side ); @@ -296,7 +295,7 @@ public enum GuiBridge implements IGuiHandler { if( it.getItem() instanceof IGuiItem ) { - return ( (IGuiItem) it.getItem() ).getGuiObject( it, w, x, y, z ); + return ( (IGuiItem) it.getItem() ).getGuiObject( it, w, new BlockPos(x,y,z) ); } IWirelessTermHandler wh = AEApi.instance().registries().wireless().getWirelessTerminalHandler( it ); @@ -319,7 +318,7 @@ public enum GuiBridge implements IGuiHandler return this.tileClass.isInstance( tE ); } - private Object updateGui( Object newContainer, World w, int x, int y, int z, ForgeDirection side, Object myItem ) + private Object updateGui( Object newContainer, World w, int x, int y, int z, AEPartLocation side, Object myItem ) { if( newContainer instanceof AEBaseContainer ) { @@ -335,7 +334,7 @@ public enum GuiBridge implements IGuiHandler return newContainer; } - public Object ConstructContainer( InventoryPlayer inventory, ForgeDirection side, Object tE ) + public Object ConstructContainer( InventoryPlayer inventory, AEPartLocation side, Object tE ) { try { @@ -429,7 +428,7 @@ public enum GuiBridge implements IGuiHandler @Override public Object getClientGuiElement( int ordinal, EntityPlayer player, World w, int x, int y, int z ) { - ForgeDirection side = ForgeDirection.getOrientation( ordinal & 0x07 ); + AEPartLocation side = AEPartLocation.fromOrdinal( ordinal & 0x07 ); GuiBridge ID = values()[ordinal >> 4]; boolean stem = ( ( ordinal >> 3 ) & 1 ) == 1; if( ID.type.isItem() ) @@ -451,7 +450,7 @@ public enum GuiBridge implements IGuiHandler } if( ID.type.isTile() ) { - TileEntity TE = w.getTileEntity( x, y, z ); + TileEntity TE = w.getTileEntity( new BlockPos(x,y,z) ); if( TE instanceof IPartHost ) { ( (IPartHost) TE ).getPart( side ); @@ -472,7 +471,7 @@ public enum GuiBridge implements IGuiHandler return new GuiNull( new ContainerNull() ); } - public Object ConstructGui( InventoryPlayer inventory, ForgeDirection side, Object tE ) + public Object ConstructGui( InventoryPlayer inventory, AEPartLocation side, Object tE ) { try { @@ -497,18 +496,19 @@ public enum GuiBridge implements IGuiHandler } } - public boolean hasPermissions( TileEntity te, int x, int y, int z, ForgeDirection side, EntityPlayer player ) + public boolean hasPermissions( TileEntity te, int x, int y, int z, AEPartLocation side, EntityPlayer player ) { World w = player.getEntityWorld(); + BlockPos pos = new BlockPos(x,y,z); - if( Platform.hasPermissions( te != null ? new DimensionalCoord( te ) : new DimensionalCoord( player.worldObj, x, y, z ), player ) ) + if( Platform.hasPermissions( te != null ? new DimensionalCoord( te ) : new DimensionalCoord( player.worldObj, pos ), player ) ) { if( this.type.isItem() ) { ItemStack it = player.inventory.getCurrentItem(); if( it != null && it.getItem() instanceof IGuiItem ) { - Object myItem = ( (IGuiItem) it.getItem() ).getGuiObject( it, w, x, y, z ); + Object myItem = ( (IGuiItem) it.getItem() ).getGuiObject( it, w, pos ); if( this.CorrectTileOrPart( myItem ) ) { return true; @@ -518,7 +518,7 @@ public enum GuiBridge implements IGuiHandler if( this.type.isTile() ) { - TileEntity TE = w.getTileEntity( x, y, z ); + TileEntity TE = w.getTileEntity( pos ); if( TE instanceof IPartHost ) { ( (IPartHost) TE ).getPart( side ); diff --git a/src/main/java/appeng/core/sync/PacketCallState.java b/src/main/java/appeng/core/sync/PacketCallState.java new file mode 100644 index 00000000..349237f5 --- /dev/null +++ b/src/main/java/appeng/core/sync/PacketCallState.java @@ -0,0 +1,9 @@ +package appeng.core.sync; + +abstract public class PacketCallState +{ + + public abstract void call( AppEngPacket appEngPacket ); + + +} diff --git a/src/main/java/appeng/core/sync/network/AppEngClientPacketHandler.java b/src/main/java/appeng/core/sync/network/AppEngClientPacketHandler.java index 261d3108..d1bd0265 100644 --- a/src/main/java/appeng/core/sync/network/AppEngClientPacketHandler.java +++ b/src/main/java/appeng/core/sync/network/AppEngClientPacketHandler.java @@ -19,36 +19,53 @@ package appeng.core.sync.network; -import java.lang.reflect.InvocationTargetException; - import io.netty.buffer.ByteBuf; +import java.lang.reflect.InvocationTargetException; + import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; - -import cpw.mods.fml.common.network.internal.FMLProxyPacket; - +import net.minecraft.network.INetHandler; +import net.minecraft.network.PacketThreadUtil; +import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; import appeng.core.AELog; import appeng.core.sync.AppEngPacket; import appeng.core.sync.AppEngPacketHandlerBase; +import appeng.core.sync.PacketCallState; public class AppEngClientPacketHandler extends AppEngPacketHandlerBase implements IPacketHandler { @Override - public void onPacketData( INetworkInfo network, FMLProxyPacket packet, EntityPlayer player ) + public void onPacketData( + final INetworkInfo manager, + INetHandler handler, + FMLProxyPacket packet, + final EntityPlayer player ) { ByteBuf stream = packet.payload(); int packetType = -1; - player = Minecraft.getMinecraft().thePlayer; - try { packetType = stream.readInt(); AppEngPacket pack = PacketTypes.getPacket( packetType ).parsePacket( stream ); - pack.clientPacketData( network, pack, player ); + + PacketCallState callState = + new PacketCallState(){ + + @Override + public void call( + AppEngPacket appEngPacket ) + { + appEngPacket.clientPacketData( manager, appEngPacket, Minecraft.getMinecraft().thePlayer ); + } + }; + + pack.setCallParam(callState); + PacketThreadUtil.checkThreadAndEnqueue( pack, handler, Minecraft.getMinecraft() ); + callState.call( pack ); } catch( InstantiationException e ) { diff --git a/src/main/java/appeng/core/sync/network/AppEngServerPacketHandler.java b/src/main/java/appeng/core/sync/network/AppEngServerPacketHandler.java index 2a9a51dc..dd08316d 100644 --- a/src/main/java/appeng/core/sync/network/AppEngServerPacketHandler.java +++ b/src/main/java/appeng/core/sync/network/AppEngServerPacketHandler.java @@ -19,24 +19,26 @@ package appeng.core.sync.network; -import java.lang.reflect.InvocationTargetException; - import io.netty.buffer.ByteBuf; +import java.lang.reflect.InvocationTargetException; + import net.minecraft.entity.player.EntityPlayer; - -import cpw.mods.fml.common.network.internal.FMLProxyPacket; - +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.network.INetHandler; +import net.minecraft.network.PacketThreadUtil; +import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; import appeng.core.AELog; import appeng.core.sync.AppEngPacket; import appeng.core.sync.AppEngPacketHandlerBase; +import appeng.core.sync.PacketCallState; public final class AppEngServerPacketHandler extends AppEngPacketHandlerBase implements IPacketHandler { @Override - public void onPacketData( INetworkInfo manager, FMLProxyPacket packet, EntityPlayer player ) + public void onPacketData( final INetworkInfo manager, INetHandler handler, FMLProxyPacket packet, final EntityPlayer player ) { ByteBuf stream = packet.payload(); int packetType = -1; @@ -45,7 +47,21 @@ public final class AppEngServerPacketHandler extends AppEngPacketHandlerBase imp { packetType = stream.readInt(); AppEngPacket pack = PacketTypes.getPacket( packetType ).parsePacket( stream ); - pack.serverPacketData( manager, pack, player ); + + PacketCallState callState = + new PacketCallState(){ + + @Override + public void call( + AppEngPacket appEngPacket ) + { + appEngPacket.serverPacketData( manager, appEngPacket, player); + } + }; + + pack.setCallParam(callState); + PacketThreadUtil.checkThreadAndEnqueue( pack, handler, ((EntityPlayerMP)player).getServerForPlayer() ); + callState.call( pack ); } catch( InstantiationException e ) { diff --git a/src/main/java/appeng/core/sync/network/IPacketHandler.java b/src/main/java/appeng/core/sync/network/IPacketHandler.java index 44a42fc7..be5cf397 100644 --- a/src/main/java/appeng/core/sync/network/IPacketHandler.java +++ b/src/main/java/appeng/core/sync/network/IPacketHandler.java @@ -20,12 +20,13 @@ package appeng.core.sync.network; import net.minecraft.entity.player.EntityPlayer; - -import cpw.mods.fml.common.network.internal.FMLProxyPacket; +import net.minecraft.network.INetHandler; +import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; public interface IPacketHandler { - void onPacketData( INetworkInfo manager, FMLProxyPacket packet, EntityPlayer player ); + void onPacketData( INetworkInfo manager, INetHandler handler, FMLProxyPacket packet, EntityPlayer player ); + } diff --git a/src/main/java/appeng/core/sync/network/NetworkHandler.java b/src/main/java/appeng/core/sync/network/NetworkHandler.java index d5c775e2..8dec11f2 100644 --- a/src/main/java/appeng/core/sync/network/NetworkHandler.java +++ b/src/main/java/appeng/core/sync/network/NetworkHandler.java @@ -21,16 +21,15 @@ package appeng.core.sync.network; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.NetHandlerPlayServer; - -import cpw.mods.fml.common.FMLCommonHandler; -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.ServerConnectionFromClientEvent; -import cpw.mods.fml.common.network.FMLNetworkEvent.ServerCustomPacketEvent; -import cpw.mods.fml.common.network.NetworkRegistry; - +import net.minecraft.network.ThreadQuickExitException; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent; +import net.minecraftforge.fml.common.network.FMLEventChannel; +import net.minecraftforge.fml.common.network.FMLNetworkEvent.ClientCustomPacketEvent; +import net.minecraftforge.fml.common.network.FMLNetworkEvent.ServerConnectionFromClientEvent; +import net.minecraftforge.fml.common.network.FMLNetworkEvent.ServerCustomPacketEvent; +import net.minecraftforge.fml.common.network.NetworkRegistry; import appeng.core.WorldSettings; import appeng.core.sync.AppEngPacket; @@ -101,7 +100,14 @@ public class NetworkHandler NetHandlerPlayServer srv = (NetHandlerPlayServer) ev.packet.handler(); if( this.serveHandler != null ) { - this.serveHandler.onPacketData( null, ev.packet, srv.playerEntity ); + try + { + this.serveHandler.onPacketData( null, ev.handler, ev.packet, srv.playerEntity ); + } + catch ( final ThreadQuickExitException ext ) + { + ; + } } } @@ -110,7 +116,14 @@ public class NetworkHandler { if( this.clientHandler != null ) { - this.clientHandler.onPacketData( null, ev.packet, null ); + try + { + this.clientHandler.onPacketData( null, ev.handler, ev.packet, null ); + } + catch ( final ThreadQuickExitException ext ) + { + ; + } } } diff --git a/src/main/java/appeng/core/sync/packets/PacketAssemblerAnimation.java b/src/main/java/appeng/core/sync/packets/PacketAssemblerAnimation.java index 9129dabf..231cb710 100644 --- a/src/main/java/appeng/core/sync/packets/PacketAssemblerAnimation.java +++ b/src/main/java/appeng/core/sync/packets/PacketAssemblerAnimation.java @@ -19,16 +19,15 @@ package appeng.core.sync.packets; -import java.io.IOException; - import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; +import java.io.IOException; + import net.minecraft.entity.player.EntityPlayer; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.util.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.storage.data.IAEItemStack; import appeng.client.EffectType; import appeng.core.CommonHelper; @@ -57,15 +56,15 @@ public class PacketAssemblerAnimation extends AppEngPacket } // api - public PacketAssemblerAnimation( int x, int y, int z, byte rate, IAEItemStack is ) throws IOException + public PacketAssemblerAnimation( BlockPos pos, byte rate, IAEItemStack is ) throws IOException { ByteBuf data = Unpooled.buffer(); data.writeInt( this.getPacketID() ); - data.writeInt( this.x = x ); - data.writeInt( this.y = y ); - data.writeInt( this.z = z ); + data.writeInt( this.x = pos.getX() ); + data.writeInt( this.y = pos.getY() ); + data.writeInt( this.z = pos.getZ() ); data.writeByte( this.rate = rate ); is.writeToPacket( data ); this.is = is; diff --git a/src/main/java/appeng/core/sync/packets/PacketClick.java b/src/main/java/appeng/core/sync/packets/PacketClick.java index 457454f3..2e9de91d 100644 --- a/src/main/java/appeng/core/sync/packets/PacketClick.java +++ b/src/main/java/appeng/core/sync/packets/PacketClick.java @@ -21,10 +21,10 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; - +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.definitions.IComparableDefinition; import appeng.api.definitions.IItems; @@ -60,16 +60,16 @@ public class PacketClick extends AppEngPacket } // api - public PacketClick( int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public PacketClick( BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ ) { ByteBuf data = Unpooled.buffer(); data.writeInt( this.getPacketID() ); - data.writeInt( this.x = x ); - data.writeInt( this.y = y ); - data.writeInt( this.z = z ); - data.writeInt( this.side = side ); + data.writeInt( this.x = pos.getX() ); + data.writeInt( this.y = pos.getY() ); + data.writeInt( this.z = pos.getZ() ); + data.writeInt( this.side = side.ordinal() ); data.writeFloat( this.hitX = hitX ); data.writeFloat( this.hitY = hitY ); data.writeFloat( this.hitZ = hitZ ); @@ -90,7 +90,7 @@ public class PacketClick extends AppEngPacket if( is.getItem() instanceof ToolNetworkTool ) { ToolNetworkTool tnt = (ToolNetworkTool) is.getItem(); - tnt.serverSideToolLogic( is, player, player.worldObj, this.x, this.y, this.z, this.side, this.hitX, this.hitY, this.hitZ ); + tnt.serverSideToolLogic( is, player, player.worldObj, new BlockPos( this.x, this.y, this.z), EnumFacing.VALUES[ this.side ], this.hitX, this.hitY, this.hitZ ); } else if( maybeMemoryCard.isSameAs( is ) ) diff --git a/src/main/java/appeng/core/sync/packets/PacketCompassRequest.java b/src/main/java/appeng/core/sync/packets/PacketCompassRequest.java index f90cad6a..990049d5 100644 --- a/src/main/java/appeng/core/sync/packets/PacketCompassRequest.java +++ b/src/main/java/appeng/core/sync/packets/PacketCompassRequest.java @@ -21,10 +21,8 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; - import appeng.api.util.DimensionalCoord; import appeng.core.WorldSettings; import appeng.core.sync.AppEngPacket; diff --git a/src/main/java/appeng/core/sync/packets/PacketCompassResponse.java b/src/main/java/appeng/core/sync/packets/PacketCompassResponse.java index 0307bf72..c5fa2a92 100644 --- a/src/main/java/appeng/core/sync/packets/PacketCompassResponse.java +++ b/src/main/java/appeng/core/sync/packets/PacketCompassResponse.java @@ -21,9 +21,7 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; - import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; import appeng.hooks.CompassManager; diff --git a/src/main/java/appeng/core/sync/packets/PacketCompressedNBT.java b/src/main/java/appeng/core/sync/packets/PacketCompressedNBT.java index 68bb97b3..70ccc71a 100644 --- a/src/main/java/appeng/core/sync/packets/PacketCompressedNBT.java +++ b/src/main/java/appeng/core/sync/packets/PacketCompressedNBT.java @@ -19,6 +19,9 @@ package appeng.core.sync.packets; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; @@ -27,18 +30,13 @@ import java.io.OutputStream; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.client.gui.implementations.GuiInterfaceTerminal; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; diff --git a/src/main/java/appeng/core/sync/packets/PacketConfigButton.java b/src/main/java/appeng/core/sync/packets/PacketConfigButton.java index 2bd7834d..f90239e4 100644 --- a/src/main/java/appeng/core/sync/packets/PacketConfigButton.java +++ b/src/main/java/appeng/core/sync/packets/PacketConfigButton.java @@ -21,10 +21,8 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; - import appeng.api.config.Settings; import appeng.api.util.IConfigManager; import appeng.api.util.IConfigurableObject; diff --git a/src/main/java/appeng/core/sync/packets/PacketCraftRequest.java b/src/main/java/appeng/core/sync/packets/PacketCraftRequest.java index e742af10..b38f30a3 100644 --- a/src/main/java/appeng/core/sync/packets/PacketCraftRequest.java +++ b/src/main/java/appeng/core/sync/packets/PacketCraftRequest.java @@ -19,20 +19,19 @@ package appeng.core.sync.packets; -import java.util.concurrent.Future; - import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; +import java.util.concurrent.Future; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; import appeng.api.networking.crafting.ICraftingGrid; import appeng.api.networking.crafting.ICraftingJob; +import appeng.api.util.AEPartLocation; import appeng.container.ContainerOpenContext; import appeng.container.implementations.ContainerCraftAmount; import appeng.container.implementations.ContainerCraftConfirm; @@ -80,7 +79,7 @@ public class PacketCraftRequest extends AppEngPacket if( target instanceof IGridHost ) { IGridHost gh = (IGridHost) target; - IGridNode gn = gh.getGridNode( ForgeDirection.UNKNOWN ); + IGridNode gn = gh.getGridNode( AEPartLocation.INTERNAL ); if( gn == null ) { return; diff --git a/src/main/java/appeng/core/sync/packets/PacketInventoryAction.java b/src/main/java/appeng/core/sync/packets/PacketInventoryAction.java index 7c2d8c70..efc03bc3 100644 --- a/src/main/java/appeng/core/sync/packets/PacketInventoryAction.java +++ b/src/main/java/appeng/core/sync/packets/PacketInventoryAction.java @@ -19,15 +19,14 @@ package appeng.core.sync.packets; -import java.io.IOException; - import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; +import java.io.IOException; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; - import appeng.api.storage.data.IAEItemStack; import appeng.client.ClientHelper; import appeng.container.AEBaseContainer; diff --git a/src/main/java/appeng/core/sync/packets/PacketLightning.java b/src/main/java/appeng/core/sync/packets/PacketLightning.java index 24dee29d..834c46fb 100644 --- a/src/main/java/appeng/core/sync/packets/PacketLightning.java +++ b/src/main/java/appeng/core/sync/packets/PacketLightning.java @@ -21,13 +21,10 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.client.ClientHelper; import appeng.client.render.effects.LightningFX; import appeng.core.AEConfig; diff --git a/src/main/java/appeng/core/sync/packets/PacketMEInventoryUpdate.java b/src/main/java/appeng/core/sync/packets/PacketMEInventoryUpdate.java index 075d6b09..23efb308 100644 --- a/src/main/java/appeng/core/sync/packets/PacketMEInventoryUpdate.java +++ b/src/main/java/appeng/core/sync/packets/PacketMEInventoryUpdate.java @@ -19,6 +19,9 @@ package appeng.core.sync.packets; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -30,17 +33,12 @@ import java.util.zip.GZIPOutputStream; import javax.annotation.Nullable; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; - -import cpw.mods.fml.common.network.internal.FMLProxyPacket; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.common.network.internal.FMLProxyPacket; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.storage.data.IAEItemStack; import appeng.client.gui.implementations.GuiCraftConfirm; import appeng.client.gui.implementations.GuiCraftingCPU; diff --git a/src/main/java/appeng/core/sync/packets/PacketMatterCannon.java b/src/main/java/appeng/core/sync/packets/PacketMatterCannon.java index 964e0e7a..93681c40 100644 --- a/src/main/java/appeng/core/sync/packets/PacketMatterCannon.java +++ b/src/main/java/appeng/core/sync/packets/PacketMatterCannon.java @@ -21,16 +21,13 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.client.Minecraft; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.world.World; - -import cpw.mods.fml.client.FMLClientHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.client.FMLClientHandler; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.client.render.effects.MatterCannonFX; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; diff --git a/src/main/java/appeng/core/sync/packets/PacketMockExplosion.java b/src/main/java/appeng/core/sync/packets/PacketMockExplosion.java index 91e1b421..2a9d6ef3 100644 --- a/src/main/java/appeng/core/sync/packets/PacketMockExplosion.java +++ b/src/main/java/appeng/core/sync/packets/PacketMockExplosion.java @@ -21,13 +21,11 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.EnumParticleTypes; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.core.CommonHelper; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; @@ -70,6 +68,6 @@ public class PacketMockExplosion extends AppEngPacket public void clientPacketData( INetworkInfo network, AppEngPacket packet, EntityPlayer player ) { World world = CommonHelper.proxy.getWorld(); - world.spawnParticle( "largeexplode", this.x, this.y, this.z, 1.0D, 0.0D, 0.0D ); + world.spawnParticle( EnumParticleTypes.EXPLOSION_LARGE, this.x, this.y, this.z, 1.0D, 0.0D, 0.0D, new int[0] ); } } diff --git a/src/main/java/appeng/core/sync/packets/PacketMultiPart.java b/src/main/java/appeng/core/sync/packets/PacketMultiPart.java index d3e8cf1f..14785b1d 100644 --- a/src/main/java/appeng/core/sync/packets/PacketMultiPart.java +++ b/src/main/java/appeng/core/sync/packets/PacketMultiPart.java @@ -21,11 +21,9 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraftforge.common.MinecraftForge; - import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; import appeng.integration.IntegrationRegistry; diff --git a/src/main/java/appeng/core/sync/packets/PacketNEIRecipe.java b/src/main/java/appeng/core/sync/packets/PacketNEIRecipe.java index 62dc54bc..c3c73245 100644 --- a/src/main/java/appeng/core/sync/packets/PacketNEIRecipe.java +++ b/src/main/java/appeng/core/sync/packets/PacketNEIRecipe.java @@ -19,14 +19,14 @@ package appeng.core.sync.packets; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; @@ -37,9 +37,8 @@ import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; import appeng.api.config.SecurityPermissions; @@ -243,7 +242,7 @@ public class PacketNEIRecipe extends AppEngPacket */ private ItemStack extractItemFromPlayerInventory( EntityPlayer player, Actionable mode, ItemStack patternItem ) { - final InventoryAdaptor ia = InventoryAdaptor.getAdaptor( player, ForgeDirection.UNKNOWN ); + final InventoryAdaptor ia = InventoryAdaptor.getAdaptor( player, EnumFacing.UP ); final AEItemStack request = AEItemStack.create( patternItem ); final boolean isSimulated = mode == Actionable.SIMULATE; final boolean checkFuzzy = request.isOre() || patternItem.getItemDamage() == OreDictionary.WILDCARD_VALUE || patternItem.hasTagCompound() || patternItem.isItemStackDamageable(); diff --git a/src/main/java/appeng/core/sync/packets/PacketNewStorageDimension.java b/src/main/java/appeng/core/sync/packets/PacketNewStorageDimension.java index 1b4d225a..4d38b323 100644 --- a/src/main/java/appeng/core/sync/packets/PacketNewStorageDimension.java +++ b/src/main/java/appeng/core/sync/packets/PacketNewStorageDimension.java @@ -21,13 +21,10 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.common.DimensionManager; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.core.AEConfig; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; diff --git a/src/main/java/appeng/core/sync/packets/PacketPaintedEntity.java b/src/main/java/appeng/core/sync/packets/PacketPaintedEntity.java index 28a33af7..4df4c764 100644 --- a/src/main/java/appeng/core/sync/packets/PacketPaintedEntity.java +++ b/src/main/java/appeng/core/sync/packets/PacketPaintedEntity.java @@ -21,9 +21,7 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; - import appeng.api.util.AEColor; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; diff --git a/src/main/java/appeng/core/sync/packets/PacketPartPlacement.java b/src/main/java/appeng/core/sync/packets/PacketPartPlacement.java index 4b7d064a..e4d9c945 100644 --- a/src/main/java/appeng/core/sync/packets/PacketPartPlacement.java +++ b/src/main/java/appeng/core/sync/packets/PacketPartPlacement.java @@ -21,10 +21,10 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; - +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import appeng.core.CommonHelper; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; @@ -51,15 +51,15 @@ public class PacketPartPlacement extends AppEngPacket } // api - public PacketPartPlacement( int x, int y, int z, int face, float eyeHeight ) + public PacketPartPlacement( BlockPos pos, EnumFacing face, float eyeHeight ) { ByteBuf data = Unpooled.buffer(); data.writeInt( this.getPacketID() ); - data.writeInt( x ); - data.writeInt( y ); - data.writeInt( z ); - data.writeByte( face ); + data.writeInt( pos.getX() ); + data.writeInt( pos.getY() ); + data.writeInt( pos.getZ() ); + data.writeByte( face.ordinal() ); data.writeFloat( eyeHeight ); this.configureWrite( data ); @@ -71,7 +71,7 @@ public class PacketPartPlacement extends AppEngPacket EntityPlayerMP sender = (EntityPlayerMP) player; CommonHelper.proxy.updateRenderMode( sender ); PartPlacement.eyeHeight = this.eyeHeight; - PartPlacement.place( sender.getHeldItem(), this.x, this.y, this.z, this.face, sender, sender.worldObj, PartPlacement.PlaceType.INTERACT_FIRST_PASS, 0 ); + PartPlacement.place( sender.getHeldItem(), new BlockPos( this.x, this.y, this.z ), EnumFacing.VALUES[ this.face ], sender, sender.worldObj, PartPlacement.PlaceType.INTERACT_FIRST_PASS, 0 ); CommonHelper.proxy.updateRenderMode( null ); } } diff --git a/src/main/java/appeng/core/sync/packets/PacketPartialItem.java b/src/main/java/appeng/core/sync/packets/PacketPartialItem.java index a09e5f5e..a8c2a37b 100644 --- a/src/main/java/appeng/core/sync/packets/PacketPartialItem.java +++ b/src/main/java/appeng/core/sync/packets/PacketPartialItem.java @@ -21,9 +21,7 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; - import appeng.container.AEBaseContainer; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; diff --git a/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java b/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java index 5f27d3cd..8baeda3a 100644 --- a/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java +++ b/src/main/java/appeng/core/sync/packets/PacketPatternSlot.java @@ -19,15 +19,14 @@ package appeng.core.sync.packets; -import java.io.IOException; - import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; +import java.io.IOException; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.IInventory; - import appeng.api.AEApi; import appeng.api.storage.data.IAEItemStack; import appeng.container.implementations.ContainerPatternTerm; diff --git a/src/main/java/appeng/core/sync/packets/PacketProgressBar.java b/src/main/java/appeng/core/sync/packets/PacketProgressBar.java index 28ebbfbb..1a39b9d3 100644 --- a/src/main/java/appeng/core/sync/packets/PacketProgressBar.java +++ b/src/main/java/appeng/core/sync/packets/PacketProgressBar.java @@ -21,10 +21,8 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; - import appeng.container.AEBaseContainer; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; diff --git a/src/main/java/appeng/core/sync/packets/PacketSwapSlots.java b/src/main/java/appeng/core/sync/packets/PacketSwapSlots.java index cedae974..d917539f 100644 --- a/src/main/java/appeng/core/sync/packets/PacketSwapSlots.java +++ b/src/main/java/appeng/core/sync/packets/PacketSwapSlots.java @@ -21,9 +21,7 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; - import appeng.container.AEBaseContainer; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; diff --git a/src/main/java/appeng/core/sync/packets/PacketSwitchGuis.java b/src/main/java/appeng/core/sync/packets/PacketSwitchGuis.java index c678602d..7b48d28f 100644 --- a/src/main/java/appeng/core/sync/packets/PacketSwitchGuis.java +++ b/src/main/java/appeng/core/sync/packets/PacketSwitchGuis.java @@ -21,11 +21,9 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.tileentity.TileEntity; - import appeng.client.gui.AEBaseGui; import appeng.container.AEBaseContainer; import appeng.container.ContainerOpenContext; diff --git a/src/main/java/appeng/core/sync/packets/PacketTransitionEffect.java b/src/main/java/appeng/core/sync/packets/PacketTransitionEffect.java index ce097c44..b33b207a 100644 --- a/src/main/java/appeng/core/sync/packets/PacketTransitionEffect.java +++ b/src/main/java/appeng/core/sync/packets/PacketTransitionEffect.java @@ -21,19 +21,17 @@ package appeng.core.sync.packets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; +import net.minecraft.util.BlockPos; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.api.util.AEPartLocation; import appeng.client.ClientHelper; import appeng.client.render.effects.EnergyFx; import appeng.core.CommonHelper; @@ -49,7 +47,7 @@ public class PacketTransitionEffect extends AppEngPacket final double x; final double y; final double z; - final ForgeDirection d; + final AEPartLocation d; // automatic. public PacketTransitionEffect( ByteBuf stream ) @@ -57,12 +55,12 @@ public class PacketTransitionEffect extends AppEngPacket this.x = stream.readFloat(); this.y = stream.readFloat(); this.z = stream.readFloat(); - this.d = ForgeDirection.getOrientation( stream.readByte() ); + this.d = AEPartLocation.fromOrdinal( stream.readByte() ); this.mode = stream.readBoolean(); } // api - public PacketTransitionEffect( double x, double y, double z, ForgeDirection dir, boolean wasBlock ) + public PacketTransitionEffect( double x, double y, double z, AEPartLocation dir, boolean wasBlock ) { this.x = x; this.y = y; @@ -99,9 +97,9 @@ public class PacketTransitionEffect extends AppEngPacket fx.fromItem( this.d ); } - fx.motionX = -0.1 * this.d.offsetX; - fx.motionY = -0.1 * this.d.offsetY; - fx.motionZ = -0.1 * this.d.offsetZ; + fx.motionX = -0.1 * this.d.xOffset; + fx.motionY = -0.1 * this.d.yOffset; + fx.motionZ = -0.1 * this.d.zOffset; Minecraft.getMinecraft().effectRenderer.addEffect( fx ); } @@ -109,9 +107,9 @@ public class PacketTransitionEffect extends AppEngPacket if( this.mode ) { - Block block = world.getBlock( (int) this.x, (int) this.y, (int) this.z ); + Block block = world.getBlockState( new BlockPos( (int) this.x, (int) this.y, (int) this.z ) ).getBlock(); - Minecraft.getMinecraft().getSoundHandler().playSound( new PositionedSoundRecord( new ResourceLocation( block.stepSound.getBreakSound() ), ( block.stepSound.getVolume() + 1.0F ) / 2.0F, block.stepSound.getPitch() * 0.8F, (float) this.x + 0.5F, (float) this.y + 0.5F, (float) this.z + 0.5F ) ); + Minecraft.getMinecraft().getSoundHandler().playSound( new PositionedSoundRecord( new ResourceLocation( block.stepSound.getBreakSound() ), ( block.stepSound.getVolume() + 1.0F ) / 2.0F, block.stepSound.getFrequency() * 0.8F, (float) this.x + 0.5F, (float) this.y + 0.5F, (float) this.z + 0.5F ) ); } } } diff --git a/src/main/java/appeng/core/sync/packets/PacketValueConfig.java b/src/main/java/appeng/core/sync/packets/PacketValueConfig.java index 4372d9f4..0ae48118 100644 --- a/src/main/java/appeng/core/sync/packets/PacketValueConfig.java +++ b/src/main/java/appeng/core/sync/packets/PacketValueConfig.java @@ -19,21 +19,20 @@ package appeng.core.sync.packets; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; - import appeng.api.config.FuzzyMode; import appeng.api.config.Settings; import appeng.api.util.IConfigManager; diff --git a/src/main/java/appeng/crafting/CraftingJob.java b/src/main/java/appeng/crafting/CraftingJob.java index fb84f509..a59dc62d 100644 --- a/src/main/java/appeng/crafting/CraftingJob.java +++ b/src/main/java/appeng/crafting/CraftingJob.java @@ -24,11 +24,8 @@ import java.util.HashSet; import java.util.Set; import java.util.concurrent.TimeUnit; -import com.google.common.base.Stopwatch; - import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.networking.IGrid; @@ -43,6 +40,8 @@ import appeng.api.storage.data.IItemList; import appeng.core.AELog; import appeng.hooks.TickHandler; +import com.google.common.base.Stopwatch; + public class CraftingJob implements Runnable, ICraftingJob { diff --git a/src/main/java/appeng/crafting/CraftingLink.java b/src/main/java/appeng/crafting/CraftingLink.java index 9b66419c..54637924 100644 --- a/src/main/java/appeng/crafting/CraftingLink.java +++ b/src/main/java/appeng/crafting/CraftingLink.java @@ -20,7 +20,6 @@ package appeng.crafting; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.config.Actionable; import appeng.api.networking.crafting.ICraftingCPU; import appeng.api.networking.crafting.ICraftingLink; diff --git a/src/main/java/appeng/crafting/CraftingTreeNode.java b/src/main/java/appeng/crafting/CraftingTreeNode.java index f5676e77..cc6cea5d 100644 --- a/src/main/java/appeng/crafting/CraftingTreeNode.java +++ b/src/main/java/appeng/crafting/CraftingTreeNode.java @@ -24,7 +24,6 @@ import java.util.LinkedList; import java.util.List; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; diff --git a/src/main/java/appeng/crafting/CraftingTreeProcess.java b/src/main/java/appeng/crafting/CraftingTreeProcess.java index 9648b7b5..b57dfcee 100644 --- a/src/main/java/appeng/crafting/CraftingTreeProcess.java +++ b/src/main/java/appeng/crafting/CraftingTreeProcess.java @@ -27,9 +27,7 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraft.world.WorldServer; - -import cpw.mods.fml.common.FMLCommonHandler; - +import net.minecraftforge.fml.common.FMLCommonHandler; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.networking.crafting.ICraftingGrid; diff --git a/src/main/java/appeng/debug/BlockChunkloader.java b/src/main/java/appeng/debug/BlockChunkloader.java index 674462bc..54f9d2f1 100644 --- a/src/main/java/appeng/debug/BlockChunkloader.java +++ b/src/main/java/appeng/debug/BlockChunkloader.java @@ -23,12 +23,10 @@ import java.util.EnumSet; import java.util.List; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.world.World; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.LoadingCallback; import net.minecraftforge.common.ForgeChunkManager.Ticket; - import appeng.block.AEBaseTileBlock; import appeng.core.AppEng; import appeng.core.features.AEFeature; @@ -51,9 +49,4 @@ public class BlockChunkloader extends AEBaseTileBlock implements LoadingCallback } - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - this.registerNoIcons(); - } } diff --git a/src/main/java/appeng/debug/BlockCubeGenerator.java b/src/main/java/appeng/debug/BlockCubeGenerator.java index aafbfaac..675db3b8 100644 --- a/src/main/java/appeng/debug/BlockCubeGenerator.java +++ b/src/main/java/appeng/debug/BlockCubeGenerator.java @@ -22,10 +22,10 @@ package appeng.debug; import java.util.EnumSet; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; - import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; @@ -39,11 +39,18 @@ public class BlockCubeGenerator extends AEBaseTileBlock this.setTileEntity( TileCubeGenerator.class ); this.setFeature( EnumSet.of( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative ) ); } - + @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - TileCubeGenerator tcg = this.getTileEntity( w, x, y, z ); + TileCubeGenerator tcg = this.getTileEntity( w, pos ); if( tcg != null ) { tcg.click( player ); @@ -51,10 +58,5 @@ public class BlockCubeGenerator extends AEBaseTileBlock return true; } - - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - this.registerNoIcons(); - } + } diff --git a/src/main/java/appeng/debug/BlockItemGen.java b/src/main/java/appeng/debug/BlockItemGen.java index 42f0d2c7..62cdb879 100644 --- a/src/main/java/appeng/debug/BlockItemGen.java +++ b/src/main/java/appeng/debug/BlockItemGen.java @@ -22,8 +22,6 @@ package appeng.debug; import java.util.EnumSet; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; - import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; @@ -37,10 +35,5 @@ public class BlockItemGen extends AEBaseTileBlock this.setTileEntity( TileItemGen.class ); this.setFeature( EnumSet.of( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative ) ); } - - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - this.registerNoIcons(); - } + } diff --git a/src/main/java/appeng/debug/BlockPhantomNode.java b/src/main/java/appeng/debug/BlockPhantomNode.java index 6f5aa2ea..71a75adb 100644 --- a/src/main/java/appeng/debug/BlockPhantomNode.java +++ b/src/main/java/appeng/debug/BlockPhantomNode.java @@ -22,10 +22,10 @@ package appeng.debug; import java.util.EnumSet; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; - import appeng.block.AEBaseTileBlock; import appeng.core.features.AEFeature; @@ -41,16 +41,18 @@ public class BlockPhantomNode extends AEBaseTileBlock } @Override - public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ ) + public boolean onActivated( + World w, + BlockPos pos, + EntityPlayer player, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - TilePhantomNode tpn = this.getTileEntity( w, x, y, z ); + TilePhantomNode tpn = this.getTileEntity( w, pos ); tpn.triggerCrashMode(); return true; } - @Override - public void registerBlockIcons( IIconRegister iconRegistry ) - { - this.registerNoIcons(); - } } diff --git a/src/main/java/appeng/debug/TileChunkLoader.java b/src/main/java/appeng/debug/TileChunkLoader.java index 4e956942..cfa9e455 100644 --- a/src/main/java/appeng/debug/TileChunkLoader.java +++ b/src/main/java/appeng/debug/TileChunkLoader.java @@ -23,14 +23,13 @@ import java.util.List; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.server.MinecraftServer; +import net.minecraft.server.gui.IUpdatePlayerListBox; import net.minecraft.util.ChatComponentText; import net.minecraft.world.ChunkCoordIntPair; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeChunkManager.Ticket; import net.minecraftforge.common.ForgeChunkManager.Type; - -import cpw.mods.fml.common.FMLCommonHandler; - +import net.minecraftforge.fml.common.FMLCommonHandler; import appeng.core.AELog; import appeng.core.AppEng; import appeng.tile.AEBaseTile; @@ -39,7 +38,7 @@ import appeng.tile.events.TileEventType; import appeng.util.Platform; -public class TileChunkLoader extends AEBaseTile +public class TileChunkLoader extends AEBaseTile implements IUpdatePlayerListBox { boolean requestTicket = true; @@ -79,7 +78,7 @@ public class TileChunkLoader extends AEBaseTile } AELog.info( "New Ticket " + this.ct.toString() ); - ForgeChunkManager.forceChunk( this.ct, new ChunkCoordIntPair( this.xCoord >> 4, this.zCoord >> 4 ) ); + ForgeChunkManager.forceChunk( this.ct, new ChunkCoordIntPair( this.pos.getX() >> 4, this.pos.getZ() >> 4 ) ); } @Override diff --git a/src/main/java/appeng/debug/TileCubeGenerator.java b/src/main/java/appeng/debug/TileCubeGenerator.java index 28faa487..884fd69e 100644 --- a/src/main/java/appeng/debug/TileCubeGenerator.java +++ b/src/main/java/appeng/debug/TileCubeGenerator.java @@ -22,9 +22,10 @@ package appeng.debug; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.server.gui.IUpdatePlayerListBox; +import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentText; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.core.CommonHelper; import appeng.tile.AEBaseTile; import appeng.tile.TileEvent; @@ -32,7 +33,7 @@ import appeng.tile.events.TileEventType; import appeng.util.Platform; -public class TileCubeGenerator extends AEBaseTile +public class TileCubeGenerator extends AEBaseTile implements IUpdatePlayerListBox { int size = 3; @@ -64,10 +65,10 @@ public class TileCubeGenerator extends AEBaseTile void spawn() { - this.worldObj.setBlock( this.xCoord, this.yCoord, this.zCoord, Platform.AIR_BLOCK, 0, 3 ); + this.worldObj.setBlockToAir( pos ); Item i = this.is.getItem(); - int side = ForgeDirection.UP.ordinal(); + EnumFacing side = EnumFacing.UP; int half = (int) Math.floor( this.size / 2 ); @@ -77,7 +78,8 @@ public class TileCubeGenerator extends AEBaseTile { for( int z = -half; z < half; z++ ) { - i.onItemUse( this.is.copy(), this.who, this.worldObj, x + this.xCoord, y + this.yCoord - 1, z + this.zCoord, side, 0.5f, 0.0f, 0.5f ); + BlockPos p = pos.add( x, y-1, z ); + i.onItemUse( this.is.copy(), this.who, this.worldObj, p, side, 0.5f, 0.0f, 0.5f ); } } } diff --git a/src/main/java/appeng/debug/TileItemGen.java b/src/main/java/appeng/debug/TileItemGen.java index 631ea94e..7f49a0e9 100644 --- a/src/main/java/appeng/debug/TileItemGen.java +++ b/src/main/java/appeng/debug/TileItemGen.java @@ -28,7 +28,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - +import net.minecraft.util.IChatComponent; import appeng.tile.AEBaseTile; @@ -104,13 +104,13 @@ public class TileItemGen extends AEBaseTile implements IInventory } @Override - public String getInventoryName() + public String getName() { return null; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -128,20 +128,55 @@ public class TileItemGen extends AEBaseTile implements IInventory } @Override - public void openInventory() + public void openInventory( + EntityPlayer player ) { - + } - + @Override - public void closeInventory() + public void closeInventory( + EntityPlayer player ) { - + } - + @Override public boolean isItemValidForSlot( int i, ItemStack itemstack ) { return false; } + + @Override + public IChatComponent getDisplayName() + { + return null; + } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + + } } diff --git a/src/main/java/appeng/debug/TilePhantomNode.java b/src/main/java/appeng/debug/TilePhantomNode.java index d9b0aa18..b6d7933e 100644 --- a/src/main/java/appeng/debug/TilePhantomNode.java +++ b/src/main/java/appeng/debug/TilePhantomNode.java @@ -21,9 +21,9 @@ package appeng.debug; import java.util.EnumSet; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.networking.IGridNode; +import appeng.api.util.AEPartLocation; import appeng.me.helpers.AENetworkProxy; import appeng.tile.grid.AENetworkTile; @@ -35,7 +35,7 @@ public class TilePhantomNode extends AENetworkTile boolean crashMode = false; @Override - public IGridNode getGridNode( ForgeDirection dir ) + public IGridNode getGridNode( AEPartLocation dir ) { if( !this.crashMode ) { @@ -59,7 +59,7 @@ public class TilePhantomNode extends AENetworkTile if( this.proxy != null ) { this.crashMode = true; - this.proxy.setValidSides( EnumSet.allOf( ForgeDirection.class ) ); + this.proxy.setValidSides( EnumSet.allOf( EnumFacing.class ) ); } } } diff --git a/src/main/java/appeng/debug/ToolDebugCard.java b/src/main/java/appeng/debug/ToolDebugCard.java index 04368686..f2683c88 100644 --- a/src/main/java/appeng/debug/ToolDebugCard.java +++ b/src/main/java/appeng/debug/ToolDebugCard.java @@ -27,10 +27,10 @@ import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGridConnection; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; @@ -41,6 +41,7 @@ import appeng.api.networking.pathing.IPathingGrid; import appeng.api.networking.ticking.ITickManager; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; +import appeng.api.util.AEPartLocation; import appeng.core.features.AEFeature; import appeng.hooks.TickHandler; import appeng.items.AEBaseItem; @@ -60,7 +61,15 @@ public class ToolDebugCard extends AEBaseItem } @Override - public boolean onItemUseFirst( ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( Platform.isClient() ) { @@ -83,11 +92,11 @@ public class ToolDebugCard extends AEBaseItem } else { - TileEntity te = world.getTileEntity( x, y, z ); + TileEntity te = world.getTileEntity( pos ); if( te instanceof IGridHost ) { - GridNode node = (GridNode) ( (IGridHost) te ).getGridNode( ForgeDirection.getOrientation( side ) ); + GridNode node = (GridNode) ( (IGridHost) te ).getGridNode( AEPartLocation.fromFacing( side ) ); if( node != null ) { Grid g = node.getInternalGrid(); @@ -173,7 +182,7 @@ public class ToolDebugCard extends AEBaseItem if( te instanceof IPartHost ) { - IPart center = ( (IPartHost) te ).getPart( ForgeDirection.UNKNOWN ); + IPart center = ( (IPartHost) te ).getPart( AEPartLocation.INTERNAL ); ( (IPartHost) te ).markForUpdate(); if( center != null ) { @@ -181,8 +190,8 @@ public class ToolDebugCard extends AEBaseItem this.outputMsg( player, "Node Channels: " + n.usedChannels() ); for( IGridConnection gc : n.getConnections() ) { - ForgeDirection fd = gc.getDirection( n ); - if( fd != ForgeDirection.UNKNOWN ) + AEPartLocation fd = gc.getDirection( n ); + if( fd != AEPartLocation.INTERNAL ) { this.outputMsg( player, fd.toString() + ": " + gc.getUsedChannels() ); } @@ -197,7 +206,7 @@ public class ToolDebugCard extends AEBaseItem if( te instanceof IGridHost ) { - IGridNode node = ( (IGridHost) te ).getGridNode( ForgeDirection.getOrientation( side ) ); + IGridNode node = ( (IGridHost) te ).getGridNode( AEPartLocation.fromFacing( side ) ); if( node != null && node.getGrid() != null ) { IEnergyGrid eg = node.getGrid().getCache( IEnergyGrid.class ); diff --git a/src/main/java/appeng/debug/ToolEraser.java b/src/main/java/appeng/debug/ToolEraser.java index 4ff80aa6..61182b92 100644 --- a/src/main/java/appeng/debug/ToolEraser.java +++ b/src/main/java/appeng/debug/ToolEraser.java @@ -19,19 +19,16 @@ package appeng.debug; -import java.util.Collection; import java.util.EnumSet; import java.util.LinkedList; import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; 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; @@ -47,49 +44,49 @@ public class ToolEraser extends AEBaseItem { this.setFeature( EnumSet.of( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative ) ); } - + @Override - public void registerIcons( IIconRegister par1IconRegister ) - { - this.itemIcon = new MissingIcon( this ); - } - - @Override - public boolean onItemUseFirst( ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( Platform.isClient() ) { return false; } - Block blk = world.getBlock( x, y, z ); - int meta = world.getBlockMetadata( x, y, z ); + IBlockState state = world.getBlockState( pos ); int blocks = 0; - List next = new LinkedList(); - next.add( new WorldCoord( x, y, z ) ); + List next = new LinkedList(); + next.add( pos ); while( blocks < BLOCK_ERASE_LIMIT && !next.isEmpty() ) { - List c = next; - next = new LinkedList(); + List c = next; + next = new LinkedList(); - for( WorldCoord wc : c ) + for( BlockPos wc : c ) { - Block c_blk = world.getBlock( wc.x, wc.y, wc.z ); - int c_meta = world.getBlockMetadata( wc.x, wc.y, wc.z ); + IBlockState c_state = world.getBlockState( wc ); - if( c_blk == blk && c_meta == meta ) + if( state == c_state ) { blocks++; - world.setBlock( wc.x, wc.y, wc.z, Platform.AIR_BLOCK ); + world.setBlockToAir( wc ); - this.wrappedAdd( world, wc.x + 1, wc.y, wc.z, next ); - this.wrappedAdd( world, wc.x - 1, wc.y, wc.z, next ); - this.wrappedAdd( world, wc.x, wc.y + 1, wc.z, next ); - this.wrappedAdd( world, wc.x, wc.y - 1, wc.z, next ); - this.wrappedAdd( world, wc.x, wc.y, wc.z + 1, next ); - this.wrappedAdd( world, wc.x, wc.y, wc.z - 1, next ); + next.add( wc.add( 1, 0, 0 ) ); + next.add( wc.add( -1, 0, 0 ) ); + next.add( wc.add( 0, 1, 0 ) ); + next.add( wc.add( 0, -1, 0 ) ); + next.add( wc.add( 0, 0, 1 ) ); + next.add( wc.add( 0, 0, -1 ) ); } } } @@ -98,9 +95,4 @@ public class ToolEraser extends AEBaseItem return true; } - - private void wrappedAdd( World world, int i, int y, int z, Collection next ) - { - next.add( new WorldCoord( i, y, z ) ); - } } diff --git a/src/main/java/appeng/debug/ToolMeteoritePlacer.java b/src/main/java/appeng/debug/ToolMeteoritePlacer.java index 6632ed78..7743ece7 100644 --- a/src/main/java/appeng/debug/ToolMeteoritePlacer.java +++ b/src/main/java/appeng/debug/ToolMeteoritePlacer.java @@ -21,13 +21,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.BlockPos; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; - -import appeng.client.texture.MissingIcon; import appeng.core.features.AEFeature; import appeng.items.AEBaseItem; import appeng.util.Platform; @@ -43,13 +42,15 @@ public class ToolMeteoritePlacer extends AEBaseItem } @Override - public void registerIcons( IIconRegister par1IconRegister ) - { - this.itemIcon = new MissingIcon( this ); - } - - @Override - public boolean onItemUseFirst( ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( Platform.isClient() ) { @@ -57,7 +58,7 @@ public class ToolMeteoritePlacer extends AEBaseItem } MeteoritePlacer mp = new MeteoritePlacer(); - boolean worked = mp.spawnMeteorite( new StandardWorld( world ), x, y, z ); + boolean worked = mp.spawnMeteorite( new StandardWorld( world ), pos.getX(),pos.getY(),pos.getZ() ); if( !worked ) { diff --git a/src/main/java/appeng/debug/ToolReplicatorCard.java b/src/main/java/appeng/debug/ToolReplicatorCard.java index 70d56e2a..98fe936a 100644 --- a/src/main/java/appeng/debug/ToolReplicatorCard.java +++ b/src/main/java/appeng/debug/ToolReplicatorCard.java @@ -22,20 +22,22 @@ package appeng.debug; import java.util.EnumSet; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; import appeng.api.networking.spatial.ISpatialCache; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.core.features.AEFeature; import appeng.items.AEBaseItem; @@ -48,25 +50,37 @@ public class ToolReplicatorCard extends AEBaseItem { this.setFeature( EnumSet.of( AEFeature.UnsupportedDeveloperTools, AEFeature.Creative ) ); } - + @Override - public boolean onItemUseFirst( ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( Platform.isClient() ) { return false; } + int x = pos.getX(); + int y = pos.getY(); + int z = pos.getZ(); + if( player.isSneaking() ) { - if( world.getTileEntity( x, y, z ) instanceof IGridHost ) + if( world.getTileEntity( pos ) instanceof IGridHost ) { NBTTagCompound tag = new NBTTagCompound(); tag.setInteger( "x", x ); tag.setInteger( "y", y ); tag.setInteger( "z", z ); - tag.setInteger( "side", side ); - tag.setInteger( "dimid", world.provider.dimensionId ); + tag.setInteger( "side", side.ordinal() ); + tag.setInteger( "dimid", world.provider.getDimensionId() ); stack.setTagCompound( tag ); } else @@ -86,13 +100,13 @@ public class ToolReplicatorCard extends AEBaseItem int dimid = ish.getInteger( "dimid" ); World src_w = DimensionManager.getWorld( dimid ); - TileEntity te = src_w.getTileEntity( src_x, src_y, src_z ); + TileEntity te = src_w.getTileEntity( new BlockPos( src_x, src_y, src_z ) ); if( te instanceof IGridHost ) { IGridHost gh = (IGridHost) te; - ForgeDirection sideOff = ForgeDirection.getOrientation( src_side ); - ForgeDirection currentSideOff = ForgeDirection.getOrientation( side ); - IGridNode n = gh.getGridNode( sideOff ); + EnumFacing sideOff = EnumFacing.VALUES[src_side]; + EnumFacing currentSideOff = side; + IGridNode n = gh.getGridNode( AEPartLocation.fromFacing( sideOff ) ); if( n != null ) { IGrid g = n.getGrid(); @@ -104,9 +118,9 @@ public class ToolReplicatorCard extends AEBaseItem DimensionalCoord min = sc.getMin(); DimensionalCoord max = sc.getMax(); - x += currentSideOff.offsetX; - y += currentSideOff.offsetY; - z += currentSideOff.offsetZ; + x += currentSideOff.getFrontOffsetX(); + y += currentSideOff.getFrontOffsetY(); + z += currentSideOff.getFrontOffsetZ(); int min_x = min.x; int min_y = min.y; @@ -126,20 +140,22 @@ public class ToolReplicatorCard extends AEBaseItem { for( int k = 1; k < scale_z; k++ ) { - Block blk = src_w.getBlock( min_x + i, min_y + j, min_z + k ); - int meta = src_w.getBlockMetadata( min_x + i, min_y + j, min_z + k ); - world.setBlock( i + rel_x, j + rel_y, k + rel_z, blk, meta, 4 ); - - if( blk != null && blk.hasTileEntity( meta ) ) + BlockPos p = new BlockPos( min_x + i, min_y + j, min_z + k ); + BlockPos d = new BlockPos( i + rel_x, j + rel_y, k + rel_z ); + IBlockState state = src_w.getBlockState( p ); + Block blk = state.getBlock(); + + world.setBlockState( d, state ); + if( blk != null && blk.hasTileEntity( state ) ) { - TileEntity ote = src_w.getTileEntity( min_x + i, min_y + j, min_z + k ); - TileEntity nte = blk.createTileEntity( world, meta ); + TileEntity ote = src_w.getTileEntity( p ); + TileEntity nte = blk.createTileEntity( world, state ); NBTTagCompound data = new NBTTagCompound(); ote.writeToNBT( data ); nte.readFromNBT( (NBTTagCompound) data.copy() ); - world.setTileEntity( i + rel_x, j + rel_y, k + rel_z, nte ); + world.setTileEntity( d, nte ); } - world.markBlockForUpdate( i + rel_x, j + rel_y, k + rel_z ); + world.markBlockForUpdate( d ); } } } diff --git a/src/main/java/appeng/entity/EntityChargedQuartz.java b/src/main/java/appeng/entity/EntityChargedQuartz.java index 9c8199f6..617e11b9 100644 --- a/src/main/java/appeng/entity/EntityChargedQuartz.java +++ b/src/main/java/appeng/entity/EntityChargedQuartz.java @@ -27,9 +27,9 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.definitions.IMaterials; import appeng.client.EffectType; @@ -78,7 +78,7 @@ public final class EntityChargedQuartz extends AEBaseEntityItem int i = MathHelper.floor_double( this.posY ); int k = MathHelper.floor_double( this.posZ ); - Material mat = this.worldObj.getBlock( j, i, k ).getMaterial(); + Material mat = this.worldObj.getBlockState( new BlockPos( j, i, k ) ).getBlock().getMaterial(); if( Platform.isServer() && mat.isLiquid() ) { this.transformTime++; @@ -103,7 +103,7 @@ public final class EntityChargedQuartz extends AEBaseEntityItem if( materials.certusQuartzCrystalCharged().isSameAs( item ) ) { - AxisAlignedBB region = AxisAlignedBB.getBoundingBox( this.posX - 1, this.posY - 1, this.posZ - 1, this.posX + 1, this.posY + 1, this.posZ + 1 ); + AxisAlignedBB region = AxisAlignedBB.fromBounds( this.posX - 1, this.posY - 1, this.posZ - 1, this.posX + 1, this.posY + 1, this.posZ + 1 ); List l = this.getCheckedEntitiesWithinAABBExcludingEntity( region ); EntityItem redstone = null; diff --git a/src/main/java/appeng/entity/EntityFloatingItem.java b/src/main/java/appeng/entity/EntityFloatingItem.java index a210e8d9..e827ecaa 100644 --- a/src/main/java/appeng/entity/EntityFloatingItem.java +++ b/src/main/java/appeng/entity/EntityFloatingItem.java @@ -28,7 +28,6 @@ import net.minecraft.world.World; public final class EntityFloatingItem extends EntityItem { - public static int ageStatic = 0; private final Entity parent; int superDeath = 0; float progress = 0; @@ -58,7 +57,7 @@ public final class EntityFloatingItem extends EntityItem } this.superDeath++; - this.age = ageStatic; + this.setNoDespawn(); } public void setProgress( float progress ) diff --git a/src/main/java/appeng/entity/EntityGrowingCrystal.java b/src/main/java/appeng/entity/EntityGrowingCrystal.java index 7f3a90ea..d849e23f 100644 --- a/src/main/java/appeng/entity/EntityGrowingCrystal.java +++ b/src/main/java/appeng/entity/EntityGrowingCrystal.java @@ -25,9 +25,9 @@ import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.World; - import appeng.api.implementations.items.IGrowableCrystal; import appeng.api.implementations.tiles.ICrystalGrowthAccelerator; import appeng.client.EffectType; @@ -50,6 +50,7 @@ public final class EntityGrowingCrystal extends EntityItem public EntityGrowingCrystal( World w, double x, double y, double z, ItemStack is ) { super( w, x, y, z, is ); + this.setNoDespawn(); } @Override @@ -61,12 +62,7 @@ public final class EntityGrowingCrystal extends EntityItem { return; } - - if( this.age > 600 ) - { - this.age = 100; - } - + ItemStack is = this.getEntityItem(); Item gc = is.getItem(); @@ -76,7 +72,7 @@ public final class EntityGrowingCrystal extends EntityItem int i = MathHelper.floor_double( this.posY ); int k = MathHelper.floor_double( this.posZ ); - Block blk = this.worldObj.getBlock( j, i, k ); + Block blk = this.worldObj.getBlockState( new BlockPos( j, i, k ) ).getBlock(); Material mat = blk.getMaterial(); IGrowableCrystal cry = (IGrowableCrystal) is.getItem(); @@ -194,7 +190,7 @@ public final class EntityGrowingCrystal extends EntityItem private boolean isAccelerated( int x, int y, int z ) { - TileEntity te = this.worldObj.getTileEntity( x, y, z ); + TileEntity te = this.worldObj.getTileEntity( new BlockPos( x, y, z ) ); return te instanceof ICrystalGrowthAccelerator && ( (ICrystalGrowthAccelerator) te ).isPowered(); } diff --git a/src/main/java/appeng/entity/EntitySingularity.java b/src/main/java/appeng/entity/EntitySingularity.java index 594a78e9..796cda9a 100644 --- a/src/main/java/appeng/entity/EntitySingularity.java +++ b/src/main/java/appeng/entity/EntitySingularity.java @@ -30,7 +30,6 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.DamageSource; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.AEApi; import appeng.api.definitions.IMaterials; import appeng.core.AEConfig; @@ -85,7 +84,7 @@ public final class EntitySingularity extends AEBaseEntityItem if( materials.singularity().isSameAs( item ) ) { - AxisAlignedBB region = AxisAlignedBB.getBoundingBox( this.posX - 4, this.posY - 4, this.posZ - 4, this.posX + 4, this.posY + 4, this.posZ + 4 ); + AxisAlignedBB region = AxisAlignedBB.fromBounds( this.posX - 4, this.posY - 4, this.posZ - 4, this.posX + 4, this.posY + 4, this.posZ + 4 ); List l = this.getCheckedEntitiesWithinAABBExcludingEntity( region ); for( Entity e : l ) diff --git a/src/main/java/appeng/entity/EntityTinyTNTPrimed.java b/src/main/java/appeng/entity/EntityTinyTNTPrimed.java index 28ae9202..5e6dd8db 100644 --- a/src/main/java/appeng/entity/EntityTinyTNTPrimed.java +++ b/src/main/java/appeng/entity/EntityTinyTNTPrimed.java @@ -20,21 +20,21 @@ package appeng.entity; import io.netty.buffer.ByteBuf; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityTNTPrimed; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumParticleTypes; import net.minecraft.world.Explosion; import net.minecraft.world.World; - -import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData; - +import net.minecraftforge.fml.common.registry.IEntityAdditionalSpawnData; import appeng.api.AEApi; import appeng.core.AEConfig; import appeng.core.CommonHelper; @@ -57,7 +57,7 @@ public final class EntityTinyTNTPrimed extends EntityTNTPrimed implements IEntit { super( w, x, y, z, igniter ); this.setSize( 0.55F, 0.55F ); - this.yOffset = this.height / 2.0F; + //this.yOffset = this.height / 2.0F; } /** @@ -113,7 +113,7 @@ public final class EntityTinyTNTPrimed extends EntityTNTPrimed implements IEntit } else { - this.worldObj.spawnParticle( "smoke", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D ); + this.worldObj.spawnParticle( EnumParticleTypes.SMOKE_NORMAL, this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D ); } this.fuse--; } @@ -128,7 +128,7 @@ public final class EntityTinyTNTPrimed extends EntityTNTPrimed implements IEntit return; } - for( Object e : this.worldObj.getEntitiesWithinAABBExcludingEntity( this, AxisAlignedBB.getBoundingBox( this.posX - 1.5, this.posY - 1.5f, this.posZ - 1.5, this.posX + 1.5, this.posY + 1.5, this.posZ + 1.5 ) ) ) + for( Object e : this.worldObj.getEntitiesWithinAABBExcludingEntity( this, AxisAlignedBB.fromBounds( this.posX - 1.5, this.posY - 1.5f, this.posZ - 1.5, this.posX + 1.5, this.posY + 1.5, this.posZ + 1.5 ) ) ) { if( e instanceof Entity ) { @@ -139,7 +139,7 @@ public final class EntityTinyTNTPrimed extends EntityTNTPrimed implements IEntit if( AEConfig.instance.isFeatureEnabled( AEFeature.TinyTNTBlockDamage ) ) { this.posY -= 0.25; - Explosion ex = new Explosion( this.worldObj, this, this.posX, this.posY, this.posZ, 0.2f ); + Explosion ex = new Explosion( this.worldObj, this, this.posX, this.posY, this.posZ, 0.2f, false, false ); for( int x = (int) ( this.posX - 2 ); x <= this.posX + 2; x++ ) { @@ -147,12 +147,14 @@ public final class EntityTinyTNTPrimed extends EntityTNTPrimed implements IEntit { for( int z = (int) ( this.posZ - 2 ); z <= this.posZ + 2; z++ ) { - Block block = this.worldObj.getBlock( x, y, z ); - if( block != null && !block.isAir( this.worldObj, x, y, z ) ) + BlockPos point = new BlockPos( x,y,z); + IBlockState state = this.worldObj.getBlockState( point ); + Block block = state.getBlock(); + if( block != null && !block.isAir( this.worldObj, point ) ) { float strength = (float) ( 2.3f - ( ( ( x + 0.5f ) - this.posX ) * ( ( x + 0.5f ) - this.posX ) + ( ( y + 0.5f ) - this.posY ) * ( ( y + 0.5f ) - this.posY ) + ( ( z + 0.5f ) - this.posZ ) * ( ( z + 0.5f ) - this.posZ ) ) ); - float resistance = block.getExplosionResistance( this, this.worldObj, x, y, z, this.posX, this.posY, this.posZ ); + float resistance = block.getExplosionResistance( this.worldObj, point, this, ex ); strength -= ( resistance + 0.3F ) * 0.11f; if( strength > 0.01 ) @@ -161,10 +163,10 @@ public final class EntityTinyTNTPrimed extends EntityTNTPrimed implements IEntit { if( block.canDropFromExplosion( ex ) ) { - block.dropBlockAsItemWithChance( this.worldObj, x, y, z, this.worldObj.getBlockMetadata( x, y, z ), 1.0F / 1.0f, 0 ); + block.dropBlockAsItemWithChance( this.worldObj, point, state, 1.0F / 1.0f, 0 ); } - block.onBlockExploded( this.worldObj, x, y, z, ex ); + block.onBlockExploded( this.worldObj, point, ex ); } } } diff --git a/src/main/java/appeng/entity/RenderFloatingItem.java b/src/main/java/appeng/entity/RenderFloatingItem.java index b1f76713..1a990753 100644 --- a/src/main/java/appeng/entity/RenderFloatingItem.java +++ b/src/main/java/appeng/entity/RenderFloatingItem.java @@ -22,31 +22,37 @@ package appeng.entity; import java.nio.ByteBuffer; import java.nio.DoubleBuffer; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.entity.RenderEntityItem; import net.minecraft.client.renderer.entity.RenderManager; -import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.Entity; import net.minecraft.item.ItemBlock; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; @SideOnly( Side.CLIENT ) -public class RenderFloatingItem extends RenderItem +public class RenderFloatingItem extends RenderEntityItem { public static DoubleBuffer buffer = ByteBuffer.allocateDirect( 8 * 4 ).asDoubleBuffer(); - public RenderFloatingItem() + public RenderFloatingItem(RenderManager manager) { + super(manager,Minecraft.getMinecraft().getRenderItem()); this.shadowOpaque = 0.0F; - this.renderManager = RenderManager.instance; } - + @Override - public void doRender( EntityItem entityItem, double x, double y, double z, float yaw, float partialTick ) + public void doRender( + Entity entityItem, + double x, + double y, + double z, + float yaw, + float partialTick ) { if( entityItem instanceof EntityFloatingItem ) { diff --git a/src/main/java/appeng/entity/RenderTinyTNTPrimed.java b/src/main/java/appeng/entity/RenderTinyTNTPrimed.java index 87416125..bfcabe25 100644 --- a/src/main/java/appeng/entity/RenderTinyTNTPrimed.java +++ b/src/main/java/appeng/entity/RenderTinyTNTPrimed.java @@ -19,42 +19,46 @@ package appeng.entity; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.BlockRendererDispatcher; +import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; + +import appeng.client.render.IRenderHelper; @SideOnly( Side.CLIENT ) public class RenderTinyTNTPrimed extends Render { - private final RenderBlocks blockRenderer = new RenderBlocks(); + private final IRenderHelper blockRenderer = new IRenderHelper(); - public RenderTinyTNTPrimed() - { + public RenderTinyTNTPrimed(RenderManager p_i46134_1_) + { + super(p_i46134_1_); this.shadowSize = 0.5F; - this.renderManager = RenderManager.instance; } @Override public void doRender( Entity tnt, double x, double y, double z, float unused, float life ) { - this.renderPrimedTNT( (EntityTinyTNTPrimed) tnt, x, y, z, life ); + this.renderPrimedTNT( (EntityTinyTNTPrimed) tnt, x, y, z, unused, life ); } - public void renderPrimedTNT( EntityTinyTNTPrimed tnt, double x, double y, double z, float life ) + public void renderPrimedTNT( EntityTinyTNTPrimed tnt, double x, double y, double z, float unused, float life ) { - GL11.glPushMatrix(); - GL11.glTranslatef( (float) x, (float) y - 0.25f, (float) z ); + BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher(); + GlStateManager.pushMatrix(); + GlStateManager.translate((float)x, (float)y + 0.5F, (float)z); float f2; if( tnt.fuse - life + 1.0F < 10.0F ) @@ -78,25 +82,32 @@ public class RenderTinyTNTPrimed extends Render } GL11.glScalef( 0.5f, 0.5f, 0.5f ); - f2 = ( 1.0F - ( tnt.fuse - life + 1.0F ) / 100.0F ) * 0.8F; - this.bindEntityTexture( tnt ); - this.blockRenderer.renderBlockAsItem( Blocks.tnt, 0, tnt.getBrightness( life ) ); + f2 = (1.0F - (tnt.fuse - life + 1.0F) / 100.0F) * 0.8F; + this.bindEntityTexture(tnt); + GlStateManager.translate(-0.5F, -0.5F, 0.5F); + blockrendererdispatcher.renderBlockBrightness(Blocks.tnt.getDefaultState(), tnt.getBrightness(life)); + GlStateManager.translate(0.0F, 0.0F, 1.0F); if( tnt.fuse / 5 % 2 == 0 ) { - GL11.glDisable( GL11.GL_TEXTURE_2D ); - GL11.glDisable( GL11.GL_LIGHTING ); - GL11.glEnable( GL11.GL_BLEND ); - GL11.glBlendFunc( GL11.GL_SRC_ALPHA, GL11.GL_DST_ALPHA ); - GL11.glColor4f( 1.0F, 1.0F, 1.0F, f2 ); - this.blockRenderer.renderBlockAsItem( Blocks.tnt, 0, 1.0F ); - GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F ); - GL11.glDisable( GL11.GL_BLEND ); - GL11.glEnable( GL11.GL_LIGHTING ); - GL11.glEnable( GL11.GL_TEXTURE_2D ); + GlStateManager.disableTexture2D(); + GlStateManager.disableLighting(); + GlStateManager.enableBlend(); + GlStateManager.blendFunc(770, 772); + GlStateManager.color(1.0F, 1.0F, 1.0F, f2); + GlStateManager.doPolygonOffset(-3.0F, -3.0F); + GlStateManager.enablePolygonOffset(); + blockrendererdispatcher.renderBlockBrightness(Blocks.tnt.getDefaultState(), 1.0F); + GlStateManager.doPolygonOffset(0.0F, 0.0F); + GlStateManager.disablePolygonOffset(); + GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); + GlStateManager.disableBlend(); + GlStateManager.enableLighting(); + GlStateManager.enableTexture2D(); } - GL11.glPopMatrix(); + GlStateManager.popMatrix(); + super.doRender(tnt, x, y, z, unused, life ); } @Override diff --git a/src/main/java/appeng/facade/FacadeContainer.java b/src/main/java/appeng/facade/FacadeContainer.java index be814496..5ca9b142 100644 --- a/src/main/java/appeng/facade/FacadeContainer.java +++ b/src/main/java/appeng/facade/FacadeContainer.java @@ -19,20 +19,18 @@ package appeng.facade; -import java.io.IOException; - import io.netty.buffer.ByteBuf; -import net.minecraft.block.Block; +import java.io.IOException; + import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IFacadePart; import appeng.api.parts.IPartHost; +import appeng.api.util.AEPartLocation; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; @@ -63,9 +61,9 @@ public class FacadeContainer implements IFacadeContainer } @Override - public void removeFacade( IPartHost host, ForgeDirection side ) + public void removeFacade( IPartHost host, AEPartLocation side ) { - if( side != null && side != ForgeDirection.UNKNOWN ) + if( side != null && side != AEPartLocation.INTERNAL ) { if( this.storage.getFacade( side.ordinal() ) != null ) { @@ -79,7 +77,7 @@ public class FacadeContainer implements IFacadeContainer } @Override - public IFacadePart getFacade( ForgeDirection s ) + public IFacadePart getFacade( AEPartLocation s ) { return this.storage.getFacade( s.ordinal() ); } @@ -89,14 +87,14 @@ public class FacadeContainer implements IFacadeContainer { IFacadePart[] newFacades = new FacadePart[6]; - newFacades[ForgeDirection.UP.ordinal()] = this.storage.getFacade( ForgeDirection.UP.ordinal() ); - newFacades[ForgeDirection.DOWN.ordinal()] = this.storage.getFacade( ForgeDirection.DOWN.ordinal() ); + newFacades[AEPartLocation.UP.ordinal()] = this.storage.getFacade( AEPartLocation.UP.ordinal() ); + newFacades[AEPartLocation.DOWN.ordinal()] = this.storage.getFacade( AEPartLocation.DOWN.ordinal() ); - newFacades[ForgeDirection.EAST.ordinal()] = this.storage.getFacade( ForgeDirection.NORTH.ordinal() ); - newFacades[ForgeDirection.SOUTH.ordinal()] = this.storage.getFacade( ForgeDirection.EAST.ordinal() ); + newFacades[AEPartLocation.EAST.ordinal()] = this.storage.getFacade( AEPartLocation.NORTH.ordinal() ); + newFacades[AEPartLocation.SOUTH.ordinal()] = this.storage.getFacade( AEPartLocation.EAST.ordinal() ); - newFacades[ForgeDirection.WEST.ordinal()] = this.storage.getFacade( ForgeDirection.SOUTH.ordinal() ); - newFacades[ForgeDirection.NORTH.ordinal()] = this.storage.getFacade( ForgeDirection.WEST.ordinal() ); + newFacades[AEPartLocation.WEST.ordinal()] = this.storage.getFacade( AEPartLocation.SOUTH.ordinal() ); + newFacades[AEPartLocation.NORTH.ordinal()] = this.storage.getFacade( AEPartLocation.WEST.ordinal() ); for( int x = 0; x < this.facades; x++ ) { @@ -128,7 +126,7 @@ public class FacadeContainer implements IFacadeContainer int[] ids = new int[2]; for( int x = 0; x < this.facades; x++ ) { - ForgeDirection side = ForgeDirection.getOrientation( x ); + AEPartLocation side = AEPartLocation.fromOrdinal( x ); int ix = ( 1 << x ); if( ( facadeSides & ix ) == ix ) { @@ -137,13 +135,16 @@ public class FacadeContainer implements IFacadeContainer boolean isBC = ids[0] < 0; ids[0] = Math.abs( ids[0] ); + // TODO: BC Facade Integration! + /* if( isBC && IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.BC ) ) { IBC bc = (IBC) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.BC ); changed = changed || this.storage.getFacade( x ) == null; - this.storage.setFacade( x, bc.createFacadePart( (Block) Block.blockRegistry.getObjectById( ids[0] ), ids[1], side ) ); + this.storage.setFacade( x, bc.createFacadePart( Block.getStateById( id[0] ), ids[1], side ) ); } - else if( !isBC ) + else */ + if( !isBC ) { for( Item facadeItem : AEApi.instance().definitions().items().facade().maybeItem().asSet() ) { @@ -183,7 +184,7 @@ public class FacadeContainer implements IFacadeContainer Item i = is.getItem(); if( i instanceof IFacadeItem ) { - this.storage.setFacade( x, ( (IFacadeItem) i ).createPartFromItemStack( is, ForgeDirection.getOrientation( x ) ) ); + this.storage.setFacade( x, ( (IFacadeItem) i ).createPartFromItemStack( is, AEPartLocation.fromOrdinal( x ) ) ); } else { @@ -192,7 +193,7 @@ public class FacadeContainer implements IFacadeContainer IBC bc = (IBC) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.BC ); if( bc.isFacade( is ) ) { - this.storage.setFacade( x, bc.createFacadePart( is, ForgeDirection.getOrientation( x ) ) ); + this.storage.setFacade( x, bc.createFacadePart( is, AEPartLocation.fromOrdinal( x ) ) ); } } } @@ -207,7 +208,7 @@ public class FacadeContainer implements IFacadeContainer int facadeSides = 0; for( int x = 0; x < this.facades; x++ ) { - if( this.getFacade( ForgeDirection.getOrientation( x ) ) != null ) + if( this.getFacade( AEPartLocation.fromOrdinal( x ) ) != null ) { facadeSides |= ( 1 << x ); } @@ -216,7 +217,7 @@ public class FacadeContainer implements IFacadeContainer for( int x = 0; x < this.facades; x++ ) { - IFacadePart part = this.getFacade( ForgeDirection.getOrientation( x ) ); + IFacadePart part = this.getFacade( AEPartLocation.fromOrdinal( x ) ); if( part != null ) { int itemID = Item.getIdFromItem( part.getItem() ); diff --git a/src/main/java/appeng/facade/FacadePart.java b/src/main/java/appeng/facade/FacadePart.java index f0c99b30..4d0b4c88 100644 --- a/src/main/java/appeng/facade/FacadePart.java +++ b/src/main/java/appeng/facade/FacadePart.java @@ -21,11 +21,7 @@ package appeng.facade; import java.util.EnumSet; -import org.lwjgl.opengl.GL11; - import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; @@ -33,13 +29,12 @@ import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.parts.IBoxProvider; import appeng.api.parts.IFacadeContainer; @@ -47,9 +42,11 @@ import appeng.api.parts.IFacadePart; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; -import appeng.api.parts.ISimplifiedBundle; +import appeng.api.util.AEPartLocation; import appeng.client.render.BusRenderHelper; +import appeng.client.render.IRenderHelper; import appeng.client.render.RenderBlocksWorkaround; +import appeng.client.texture.IAESprite; import appeng.core.AELog; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; @@ -61,13 +58,10 @@ public class FacadePart implements IFacadePart, IBoxProvider { public final ItemStack facade; - public final ForgeDirection side; + public final AEPartLocation side; public int thickness = 2; - @SideOnly( Side.CLIENT ) - ISimplifiedBundle prevLight; - - public FacadePart( ItemStack facade, ForgeDirection side ) + public FacadePart( ItemStack facade, AEPartLocation side ) { if( facade == null ) { @@ -106,7 +100,7 @@ public class FacadePart implements IFacadePart, IBoxProvider @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper instance2, RenderBlocks renderer, IFacadeContainer fc, AxisAlignedBB busBounds, boolean renderStilt ) + public void renderStatic( BlockPos pos, IPartRenderHelper instance2, IRenderHelper renderer, IFacadeContainer fc, AxisAlignedBB busBounds, boolean renderStilt ) { if( this.facade != null ) { @@ -126,11 +120,11 @@ public class FacadePart implements IFacadePart, IBoxProvider { if( rbw != null ) { - rbw.isFacade = false; - rbw.calculations = true; + //rbw.isFacade = false; + //rbw.calculations = true; } - IIcon myIcon = null; + IAESprite myIcon = null; if( this.isBC() ) { IBC bc = (IBC) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.BC ); @@ -139,7 +133,7 @@ public class FacadePart implements IFacadePart, IBoxProvider if( myIcon == null ) { - myIcon = this.facade.getIconIndex(); + myIcon = renderer.getIcon( this.facade ); } instance.setTexture( myIcon ); @@ -153,7 +147,7 @@ public class FacadePart implements IFacadePart, IBoxProvider instance.setBounds( 7, 7, 10, 9, 9, 15 ); } - instance.renderBlock( x, y, z, renderer ); + instance.renderBlock( pos, renderer ); instance.setTexture( null ); } @@ -174,7 +168,7 @@ public class FacadePart implements IFacadePart, IBoxProvider } else { - if( blk.canRenderInPass( 1 ) ) + if( blk.canRenderInLayer( EnumWorldBlockLayer.TRANSLUCENT ) ) { instance.renderForPass( 1 ); } @@ -194,12 +188,13 @@ public class FacadePart implements IFacadePart, IBoxProvider instance.setBounds( 0, 0, 16 - this.thickness, 16, 16, 16 ); instance.prepareBounds( renderer ); + /* if( rbw != null ) { rbw.isFacade = true; rbw.calculations = true; - rbw.faces = EnumSet.noneOf( ForgeDirection.class ); + rbw.faces = EnumSet.noneOf( AEPartLocation.class ); if( this.prevLight != null && rbw.similarLighting( blk, rbw.blockAccess, x, y, z, this.prevLight ) ) { @@ -216,122 +211,130 @@ public class FacadePart implements IFacadePart, IBoxProvider rbw.calculations = false; rbw.faces = this.calculateFaceOpenFaces( rbw.blockAccess, fc, x, y, z, this.side ); - ( (RenderBlocksWorkaround) renderer ).setTexture( blk.getIcon( ForgeDirection.DOWN.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.UP.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.NORTH.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.SOUTH.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.WEST.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.EAST.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ) ); + ( (RenderBlocksWorkaround) renderer ).setTexture( blk.getIcon( AEPartLocation.DOWN.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( AEPartLocation.UP.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( AEPartLocation.NORTH.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( AEPartLocation.SOUTH.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( AEPartLocation.WEST.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( AEPartLocation.EAST.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ) ); } else - { - instance.setTexture( blk.getIcon( ForgeDirection.DOWN.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.UP.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.NORTH.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.SOUTH.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.WEST.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ), blk.getIcon( ForgeDirection.EAST.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ) ); - } + {*/ + IAESprite[] icon_down = renderer.getIcon( blk.getDefaultState() ); + + instance.setTexture( + icon_down[EnumFacing.DOWN.ordinal()], + icon_down[EnumFacing.UP.ordinal()], + icon_down[EnumFacing.NORTH.ordinal()], + icon_down[EnumFacing.SOUTH.ordinal()], + icon_down[EnumFacing.WEST.ordinal()], + icon_down[EnumFacing.EAST.ordinal()] ); + //} if( busBounds == null ) { - if( this.side == ForgeDirection.UP || this.side == ForgeDirection.DOWN ) + if( this.side == AEPartLocation.UP || this.side == AEPartLocation.DOWN ) { - instance.renderBlockCurrentBounds( x, y, z, renderer ); + instance.renderBlockCurrentBounds( pos, renderer ); } - else if( this.side == ForgeDirection.NORTH || this.side == ForgeDirection.SOUTH ) + else if( this.side == AEPartLocation.NORTH || this.side == AEPartLocation.SOUTH ) { - if( fc.getFacade( ForgeDirection.UP ) != null ) + if( fc.getFacade( AEPartLocation.UP ) != null ) { renderer.renderMaxY -= this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.DOWN ) != null ) + if( fc.getFacade( AEPartLocation.DOWN ) != null ) { renderer.renderMinY += this.thickness / 16.0; } - instance.renderBlockCurrentBounds( x, y, z, renderer ); + instance.renderBlockCurrentBounds( pos, renderer ); } else { - if( fc.getFacade( ForgeDirection.UP ) != null ) + if( fc.getFacade( AEPartLocation.UP ) != null ) { renderer.renderMaxY -= this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.DOWN ) != null ) + if( fc.getFacade( AEPartLocation.DOWN ) != null ) { renderer.renderMinY += this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.SOUTH ) != null ) + if( fc.getFacade( AEPartLocation.SOUTH ) != null ) { renderer.renderMaxZ -= this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.NORTH ) != null ) + if( fc.getFacade( AEPartLocation.NORTH ) != null ) { renderer.renderMinZ += this.thickness / 16.0; } - instance.renderBlockCurrentBounds( x, y, z, renderer ); + instance.renderBlockCurrentBounds( pos, renderer ); } } else { - if( this.side == ForgeDirection.UP || this.side == ForgeDirection.DOWN ) + if( this.side == AEPartLocation.UP || this.side == AEPartLocation.DOWN ) { - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, 0.0, busBounds.maxZ, 1.0, 1.0, 1.0 ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, 0.0, 0.0, 1.0, 1.0, busBounds.minZ ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, 0.0, busBounds.minZ, busBounds.minX, 1.0, busBounds.maxZ ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, busBounds.maxX, 0.0, busBounds.minZ, 1.0, 1.0, busBounds.maxZ ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, 0.0, busBounds.maxZ, 1.0, 1.0, 1.0 ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, 0.0, 0.0, 1.0, 1.0, busBounds.minZ ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, 0.0, busBounds.minZ, busBounds.minX, 1.0, busBounds.maxZ ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, busBounds.maxX, 0.0, busBounds.minZ, 1.0, 1.0, busBounds.maxZ ); } - else if( this.side == ForgeDirection.NORTH || this.side == ForgeDirection.SOUTH ) + else if( this.side == AEPartLocation.NORTH || this.side == AEPartLocation.SOUTH ) { - if( fc.getFacade( ForgeDirection.UP ) != null ) + if( fc.getFacade( AEPartLocation.UP ) != null ) { renderer.renderMaxY -= this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.DOWN ) != null ) + if( fc.getFacade( AEPartLocation.DOWN ) != null ) { renderer.renderMinY += this.thickness / 16.0; } - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, busBounds.maxX, 0.0, 0.0, 1.0, 1.0, 1.0 ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, 0.0, 0.0, busBounds.minX, 1.0, 1.0 ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, busBounds.minX, 0.0, 0.0, busBounds.maxX, busBounds.minY, 1.0 ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, busBounds.minX, busBounds.maxY, 0.0, busBounds.maxX, 1.0, 1.0 ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, busBounds.maxX, 0.0, 0.0, 1.0, 1.0, 1.0 ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, 0.0, 0.0, busBounds.minX, 1.0, 1.0 ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, busBounds.minX, 0.0, 0.0, busBounds.maxX, busBounds.minY, 1.0 ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, busBounds.minX, busBounds.maxY, 0.0, busBounds.maxX, 1.0, 1.0 ); } else { - if( fc.getFacade( ForgeDirection.UP ) != null ) + if( fc.getFacade( AEPartLocation.UP ) != null ) { renderer.renderMaxY -= this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.DOWN ) != null ) + if( fc.getFacade( AEPartLocation.DOWN ) != null ) { renderer.renderMinY += this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.SOUTH ) != null ) + if( fc.getFacade( AEPartLocation.SOUTH ) != null ) { renderer.renderMaxZ -= this.thickness / 16.0; } - if( fc.getFacade( ForgeDirection.NORTH ) != null ) + if( fc.getFacade( AEPartLocation.NORTH ) != null ) { renderer.renderMinZ += this.thickness / 16.0; } - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, 0.0, busBounds.maxZ, 1.0, 1.0, 1.0 ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, 0.0, 0.0, 1.0, 1.0, busBounds.minZ ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, 0.0, busBounds.minZ, 1.0, busBounds.minY, busBounds.maxZ ); - this.renderSegmentBlockCurrentBounds( instance, x, y, z, renderer, 0.0, busBounds.maxY, busBounds.minZ, 1.0, 1.0, busBounds.maxZ ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, 0.0, busBounds.maxZ, 1.0, 1.0, 1.0 ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, 0.0, 0.0, 1.0, 1.0, busBounds.minZ ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, 0.0, busBounds.minZ, 1.0, busBounds.minY, busBounds.maxZ ); + this.renderSegmentBlockCurrentBounds( instance, pos, renderer, 0.0, busBounds.maxY, busBounds.minZ, 1.0, 1.0, busBounds.maxZ ); } } if( rbw != null ) { rbw.opacity = 1.0f; - rbw.faces = EnumSet.allOf( ForgeDirection.class ); + rbw.faces = EnumSet.allOf( EnumFacing.class ); } instance.renderForPass( 0 ); instance.setTexture( null ); - Tessellator.instance.setColorOpaque_F( 1, 1, 1 ); + renderer.setColorOpaque_F( 1, 1, 1 ); } } } @@ -363,85 +366,85 @@ public class FacadePart implements IFacadePart, IBoxProvider return null; } - private EnumSet calculateFaceOpenFaces( IBlockAccess blockAccess, IFacadeContainer fc, int x, int y, int z, ForgeDirection side ) + private EnumSet calculateFaceOpenFaces( IBlockAccess blockAccess, IFacadeContainer fc, BlockPos pos, AEPartLocation side ) { - EnumSet out = EnumSet.of( side, side.getOpposite() ); + EnumSet out = EnumSet.of( side, side.getOpposite() ); IFacadePart facade = fc.getFacade( side ); - for( ForgeDirection it : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation it : AEPartLocation.SIDE_LOCATIONS ) { - if( !out.contains( it ) && this.hasAlphaDiff( blockAccess.getTileEntity( x + it.offsetX, y + it.offsetY, z + it.offsetZ ), side, facade ) ) + if( !out.contains( it ) && this.hasAlphaDiff( blockAccess.getTileEntity( pos.offset( it.getFacing() ) ), side, facade ) ) { out.add( it ); } } - if( out.contains( ForgeDirection.UP ) && ( side.offsetX != 0 || side.offsetZ != 0 ) ) + if( out.contains( AEPartLocation.UP ) && ( side.xOffset != 0 || side.zOffset != 0 ) ) { - IFacadePart fp = fc.getFacade( ForgeDirection.UP ); + IFacadePart fp = fc.getFacade( AEPartLocation.UP ); if( fp != null && ( fp.isTransparent() == facade.isTransparent() ) ) { - out.remove( ForgeDirection.UP ); + out.remove( AEPartLocation.UP ); } } - if( out.contains( ForgeDirection.DOWN ) && ( side.offsetX != 0 || side.offsetZ != 0 ) ) + if( out.contains( AEPartLocation.DOWN ) && ( side.xOffset != 0 || side.zOffset != 0 ) ) { - IFacadePart fp = fc.getFacade( ForgeDirection.DOWN ); + IFacadePart fp = fc.getFacade( AEPartLocation.DOWN ); if( fp != null && ( fp.isTransparent() == facade.isTransparent() ) ) { - out.remove( ForgeDirection.DOWN ); + out.remove( AEPartLocation.DOWN ); } } - if( out.contains( ForgeDirection.SOUTH ) && ( side.offsetX != 0 ) ) + if( out.contains( AEPartLocation.SOUTH ) && ( side.xOffset != 0 ) ) { - IFacadePart fp = fc.getFacade( ForgeDirection.SOUTH ); + IFacadePart fp = fc.getFacade( AEPartLocation.SOUTH ); if( fp != null && ( fp.isTransparent() == facade.isTransparent() ) ) { - out.remove( ForgeDirection.SOUTH ); + out.remove( AEPartLocation.SOUTH ); } } - if( out.contains( ForgeDirection.NORTH ) && ( side.offsetX != 0 ) ) + if( out.contains( AEPartLocation.NORTH ) && ( side.xOffset != 0 ) ) { - IFacadePart fp = fc.getFacade( ForgeDirection.NORTH ); + IFacadePart fp = fc.getFacade( AEPartLocation.NORTH ); if( fp != null && ( fp.isTransparent() == facade.isTransparent() ) ) { - out.remove( ForgeDirection.NORTH ); + out.remove( AEPartLocation.NORTH ); } } /* - * if ( out.contains( ForgeDirection.EAST ) && (side.offsetZ != 0) ) { IFacadePart fp = fc.getFacade( - * ForgeDirection.EAST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( - * ForgeDirection.EAST ); } + * if ( out.contains( AEPartLocation.EAST ) && (side.offsetZ != 0) ) { IFacadePart fp = fc.getFacade( + * AEPartLocation.EAST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( + * AEPartLocation.EAST ); } * - * if ( out.contains( ForgeDirection.WEST ) && (side.offsetZ != 0) ) { IFacadePart fp = fc.getFacade( - * ForgeDirection.WEST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( - * ForgeDirection.WEST ); } + * if ( out.contains( AEPartLocation.WEST ) && (side.offsetZ != 0) ) { IFacadePart fp = fc.getFacade( + * AEPartLocation.WEST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( + * AEPartLocation.WEST ); } * - * if ( out.contains( ForgeDirection.NORTH ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( - * ForgeDirection.NORTH ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( - * ForgeDirection.NORTH ); } + * if ( out.contains( AEPartLocation.NORTH ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( + * AEPartLocation.NORTH ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( + * AEPartLocation.NORTH ); } * - * if ( out.contains( ForgeDirection.SOUTH ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( - * ForgeDirection.SOUTH ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( - * ForgeDirection.SOUTH ); } + * if ( out.contains( AEPartLocation.SOUTH ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( + * AEPartLocation.SOUTH ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( + * AEPartLocation.SOUTH ); } * - * if ( out.contains( ForgeDirection.EAST ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( - * ForgeDirection.EAST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( - * ForgeDirection.EAST ); } + * if ( out.contains( AEPartLocation.EAST ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( + * AEPartLocation.EAST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( + * AEPartLocation.EAST ); } * - * if ( out.contains( ForgeDirection.WEST ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( - * ForgeDirection.WEST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( - * ForgeDirection.WEST ); } + * if ( out.contains( AEPartLocation.WEST ) && (side.offsetY != 0) ) { IFacadePart fp = fc.getFacade( + * AEPartLocation.WEST ); if ( fp != null && (fp.isTransparent() == facade.isTransparent()) ) out.remove( + * AEPartLocation.WEST ); } */ return out; } @SideOnly( Side.CLIENT ) - private void renderSegmentBlockCurrentBounds( IPartRenderHelper instance, int x, int y, int z, RenderBlocks renderer, double minX, double minY, double minZ, double maxX, double maxY, double maxZ ) + private void renderSegmentBlockCurrentBounds( IPartRenderHelper instance, BlockPos pos, IRenderHelper renderer, double minX, double minY, double minZ, double maxX, double maxY, double maxZ ) { double oldMinX = renderer.renderMinX; double oldMinY = renderer.renderMinY; @@ -460,7 +463,7 @@ public class FacadePart implements IFacadePart, IBoxProvider // don't draw it if its not at least a pixel wide... if( renderer.renderMaxX - renderer.renderMinX >= 1.0 / 16.0 && renderer.renderMaxY - renderer.renderMinY >= 1.0 / 16.0 && renderer.renderMaxZ - renderer.renderMinZ >= 1.0 / 16.0 ) { - instance.renderBlockCurrentBounds( x, y, z, renderer ); + instance.renderBlockCurrentBounds( pos, renderer ); } renderer.renderMinX = oldMinX; @@ -471,7 +474,7 @@ public class FacadePart implements IFacadePart, IBoxProvider renderer.renderMaxZ = oldMaxZ; } - private boolean hasAlphaDiff( TileEntity tileEntity, ForgeDirection side, IFacadePart facade ) + private boolean hasAlphaDiff( TileEntity tileEntity, AEPartLocation side, IFacadePart facade ) { if( tileEntity instanceof IPartHost ) { @@ -483,10 +486,10 @@ public class FacadePart implements IFacadePart, IBoxProvider return true; } - + @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper instance, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper instance, IRenderHelper renderer ) { if( this.facade != null ) { @@ -496,7 +499,7 @@ public class FacadePart implements IFacadePart, IBoxProvider { ItemStack randomItem = fi.getTextureItem( this.facade ); - instance.setTexture( this.facade.getIconIndex() ); + instance.setTexture( renderer.getIcon( facade ) ); instance.setBounds( 7, 7, 4, 9, 9, 14 ); instance.renderInventoryBox( renderer ); instance.setTexture( null ); @@ -511,18 +514,16 @@ public class FacadePart implements IFacadePart, IBoxProvider try { int color = ib.getColorFromItemStack( randomItem, 0 ); - GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0F ); instance.setInvColor( color ); } catch( Throwable error ) { - GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0F ); instance.setInvColor( 0xffffff ); } - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_F( 1, 1, 1 ); - instance.setTexture( blk.getIcon( this.side.ordinal(), ib.getMetadata( randomItem.getItemDamage() ) ) ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setColorOpaque_F( 1, 1, 1 ); + instance.setTexture( renderer.getIcon( blk.getDefaultState() )[ side.ordinal() ] ); instance.setBounds( 0, 0, 14, 16, 16, 16 ); instance.renderInventoryBox( renderer ); @@ -539,7 +540,7 @@ public class FacadePart implements IFacadePart, IBoxProvider } @Override - public ForgeDirection getSide() + public AEPartLocation getSide() { return this.side; } diff --git a/src/main/java/appeng/facade/IFacadeItem.java b/src/main/java/appeng/facade/IFacadeItem.java index 39c4baed..6f0cf68b 100644 --- a/src/main/java/appeng/facade/IFacadeItem.java +++ b/src/main/java/appeng/facade/IFacadeItem.java @@ -21,13 +21,13 @@ package appeng.facade; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.util.AEPartLocation; public interface IFacadeItem { - FacadePart createPartFromItemStack( ItemStack is, ForgeDirection side ); + FacadePart createPartFromItemStack( ItemStack is, AEPartLocation side ); ItemStack getTextureItem( ItemStack is ); diff --git a/src/main/java/appeng/fmp/CableBusPart.java b/src/main/java/appeng/fmp/CableBusPart.java index 075753de..2b1b4f4c 100644 --- a/src/main/java/appeng/fmp/CableBusPart.java +++ b/src/main/java/appeng/fmp/CableBusPart.java @@ -28,7 +28,6 @@ import java.util.Set; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; - import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -37,8 +36,6 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - import codechicken.lib.data.MCDataInput; import codechicken.lib.data.MCDataOutput; import codechicken.lib.raytracer.IndexedCuboid6; @@ -51,7 +48,6 @@ import codechicken.multipart.NormalOcclusionTest; import codechicken.multipart.NormallyOccludedPart; import codechicken.multipart.TMultiPart; import codechicken.multipart.scalatraits.TIInventoryTile; - import appeng.api.implementations.parts.IPartCable; import appeng.api.networking.IGridNode; import appeng.api.parts.IFacadeContainer; @@ -65,6 +61,7 @@ import appeng.api.parts.SelectedPart; import appeng.api.util.AECableType; import appeng.api.util.AEColor; import appeng.api.util.DimensionalCoord; +import appeng.api.util.ForgeDirection; import appeng.client.render.BusRenderHelper; import appeng.client.render.BusRenderer; import appeng.core.AEConfig; @@ -596,9 +593,9 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IReds { // mark the chunk for save... TileEntity te = this.tile(); - if( te != null && te.getWorldObj() != null ) + if( te != null && te.getWorld() != null ) { - te.getWorldObj().getChunkFromBlockCoords( this.x(), this.z() ).isModified = true; + te.getWorld().getChunkFromBlockCoords( this.x(), this.z() ).isModified = true; } } diff --git a/src/main/java/appeng/fmp/FMPEvent.java b/src/main/java/appeng/fmp/FMPEvent.java index df92189e..4c522904 100644 --- a/src/main/java/appeng/fmp/FMPEvent.java +++ b/src/main/java/appeng/fmp/FMPEvent.java @@ -30,16 +30,13 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import codechicken.lib.packet.PacketCustom; import codechicken.lib.raytracer.RayTracer; import codechicken.lib.vec.BlockCoord; import codechicken.lib.vec.Vector3; import codechicken.multipart.TMultiPart; import codechicken.multipart.TileMultipart; - import appeng.block.AEBaseItemBlock; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketMultiPart; diff --git a/src/main/java/appeng/fmp/FMPPlacementHelper.java b/src/main/java/appeng/fmp/FMPPlacementHelper.java index 5364bea8..aa2e01db 100644 --- a/src/main/java/appeng/fmp/FMPPlacementHelper.java +++ b/src/main/java/appeng/fmp/FMPPlacementHelper.java @@ -26,12 +26,9 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - import codechicken.lib.vec.BlockCoord; import codechicken.multipart.TMultiPart; import codechicken.multipart.TileMultipart; - import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IFacadePart; import appeng.api.parts.IPart; @@ -40,6 +37,7 @@ import appeng.api.parts.LayerFlags; import appeng.api.parts.SelectedPart; import appeng.api.util.AEColor; import appeng.api.util.DimensionalCoord; +import appeng.api.util.ForgeDirection; import appeng.facade.FacadeContainer; import appeng.parts.CableBusStorage; import appeng.util.Platform; @@ -101,7 +99,7 @@ public class FMPPlacementHelper implements IPartHost if( this.myMP.canAddPart( this.myPart ) && Platform.isServer() ) { - this.myMP = TileMultipart.addPart( this.myMP.getWorldObj(), loc, this.myPart ); + this.myMP = TileMultipart.addPart( this.myMP.getWorld(), loc, this.myPart ); this.hasPart = true; } @@ -302,7 +300,7 @@ public class FMPPlacementHelper implements IPartHost { if( this.myPart == null ) { - return this.myMP.getWorldObj() != null; + return this.myMP.getWorld() != null; } return this.myPart.isInWorld(); } diff --git a/src/main/java/appeng/fmp/QuartzTorchPart.java b/src/main/java/appeng/fmp/QuartzTorchPart.java index 11dd03f0..e11b9da2 100644 --- a/src/main/java/appeng/fmp/QuartzTorchPart.java +++ b/src/main/java/appeng/fmp/QuartzTorchPart.java @@ -23,16 +23,14 @@ import java.util.Random; import net.minecraft.block.Block; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import codechicken.lib.vec.BlockCoord; import codechicken.lib.vec.Cuboid6; import codechicken.multipart.IRandomDisplayTick; import codechicken.multipart.minecraft.McBlockPart; import codechicken.multipart.minecraft.McSidedMetaPart; - import appeng.api.AEApi; import appeng.api.exceptions.MissingDefinition; +import appeng.api.util.ForgeDirection; public class QuartzTorchPart extends McSidedMetaPart implements IRandomDisplayTick diff --git a/src/main/java/appeng/helpers/AEGlassMaterial.java b/src/main/java/appeng/helpers/AEGlassMaterial.java index 3f07aa94..4f1dc35c 100644 --- a/src/main/java/appeng/helpers/AEGlassMaterial.java +++ b/src/main/java/appeng/helpers/AEGlassMaterial.java @@ -32,7 +32,13 @@ public class AEGlassMaterial extends Material { super( color ); } - + + @Override + public boolean isSolid() + { + return false; + } + @Override public boolean isOpaque() { diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index 87f69c4a..ad762d9f 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -26,8 +26,6 @@ import java.util.Iterator; import java.util.LinkedList; import java.util.List; -import com.google.common.collect.ImmutableSet; - import net.minecraft.block.Block; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; @@ -37,11 +35,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.Settings; @@ -73,6 +71,7 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.core.settings.TickRates; @@ -96,6 +95,8 @@ import appeng.util.inv.IInventoryDestination; import appeng.util.inv.WrapperInvSlot; import appeng.util.item.AEItemStack; +import com.google.common.collect.ImmutableSet; + public class DualityInterface implements IGridTickable, IStorageMonitorable, IInventoryDestination, IAEAppEngInventory, IConfigManagerHost, ICraftingProvider, IUpgradeableHost, IPriorityHost { @@ -429,9 +430,9 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn } TileEntity te = this.iHost.getTileEntity(); - if( te != null && te.getWorldObj() != null ) + if( te != null && te.getWorld() != null ) { - Platform.notifyBlocksOfNeighbors( te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord ); + Platform.notifyBlocksOfNeighbors( te.getWorld(), te.getPos() ); } } @@ -445,7 +446,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn if( is.getItem() instanceof ICraftingPatternItem ) { ICraftingPatternItem cpi = (ICraftingPatternItem) is.getItem(); - ICraftingPatternDetails details = cpi.getPatternForItem( is, this.iHost.getTileEntity().getWorldObj() ); + ICraftingPatternDetails details = cpi.getPatternForItem( is, this.iHost.getTileEntity().getWorld() ); if( details != null ) { @@ -505,7 +506,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn this.notifyNeighbors(); } - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } @@ -528,7 +529,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn } } - public int[] getAccessibleSlotsFromSide( int side ) + public int[] getSlotsForFace( EnumFacing side ) { return this.sides; } @@ -556,7 +557,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn return this.hasWorkToDo() ? ( couldDoWork ? TickRateModulation.URGENT : TickRateModulation.SLOWER ) : TickRateModulation.SLEEP; } - private void pushItemsOut( EnumSet possibleDirections ) + private void pushItemsOut( EnumSet possibleDirections ) { if( !this.hasItemsToSend() ) { @@ -564,16 +565,16 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn } TileEntity tile = this.iHost.getTileEntity(); - World w = tile.getWorldObj(); + World w = tile.getWorld(); Iterator i = this.waitingToSend.iterator(); while( i.hasNext() ) { ItemStack whatToSend = i.next(); - for( ForgeDirection s : possibleDirections ) + for( EnumFacing s : possibleDirections ) { - TileEntity te = w.getTileEntity( tile.xCoord + s.offsetX, tile.yCoord + s.offsetY, tile.zCoord + s.offsetZ ); + TileEntity te = w.getTileEntity( tile.getPos().offset( s ) ); if( te == null ) { continue; @@ -730,7 +731,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn { if( this.getInstalledUpgrades( Upgrades.CRAFTING ) > 0 && itemStack != null ) { - return this.craftingTracker.handleCrafting( x, itemStack.getStackSize(), itemStack, d, this.iHost.getTileEntity().getWorldObj(), this.gridProxy.getGrid(), this.gridProxy.getCrafting(), this.mySource ); + return this.craftingTracker.handleCrafting( x, itemStack.getStackSize(), itemStack, d, this.iHost.getTileEntity().getWorld(), this.gridProxy.getGrid(), this.gridProxy.getCrafting(), this.mySource ); } } catch( GridAccessException e ) @@ -837,7 +838,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn this.craftingTracker.cancel(); } - public IStorageMonitorable getMonitorable( ForgeDirection side, BaseActionSource src, IStorageMonitorable myInterface ) + public IStorageMonitorable getMonitorable( EnumFacing side, BaseActionSource src, IStorageMonitorable myInterface ) { if( Platform.canAccess( this.gridProxy, src ) ) { @@ -872,12 +873,12 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn } TileEntity tile = this.iHost.getTileEntity(); - World w = tile.getWorldObj(); + World w = tile.getWorld(); - EnumSet possibleDirections = this.iHost.getTargets(); - for( ForgeDirection s : possibleDirections ) + EnumSet possibleDirections = this.iHost.getTargets(); + for( EnumFacing s : possibleDirections ) { - TileEntity te = w.getTileEntity( tile.xCoord + s.offsetX, tile.yCoord + s.offsetY, tile.zCoord + s.offsetZ ); + TileEntity te = w.getTileEntity( tile.getPos().offset( s ) ); if( te instanceof IInterfaceHost ) { try @@ -949,15 +950,15 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn if( this.isBlocking() ) { - EnumSet possibleDirections = this.iHost.getTargets(); + EnumSet possibleDirections = this.iHost.getTargets(); TileEntity tile = this.iHost.getTileEntity(); - World w = tile.getWorldObj(); + World w = tile.getWorld(); boolean allAreBusy = true; - for( ForgeDirection s : possibleDirections ) + for( EnumFacing s : possibleDirections ) { - TileEntity te = w.getTileEntity( tile.xCoord + s.offsetX, tile.yCoord + s.offsetY, tile.zCoord + s.offsetZ ); + TileEntity te = w.getTileEntity( tile.getPos().offset( s ) ); InventoryAdaptor ad = InventoryAdaptor.getAdaptor( te, s.getOpposite() ); if( ad != null ) @@ -1110,20 +1111,18 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn public String getTermName() { final TileEntity hostTile = this.iHost.getTileEntity(); - final World hostWorld = hostTile.getWorldObj(); + final World hostWorld = hostTile.getWorld(); if( ( (ICustomNameObject) this.iHost ).hasCustomName() ) { return ( (ICustomNameObject) this.iHost ).getCustomName(); } - final EnumSet possibleDirections = this.iHost.getTargets(); - for( ForgeDirection direction : possibleDirections ) + final EnumSet possibleDirections = this.iHost.getTargets(); + for( EnumFacing direction : possibleDirections ) { - final int xPos = hostTile.xCoord + direction.offsetX; - final int yPos = hostTile.yCoord + direction.offsetY; - final int zPos = hostTile.zCoord + direction.offsetZ; - final TileEntity directedTile = hostWorld.getTileEntity( xPos, yPos, zPos ); + BlockPos targ = hostTile.getPos().offset( direction ); + final TileEntity directedTile = hostWorld.getTileEntity( targ ); if( directedTile == null ) { @@ -1155,7 +1154,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn if( directedTile instanceof ISidedInventory ) { - int[] sides = ( (ISidedInventory) directedTile ).getAccessibleSlotsFromSide( direction.getOpposite().ordinal() ); + int[] sides = ( (ISidedInventory) directedTile ).getSlotsForFace( direction.getOpposite() ); if( sides == null || sides.length == 0 ) { @@ -1163,19 +1162,19 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn } } - final Block directedBlock = hostWorld.getBlock( xPos, yPos, zPos ); - ItemStack what = new ItemStack( directedBlock, 1, directedBlock.getDamageValue( hostWorld, xPos, yPos, zPos ) ); + final Block directedBlock = hostWorld.getBlockState( targ ).getBlock(); + ItemStack what = new ItemStack( directedBlock, 1, directedBlock.getDamageValue( hostWorld, targ ) ); try { - Vec3 from = Vec3.createVectorHelper( hostTile.xCoord + 0.5, hostTile.yCoord + 0.5, hostTile.zCoord + 0.5 ); - from = from.addVector( direction.offsetX * 0.501, direction.offsetY * 0.501, direction.offsetZ * 0.501 ); - Vec3 to = from.addVector( direction.offsetX, direction.offsetY, direction.offsetZ ); + Vec3 from = new Vec3( hostTile.getPos().getX() + 0.5, hostTile.getPos().getY() + 0.5, hostTile.getPos().getZ() + 0.5 ); + from = from.addVector( direction.getFrontOffsetX() * 0.501, direction.getFrontOffsetY() * 0.501, direction.getFrontOffsetZ() * 0.501 ); + Vec3 to = from.addVector( direction.getFrontOffsetX(), direction.getFrontOffsetY(), direction.getFrontOffsetZ() ); MovingObjectPosition mop = hostWorld.rayTraceBlocks( from, to, true ); if( mop != null && !BAD_BLOCKS.contains( directedBlock ) ) { - if( mop.blockX == directedTile.xCoord && mop.blockY == directedTile.yCoord && mop.blockZ == directedTile.zCoord ) + if( mop.getBlockPos().equals( directedTile.getPos() ) ) { - ItemStack g = directedBlock.getPickBlock( mop, hostWorld, directedTile.xCoord, directedTile.yCoord, directedTile.zCoord, null ); + ItemStack g = directedBlock.getPickBlock( mop, hostWorld, directedTile.getPos() ); if( g != null ) { what = g; @@ -1207,7 +1206,7 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn public long getSortValue() { TileEntity te = this.iHost.getTileEntity(); - return ( te.zCoord << 24 ) ^ ( te.xCoord << 8 ) ^ te.yCoord; + return ( te.getPos().getZ() << 24 ) ^ ( te.getPos().getX() << 8 ) ^ te.getPos().getY(); } public void initialize() diff --git a/src/main/java/appeng/helpers/IContainerCraftingPacket.java b/src/main/java/appeng/helpers/IContainerCraftingPacket.java index 5f471401..ebd3eb4b 100644 --- a/src/main/java/appeng/helpers/IContainerCraftingPacket.java +++ b/src/main/java/appeng/helpers/IContainerCraftingPacket.java @@ -21,7 +21,6 @@ package appeng.helpers; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.networking.IGridNode; import appeng.api.networking.security.BaseActionSource; diff --git a/src/main/java/appeng/helpers/ICustomCollision.java b/src/main/java/appeng/helpers/ICustomCollision.java index b7142ed8..02691bcc 100644 --- a/src/main/java/appeng/helpers/ICustomCollision.java +++ b/src/main/java/appeng/helpers/ICustomCollision.java @@ -23,12 +23,13 @@ import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; public interface ICustomCollision { - Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity thePlayer, boolean b ); + Iterable getSelectedBoundingBoxesFromPool( World w, BlockPos pos, Entity thePlayer, boolean b ); - void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ); + void addCollidingBlockToList( World w, BlockPos pos, AxisAlignedBB bb, List out, Entity e ); } diff --git a/src/main/java/appeng/helpers/IInterfaceHost.java b/src/main/java/appeng/helpers/IInterfaceHost.java index 3ca91329..a90f3f9d 100644 --- a/src/main/java/appeng/helpers/IInterfaceHost.java +++ b/src/main/java/appeng/helpers/IInterfaceHost.java @@ -22,8 +22,7 @@ package appeng.helpers; import java.util.EnumSet; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.implementations.IUpgradeableHost; import appeng.api.networking.crafting.ICraftingProvider; import appeng.api.networking.crafting.ICraftingRequester; @@ -34,7 +33,7 @@ public interface IInterfaceHost extends ICraftingProvider, IUpgradeableHost, ICr DualityInterface getInterfaceDuality(); - EnumSet getTargets(); + EnumSet getTargets(); TileEntity getTileEntity(); diff --git a/src/main/java/appeng/helpers/LocationRotation.java b/src/main/java/appeng/helpers/LocationRotation.java index b3bc5b7f..96949404 100644 --- a/src/main/java/appeng/helpers/LocationRotation.java +++ b/src/main/java/appeng/helpers/LocationRotation.java @@ -19,9 +19,8 @@ package appeng.helpers; +import net.minecraft.util.EnumFacing; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.util.IOrientable; @@ -48,24 +47,24 @@ public class LocationRotation implements IOrientable } @Override - public ForgeDirection getForward() + public EnumFacing getForward() { - if( this.getUp().offsetY == 0 ) + if( this.getUp().getFrontOffsetY() == 0 ) { - return ForgeDirection.UP; + return EnumFacing.UP; } - return ForgeDirection.SOUTH; + return EnumFacing.SOUTH; } @Override - public ForgeDirection getUp() + public EnumFacing getUp() { int num = Math.abs( this.x + this.y + this.z ) % 6; - return ForgeDirection.getOrientation( num ); + return EnumFacing.VALUES[ num ]; } @Override - public void setOrientation( ForgeDirection forward, ForgeDirection up ) + public void setOrientation( EnumFacing forward, EnumFacing up ) { } diff --git a/src/main/java/appeng/helpers/MetaRotation.java b/src/main/java/appeng/helpers/MetaRotation.java index 557009fa..020fd21b 100644 --- a/src/main/java/appeng/helpers/MetaRotation.java +++ b/src/main/java/appeng/helpers/MetaRotation.java @@ -19,27 +19,29 @@ package appeng.helpers; +import net.minecraft.block.BlockTorch; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumFacing.Axis; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.util.IOrientable; +import appeng.block.AEBaseBlock; public class MetaRotation implements IOrientable { + final boolean useFacing; final IBlockAccess w; - final int x; - final int y; - final int z; + final BlockPos pos; - public MetaRotation( IBlockAccess world, int x, int y, int z ) + public MetaRotation( IBlockAccess world, BlockPos pos, boolean FullFacing ) { this.w = world; - this.x = x; - this.y = y; - this.z = z; + this.pos = pos; + this.useFacing = FullFacing; } @Override @@ -49,27 +51,52 @@ public class MetaRotation implements IOrientable } @Override - public ForgeDirection getForward() + public EnumFacing getForward() { - if( this.getUp().offsetY == 0 ) + if( this.getUp().getFrontOffsetY() == 0 ) { - return ForgeDirection.UP; + return EnumFacing.UP; } - return ForgeDirection.SOUTH; + return EnumFacing.SOUTH; } @Override - public ForgeDirection getUp() + public EnumFacing getUp() { - return ForgeDirection.getOrientation( this.w.getBlockMetadata( this.x, this.y, this.z ) ); + IBlockState state = w.getBlockState( pos ); + + if (useFacing ) + { + EnumFacing f = state == null ? EnumFacing.UP : (EnumFacing) state.getValue( BlockTorch.FACING ); + return f; + } + + Axis a = state == null ? null : (Axis) state.getValue( AEBaseBlock.AXIS_ORIENTATION ); + + if ( a == null ) + a = Axis.Y; + + switch( a ) + { + case X: + return EnumFacing.EAST; + case Z: + return EnumFacing.SOUTH; + default: + case Y: + return EnumFacing.UP; + } } @Override - public void setOrientation( ForgeDirection forward, ForgeDirection up ) + public void setOrientation( EnumFacing forward, EnumFacing up ) { if( this.w instanceof World ) { - ( (World) this.w ).setBlockMetadataWithNotify( this.x, this.y, this.z, up.ordinal(), 1 + 2 ); + if ( useFacing ) + ( (World) this.w ).setBlockState( pos, w.getBlockState( pos ).withProperty( BlockTorch.FACING, up ) ); + else + ( (World) this.w ).setBlockState( pos, w.getBlockState( pos ).withProperty( AEBaseBlock.AXIS_ORIENTATION, up.getAxis() ) ); } else { diff --git a/src/main/java/appeng/helpers/MultiCraftingTracker.java b/src/main/java/appeng/helpers/MultiCraftingTracker.java index 7483246a..d95e0a7e 100644 --- a/src/main/java/appeng/helpers/MultiCraftingTracker.java +++ b/src/main/java/appeng/helpers/MultiCraftingTracker.java @@ -22,11 +22,8 @@ package appeng.helpers; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; -import com.google.common.collect.ImmutableSet; - import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.networking.IGrid; import appeng.api.networking.crafting.ICraftingGrid; @@ -38,6 +35,8 @@ import appeng.api.storage.data.IAEItemStack; import appeng.parts.automation.NonNullArrayIterator; import appeng.util.InventoryAdaptor; +import com.google.common.collect.ImmutableSet; + public class MultiCraftingTracker { diff --git a/src/main/java/appeng/helpers/NullRotation.java b/src/main/java/appeng/helpers/NullRotation.java index 258a8d8e..32f402cc 100644 --- a/src/main/java/appeng/helpers/NullRotation.java +++ b/src/main/java/appeng/helpers/NullRotation.java @@ -19,8 +19,7 @@ package appeng.helpers; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.util.IOrientable; @@ -39,19 +38,19 @@ public class NullRotation implements IOrientable } @Override - public ForgeDirection getForward() + public EnumFacing getForward() { - return ForgeDirection.SOUTH; + return EnumFacing.SOUTH; } @Override - public ForgeDirection getUp() + public EnumFacing getUp() { - return ForgeDirection.UP; + return EnumFacing.UP; } @Override - public void setOrientation( ForgeDirection forward, ForgeDirection up ) + public void setOrientation( EnumFacing forward, EnumFacing up ) { } diff --git a/src/main/java/appeng/helpers/PatternHelper.java b/src/main/java/appeng/helpers/PatternHelper.java index 50c6afdc..cf3e2db6 100644 --- a/src/main/java/appeng/helpers/PatternHelper.java +++ b/src/main/java/appeng/helpers/PatternHelper.java @@ -32,7 +32,6 @@ import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.data.IAEItemStack; diff --git a/src/main/java/appeng/helpers/Splotch.java b/src/main/java/appeng/helpers/Splotch.java index 2b49bc88..0e87d461 100644 --- a/src/main/java/appeng/helpers/Splotch.java +++ b/src/main/java/appeng/helpers/Splotch.java @@ -20,22 +20,20 @@ package appeng.helpers; import io.netty.buffer.ByteBuf; - +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.util.AEColor; public class Splotch { - public final ForgeDirection side; + public final EnumFacing side; public final boolean lumen; public final AEColor color; private final int pos; - public Splotch( AEColor col, boolean lit, ForgeDirection side, Vec3 position ) + public Splotch( AEColor col, boolean lit, EnumFacing side, Vec3 position ) { this.color = col; this.lumen = lit; @@ -43,13 +41,13 @@ public class Splotch double x; double y; - if( side == ForgeDirection.SOUTH || side == ForgeDirection.NORTH ) + if( side == EnumFacing.SOUTH || side == EnumFacing.NORTH ) { x = position.xCoord; y = position.yCoord; } - else if( side == ForgeDirection.UP || side == ForgeDirection.DOWN ) + else if( side == EnumFacing.UP || side == EnumFacing.DOWN ) { x = position.xCoord; y = position.zCoord; @@ -74,7 +72,7 @@ public class Splotch this.pos = data.readByte(); int val = data.readByte(); - this.side = ForgeDirection.getOrientation( val & 0x07 ); + this.side = EnumFacing.VALUES[ val & 0x07 ]; this.color = AEColor.values()[( val >> 3 ) & 0x0F]; this.lumen = ( ( val >> 7 ) & 0x01 ) > 0; } diff --git a/src/main/java/appeng/helpers/WirelessTerminalGuiObject.java b/src/main/java/appeng/helpers/WirelessTerminalGuiObject.java index 39b2ccb9..a5982a09 100644 --- a/src/main/java/appeng/helpers/WirelessTerminalGuiObject.java +++ b/src/main/java/appeng/helpers/WirelessTerminalGuiObject.java @@ -22,8 +22,6 @@ package appeng.helpers; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -46,6 +44,7 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.container.interfaces.IInventorySlotAware; @@ -89,7 +88,7 @@ public class WirelessTerminalGuiObject implements IPortableCell, IActionHost, II if( obj instanceof IGridHost ) { - IGridNode n = ( (IGridHost) obj ).getGridNode( ForgeDirection.UNKNOWN ); + IGridNode n = ( (IGridHost) obj ).getGridNode( AEPartLocation.INTERNAL ); if( n != null ) { this.targetGrid = n.getGrid(); @@ -281,13 +280,13 @@ public class WirelessTerminalGuiObject implements IPortableCell, IActionHost, II } @Override - public IGridNode getGridNode( ForgeDirection dir ) + public IGridNode getGridNode( AEPartLocation dir ) { return this.getActionableNode(); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.NONE; } diff --git a/src/main/java/appeng/hooks/AETrading.java b/src/main/java/appeng/hooks/AETrading.java index 6886c707..e907e8eb 100644 --- a/src/main/java/appeng/hooks/AETrading.java +++ b/src/main/java/appeng/hooks/AETrading.java @@ -18,27 +18,12 @@ package appeng.hooks; +// TODO Villager Trading!??!?! -import java.util.Random; - -import com.google.common.base.Optional; - -import net.minecraft.entity.passive.EntityVillager; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.village.MerchantRecipe; -import net.minecraft.village.MerchantRecipeList; - -import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; - -import appeng.api.AEApi; -import appeng.api.definitions.IItemDefinition; -import appeng.api.definitions.IMaterials; - - -public class AETrading implements IVillageTradeHandler +public class AETrading { + /* @Override public void manipulateTradesForVillager( EntityVillager villager, MerchantRecipeList recipeList, Random random ) { @@ -124,4 +109,6 @@ public class AETrading implements IVillageTradeHandler l.add( new MerchantRecipe( a, b ) ); } + */ + } diff --git a/src/main/java/appeng/hooks/DispenserBehaviorTinyTNT.java b/src/main/java/appeng/hooks/DispenserBehaviorTinyTNT.java index 887e35b7..66082b20 100644 --- a/src/main/java/appeng/hooks/DispenserBehaviorTinyTNT.java +++ b/src/main/java/appeng/hooks/DispenserBehaviorTinyTNT.java @@ -25,7 +25,6 @@ import net.minecraft.dispenser.IBlockSource; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; - import appeng.entity.EntityTinyTNTPrimed; @@ -35,11 +34,11 @@ public final class DispenserBehaviorTinyTNT extends BehaviorDefaultDispenseItem @Override protected ItemStack dispenseStack( IBlockSource dispenser, ItemStack dispensedItem ) { - EnumFacing enumfacing = BlockDispenser.func_149937_b( dispenser.getBlockMetadata() ); + EnumFacing enumfacing = BlockDispenser.getFacing( dispenser.getBlockMetadata() ); World world = dispenser.getWorld(); - int i = dispenser.getXInt() + enumfacing.getFrontOffsetX(); - int j = dispenser.getYInt() + enumfacing.getFrontOffsetY(); - int k = dispenser.getZInt() + enumfacing.getFrontOffsetZ(); + int i = dispenser.getBlockPos().getX() + enumfacing.getFrontOffsetX(); + int j = dispenser.getBlockPos().getY() + enumfacing.getFrontOffsetY(); + int k = dispenser.getBlockPos().getZ() + enumfacing.getFrontOffsetZ(); EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( world, i + 0.5F, j + 0.5F, k + 0.5F, null ); world.spawnEntityInWorld( primedTinyTNTEntity ); --dispensedItem.stackSize; diff --git a/src/main/java/appeng/hooks/DispenserBlockTool.java b/src/main/java/appeng/hooks/DispenserBlockTool.java index c3308a46..3a80229b 100644 --- a/src/main/java/appeng/hooks/DispenserBlockTool.java +++ b/src/main/java/appeng/hooks/DispenserBlockTool.java @@ -27,7 +27,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraft.world.WorldServer; - import appeng.util.Platform; @@ -40,17 +39,13 @@ public final class DispenserBlockTool extends BehaviorDefaultDispenseItem Item i = dispensedItem.getItem(); if( i instanceof IBlockTool ) { - EnumFacing enumfacing = BlockDispenser.func_149937_b( dispenser.getBlockMetadata() ); + EnumFacing enumfacing = BlockDispenser.getFacing( dispenser.getBlockMetadata() ); IBlockTool tm = (IBlockTool) i; World w = dispenser.getWorld(); if( w instanceof WorldServer ) { - int x = dispenser.getXInt() + enumfacing.getFrontOffsetX(); - int y = dispenser.getYInt() + enumfacing.getFrontOffsetY(); - int z = dispenser.getZInt() + enumfacing.getFrontOffsetZ(); - - tm.onItemUse( dispensedItem, Platform.getPlayer( (WorldServer) w ), w, x, y, z, enumfacing.ordinal(), 0.5f, 0.5f, 0.5f ); + tm.onItemUse( dispensedItem, Platform.getPlayer( (WorldServer) w ), w, dispenser.getBlockPos().offset( enumfacing ), enumfacing, 0.5f, 0.5f, 0.5f ); } } return dispensedItem; diff --git a/src/main/java/appeng/hooks/DispenserMatterCannon.java b/src/main/java/appeng/hooks/DispenserMatterCannon.java index ab0152e4..e85d47ed 100644 --- a/src/main/java/appeng/hooks/DispenserMatterCannon.java +++ b/src/main/java/appeng/hooks/DispenserMatterCannon.java @@ -28,8 +28,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.items.tools.powered.ToolMassCannon; import appeng.util.Platform; @@ -43,11 +42,11 @@ public final class DispenserMatterCannon extends BehaviorDefaultDispenseItem Item i = dispensedItem.getItem(); if( i instanceof ToolMassCannon ) { - EnumFacing enumfacing = BlockDispenser.func_149937_b( dispenser.getBlockMetadata() ); - ForgeDirection dir = ForgeDirection.UNKNOWN; - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + EnumFacing enumfacing = BlockDispenser.getFacing( dispenser.getBlockMetadata() ); + AEPartLocation dir = AEPartLocation.INTERNAL; + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { - if( enumfacing.getFrontOffsetX() == d.offsetX && enumfacing.getFrontOffsetY() == d.offsetY && enumfacing.getFrontOffsetZ() == d.offsetZ ) + if( enumfacing.getFrontOffsetX() == d.xOffset && enumfacing.getFrontOffsetY() == d.yOffset && enumfacing.getFrontOffsetZ() == d.zOffset ) { dir = d; } @@ -61,9 +60,9 @@ public final class DispenserMatterCannon extends BehaviorDefaultDispenseItem EntityPlayer p = Platform.getPlayer( (WorldServer) w ); Platform.configurePlayer( p, dir, dispenser.getBlockTileEntity() ); - p.posX += dir.offsetX; - p.posY += dir.offsetY; - p.posZ += dir.offsetZ; + p.posX += dir.xOffset; + p.posY += dir.yOffset; + p.posZ += dir.zOffset; dispensedItem = tm.onItemRightClick( dispensedItem, w, p ); } diff --git a/src/main/java/appeng/hooks/IBlockTool.java b/src/main/java/appeng/hooks/IBlockTool.java index 9bff76a9..f7ea7bcc 100644 --- a/src/main/java/appeng/hooks/IBlockTool.java +++ b/src/main/java/appeng/hooks/IBlockTool.java @@ -21,11 +21,22 @@ package appeng.hooks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; public interface IBlockTool { - boolean onItemUse( ItemStack dispensedItem, EntityPlayer player, World w, int x, int y, int z, int ordinal, float hitX, float hitY, float hitZ ); + public boolean onItemUse( + ItemStack item, + EntityPlayer p, + World w, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ); + } diff --git a/src/main/java/appeng/hooks/TickHandler.java b/src/main/java/appeng/hooks/TickHandler.java index 6e7cb874..122f863d 100644 --- a/src/main/java/appeng/hooks/TickHandler.java +++ b/src/main/java/appeng/hooks/TickHandler.java @@ -28,20 +28,14 @@ import java.util.WeakHashMap; import java.util.concurrent.Callable; import java.util.concurrent.TimeUnit; -import com.google.common.base.Stopwatch; -import com.google.common.collect.LinkedListMultimap; -import com.google.common.collect.Multimap; - import net.minecraft.world.World; import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.TickEvent; -import cpw.mods.fml.common.gameevent.TickEvent.Phase; -import cpw.mods.fml.common.gameevent.TickEvent.Type; -import cpw.mods.fml.common.gameevent.TickEvent.WorldTickEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent.Phase; +import net.minecraftforge.fml.common.gameevent.TickEvent.Type; +import net.minecraftforge.fml.common.gameevent.TickEvent.WorldTickEvent; import appeng.api.AEApi; import appeng.api.networking.IGridNode; import appeng.api.parts.CableRenderMode; @@ -51,12 +45,15 @@ import appeng.core.AELog; import appeng.core.CommonHelper; import appeng.core.sync.packets.PacketPaintedEntity; import appeng.crafting.CraftingJob; -import appeng.entity.EntityFloatingItem; import appeng.me.Grid; import appeng.me.NetworkList; import appeng.tile.AEBaseTile; import appeng.util.Platform; +import com.google.common.base.Stopwatch; +import com.google.common.collect.LinkedListMultimap; +import com.google.common.collect.Multimap; + public class TickHandler { @@ -170,7 +167,7 @@ public class TickHandler @SubscribeEvent public void onChunkLoad( ChunkEvent.Load load ) { - for( Object te : load.getChunk().chunkTileEntityMap.values() ) + for( Object te : load.getChunk().getTileEntityMap().values() ) { if( te instanceof AEBaseTile ) { @@ -186,7 +183,6 @@ public class TickHandler if( ev.type == Type.CLIENT && ev.phase == Phase.START ) { this.tickColors( this.cliPlayerColors ); - EntityFloatingItem.ageStatic = ( EntityFloatingItem.ageStatic + 1 ) % 60000; CableRenderMode currentMode = AEApi.instance().partHelper().getCableRenderMode(); if( currentMode != this.crm ) { diff --git a/src/main/java/appeng/integration/IntegrationNode.java b/src/main/java/appeng/integration/IntegrationNode.java index 91abab96..9a677d9f 100644 --- a/src/main/java/appeng/integration/IntegrationNode.java +++ b/src/main/java/appeng/integration/IntegrationNode.java @@ -21,9 +21,8 @@ package appeng.integration; import java.lang.reflect.Field; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.ModAPIManager; - +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.ModAPIManager; import appeng.api.exceptions.ModNotInstalled; import appeng.core.AEConfig; import appeng.core.AELog; diff --git a/src/main/java/appeng/integration/IntegrationRegistry.java b/src/main/java/appeng/integration/IntegrationRegistry.java index a838d426..cee239fe 100644 --- a/src/main/java/appeng/integration/IntegrationRegistry.java +++ b/src/main/java/appeng/integration/IntegrationRegistry.java @@ -22,8 +22,8 @@ package appeng.integration; import java.util.Collection; import java.util.LinkedList; -import cpw.mods.fml.relauncher.FMLLaunchHandler; -import cpw.mods.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.FMLLaunchHandler; +import net.minecraftforge.fml.relauncher.Side; public enum IntegrationRegistry diff --git a/src/main/java/appeng/integration/abstraction/IBC.java b/src/main/java/appeng/integration/abstraction/IBC.java index 654514b4..34bbefe1 100644 --- a/src/main/java/appeng/integration/abstraction/IBC.java +++ b/src/main/java/appeng/integration/abstraction/IBC.java @@ -19,15 +19,15 @@ package appeng.integration.abstraction; -import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.parts.IFacadePart; +import appeng.api.util.AEPartLocation; +import appeng.client.texture.IAESprite; public interface IBC @@ -38,13 +38,13 @@ public interface IBC void wrenchUsed( Item i, EntityPlayer p, int x, int y, int z ); - boolean canAddItemsToPipe( TileEntity te, ItemStack is, ForgeDirection dir ); + boolean canAddItemsToPipe( TileEntity te, ItemStack is, EnumFacing dir ); - boolean addItemsToPipe( TileEntity te, ItemStack is, ForgeDirection dir ); + boolean addItemsToPipe( TileEntity te, ItemStack is, EnumFacing dir ); boolean isFacade( ItemStack is ); - boolean isPipe( TileEntity te, ForgeDirection dir ); + boolean isPipe( TileEntity te, EnumFacing dir ); void addFacade( ItemStack item ); @@ -54,11 +54,11 @@ public interface IBC void registerLiquidsP2P(); - IFacadePart createFacadePart( Block blk, int meta, ForgeDirection side ); + IFacadePart createFacadePart( IBlockState state, AEPartLocation side ); - IFacadePart createFacadePart( ItemStack held, ForgeDirection side ); + IFacadePart createFacadePart( ItemStack held, AEPartLocation side ); ItemStack getTextureForFacade( ItemStack facade ); - IIcon getFacadeTexture(); + IAESprite getFacadeTexture(); } diff --git a/src/main/java/appeng/integration/abstraction/IBetterStorage.java b/src/main/java/appeng/integration/abstraction/IBetterStorage.java index 62de3a64..b544f05e 100644 --- a/src/main/java/appeng/integration/abstraction/IBetterStorage.java +++ b/src/main/java/appeng/integration/abstraction/IBetterStorage.java @@ -19,8 +19,7 @@ package appeng.integration.abstraction; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.util.InventoryAdaptor; @@ -29,5 +28,5 @@ public interface IBetterStorage boolean isStorageCrate( Object te ); - InventoryAdaptor getAdaptor( Object te, ForgeDirection d ); + InventoryAdaptor getAdaptor( Object te, EnumFacing d ); } diff --git a/src/main/java/appeng/integration/abstraction/IDSU.java b/src/main/java/appeng/integration/abstraction/IDSU.java index 66899f09..cbc1a704 100644 --- a/src/main/java/appeng/integration/abstraction/IDSU.java +++ b/src/main/java/appeng/integration/abstraction/IDSU.java @@ -20,7 +20,6 @@ package appeng.integration.abstraction; import net.minecraft.tileentity.TileEntity; - import appeng.api.storage.IMEInventory; diff --git a/src/main/java/appeng/integration/abstraction/IFMP.java b/src/main/java/appeng/integration/abstraction/IFMP.java index 62f1339a..381505e2 100644 --- a/src/main/java/appeng/integration/abstraction/IFMP.java +++ b/src/main/java/appeng/integration/abstraction/IFMP.java @@ -21,9 +21,7 @@ package appeng.integration.abstraction; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; - -import cpw.mods.fml.common.eventhandler.Event; - +import net.minecraftforge.fml.common.eventhandler.Event; import appeng.api.parts.IPartHost; import appeng.parts.CableBusContainer; diff --git a/src/main/java/appeng/integration/abstraction/IFZ.java b/src/main/java/appeng/integration/abstraction/IFZ.java index 372b5208..8a95776f 100644 --- a/src/main/java/appeng/integration/abstraction/IFZ.java +++ b/src/main/java/appeng/integration/abstraction/IFZ.java @@ -21,7 +21,6 @@ package appeng.integration.abstraction; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; - import appeng.api.storage.IMEInventory; diff --git a/src/main/java/appeng/integration/abstraction/IGT.java b/src/main/java/appeng/integration/abstraction/IGT.java index 959f9dfc..2ee56b9a 100644 --- a/src/main/java/appeng/integration/abstraction/IGT.java +++ b/src/main/java/appeng/integration/abstraction/IGT.java @@ -20,7 +20,6 @@ package appeng.integration.abstraction; import net.minecraft.tileentity.TileEntity; - import appeng.api.storage.IMEInventory; diff --git a/src/main/java/appeng/integration/abstraction/IImmibisMicroblocks.java b/src/main/java/appeng/integration/abstraction/IImmibisMicroblocks.java index 5d79e67b..f2c2787d 100644 --- a/src/main/java/appeng/integration/abstraction/IImmibisMicroblocks.java +++ b/src/main/java/appeng/integration/abstraction/IImmibisMicroblocks.java @@ -21,7 +21,6 @@ package appeng.integration.abstraction; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; - import appeng.api.parts.IPartHost; diff --git a/src/main/java/appeng/integration/abstraction/ILP.java b/src/main/java/appeng/integration/abstraction/ILP.java index f1133494..2fe35a85 100644 --- a/src/main/java/appeng/integration/abstraction/ILP.java +++ b/src/main/java/appeng/integration/abstraction/ILP.java @@ -23,7 +23,6 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; - import appeng.api.storage.IMEInventory; diff --git a/src/main/java/appeng/integration/abstraction/ITE.java b/src/main/java/appeng/integration/abstraction/ITE.java index 7aca71e7..a387d25e 100644 --- a/src/main/java/appeng/integration/abstraction/ITE.java +++ b/src/main/java/appeng/integration/abstraction/ITE.java @@ -21,7 +21,7 @@ package appeng.integration.abstraction; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.util.AEPartLocation; public interface ITE @@ -31,7 +31,7 @@ public interface ITE void addPulverizerRecipe( int i, ItemStack blkQuartzOre, ItemStack matQuartz, ItemStack matQuartzDust ); - boolean isPipe( TileEntity te, ForgeDirection opposite ); + boolean isPipe( TileEntity te, AEPartLocation opposite ); - ItemStack addItemsToPipe( TileEntity ad, ItemStack itemstack, ForgeDirection dir ); + ItemStack addItemsToPipe( TileEntity ad, ItemStack itemstack, AEPartLocation dir ); } diff --git a/src/main/java/appeng/integration/modules/BC.java b/src/main/java/appeng/integration/modules/BC.java index 995ed968..c4a6b32c 100644 --- a/src/main/java/appeng/integration/modules/BC.java +++ b/src/main/java/appeng/integration/modules/BC.java @@ -22,15 +22,12 @@ package appeng.integration.modules; import java.lang.reflect.Method; import net.minecraft.block.Block; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.common.event.FMLInterModComms; - +import net.minecraftforge.fml.common.event.FMLInterModComms; import buildcraft.BuildCraftEnergy; import buildcraft.BuildCraftTransport; import buildcraft.api.blueprints.BuilderAPI; @@ -45,7 +42,6 @@ import buildcraft.api.transport.IPipeConnection; import buildcraft.api.transport.IPipeTile; import buildcraft.transport.ItemFacade; import buildcraft.transport.PipeIconProvider; - import appeng.api.AEApi; import appeng.api.IAppEngApi; import appeng.api.config.TunnelType; @@ -54,6 +50,7 @@ import appeng.api.definitions.IBlocks; import appeng.api.features.IP2PTunnelRegistry; import appeng.api.parts.IFacadePart; import appeng.api.util.AEItemDefinition; +import appeng.api.util.ForgeDirection; import appeng.api.util.IOrientableBlock; import appeng.facade.FacadePart; import appeng.integration.BaseModule; @@ -269,7 +266,7 @@ public final class BC extends BaseModule implements IBC } @Override - public IIcon getFacadeTexture() + public TextureAtlasSprite getFacadeTexture() { try { diff --git a/src/main/java/appeng/integration/modules/BCHelpers/AECableSchematicTile.java b/src/main/java/appeng/integration/modules/BCHelpers/AECableSchematicTile.java index d4e2b4bf..5d5aff28 100644 --- a/src/main/java/appeng/integration/modules/BCHelpers/AECableSchematicTile.java +++ b/src/main/java/appeng/integration/modules/BCHelpers/AECableSchematicTile.java @@ -26,10 +26,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - import buildcraft.api.blueprints.IBuilderContext; - import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; @@ -37,6 +34,7 @@ import appeng.api.parts.LayerFlags; import appeng.api.parts.SelectedPart; import appeng.api.util.AEColor; import appeng.api.util.DimensionalCoord; +import appeng.api.util.ForgeDirection; import appeng.parts.CableBusContainer; diff --git a/src/main/java/appeng/integration/modules/BCHelpers/AEGenericSchematicTile.java b/src/main/java/appeng/integration/modules/BCHelpers/AEGenericSchematicTile.java index 7aeb82e3..6d28366a 100644 --- a/src/main/java/appeng/integration/modules/BCHelpers/AEGenericSchematicTile.java +++ b/src/main/java/appeng/integration/modules/BCHelpers/AEGenericSchematicTile.java @@ -23,11 +23,9 @@ import java.util.ArrayList; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.SchematicTile; - +import appeng.api.util.ForgeDirection; import appeng.api.util.ICommonTile; import appeng.tile.AEBaseTile; import appeng.util.Platform; diff --git a/src/main/java/appeng/integration/modules/BCHelpers/AERotatableBlockSchematic.java b/src/main/java/appeng/integration/modules/BCHelpers/AERotatableBlockSchematic.java index 2d9e4c51..1efda589 100644 --- a/src/main/java/appeng/integration/modules/BCHelpers/AERotatableBlockSchematic.java +++ b/src/main/java/appeng/integration/modules/BCHelpers/AERotatableBlockSchematic.java @@ -19,11 +19,9 @@ package appeng.integration.modules.BCHelpers; -import net.minecraftforge.common.util.ForgeDirection; - import buildcraft.api.blueprints.IBuilderContext; import buildcraft.api.blueprints.SchematicBlock; - +import appeng.api.util.ForgeDirection; import appeng.util.Platform; diff --git a/src/main/java/appeng/integration/modules/BCHelpers/BCPipeHandler.java b/src/main/java/appeng/integration/modules/BCHelpers/BCPipeHandler.java index 3abe52b7..a810aa1d 100644 --- a/src/main/java/appeng/integration/modules/BCHelpers/BCPipeHandler.java +++ b/src/main/java/appeng/integration/modules/BCHelpers/BCPipeHandler.java @@ -20,12 +20,11 @@ package appeng.integration.modules.BCHelpers; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; +import appeng.api.util.ForgeDirection; import appeng.integration.modules.BC; diff --git a/src/main/java/appeng/integration/modules/BCHelpers/BCPipeInventory.java b/src/main/java/appeng/integration/modules/BCHelpers/BCPipeInventory.java index 891b3ca6..b9da87ac 100644 --- a/src/main/java/appeng/integration/modules/BCHelpers/BCPipeInventory.java +++ b/src/main/java/appeng/integration/modules/BCHelpers/BCPipeInventory.java @@ -20,14 +20,13 @@ package appeng.integration.modules.BCHelpers; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.Actionable; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.ForgeDirection; import appeng.integration.modules.BC; diff --git a/src/main/java/appeng/integration/modules/BetterStorage.java b/src/main/java/appeng/integration/modules/BetterStorage.java index a908dd21..4bd69e27 100644 --- a/src/main/java/appeng/integration/modules/BetterStorage.java +++ b/src/main/java/appeng/integration/modules/BetterStorage.java @@ -20,9 +20,8 @@ package appeng.integration.modules; import net.mcft.copy.betterstorage.api.crate.ICrateStorage; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; +import appeng.api.util.ForgeDirection; import appeng.integration.IIntegrationModule; import appeng.integration.abstraction.IBetterStorage; import appeng.integration.modules.helpers.BSCrateHandler; diff --git a/src/main/java/appeng/integration/modules/CraftGuide.java b/src/main/java/appeng/integration/modules/CraftGuide.java index c0c2ef2b..e40ceffd 100644 --- a/src/main/java/appeng/integration/modules/CraftGuide.java +++ b/src/main/java/appeng/integration/modules/CraftGuide.java @@ -26,9 +26,7 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.IRecipe; - -import cpw.mods.fml.relauncher.ReflectionHelper; - +import net.minecraftforge.fml.relauncher.ReflectionHelper; import uristqwerty.CraftGuide.CraftGuideLog; import uristqwerty.CraftGuide.DefaultRecipeTemplate; import uristqwerty.CraftGuide.RecipeGeneratorImplementation; @@ -44,7 +42,6 @@ import uristqwerty.CraftGuide.api.StackInfo; import uristqwerty.CraftGuide.api.StackInfoSource; import uristqwerty.gui_craftguide.texture.DynamicTexture; import uristqwerty.gui_craftguide.texture.TextureClip; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; import appeng.api.recipes.IIngredient; diff --git a/src/main/java/appeng/integration/modules/FMP.java b/src/main/java/appeng/integration/modules/FMP.java index d06a6058..4785fa03 100644 --- a/src/main/java/appeng/integration/modules/FMP.java +++ b/src/main/java/appeng/integration/modules/FMP.java @@ -29,9 +29,7 @@ import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; - -import cpw.mods.fml.common.eventhandler.Event; - +import net.minecraftforge.fml.common.eventhandler.Event; import codechicken.lib.vec.BlockCoord; import codechicken.microblock.BlockMicroMaterial; import codechicken.multipart.MultiPartRegistry; @@ -40,7 +38,6 @@ import codechicken.multipart.MultiPartRegistry.IPartFactory; import codechicken.multipart.MultipartGenerator; import codechicken.multipart.TMultiPart; import codechicken.multipart.TileMultipart; - import appeng.api.AEApi; import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlocks; diff --git a/src/main/java/appeng/integration/modules/InvTweaks.java b/src/main/java/appeng/integration/modules/InvTweaks.java index 1ed46843..c52dab4b 100644 --- a/src/main/java/appeng/integration/modules/InvTweaks.java +++ b/src/main/java/appeng/integration/modules/InvTweaks.java @@ -20,11 +20,8 @@ package appeng.integration.modules; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.Loader; - +import net.minecraftforge.fml.common.Loader; import invtweaks.api.InvTweaksAPI; - import appeng.integration.BaseModule; import appeng.integration.abstraction.IInvTweaks; diff --git a/src/main/java/appeng/integration/modules/Mekanism.java b/src/main/java/appeng/integration/modules/Mekanism.java index 3e27ad06..9d8729c8 100644 --- a/src/main/java/appeng/integration/modules/Mekanism.java +++ b/src/main/java/appeng/integration/modules/Mekanism.java @@ -21,9 +21,7 @@ package appeng.integration.modules; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.event.FMLInterModComms; - +import net.minecraftforge.fml.common.event.FMLInterModComms; import appeng.integration.BaseModule; import appeng.integration.abstraction.IMekanism; diff --git a/src/main/java/appeng/integration/modules/RF.java b/src/main/java/appeng/integration/modules/RF.java index 96631ec4..4d642c0c 100644 --- a/src/main/java/appeng/integration/modules/RF.java +++ b/src/main/java/appeng/integration/modules/RF.java @@ -20,10 +20,8 @@ package appeng.integration.modules; import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; - -import cpw.mods.fml.common.registry.GameRegistry; - import appeng.api.AEApi; import appeng.api.config.TunnelType; import appeng.helpers.Reflected; diff --git a/src/main/java/appeng/integration/modules/Waila.java b/src/main/java/appeng/integration/modules/Waila.java index bc982261..0624d859 100644 --- a/src/main/java/appeng/integration/modules/Waila.java +++ b/src/main/java/appeng/integration/modules/Waila.java @@ -19,11 +19,9 @@ package appeng.integration.modules; -import cpw.mods.fml.common.event.FMLInterModComms; - +import net.minecraftforge.fml.common.event.FMLInterModComms; import mcp.mobius.waila.api.IWailaDataProvider; import mcp.mobius.waila.api.IWailaRegistrar; - import appeng.integration.BaseModule; import appeng.integration.modules.waila.PartWailaDataProvider; import appeng.integration.modules.waila.TileWailaDataProvider; diff --git a/src/main/java/appeng/integration/modules/helpers/BSCrate.java b/src/main/java/appeng/integration/modules/helpers/BSCrate.java index 1e0bfbf1..35096703 100644 --- a/src/main/java/appeng/integration/modules/helpers/BSCrate.java +++ b/src/main/java/appeng/integration/modules/helpers/BSCrate.java @@ -21,14 +21,13 @@ package appeng.integration.modules.helpers; import net.mcft.copy.betterstorage.api.crate.ICrateStorage; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.Actionable; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.ForgeDirection; import appeng.util.item.AEItemStack; diff --git a/src/main/java/appeng/integration/modules/helpers/BSCrateHandler.java b/src/main/java/appeng/integration/modules/helpers/BSCrateHandler.java index 25171e0a..d8a547d1 100644 --- a/src/main/java/appeng/integration/modules/helpers/BSCrateHandler.java +++ b/src/main/java/appeng/integration/modules/helpers/BSCrateHandler.java @@ -21,12 +21,11 @@ package appeng.integration.modules.helpers; import net.mcft.copy.betterstorage.api.crate.ICrateStorage; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; +import appeng.api.util.ForgeDirection; public class BSCrateHandler implements IExternalStorageHandler diff --git a/src/main/java/appeng/integration/modules/helpers/BSCrateStorageAdaptor.java b/src/main/java/appeng/integration/modules/helpers/BSCrateStorageAdaptor.java index f7b12c65..5a098511 100644 --- a/src/main/java/appeng/integration/modules/helpers/BSCrateStorageAdaptor.java +++ b/src/main/java/appeng/integration/modules/helpers/BSCrateStorageAdaptor.java @@ -23,9 +23,8 @@ import java.util.Iterator; import net.mcft.copy.betterstorage.api.crate.ICrateStorage; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.FuzzyMode; +import appeng.api.util.ForgeDirection; import appeng.util.InventoryAdaptor; import appeng.util.Platform; import appeng.util.inv.IInventoryDestination; diff --git a/src/main/java/appeng/integration/modules/helpers/FMPPacketEvent.java b/src/main/java/appeng/integration/modules/helpers/FMPPacketEvent.java index e043452f..912de256 100644 --- a/src/main/java/appeng/integration/modules/helpers/FMPPacketEvent.java +++ b/src/main/java/appeng/integration/modules/helpers/FMPPacketEvent.java @@ -20,8 +20,7 @@ package appeng.integration.modules.helpers; import net.minecraft.entity.player.EntityPlayerMP; - -import cpw.mods.fml.common.eventhandler.Event; +import net.minecraftforge.fml.common.eventhandler.Event; public class FMPPacketEvent extends Event diff --git a/src/main/java/appeng/integration/modules/helpers/FactorizationHandler.java b/src/main/java/appeng/integration/modules/helpers/FactorizationHandler.java index 535a5ccc..d0a87597 100644 --- a/src/main/java/appeng/integration/modules/helpers/FactorizationHandler.java +++ b/src/main/java/appeng/integration/modules/helpers/FactorizationHandler.java @@ -20,12 +20,11 @@ package appeng.integration.modules.helpers; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; +import appeng.api.util.ForgeDirection; import appeng.integration.modules.FZ; import appeng.me.storage.MEMonitorIInventory; import appeng.util.inv.IMEAdaptor; diff --git a/src/main/java/appeng/integration/modules/helpers/MFRDSUHandler.java b/src/main/java/appeng/integration/modules/helpers/MFRDSUHandler.java index d3389067..014b0ffe 100644 --- a/src/main/java/appeng/integration/modules/helpers/MFRDSUHandler.java +++ b/src/main/java/appeng/integration/modules/helpers/MFRDSUHandler.java @@ -20,12 +20,11 @@ package appeng.integration.modules.helpers; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; +import appeng.api.util.ForgeDirection; import appeng.integration.modules.DSU; import appeng.me.storage.MEMonitorIInventory; import appeng.util.inv.IMEAdaptor; diff --git a/src/main/java/appeng/integration/modules/helpers/NullRFHandler.java b/src/main/java/appeng/integration/modules/helpers/NullRFHandler.java index 2621bf3b..384aa0fd 100644 --- a/src/main/java/appeng/integration/modules/helpers/NullRFHandler.java +++ b/src/main/java/appeng/integration/modules/helpers/NullRFHandler.java @@ -19,8 +19,7 @@ package appeng.integration.modules.helpers; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.ForgeDirection; import cofh.api.energy.IEnergyReceiver; diff --git a/src/main/java/appeng/items/AEBaseItem.java b/src/main/java/appeng/items/AEBaseItem.java index 12de72ba..91ff733c 100644 --- a/src/main/java/appeng/items/AEBaseItem.java +++ b/src/main/java/appeng/items/AEBaseItem.java @@ -22,18 +22,22 @@ package appeng.items; import java.util.EnumSet; import java.util.List; -import com.google.common.base.Optional; - +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import appeng.client.ClientHelper; +import appeng.client.texture.IAESprite; import appeng.core.features.AEFeature; import appeng.core.features.FeatureNameExtractor; import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.core.features.ItemFeatureHandler; +import com.google.common.base.Optional; + public abstract class AEBaseItem extends Item implements IAEFeature { @@ -93,4 +97,27 @@ public abstract class AEBaseItem extends Item implements IAEFeature { super.addInformation( stack, player, lines, displayMoreInfo ); } + + @SideOnly(Side.CLIENT) + protected IAESprite myIcon = null; + + @SideOnly(Side.CLIENT) + public void registerIcons( + ClientHelper proxy, String name ) + { + proxy.setIcon( this, 0, name ); + } + + public IAESprite getIcon( + ItemStack is ) + { + return myIcon; + } + + @SideOnly(Side.CLIENT) + public void registerCustomIcon( + TextureMap map ) + { + + } } diff --git a/src/main/java/appeng/items/contents/CellConfig.java b/src/main/java/appeng/items/contents/CellConfig.java index be8f63a0..647efbe2 100644 --- a/src/main/java/appeng/items/contents/CellConfig.java +++ b/src/main/java/appeng/items/contents/CellConfig.java @@ -20,7 +20,6 @@ package appeng.items.contents; import net.minecraft.item.ItemStack; - import appeng.tile.inventory.AppEngInternalInventory; import appeng.util.Platform; diff --git a/src/main/java/appeng/items/contents/CellUpgrades.java b/src/main/java/appeng/items/contents/CellUpgrades.java index 225b0fa8..e6f4d71b 100644 --- a/src/main/java/appeng/items/contents/CellUpgrades.java +++ b/src/main/java/appeng/items/contents/CellUpgrades.java @@ -20,7 +20,6 @@ package appeng.items.contents; import net.minecraft.item.ItemStack; - import appeng.parts.automation.StackUpgradeInventory; import appeng.util.Platform; diff --git a/src/main/java/appeng/items/contents/NetworkToolViewer.java b/src/main/java/appeng/items/contents/NetworkToolViewer.java index 8b9e3130..4a26efd7 100644 --- a/src/main/java/appeng/items/contents/NetworkToolViewer.java +++ b/src/main/java/appeng/items/contents/NetworkToolViewer.java @@ -21,7 +21,7 @@ package appeng.items.contents; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; - +import net.minecraft.util.IChatComponent; import appeng.api.implementations.guiobjects.INetworkTool; import appeng.api.implementations.items.IUpgradeModule; import appeng.api.networking.IGridHost; @@ -78,15 +78,15 @@ public class NetworkToolViewer implements INetworkTool } @Override - public String getInventoryName() + public String getName() { - return this.inv.getInventoryName(); + return this.inv.getName(); } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { - return this.inv.hasCustomInventoryName(); + return this.inv.hasCustomName(); } @Override @@ -109,15 +109,15 @@ public class NetworkToolViewer implements INetworkTool } @Override - public void openInventory() + public void openInventory(EntityPlayer player) { - this.inv.openInventory(); + this.inv.openInventory(player); } @Override - public void closeInventory() + public void closeInventory(EntityPlayer player) { - this.inv.closeInventory(); + this.inv.closeInventory(player); } @Override @@ -137,4 +137,37 @@ public class NetworkToolViewer implements INetworkTool { return this.gh; } + + @Override + public int getField( + int id ) + { + return inv.getField( id ); + } + + @Override + public void setField( + int id, + int value ) + { + inv.setField( id, value ); + } + + @Override + public int getFieldCount() + { + return inv.getFieldCount(); + } + + @Override + public void clear() + { + inv.clear(); + } + + @Override + public IChatComponent getDisplayName() + { + return inv.getDisplayName(); + } } diff --git a/src/main/java/appeng/items/contents/PortableCellViewer.java b/src/main/java/appeng/items/contents/PortableCellViewer.java index 43ef16ec..34694e08 100644 --- a/src/main/java/appeng/items/contents/PortableCellViewer.java +++ b/src/main/java/appeng/items/contents/PortableCellViewer.java @@ -21,7 +21,6 @@ package appeng.items.contents; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.config.Settings; diff --git a/src/main/java/appeng/items/contents/QuartzKnifeObj.java b/src/main/java/appeng/items/contents/QuartzKnifeObj.java index 5b5b46ac..710cc20d 100644 --- a/src/main/java/appeng/items/contents/QuartzKnifeObj.java +++ b/src/main/java/appeng/items/contents/QuartzKnifeObj.java @@ -20,7 +20,6 @@ package appeng.items.contents; import net.minecraft.item.ItemStack; - import appeng.api.implementations.guiobjects.IGuiItemObject; diff --git a/src/main/java/appeng/items/materials/ItemMultiMaterial.java b/src/main/java/appeng/items/materials/ItemMultiMaterial.java index 1540800f..0ec33bbd 100644 --- a/src/main/java/appeng/items/materials/ItemMultiMaterial.java +++ b/src/main/java/appeng/items/materials/ItemMultiMaterial.java @@ -31,10 +31,6 @@ import java.util.Map.Entry; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.google.common.base.Preconditions; -import com.google.common.collect.ImmutableSet; - -import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; @@ -44,12 +40,13 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.config.Upgrades; import appeng.api.implementations.IUpgradeableHost; import appeng.api.implementations.items.IItemGroup; @@ -58,7 +55,7 @@ import appeng.api.implementations.items.IUpgradeModule; import appeng.api.implementations.tiles.ISegmentedInventory; import appeng.api.parts.IPartHost; import appeng.api.parts.SelectedPart; -import appeng.client.texture.MissingIcon; +import appeng.client.ClientHelper; import appeng.core.AEConfig; import appeng.core.features.AEFeature; import appeng.core.features.IStackSrc; @@ -68,6 +65,9 @@ import appeng.items.AEBaseItem; import appeng.util.InventoryAdaptor; import appeng.util.Platform; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; + public final class ItemMultiMaterial extends AEBaseItem implements IStorageComponent, IUpgradeModule { @@ -258,22 +258,25 @@ public final class ItemMultiMaterial extends AEBaseItem implements IStorageCompo } } - @Override - public IIcon getIconFromDamage( int dmg ) - { - if( this.dmgToMaterial.containsKey( dmg ) ) - { - return this.dmgToMaterial.get( dmg ).IIcon; - } - return new MissingIcon( this ); - } - @Override public String getUnlocalizedName( ItemStack is ) { return "item.appliedenergistics2." + this.nameOf( is ); } + @Override + @SideOnly(Side.CLIENT) + public void registerIcons( + ClientHelper proxy, + String name ) + { + for ( MaterialType type : MaterialType.values() ) + { + if ( type != MaterialType.InvalidType ) + proxy.setIcon( this, type.damageValue, name +"."+ type.name() ); + } + } + private String nameOf( ItemStack is ) { if( is == null ) @@ -314,33 +317,24 @@ public final class ItemMultiMaterial extends AEBaseItem implements IStorageCompo } @Override - public void registerIcons( IIconRegister icoRegister ) - { - for( MaterialType mat : MaterialType.values() ) - { - if( mat.damageValue != -1 ) - { - ItemStack what = new ItemStack( this, 1, mat.damageValue ); - if( this.getTypeByStack( what ) != MaterialType.InvalidType ) - { - String tex = "appliedenergistics2:" + this.nameOf( what ); - mat.IIcon = icoRegister.registerIcon( tex ); - } - } - } - } - - @Override - public boolean onItemUseFirst( ItemStack is, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack is, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( player.isSneaking() ) { - TileEntity te = world.getTileEntity( x, y, z ); + TileEntity te = world.getTileEntity( pos ); IInventory upgrades = null; if( te instanceof IPartHost ) { - SelectedPart sp = ( (IPartHost) te ).selectPart( Vec3.createVectorHelper( hitX, hitY, hitZ ) ); + SelectedPart sp = ( (IPartHost) te ).selectPart( new Vec3( hitX, hitY, hitZ ) ); if( sp.part instanceof IUpgradeableHost ) { upgrades = ( (ISegmentedInventory) sp.part ).getInventoryByName( "upgrades" ); @@ -358,7 +352,7 @@ public final class ItemMultiMaterial extends AEBaseItem implements IStorageCompo if( u != null ) { - InventoryAdaptor ad = InventoryAdaptor.getAdaptor( upgrades, ForgeDirection.UNKNOWN ); + InventoryAdaptor ad = InventoryAdaptor.getAdaptor( upgrades, EnumFacing.UP ); if( ad != null ) { if( player.worldObj.isRemote ) @@ -373,7 +367,7 @@ public final class ItemMultiMaterial extends AEBaseItem implements IStorageCompo } } - return super.onItemUseFirst( is, player, world, x, y, z, side, hitX, hitY, hitZ ); + return super.onItemUseFirst( is, player, world, pos, side, hitX, hitY, hitZ ); } @Override @@ -403,7 +397,9 @@ public final class ItemMultiMaterial extends AEBaseItem implements IStorageCompo if( location instanceof EntityItem && eqi instanceof EntityItem ) { - ( (EntityItem) eqi ).delayBeforeCanPickup = ( (EntityItem) location ).delayBeforeCanPickup; + // TODO: Entity Pick up time? + // needs fixing? + // ( (EntityItem) eqi ).setPickupDelay( ( (EntityItem) location ).pick; } return eqi; diff --git a/src/main/java/appeng/items/materials/MaterialType.java b/src/main/java/appeng/items/materials/MaterialType.java index a252bf2c..522344e3 100644 --- a/src/main/java/appeng/items/materials/MaterialType.java +++ b/src/main/java/appeng/items/materials/MaterialType.java @@ -21,15 +21,13 @@ package appeng.items.materials; import java.util.EnumSet; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.common.registry.EntityRegistry; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.core.AppEng; import appeng.core.features.AEFeature; import appeng.core.features.MaterialStackSrc; @@ -85,9 +83,9 @@ public enum MaterialType BlankPattern( 52 ), CardCrafting( 53 ); private final EnumSet features; - // IIcon for the material. + // TextureAtlasSprite for the material. @SideOnly( Side.CLIENT ) - public IIcon IIcon; + public TextureAtlasSprite IIcon; public Item itemInstance; public int damageValue; // stack! diff --git a/src/main/java/appeng/items/misc/ItemCrystalSeed.java b/src/main/java/appeng/items/misc/ItemCrystalSeed.java index e35a3d33..1c018322 100644 --- a/src/main/java/appeng/items/misc/ItemCrystalSeed.java +++ b/src/main/java/appeng/items/misc/ItemCrystalSeed.java @@ -21,28 +21,30 @@ package appeng.items.misc; import java.util.EnumSet; import java.util.List; + import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemMeshDefinition; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; import net.minecraft.world.World; - -import cpw.mods.fml.common.registry.EntityRegistry; - +import net.minecraftforge.fml.common.registry.EntityRegistry; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.definitions.IMaterials; import appeng.api.implementations.items.IGrowableCrystal; import appeng.api.recipes.ResolverResult; +import appeng.client.ClientHelper; import appeng.core.AppEng; import appeng.core.features.AEFeature; import appeng.core.localization.ButtonToolTips; @@ -63,9 +65,9 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal public static final int FLUIX = SINGLE_OFFSET * 2; public static final int FINAL_STAGE = SINGLE_OFFSET * 3; - final IIcon[] certus = new IIcon[3]; - final IIcon[] fluix = new IIcon[3]; - final IIcon[] nether = new IIcon[3]; + final ModelResourceLocation[] certus = new ModelResourceLocation[3]; + final ModelResourceLocation[] fluix = new ModelResourceLocation[3]; + final ModelResourceLocation[] nether = new ModelResourceLocation[3]; public ItemCrystalSeed() { @@ -75,6 +77,71 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal EntityRegistry.registerModEntity( EntityGrowingCrystal.class, EntityGrowingCrystal.class.getSimpleName(), EntityIds.get( EntityGrowingCrystal.class ), AppEng.instance(), 16, 4, true ); } + @Override + @SideOnly(Side.CLIENT) + public void registerIcons( ClientHelper ir, String name ) + { + String preFix = name+"."; + + this.certus[0] = ir.setIcon( this, preFix + "Certus" ); + this.certus[1] = ir.setIcon( this, preFix + "Certus2" ); + this.certus[2] = ir.setIcon( this, preFix + "Certus3" ); + + this.nether[0] = ir.setIcon( this, preFix + "Nether" ); + this.nether[1] = ir.setIcon( this, preFix + "Nether2" ); + this.nether[2] = ir.setIcon( this, preFix + "Nether3" ); + + this.fluix[0] = ir.setIcon( this, preFix + "Fluix" ); + this.fluix[1] = ir.setIcon( this, preFix + "Fluix2" ); + this.fluix[2] = ir.setIcon( this, preFix + "Fluix3" ); + + Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( this, new ItemMeshDefinition(){ + + @Override + public ModelResourceLocation getModelLocation( + ItemStack stack ) + { + ModelResourceLocation[] list = null; + + int damage = getProgress( stack ); + + if( damage < CERTUS + SINGLE_OFFSET ) + { + list = certus; + } + else if( damage < NETHER + SINGLE_OFFSET ) + { + damage -= NETHER; + list = nether; + } + + else if( damage < FLUIX + SINGLE_OFFSET ) + { + damage -= FLUIX; + list = fluix; + } + + if( list == null ) + { + return new ModelResourceLocation( "diamond" ); + } + + if( damage < LEVEL_OFFSET ) + { + return list[0]; + } + else if( damage < LEVEL_OFFSET * 2 ) + { + return list[1]; + } + else + { + return list[2]; + } + } + }); + } + @Nullable public static ResolverResult getResolver( int certus2 ) { @@ -220,72 +287,6 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal return FINAL_STAGE; } - @Override - public IIcon getIcon( ItemStack stack, int pass ) - { - return this.getIconIndex( stack ); - } - - @Override - public IIcon getIconIndex( ItemStack stack ) - { - IIcon[] list = null; - - int damage = this.getProgress( stack ); - - if( damage < CERTUS + SINGLE_OFFSET ) - { - list = this.certus; - } - else if( damage < NETHER + SINGLE_OFFSET ) - { - damage -= NETHER; - list = this.nether; - } - - else if( damage < FLUIX + SINGLE_OFFSET ) - { - damage -= FLUIX; - list = this.fluix; - } - - if( list == null ) - { - return Items.diamond.getIconFromDamage( 0 ); - } - - if( damage < LEVEL_OFFSET ) - { - return list[0]; - } - else if( damage < LEVEL_OFFSET * 2 ) - { - return list[1]; - } - else - { - return list[2]; - } - } - - @Override - public void registerIcons( IIconRegister ir ) - { - String preFix = "appliedenergistics2:ItemCrystalSeed."; - - this.certus[0] = ir.registerIcon( preFix + "Certus" ); - this.certus[1] = ir.registerIcon( preFix + "Certus2" ); - this.certus[2] = ir.registerIcon( preFix + "Certus3" ); - - this.nether[0] = ir.registerIcon( preFix + "Nether" ); - this.nether[1] = ir.registerIcon( preFix + "Nether2" ); - this.nether[2] = ir.registerIcon( preFix + "Nether3" ); - - this.fluix[0] = ir.registerIcon( preFix + "Fluix" ); - this.fluix[1] = ir.registerIcon( preFix + "Fluix2" ); - this.fluix[2] = ir.registerIcon( preFix + "Fluix3" ); - } - @Override public boolean hasCustomEntity( ItemStack stack ) { @@ -303,7 +304,9 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal if( location instanceof EntityItem ) { - egc.delayBeforeCanPickup = ( (EntityItem) location ).delayBeforeCanPickup; + // TODO: DELAY BEFORE PICKUP + // NEEDS FIXING?!?! + // egc.delayBeforeCanPickup = ( (EntityItem) location ).delayBeforeCanPickup; } return egc; diff --git a/src/main/java/appeng/items/misc/ItemEncodedPattern.java b/src/main/java/appeng/items/misc/ItemEncodedPattern.java index 39f532b7..991424aa 100644 --- a/src/main/java/appeng/items/misc/ItemEncodedPattern.java +++ b/src/main/java/appeng/items/misc/ItemEncodedPattern.java @@ -24,18 +24,23 @@ import java.util.List; import java.util.Map; import java.util.WeakHashMap; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemMeshDefinition; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.client.MinecraftForgeClient; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.implementations.ICraftingPatternItem; import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.data.IAEItemStack; -import appeng.client.render.items.ItemEncodedPatternRenderer; +import appeng.client.ClientHelper; import appeng.core.CommonHelper; import appeng.core.features.AEFeature; import appeng.core.localization.GuiText; @@ -53,12 +58,50 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt { this.setFeature( EnumSet.of( AEFeature.Patterns ) ); this.setMaxStackSize( 1 ); - if( Platform.isClient() ) - { - MinecraftForgeClient.registerItemRenderer( this, new ItemEncodedPatternRenderer() ); - } } + @SideOnly(Side.CLIENT) + ModelResourceLocation res; + + @SideOnly(Side.CLIENT) + ModelResourceLocation encodedPatternModel; // TODO: make encoded pattern model! + + @Override + public void registerIcons( + ClientHelper proxy, + String name ) + { + encodedPatternModel = res = proxy.setIcon( this, name ); + + Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( this, new ItemMeshDefinition(){ + + boolean recursive = false; + + @Override + public ModelResourceLocation getModelLocation( + ItemStack stack ) + { + if ( recursive == false ) + { + this.recursive = true; + + ItemEncodedPattern iep = (ItemEncodedPattern) stack.getItem(); + + ItemStack is = iep.getOutput( stack ); + if ( Minecraft.getMinecraft().thePlayer.isSneaking() ) + { + return encodedPatternModel; + } + + this.recursive = false; + } + + return res; + } + }); + + } + @Override public ItemStack onItemRightClick( ItemStack stack, World w, EntityPlayer player ) { @@ -68,7 +111,15 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt } @Override - public boolean onItemUseFirst( ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { return this.clearPattern( stack, player ); } diff --git a/src/main/java/appeng/items/misc/ItemPaintBall.java b/src/main/java/appeng/items/misc/ItemPaintBall.java index 863591fe..430a8d41 100644 --- a/src/main/java/appeng/items/misc/ItemPaintBall.java +++ b/src/main/java/appeng/items/misc/ItemPaintBall.java @@ -22,17 +22,19 @@ package appeng.items.misc; import java.util.EnumSet; import java.util.List; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemMeshDefinition; +import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraftforge.client.MinecraftForgeClient; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.util.AEColor; -import appeng.client.render.items.PaintBallRender; +import appeng.client.ClientHelper; import appeng.core.features.AEFeature; import appeng.core.localization.GuiText; import appeng.items.AEBaseItem; -import appeng.util.Platform; public class ItemPaintBall extends AEBaseItem @@ -44,13 +46,30 @@ public class ItemPaintBall extends AEBaseItem { this.setFeature( EnumSet.of( AEFeature.PaintBalls ) ); this.setHasSubtypes( true ); - - if( Platform.isClient() ) - { - MinecraftForgeClient.registerItemRenderer( this, new PaintBallRender() ); - } } + @Override + @SideOnly(Side.CLIENT) + public void registerIcons( ClientHelper ir, String name ) + { + final ModelResourceLocation sloc = ir.setIcon( this, name + "Shimmer" ); + final ModelResourceLocation loc = ir.setIcon( this, name ); + + + Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register( this, new ItemMeshDefinition(){ + + @Override + public ModelResourceLocation getModelLocation( + ItemStack stack ) + { + if ( isLumen(stack) ) + return sloc; + + return loc; + } + }); + } + @Override public String getItemStackDisplayName( ItemStack is ) { @@ -61,6 +80,31 @@ public class ItemPaintBall extends AEBaseItem { return ( is.getItemDamage() >= DAMAGE_THRESHOLD ? GuiText.Lumen.getLocal() + ' ' : "" ) + this.getColor( is ); } + + @Override + public int getColorFromItemStack( + ItemStack stack, + int renderPass ) + { + AEColor col = getColor(stack); + + int colorValue = stack.getItemDamage() >= 20 ? col.mediumVariant : col.mediumVariant; + int r = ( colorValue >> 16 ) & 0xff; + int g = ( colorValue >> 8 ) & 0xff; + int b = ( colorValue ) & 0xff; + + int full = (int) ( 255 * 0.3 ); + float fail = 0.7f; + + if( stack.getItemDamage() >= 20 ) + { + return (int)( full + r * fail ) << 16 | (int)( full + g * fail ) << 8 | (int)( full + b * fail ) | 0xff << 24; + } + else + { + return r << 16 | g << 8 | b | 0xff << 24 ; + } + } public AEColor getColor( ItemStack is ) { diff --git a/src/main/java/appeng/items/parts/ItemFacade.java b/src/main/java/appeng/items/parts/ItemFacade.java index 9c9b190a..5fc70142 100644 --- a/src/main/java/appeng/items/parts/ItemFacade.java +++ b/src/main/java/appeng/items/parts/ItemFacade.java @@ -26,6 +26,7 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.BlockGlass; import net.minecraft.block.BlockStainedGlass; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -33,26 +34,25 @@ import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumWorldBlockLayer; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.common.registry.GameRegistry.UniqueIdentifier; import appeng.api.AEApi; import appeng.api.exceptions.MissingDefinition; import appeng.api.parts.IAlphaPassItem; +import appeng.api.util.AEPartLocation; import appeng.block.solids.OreQuartz; -import appeng.client.render.BusRenderer; +import appeng.client.texture.BaseIcon; +import appeng.core.AppEng; import appeng.core.FacadeConfig; import appeng.core.features.AEFeature; import appeng.facade.FacadePart; import appeng.facade.IFacadeItem; import appeng.items.AEBaseItem; -import appeng.util.Platform; public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassItem @@ -64,23 +64,20 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte { this.setFeature( EnumSet.of( AEFeature.Facades ) ); this.setHasSubtypes( true ); - if( Platform.isClient() ) - { - MinecraftForgeClient.registerItemRenderer( this, BusRenderer.INSTANCE ); - } } @Override - @SideOnly( Side.CLIENT ) - public int getSpriteNumber() + public boolean onItemUseFirst( + ItemStack is, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - return 0; - } - - @Override - public boolean onItemUse( ItemStack is, EntityPlayer player, World w, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) - { - return AEApi.instance().partHelper().placeBus( is, x, y, z, side, player, w ); + return AEApi.instance().partHelper().placeBus( is, pos, side, player, world ); } @Override @@ -160,7 +157,7 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte int metadata = l.getItem().getMetadata( l.getItemDamage() ); - boolean hasTile = b.hasTileEntity( metadata ); + boolean hasTile = b.hasTileEntity( b.getStateFromMeta( metadata ) ); boolean enableGlass = b instanceof BlockGlass || b instanceof BlockStainedGlass; boolean disableOre = b instanceof OreQuartz; @@ -188,7 +185,7 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte } @Override - public FacadePart createPartFromItemStack( ItemStack is, ForgeDirection side ) + public FacadePart createPartFromItemStack( ItemStack is, AEPartLocation side ) { ItemStack in = this.getTextureItem( is ); if( in != null ) @@ -232,6 +229,9 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte { if( data.hasKey( "modid" ) && data.hasKey( "itemname" ) ) { + if ( data.getString( "modid" ).equals( "minecraft" ) ) + return Block.getBlockFromName( data.getString( "itemname" ) ); + return GameRegistry.findBlock( data.getString( "modid" ), data.getString( "itemname" ) ); } else @@ -287,11 +287,18 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem, IAlphaPassIte } Block blk = Block.getBlockFromItem( out.getItem() ); - if( blk != null && blk.canRenderInPass( 1 ) ) + if( blk != null && blk.canRenderInLayer( EnumWorldBlockLayer.TRANSLUCENT ) ) { return true; } return false; } + + @Override + public void registerCustomIcon( + TextureMap map ) + { + myIcon = new BaseIcon( map.registerSprite( new ResourceLocation( AppEng.MOD_ID, "blocks/ItemFacade" ) )); + } } diff --git a/src/main/java/appeng/items/parts/ItemMultiPart.java b/src/main/java/appeng/items/parts/ItemMultiPart.java index c6b76f8c..7a8def3e 100644 --- a/src/main/java/appeng/items/parts/ItemMultiPart.java +++ b/src/main/java/appeng/items/parts/ItemMultiPart.java @@ -33,26 +33,28 @@ import java.util.Set; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.google.common.base.Preconditions; - -import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.implementations.items.IItemGroup; import appeng.api.parts.IPart; import appeng.api.parts.IPartHelper; import appeng.api.parts.IPartItem; import appeng.api.util.AEColor; +import appeng.client.texture.BaseIcon; +import appeng.client.texture.IAESprite; +import appeng.client.texture.MissingIcon; import appeng.core.AEConfig; +import appeng.core.AppEng; import appeng.core.features.AEFeature; import appeng.core.features.ItemStackSrc; import appeng.core.features.NameResolver; @@ -61,6 +63,8 @@ import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.items.AEBaseItem; +import com.google.common.base.Preconditions; + public final class ItemMultiPart extends AEBaseItem implements IPartItem, IItemGroup { @@ -171,22 +175,17 @@ public final class ItemMultiPart extends AEBaseItem implements IPartItem, IItemG } @Override - @SideOnly( Side.CLIENT ) - public int getSpriteNumber() + public boolean onItemUse( + ItemStack is, + EntityPlayer player, + World w, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - return 0; - } - - @Override - public IIcon getIconFromDamage( int dmg ) - { - return this.registered.get( dmg ).ico; - } - - @Override - public boolean onItemUse( ItemStack is, EntityPlayer player, World w, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) - { - return AEApi.instance().partHelper().placeBus( is, x, y, z, side, player, w ); + return AEApi.instance().partHelper().placeBus( is, pos, side, player, w ); } @Override @@ -195,6 +194,31 @@ public final class ItemMultiPart extends AEBaseItem implements IPartItem, IItemG return "item.appliedenergistics2." + this.getName( is ); } + + @Override + @SideOnly(Side.CLIENT) + public void registerCustomIcon( + TextureMap map ) + { + for( Entry part : this.registered.entrySet() ) + { + part.getValue().texture= new BaseIcon( map.registerSprite( new ResourceLocation( AppEng.MOD_ID, "blocks/" + this.getName( new ItemStack( this, 1, part.getKey() ) ) )) ); + } + } + + @Override + public IAESprite getIcon( + ItemStack is ) + { + for( Entry part : this.registered.entrySet() ) + { + if ( is.getMetadata() == part.getKey() ) + return part.getValue().texture; + } + + return new MissingIcon( this ); + } + @Override public String getItemStackDisplayName( ItemStack is ) { @@ -227,16 +251,6 @@ public final class ItemMultiPart extends AEBaseItem implements IPartItem, IItemG } } - @Override - public void registerIcons( IIconRegister par1IconRegister ) - { - for( Entry part : this.registered.entrySet() ) - { - String tex = "appliedenergistics2:" + this.getName( new ItemStack( this, 1, part.getKey() ) ); - part.getValue().ico = par1IconRegister.registerIcon( tex ); - } - } - public String getName( ItemStack is ) { Preconditions.checkNotNull( is ); @@ -358,9 +372,9 @@ public final class ItemMultiPart extends AEBaseItem implements IPartItem, IItemG private final PartType part; private final int variant; - @SideOnly( Side.CLIENT ) - private IIcon ico; - + @SideOnly(Side.CLIENT) + public IAESprite texture = null; + private PartTypeWithVariant( PartType part, int variant ) { assert part != null; @@ -379,4 +393,5 @@ public final class ItemMultiPart extends AEBaseItem implements IPartItem, IItemG return o1.getValue().part.name().compareTo( o2.getValue().part.name() ); } } + } diff --git a/src/main/java/appeng/items/parts/PartType.java b/src/main/java/appeng/items/parts/PartType.java index 92235659..f01d6e8a 100644 --- a/src/main/java/appeng/items/parts/PartType.java +++ b/src/main/java/appeng/items/parts/PartType.java @@ -31,9 +31,9 @@ import appeng.integration.IntegrationType; import appeng.parts.automation.PartAnnihilationPlane; import appeng.parts.automation.PartExportBus; import appeng.parts.automation.PartFormationPlane; +import appeng.parts.automation.PartIdentityAnnihilationPlane; import appeng.parts.automation.PartImportBus; import appeng.parts.automation.PartLevelEmitter; -import appeng.parts.automation.PartIdentityAnnihilationPlane; import appeng.parts.misc.PartCableAnchor; import appeng.parts.misc.PartInterface; import appeng.parts.misc.PartInvertedToggleBus; @@ -44,12 +44,9 @@ import appeng.parts.networking.PartCableGlass; import appeng.parts.networking.PartCableSmart; import appeng.parts.networking.PartDenseCable; import appeng.parts.networking.PartQuartzFiber; -import appeng.parts.p2p.PartP2PIC2Power; import appeng.parts.p2p.PartP2PItems; import appeng.parts.p2p.PartP2PLight; import appeng.parts.p2p.PartP2PLiquids; -import appeng.parts.p2p.PartP2POpenComputers; -import appeng.parts.p2p.PartP2PRFPower; import appeng.parts.p2p.PartP2PRedstone; import appeng.parts.p2p.PartP2PTunnelME; import appeng.parts.reporting.PartConversionMonitor; @@ -151,13 +148,13 @@ public enum PartType P2PTunnelLiquids( 463, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelLiquids ), EnumSet.noneOf( IntegrationType.class ), PartP2PLiquids.class, GuiText.FluidTunnel ), - P2PTunnelEU( 465, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelEU ), EnumSet.of( IntegrationType.IC2 ), PartP2PIC2Power.class, GuiText.EUTunnel ), + //P2PTunnelEU( 465, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelEU ), EnumSet.of( IntegrationType.IC2 ), PartP2PIC2Power.class, GuiText.EUTunnel ), - P2PTunnelRF( 466, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelRF ), EnumSet.of( IntegrationType.RF ), PartP2PRFPower.class, GuiText.RFTunnel ), + //P2PTunnelRF( 466, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelRF ), EnumSet.of( IntegrationType.RF ), PartP2PRFPower.class, GuiText.RFTunnel ), P2PTunnelLight( 467, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelLight ), EnumSet.noneOf( IntegrationType.class ), PartP2PLight.class, GuiText.LightTunnel ), - P2PTunnelOpenComputers( 468, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelOpenComputers ), EnumSet.of( IntegrationType.OpenComputers ), PartP2POpenComputers.class, GuiText.OCTunnel ), + //P2PTunnelOpenComputers( 468, EnumSet.of( AEFeature.P2PTunnel, AEFeature.P2PTunnelOpenComputers ), EnumSet.of( IntegrationType.OpenComputers ), PartP2POpenComputers.class, GuiText.OCTunnel ), InterfaceTerminal( 480, EnumSet.of( AEFeature.InterfaceTerminal ), EnumSet.noneOf( IntegrationType.class ), PartInterfaceTerminal.class ); diff --git a/src/main/java/appeng/items/storage/ItemBasicStorageCell.java b/src/main/java/appeng/items/storage/ItemBasicStorageCell.java index acfeef61..df0cc6a1 100644 --- a/src/main/java/appeng/items/storage/ItemBasicStorageCell.java +++ b/src/main/java/appeng/items/storage/ItemBasicStorageCell.java @@ -23,15 +23,13 @@ import java.util.EnumSet; import java.util.List; import java.util.Set; -import com.google.common.base.Optional; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.config.IncludeExclude; @@ -55,6 +53,8 @@ import appeng.items.materials.MaterialType; import appeng.util.InventoryAdaptor; import appeng.util.Platform; +import com.google.common.base.Optional; + public final class ItemBasicStorageCell extends AEBaseItem implements IStorageCell, IItemGroup { @@ -241,7 +241,7 @@ public final class ItemBasicStorageCell extends AEBaseItem implements IStorageCe IMEInventoryHandler inv = AEApi.instance().registries().cell().getCellInventory( stack, null, StorageChannel.ITEMS ); if( inv != null && playerInventory.getCurrentItem() == stack ) { - InventoryAdaptor ia = InventoryAdaptor.getAdaptor( player, ForgeDirection.UNKNOWN ); + InventoryAdaptor ia = InventoryAdaptor.getAdaptor( player, EnumFacing.UP ); IItemList list = inv.getAvailableItems( StorageChannel.ITEMS.createList() ); if( list.isEmpty() && ia != null ) { @@ -289,7 +289,15 @@ public final class ItemBasicStorageCell extends AEBaseItem implements IStorageCe } @Override - public boolean onItemUseFirst( ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { return this.disassembleDrive( stack, world, player ); } diff --git a/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java b/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java index 7f1eb4a1..44758a71 100644 --- a/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java +++ b/src/main/java/appeng/items/storage/ItemCreativeStorageCell.java @@ -23,7 +23,6 @@ import java.util.EnumSet; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.config.FuzzyMode; import appeng.api.storage.ICellWorkbenchItem; import appeng.core.features.AEFeature; diff --git a/src/main/java/appeng/items/storage/ItemSpatialStorageCell.java b/src/main/java/appeng/items/storage/ItemSpatialStorageCell.java index 2fb53457..540e83a8 100644 --- a/src/main/java/appeng/items/storage/ItemSpatialStorageCell.java +++ b/src/main/java/appeng/items/storage/ItemSpatialStorageCell.java @@ -22,14 +22,11 @@ package appeng.items.storage; import java.util.EnumSet; import java.util.List; -import com.google.common.base.Optional; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraftforge.common.DimensionManager; - import appeng.api.implementations.TransitionResult; import appeng.api.implementations.items.ISpatialStorageCell; import appeng.api.util.WorldCoord; @@ -41,6 +38,8 @@ import appeng.spatial.StorageHelper; import appeng.spatial.StorageWorldProvider; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ItemSpatialStorageCell extends AEBaseItem implements ISpatialStorageCell { diff --git a/src/main/java/appeng/items/storage/ItemViewCell.java b/src/main/java/appeng/items/storage/ItemViewCell.java index 3c5e13dc..f4fe94f6 100644 --- a/src/main/java/appeng/items/storage/ItemViewCell.java +++ b/src/main/java/appeng/items/storage/ItemViewCell.java @@ -23,7 +23,6 @@ import java.util.EnumSet; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.config.Upgrades; diff --git a/src/main/java/appeng/items/tools/ToolBiometricCard.java b/src/main/java/appeng/items/tools/ToolBiometricCard.java index 09051405..258b7093 100644 --- a/src/main/java/appeng/items/tools/ToolBiometricCard.java +++ b/src/main/java/appeng/items/tools/ToolBiometricCard.java @@ -22,8 +22,6 @@ package appeng.items.tools; import java.util.EnumSet; import java.util.List; -import com.mojang.authlib.GameProfile; - import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -31,7 +29,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTUtil; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; - import appeng.api.config.SecurityPermissions; import appeng.api.features.IPlayerRegistry; import appeng.api.implementations.items.IBiometricCard; @@ -42,6 +39,8 @@ import appeng.core.localization.GuiText; import appeng.items.AEBaseItem; import appeng.util.Platform; +import com.mojang.authlib.GameProfile; + public class ToolBiometricCard extends AEBaseItem implements IBiometricCard { @@ -114,7 +113,7 @@ public class ToolBiometricCard extends AEBaseItem implements IBiometricCard if( profile != null ) { NBTTagCompound pNBT = new NBTTagCompound(); - NBTUtil.func_152460_a( pNBT, profile ); + NBTUtil.writeGameProfile( pNBT, profile ); tag.setTag( "profile", pNBT ); } else @@ -129,7 +128,7 @@ public class ToolBiometricCard extends AEBaseItem implements IBiometricCard NBTTagCompound tag = Platform.openNbtData( is ); if( tag.hasKey( "profile" ) ) { - return NBTUtil.func_152459_a( tag.getCompoundTag( "profile" ) ); + return NBTUtil.readGameProfileFromNBT( tag.getCompoundTag( "profile" ) ); } return null; } diff --git a/src/main/java/appeng/items/tools/ToolMemoryCard.java b/src/main/java/appeng/items/tools/ToolMemoryCard.java index 91d82dbc..534943c1 100644 --- a/src/main/java/appeng/items/tools/ToolMemoryCard.java +++ b/src/main/java/appeng/items/tools/ToolMemoryCard.java @@ -25,9 +25,10 @@ import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.StatCollector; import net.minecraft.world.World; - import appeng.api.implementations.items.IMemoryCard; import appeng.api.implementations.items.MemoryCardMessages; import appeng.core.features.AEFeature; @@ -138,7 +139,15 @@ public class ToolMemoryCard extends AEBaseItem implements IMemoryCard } @Override - public boolean onItemUse( ItemStack is, EntityPlayer player, World w, int x, int y, int z, int side, float hx, float hy, float hz ) + public boolean onItemUse( + ItemStack is, + EntityPlayer player, + World w, + BlockPos pos, + EnumFacing side, + float hx, + float hy, + float hz ) { if( player.isSneaking() && !w.isRemote ) { @@ -149,12 +158,15 @@ public class ToolMemoryCard extends AEBaseItem implements IMemoryCard } else { - return super.onItemUse( is, player, w, x, y, z, side, hx, hy, hz ); + return super.onItemUse( is, player, w, pos, side, hx, hy, hz ); } } - + @Override - public boolean doesSneakBypassUse( World world, int x, int y, int z, EntityPlayer player ) + public boolean doesSneakBypassUse( + World world, + BlockPos pos, + EntityPlayer player ) { return true; } diff --git a/src/main/java/appeng/items/tools/ToolNetworkTool.java b/src/main/java/appeng/items/tools/ToolNetworkTool.java index 416af02c..b3b4e086 100644 --- a/src/main/java/appeng/items/tools/ToolNetworkTool.java +++ b/src/main/java/appeng/items/tools/ToolNetworkTool.java @@ -21,25 +21,22 @@ package appeng.items.tools; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import buildcraft.api.tools.IToolWrench; - import appeng.api.implementations.guiobjects.IGuiItem; import appeng.api.implementations.guiobjects.IGuiItemObject; import appeng.api.implementations.items.IAEWrench; import appeng.api.networking.IGridHost; import appeng.api.parts.IPartHost; import appeng.api.parts.SelectedPart; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.INetworkToolAgent; import appeng.client.ClientHelper; @@ -53,9 +50,11 @@ import appeng.items.contents.NetworkToolViewer; import appeng.transformer.annotations.Integration.Interface; import appeng.util.Platform; +import com.google.common.base.Optional; + @Interface( iface = "buildcraft.api.tools.IToolWrench", iname = "BC" ) -public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench, IToolWrench +public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench // TODO: BC Wrench { public ToolNetworkTool() @@ -68,9 +67,9 @@ public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench, } @Override - public IGuiItemObject getGuiObject( ItemStack is, World world, int x, int y, int z ) + public IGuiItemObject getGuiObject( ItemStack is, World world, BlockPos pos ) { - TileEntity te = world.getTileEntity( x, y, z ); + TileEntity te = world.getTileEntity( pos ); return new NetworkToolViewer( is, (IGridHost) ( te instanceof IGridHost ? te : null ) ); } @@ -83,29 +82,33 @@ public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench, if( mop == null ) { - this.onItemUseFirst( it, p, w, 0, 0, 0, -1, 0, 0, 0 ); + this.onItemUseFirst( it, p, w, new BlockPos(0,0,0), null, 0,0,0 ); // eh? } else { - int i = mop.blockX; - int j = mop.blockY; - int k = mop.blockZ; - - if( w.getBlock( i, j, k ).isAir( w, i, j, k ) ) + if( w.getBlockState( mop.getBlockPos() ).getBlock().isAir( w, mop.getBlockPos() ) ) { - this.onItemUseFirst( it, p, w, 0, 0, 0, -1, 0, 0, 0 ); + this.onItemUseFirst( it, p, w, new BlockPos(0,0,0), null, 0,0,0 ); // eh? } } } return it; } - + @Override - public boolean onItemUseFirst( ItemStack is, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - MovingObjectPosition mop = new MovingObjectPosition( x, y, z, side, Vec3.createVectorHelper( hitX, hitY, hitZ ) ); - TileEntity te = world.getTileEntity( x, y, z ); + MovingObjectPosition mop = new MovingObjectPosition( new Vec3( hitX, hitY, hitZ ), side, pos ); + TileEntity te = world.getTileEntity( pos ); if( te instanceof IPartHost ) { SelectedPart part = ( (IPartHost) te ).selectPart( mop.hitVec ); @@ -124,35 +127,38 @@ public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench, if( Platform.isClient() ) { - NetworkHandler.instance.sendToServer( new PacketClick( x, y, z, side, hitX, hitY, hitZ ) ); + NetworkHandler.instance.sendToServer( new PacketClick( pos, side, hitX, hitY, hitZ ) ); } return true; } @Override - public boolean doesSneakBypassUse( World world, int x, int y, int z, EntityPlayer player ) + public boolean doesSneakBypassUse( + World world, + BlockPos pos, + EntityPlayer player ) { return true; } - public boolean serverSideToolLogic( ItemStack is, EntityPlayer p, World w, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean serverSideToolLogic( ItemStack is, EntityPlayer p, World w, BlockPos pos, EnumFacing side, float hitX, float hitY, float hitZ ) { - if( side >= 0 ) + if( side != null ) { - if( !Platform.hasPermissions( new DimensionalCoord( w, x, y, z ), p ) ) + if( !Platform.hasPermissions( new DimensionalCoord( w, pos ), p ) ) { return false; } - Block b = w.getBlock( x, y, z ); + Block b = w.getBlockState( pos ).getBlock(); if( b != null && !p.isSneaking() ) { - TileEntity te = w.getTileEntity( x, y, z ); + TileEntity te = w.getTileEntity( pos ); if( !( te instanceof IGridHost ) ) { - if( b.rotateBlock( w, x, y, z, ForgeDirection.getOrientation( side ) ) ) + if( b.rotateBlock( w, pos, side ) ) { - b.onNeighborBlockChange( w, x, y, z, Platform.AIR_BLOCK ); + b.onNeighborBlockChange( w, pos, Platform.AIR_BLOCK.getDefaultState(), Platform.AIR_BLOCK ); p.swingItem(); return !w.isRemote; } @@ -166,47 +172,41 @@ public class ToolNetworkTool extends AEBaseItem implements IGuiItem, IAEWrench, return true; } - TileEntity te = w.getTileEntity( x, y, z ); + TileEntity te = w.getTileEntity( pos ); if( te instanceof IGridHost ) { - Platform.openGUI( p, te, ForgeDirection.getOrientation( side ), GuiBridge.GUI_NETWORK_STATUS ); + Platform.openGUI( p, te, AEPartLocation.fromFacing( side ), GuiBridge.GUI_NETWORK_STATUS ); } else { - Platform.openGUI( p, null, ForgeDirection.UNKNOWN, GuiBridge.GUI_NETWORK_TOOL ); + Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_NETWORK_TOOL ); } return true; } else { - b.onBlockActivated( w, x, y, z, p, side, hitX, hitY, hitZ ); + b.onBlockActivated( w, pos, w.getBlockState( pos ), p, side, hitX, hitY, hitZ ); } } else { - Platform.openGUI( p, null, ForgeDirection.UNKNOWN, GuiBridge.GUI_NETWORK_TOOL ); + Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_NETWORK_TOOL ); } return false; } @Override - public boolean canWrench( ItemStack is, EntityPlayer player, int x, int y, int z ) + public boolean canWrench( + ItemStack wrench, + EntityPlayer player, + BlockPos pos ) { return true; } - @Override - public boolean canWrench( EntityPlayer player, int x, int y, int z ) - { - return true; - } - - @Override - public void wrenchUsed( EntityPlayer player, int x, int y, int z ) - { - player.swingItem(); - } + // TODO: BC WRENCH INTEGRATION + } diff --git a/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java b/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java index eb1a20b4..419c28cb 100644 --- a/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java +++ b/src/main/java/appeng/items/tools/powered/ToolChargedStaff.java @@ -21,12 +21,9 @@ package appeng.items.tools.powered; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; - import appeng.core.AEConfig; import appeng.core.features.AEFeature; import appeng.core.sync.packets.PacketLightning; @@ -34,6 +31,8 @@ import appeng.items.tools.powered.powersink.AEBasePoweredItem; import appeng.server.ServerHelper; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolChargedStaff extends AEBasePoweredItem { @@ -54,9 +53,9 @@ public class ToolChargedStaff extends AEBasePoweredItem { for( int x = 0; x < 2; x++ ) { - float dx = (float) ( Platform.getRandomFloat() * target.width + target.boundingBox.minX ); - float dy = (float) ( Platform.getRandomFloat() * target.height + target.boundingBox.minY ); - float dz = (float) ( Platform.getRandomFloat() * target.width + target.boundingBox.minZ ); + float dx = (float) ( Platform.getRandomFloat() * target.width + target.getBoundingBox().minX ); + float dy = (float) ( Platform.getRandomFloat() * target.height + target.getBoundingBox().minY ); + float dz = (float) ( Platform.getRandomFloat() * target.width + target.getBoundingBox().minZ ); ServerHelper.proxy.sendToAllNearExcept( null, dx, dy, dz, 32.0, target.worldObj, new PacketLightning( dx, dy, dz ) ); } } diff --git a/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java b/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java index f6414c1e..656d9c09 100644 --- a/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java +++ b/src/main/java/appeng/items/tools/powered/ToolColorApplicator.java @@ -28,22 +28,25 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.google.common.base.Optional; - import net.minecraft.block.Block; +import net.minecraft.block.BlockColored; import net.minecraft.block.BlockDispenser; +import net.minecraft.block.BlockStainedGlass; +import net.minecraft.block.BlockStainedGlassPane; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; +import net.minecraft.item.EnumDyeColor; import net.minecraft.item.ItemSnowball; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; @@ -78,6 +81,8 @@ import appeng.util.ItemSorters; import appeng.util.Platform; import appeng.util.item.AEItemStack; +import com.google.common.base.Optional; + public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCell, IItemGroup, IBlockTool, IMouseWheelItem { @@ -116,9 +121,17 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe } @Override - public boolean onItemUse( ItemStack is, EntityPlayer p, World w, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUse( + ItemStack is, + EntityPlayer p, + World w, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - Block blk = w.getBlock( x, y, z ); + Block blk = w.getBlockState( pos ).getBlock(); double powerPerUse = 100; ItemStack paintBall = this.getColor( is ); @@ -138,21 +151,20 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe paintBall = null; } - if( !Platform.hasPermissions( new DimensionalCoord( w, x, y, z ), p ) ) + if( !Platform.hasPermissions( new DimensionalCoord( w, pos ), p ) ) { return false; } if( paintBall != null && paintBall.getItem() instanceof ItemSnowball ) { - ForgeDirection orientation = ForgeDirection.getOrientation( side ); - TileEntity te = w.getTileEntity( x, y, z ); + TileEntity te = w.getTileEntity( pos ); // clean cables. if( te instanceof IColorableTile ) { if( this.getAECurrentPower( is ) > powerPerUse && ( (IColorableTile) te ).getColor() != AEColor.Transparent ) { - if( ( (IColorableTile) te ).recolourBlock( orientation, AEColor.Transparent, p ) ) + if( ( (IColorableTile) te ).recolourBlock( side, AEColor.Transparent, p ) ) { inv.extractItems( AEItemStack.create( paintBall ), Actionable.MODULATE, new BaseActionSource() ); this.extractAEPower( is, powerPerUse ); @@ -162,13 +174,13 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe } // clean paint balls.. - Block testBlk = w.getBlock( x + orientation.offsetX, y + orientation.offsetY, z + orientation.offsetZ ); - TileEntity painted = w.getTileEntity( x + orientation.offsetX, y + orientation.offsetY, z + orientation.offsetZ ); + Block testBlk = w.getBlockState( pos.offset( side ) ).getBlock(); + TileEntity painted = w.getTileEntity( pos.offset( side ) ); if( this.getAECurrentPower( is ) > powerPerUse && testBlk instanceof BlockPaint && painted instanceof TilePaint ) { inv.extractItems( AEItemStack.create( paintBall ), Actionable.MODULATE, new BaseActionSource() ); this.extractAEPower( is, powerPerUse ); - ( (TilePaint) painted ).cleanSide( orientation.getOpposite() ); + ( (TilePaint) painted ).cleanSide( side.getOpposite() ); return true; } } @@ -178,7 +190,7 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe if( color != null && this.getAECurrentPower( is ) > powerPerUse ) { - if( color != AEColor.Transparent && this.recolourBlock( blk, ForgeDirection.getOrientation( side ), w, x, y, z, ForgeDirection.getOrientation( side ), color, p ) ) + if( color != AEColor.Transparent && this.recolourBlock( blk, side, w, pos, side, color, p ) ) { inv.extractItems( AEItemStack.create( paintBall ), Actionable.MODULATE, new BaseActionSource() ); this.extractAEPower( is, powerPerUse ); @@ -352,69 +364,67 @@ public class ToolColorApplicator extends AEBasePoweredItem implements IStorageCe } } - private boolean recolourBlock( Block blk, ForgeDirection side, World w, int x, int y, int z, ForgeDirection orientation, AEColor newColor, EntityPlayer p ) + private boolean recolourBlock( Block blk, EnumFacing side, World w, BlockPos pos, EnumFacing orientation, AEColor newColor, EntityPlayer p ) { - if( blk == Blocks.carpet ) + IBlockState state = w.getBlockState( pos ); + + if( blk instanceof BlockColored ) { - int meta = w.getBlockMetadata( x, y, z ); - if( newColor.ordinal() == meta ) + EnumDyeColor color = ( EnumDyeColor ) state.getValue( BlockColored.COLOR ); + + if( newColor.dye == color ) { return false; } - return w.setBlock( x, y, z, Blocks.carpet, newColor.ordinal(), 3 ); + + return w.setBlockState( pos, state.withProperty( BlockColored.COLOR, newColor.dye ) ); } if( blk == Blocks.glass ) { - return w.setBlock( x, y, z, Blocks.stained_glass, newColor.ordinal(), 3 ); + return w.setBlockState( pos, Blocks.stained_glass.getDefaultState().withProperty( BlockStainedGlass.COLOR, newColor.dye) ); } if( blk == Blocks.stained_glass ) { - int meta = w.getBlockMetadata( x, y, z ); - if( newColor.ordinal() == meta ) + EnumDyeColor color = ( EnumDyeColor ) state.getValue( BlockStainedGlass.COLOR ); + + if( newColor.dye == color ) { return false; } - return w.setBlock( x, y, z, Blocks.stained_glass, newColor.ordinal(), 3 ); + + return w.setBlockState( pos, state.withProperty( BlockStainedGlass.COLOR, newColor.dye ) ); } if( blk == Blocks.glass_pane ) { - return w.setBlock( x, y, z, Blocks.stained_glass_pane, newColor.ordinal(), 3 ); + return w.setBlockState( pos, Blocks.stained_glass_pane.getDefaultState().withProperty( BlockStainedGlassPane.COLOR, newColor.dye) ); } if( blk == Blocks.stained_glass_pane ) { - int meta = w.getBlockMetadata( x, y, z ); - if( newColor.ordinal() == meta ) + EnumDyeColor color = ( EnumDyeColor ) state.getValue( BlockStainedGlassPane.COLOR ); + + if( newColor.dye == color ) { return false; } - return w.setBlock( x, y, z, Blocks.stained_glass_pane, newColor.ordinal(), 3 ); + + return w.setBlockState( pos, state.withProperty( BlockStainedGlassPane.COLOR, newColor.dye ) ); } if( blk == Blocks.hardened_clay ) { - return w.setBlock( x, y, z, Blocks.stained_hardened_clay, newColor.ordinal(), 3 ); - } - - if( blk == Blocks.stained_hardened_clay ) - { - int meta = w.getBlockMetadata( x, y, z ); - if( newColor.ordinal() == meta ) - { - return false; - } - return w.setBlock( x, y, z, Blocks.stained_hardened_clay, newColor.ordinal(), 3 ); + return w.setBlockState( pos, Blocks.stained_hardened_clay.getDefaultState().withProperty( BlockColored.COLOR, newColor.dye ) ); } if( blk instanceof BlockCableBus ) { - return ( (BlockCableBus) blk ).recolourBlock( w, x, y, z, side, newColor.ordinal(), p ); + return ( (BlockCableBus) blk ).recolorBlock( w, pos, side, newColor.dye, p ); } - return blk.recolourBlock( w, x, y, z, side, newColor.ordinal() ); + return blk.recolorBlock( w, pos, side, newColor.dye ); } public void cycleColors( ItemStack is, ItemStack paintBall, int i ) diff --git a/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java b/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java index 42340dd8..933a4098 100644 --- a/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java +++ b/src/main/java/appeng/items/tools/powered/ToolEntropyManipulator.java @@ -25,12 +25,11 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.google.common.base.Optional; - import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.block.BlockTNT; import net.minecraft.block.material.Material; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; @@ -38,12 +37,11 @@ import net.minecraft.init.Items; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition.MovingObjectType; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; -import net.minecraftforge.oredict.OreDictionary; - import appeng.api.util.DimensionalCoord; import appeng.block.misc.BlockTinyTNT; import appeng.core.AEConfig; @@ -54,6 +52,8 @@ import appeng.items.tools.powered.powersink.AEBasePoweredItem; import appeng.util.InWorldToolOperationResult; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockTool { @@ -69,21 +69,21 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT this.heatUp = new HashMap(); this.coolDown = new HashMap(); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.stone, 0 ), new InWorldToolOperationResult( new ItemStack( Blocks.cobblestone ) ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.stonebrick, 0 ), new InWorldToolOperationResult( new ItemStack( Blocks.stonebrick, 1, 2 ) ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.lava, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult( new ItemStack( Blocks.obsidian ) ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.flowing_lava, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult( new ItemStack( Blocks.obsidian ) ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.grass, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult( new ItemStack( Blocks.dirt ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.stone.getDefaultState() ), new InWorldToolOperationResult( new ItemStack( Blocks.cobblestone ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.stonebrick.getDefaultState() ), new InWorldToolOperationResult( new ItemStack( Blocks.stonebrick, 1, 2 ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.lava, true ), new InWorldToolOperationResult( new ItemStack( Blocks.obsidian ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.flowing_lava, true ), new InWorldToolOperationResult( new ItemStack( Blocks.obsidian ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.grass, true ), new InWorldToolOperationResult( new ItemStack( Blocks.dirt ) ) ); List snowBalls = new ArrayList(); snowBalls.add( new ItemStack( Items.snowball ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.flowing_water, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult( null, snowBalls ) ); - this.coolDown.put( new InWorldToolOperationIngredient( Blocks.water, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult( new ItemStack( Blocks.ice ) ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.flowing_water, true ), new InWorldToolOperationResult( null, snowBalls ) ); + this.coolDown.put( new InWorldToolOperationIngredient( Blocks.water, true ), new InWorldToolOperationResult( new ItemStack( Blocks.ice ) ) ); - this.heatUp.put( new InWorldToolOperationIngredient( Blocks.ice, 0 ), new InWorldToolOperationResult( new ItemStack( Blocks.water ) ) ); - this.heatUp.put( new InWorldToolOperationIngredient( Blocks.flowing_water, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult() ); - this.heatUp.put( new InWorldToolOperationIngredient( Blocks.water, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult() ); - this.heatUp.put( new InWorldToolOperationIngredient( Blocks.snow, OreDictionary.WILDCARD_VALUE ), new InWorldToolOperationResult( new ItemStack( Blocks.flowing_water ) ) ); + this.heatUp.put( new InWorldToolOperationIngredient( Blocks.ice.getDefaultState() ), new InWorldToolOperationResult( new ItemStack( Blocks.water ) ) ); + this.heatUp.put( new InWorldToolOperationIngredient( Blocks.flowing_water, true ), new InWorldToolOperationResult() ); + this.heatUp.put( new InWorldToolOperationIngredient( Blocks.water, true ), new InWorldToolOperationResult() ); + this.heatUp.put( new InWorldToolOperationIngredient( Blocks.snow, true ), new InWorldToolOperationResult( new ItemStack( Blocks.flowing_water ) ) ); } @Override @@ -95,19 +95,27 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT private static class InWorldToolOperationIngredient { - private final Block blockID; - private final int metadata; + private final IBlockState state; + private boolean blockOnly; - public InWorldToolOperationIngredient( Block blockID, int metadata ) + public InWorldToolOperationIngredient( IBlockState state ) { - this.blockID = blockID; - this.metadata = metadata; + this.state = state; + blockOnly = false; + } + + public InWorldToolOperationIngredient( + Block blk, + boolean b ) + { + state = blk.getDefaultState(); + blockOnly = b; } @Override public int hashCode() { - return this.blockID.hashCode() ^ this.metadata; + return state.getBlock().hashCode(); } @Override @@ -122,77 +130,79 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT return false; } InWorldToolOperationIngredient other = (InWorldToolOperationIngredient) obj; - return this.blockID == other.blockID && this.metadata == other.metadata; + return state == other.state && ( blockOnly && state.getBlock() == other.state.getBlock() ); } } - private void heat( Block blockID, int metadata, World w, int x, int y, int z ) + private void heat( IBlockState state, World w, BlockPos pos ) { - InWorldToolOperationResult r = this.heatUp.get( new InWorldToolOperationIngredient( blockID, metadata ) ); + InWorldToolOperationResult r = this.heatUp.get( new InWorldToolOperationIngredient( state ) ); if( r == null ) { - r = this.heatUp.get( new InWorldToolOperationIngredient( blockID, OreDictionary.WILDCARD_VALUE ) ); + r = this.heatUp.get( new InWorldToolOperationIngredient( state.getBlock(), true ) ); } if( r.BlockItem != null ) { - w.setBlock( x, y, z, Block.getBlockFromItem( r.BlockItem.getItem() ), r.BlockItem.getItemDamage(), 3 ); + Block blk = Block.getBlockFromItem( r.BlockItem.getItem() ); + w.setBlockState( pos, blk.getStateFromMeta( r.BlockItem.getItemDamage() ), 3 ); } else { - w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 ); + w.setBlockToAir( pos ); } if( r.Drops != null ) { - Platform.spawnDrops( w, x, y, z, r.Drops ); + Platform.spawnDrops( w, pos, r.Drops ); } } - private boolean canHeat( Block blockID, int metadata ) + private boolean canHeat( IBlockState state ) { - InWorldToolOperationResult r = this.heatUp.get( new InWorldToolOperationIngredient( blockID, metadata ) ); + InWorldToolOperationResult r = this.heatUp.get( new InWorldToolOperationIngredient( state ) ); if( r == null ) { - r = this.heatUp.get( new InWorldToolOperationIngredient( blockID, OreDictionary.WILDCARD_VALUE ) ); + r = this.heatUp.get( new InWorldToolOperationIngredient( state.getBlock(), true ) ); } return r != null; } - private void cool( Block blockID, int metadata, World w, int x, int y, int z ) + private void cool( IBlockState state, World w, BlockPos pos ) { - InWorldToolOperationResult r = this.coolDown.get( new InWorldToolOperationIngredient( blockID, metadata ) ); + InWorldToolOperationResult r = this.coolDown.get( new InWorldToolOperationIngredient( state ) ); if( r == null ) { - r = this.coolDown.get( new InWorldToolOperationIngredient( blockID, OreDictionary.WILDCARD_VALUE ) ); + r = this.coolDown.get( new InWorldToolOperationIngredient( state.getBlock(), true ) ); } if( r.BlockItem != null ) { - w.setBlock( x, y, z, Block.getBlockFromItem( r.BlockItem.getItem() ), r.BlockItem.getItemDamage(), 3 ); + Block blk = Block.getBlockFromItem( r.BlockItem.getItem() ); + w.setBlockState( pos, blk.getStateFromMeta( r.BlockItem.getItemDamage() ), 3 ); } else { - w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 ); + w.setBlockToAir( pos ); } if( r.Drops != null ) { - Platform.spawnDrops( w, x, y, z, r.Drops ); + Platform.spawnDrops( w, pos, r.Drops ); } } - private boolean canCool( Block blockID, int metadata ) + private boolean canCool( IBlockState state ) { - InWorldToolOperationResult r = this.coolDown.get( new InWorldToolOperationIngredient( blockID, metadata ) ); + InWorldToolOperationResult r = this.coolDown.get( new InWorldToolOperationIngredient( state ) ); if( r == null ) { - r = this.coolDown.get( new InWorldToolOperationIngredient( blockID, OreDictionary.WILDCARD_VALUE ) ); + r = this.coolDown.get( new InWorldToolOperationIngredient( state.getBlock(), true ) ); } return r != null; @@ -223,15 +233,11 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT { if( target.typeOfHit == MovingObjectType.BLOCK ) { - int x = target.blockX; - int y = target.blockY; - int z = target.blockZ; - - if( w.getBlock( x, y, z ).getMaterial() == Material.lava || w.getBlock( x, y, z ).getMaterial() == Material.water ) + if( w.getBlockState( target.getBlockPos() ).getBlock().getMaterial() == Material.lava || w.getBlockState( target.getBlockPos() ).getBlock().getMaterial() == Material.water ) { - if( Platform.hasPermissions( new DimensionalCoord( w, x, y, z ), p ) ) + if( Platform.hasPermissions( new DimensionalCoord( w, target.getBlockPos() ), p ) ) { - this.onItemUse( item, p, w, x, y, z, 0, 0.0F, 0.0F, 0.0F ); + this.onItemUse( item, p, w, target.getBlockPos(), EnumFacing.UP, 0.0F, 0.0F, 0.0F ); } } } @@ -239,26 +245,34 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT return item; } - + @Override - public boolean onItemUse( ItemStack item, EntityPlayer p, World w, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUse( + ItemStack item, + EntityPlayer p, + World w, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( this.getAECurrentPower( item ) > 1600 ) { - if( !p.canPlayerEdit( x, y, z, side, item ) ) + if( !p.canPlayerEdit( pos, side, item ) ) { return false; } - Block blockID = w.getBlock( x, y, z ); - int metadata = w.getBlockMetadata( x, y, z ); + IBlockState state = w.getBlockState( pos ); + Block blockID = state.getBlock(); if( p.isSneaking() ) { - if( this.canCool( blockID, metadata ) ) + if( this.canCool( state ) ) { this.extractAEPower( item, 1600 ); - this.cool( blockID, metadata, w, x, y, z ); + this.cool( state, w, pos ); return true; } } @@ -266,39 +280,39 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT { if( blockID instanceof BlockTNT ) { - w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 ); - ( (BlockTNT) blockID ).func_150114_a( w, x, y, z, 1, p ); + w.setBlockToAir( pos ); + ( (BlockTNT) blockID ).explode( w, pos, state, p ); return true; } if( blockID instanceof BlockTinyTNT ) { - w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 ); - ( (BlockTinyTNT) blockID ).startFuse( w, x, y, z, p ); + w.setBlockToAir( pos ); + ( (BlockTinyTNT) blockID ).startFuse( w, pos, p ); return true; } - if( this.canHeat( blockID, metadata ) ) + if( this.canHeat( state ) ) { this.extractAEPower( item, 1600 ); - this.heat( blockID, metadata, w, x, y, z ); + this.heat( state, w, pos ); return true; } - ItemStack[] stack = Platform.getBlockDrops( w, x, y, z ); + ItemStack[] stack = Platform.getBlockDrops( w, pos ); List out = new ArrayList(); boolean hasFurnaceable = false; boolean canFurnaceable = true; for( ItemStack i : stack ) { - ItemStack result = FurnaceRecipes.smelting().getSmeltingResult( i ); + ItemStack result = FurnaceRecipes.instance().getSmeltingResult( i ); if( result != null ) { if( result.getItem() instanceof ItemBlock ) { - if( Block.getBlockFromItem( result.getItem() ) == blockID && result.getItem().getDamage( result ) == metadata ) + if( Block.getBlockFromItem( result.getItem() ) == blockID && result.getItem().getDamage( result ) == blockID.getMetaFromState( state ) ) { canFurnaceable = false; } @@ -317,41 +331,39 @@ public class ToolEntropyManipulator extends AEBasePoweredItem implements IBlockT { this.extractAEPower( item, 1600 ); InWorldToolOperationResult or = InWorldToolOperationResult.getBlockOperationResult( out.toArray( new ItemStack[out.size()] ) ); - w.playSoundEffect( x + 0.5D, y + 0.5D, z + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F ); + w.playSoundEffect( pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F ); if( or.BlockItem == null ) { - w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 ); + w.setBlockState( pos, Platform.AIR_BLOCK.getDefaultState(), 3 ); } else { - w.setBlock( x, y, z, Block.getBlockFromItem( or.BlockItem.getItem() ), or.BlockItem.getItemDamage(), 3 ); + Block blk = Block.getBlockFromItem( or.BlockItem.getItem() ); + w.setBlockState( pos, blk.getStateFromMeta( or.BlockItem.getItemDamage() ), 3 ); } if( or.Drops != null ) { - Platform.spawnDrops( w, x, y, z, or.Drops ); + Platform.spawnDrops( w, pos, or.Drops ); } return true; } else { - ForgeDirection dir = ForgeDirection.getOrientation( side ); - x += dir.offsetX; - y += dir.offsetY; - z += dir.offsetZ; + BlockPos offsetPos = pos.offset( side ); - if( !p.canPlayerEdit( x, y, z, side, item ) ) + if( !p.canPlayerEdit( offsetPos, side, item ) ) { return false; } - if( w.isAirBlock( x, y, z ) ) + if( w.isAirBlock( offsetPos ) ) { this.extractAEPower( item, 1600 ); - w.playSoundEffect( x + 0.5D, y + 0.5D, z + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F ); - w.setBlock( x, y, z, Blocks.fire ); + w.playSoundEffect( offsetPos.getX() + 0.5D, offsetPos.getY() + 0.5D, offsetPos.getZ() + 0.5D, "fire.ignite", 1.0F, itemRand.nextFloat() * 0.4F + 0.8F ); + w.setBlockState( offsetPos, Blocks.fire.getDefaultState() ); } return true; diff --git a/src/main/java/appeng/items/tools/powered/ToolMassCannon.java b/src/main/java/appeng/items/tools/powered/ToolMassCannon.java index f198937c..c99c3198 100644 --- a/src/main/java/appeng/items/tools/powered/ToolMassCannon.java +++ b/src/main/java/appeng/items/tools/powered/ToolMassCannon.java @@ -22,8 +22,6 @@ package appeng.items.tools.powered; import java.util.EnumSet; import java.util.List; -import com.google.common.base.Optional; - import net.minecraft.block.Block; import net.minecraft.block.BlockDispenser; import net.minecraft.entity.Entity; @@ -35,14 +33,14 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import net.minecraft.util.DamageSource; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition.MovingObjectType; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; @@ -75,8 +73,11 @@ import appeng.items.misc.ItemPaintBall; import appeng.items.tools.powered.powersink.AEBasePoweredItem; import appeng.me.storage.CellInventoryHandler; import appeng.tile.misc.TilePaint; +import appeng.util.LookDirection; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell { @@ -155,26 +156,18 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell { return item; } + + LookDirection dir = Platform.getPlayerRay( p, p.getEyeHeight() ); - float f = 1.0F; - float f1 = p.prevRotationPitch + ( p.rotationPitch - p.prevRotationPitch ) * f; - float f2 = p.prevRotationYaw + ( p.rotationYaw - p.prevRotationYaw ) * f; - double d0 = p.prevPosX + ( p.posX - p.prevPosX ) * f; - double d1 = p.prevPosY + ( p.posY - p.prevPosY ) * f + 1.62D - p.yOffset; - double d2 = p.prevPosZ + ( p.posZ - p.prevPosZ ) * f; - Vec3 vec3 = Vec3.createVectorHelper( d0, d1, d2 ); - float f3 = MathHelper.cos( -f2 * 0.017453292F - (float) Math.PI ); - float f4 = MathHelper.sin( -f2 * 0.017453292F - (float) Math.PI ); - float f5 = -MathHelper.cos( -f1 * 0.017453292F ); - float f6 = MathHelper.sin( -f1 * 0.017453292F ); - float f7 = f4 * f5; - float f8 = f3 * f5; - double d3 = 32.0D; - - Vec3 vec31 = vec3.addVector( f7 * d3, f6 * d3, f8 * d3 ); - Vec3 direction = Vec3.createVectorHelper( f7 * d3, f6 * d3, f8 * d3 ); + Vec3 vec3 = dir.a; + Vec3 vec31 = dir.b; + Vec3 direction = vec31.subtract( vec3 ); direction.normalize(); + double d0 = vec3.xCoord; + double d1 = vec3.yCoord; + double d2 = vec3.zCoord; + float penetration = AEApi.instance().registries().matterCannon().getPenetration( ammo ); // 196.96655f; if( penetration <= 0 ) { @@ -206,7 +199,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell private void shootPaintBalls( ItemStack type, World w, EntityPlayer p, Vec3 vec3, Vec3 vec31, Vec3 direction, double d0, double d1, double d2 ) { - AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( Math.min( vec3.xCoord, vec31.xCoord ), Math.min( vec3.yCoord, vec31.yCoord ), Math.min( vec3.zCoord, vec31.zCoord ), Math.max( vec3.xCoord, vec31.xCoord ), Math.max( vec3.yCoord, vec31.yCoord ), Math.max( vec3.zCoord, vec31.zCoord ) ).expand( 16, 16, 16 ); + AxisAlignedBB bb = AxisAlignedBB.fromBounds( Math.min( vec3.xCoord, vec31.xCoord ), Math.min( vec3.yCoord, vec31.yCoord ), Math.min( vec3.zCoord, vec31.zCoord ), Math.max( vec3.xCoord, vec31.xCoord ), Math.max( vec3.yCoord, vec31.yCoord ), Math.max( vec3.zCoord, vec31.zCoord ) ).expand( 16, 16, 16 ); Entity entity = null; List list = w.getEntitiesWithinAABBExcludingEntity( p, bb ); @@ -229,7 +222,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell float f1 = 0.3F; - AxisAlignedBB boundingBox = entity1.boundingBox.expand( f1, f1, f1 ); + AxisAlignedBB boundingBox = entity1.getBoundingBox().expand( f1, f1, f1 ); MovingObjectPosition movingObjectPosition = boundingBox.calculateIntercept( vec3, vec31 ); if( movingObjectPosition != null ) @@ -248,7 +241,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell MovingObjectPosition pos = w.rayTraceBlocks( vec3, vec31, false ); - Vec3 vec = Vec3.createVectorHelper( d0, d1, d2 ); + Vec3 vec = new Vec3( d0, d1, d2 ); if( entity != null && pos != null && pos.hitVec.squareDistanceTo( vec ) > closest ) { pos = new MovingObjectPosition( entity ); @@ -283,7 +276,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell if( pos.entityHit instanceof EntitySheep ) { EntitySheep sh = (EntitySheep) pos.entityHit; - sh.setFleeceColor( col.ordinal() ); + sh.setFleeceColor( col.dye ); } pos.entityHit.attackEntityFrom( DamageSource.causePlayerDamage( p ), 0 ); @@ -291,33 +284,28 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell } else if( pos.typeOfHit == MovingObjectType.BLOCK ) { - ForgeDirection side = ForgeDirection.getOrientation( pos.sideHit ); + EnumFacing side = pos.sideHit; + BlockPos hitPos = pos.getBlockPos().offset( side ); - int x = pos.blockX + side.offsetX; - int y = pos.blockY + side.offsetY; - int z = pos.blockZ + side.offsetZ; - - if( !Platform.hasPermissions( new DimensionalCoord( w, x, y, z ), p ) ) + if( !Platform.hasPermissions( new DimensionalCoord( w, hitPos ), p ) ) { return; } - Block whatsThere = w.getBlock( x, y, z ); - if( whatsThere.isReplaceable( w, x, y, z ) && w.isAirBlock( x, y, z ) ) + Block whatsThere = w.getBlockState( hitPos ).getBlock(); + if( whatsThere.isReplaceable( w, hitPos ) && w.isAirBlock( hitPos ) ) { for( Block paintBlock : AEApi.instance().definitions().blocks().paint().maybeBlock().asSet() ) { - w.setBlock( x, y, z, paintBlock, 0, 3 ); + w.setBlockState( hitPos, paintBlock.getDefaultState(), 3 ); } } - TileEntity te = w.getTileEntity( x, y, z ); + TileEntity te = w.getTileEntity( hitPos ); if( te instanceof TilePaint ) { - pos.hitVec.xCoord -= x; - pos.hitVec.yCoord -= y; - pos.hitVec.zCoord -= z; - ( (TilePaint) te ).addBlot( type, side.getOpposite(), pos.hitVec ); + Vec3 hp = pos.hitVec.subtract( hitPos.getX(), hitPos.getY(), hitPos.getZ() ); + ( (TilePaint) te ).addBlot( type, side.getOpposite(), hp ); } } } @@ -330,7 +318,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell { hasDestroyed = false; - AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( Math.min( vec3.xCoord, vec31.xCoord ), Math.min( vec3.yCoord, vec31.yCoord ), Math.min( vec3.zCoord, vec31.zCoord ), Math.max( vec3.xCoord, vec31.xCoord ), Math.max( vec3.yCoord, vec31.yCoord ), Math.max( vec3.zCoord, vec31.zCoord ) ).expand( 16, 16, 16 ); + AxisAlignedBB bb = AxisAlignedBB.fromBounds( Math.min( vec3.xCoord, vec31.xCoord ), Math.min( vec3.yCoord, vec31.yCoord ), Math.min( vec3.zCoord, vec31.zCoord ), Math.max( vec3.xCoord, vec31.xCoord ), Math.max( vec3.yCoord, vec31.yCoord ), Math.max( vec3.zCoord, vec31.zCoord ) ).expand( 16, 16, 16 ); Entity entity = null; List list = w.getEntitiesWithinAABBExcludingEntity( p, bb ); @@ -353,7 +341,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell float f1 = 0.3F; - AxisAlignedBB boundingBox = entity1.boundingBox.expand( f1, f1, f1 ); + AxisAlignedBB boundingBox = entity1.getBoundingBox().expand( f1, f1, f1 ); MovingObjectPosition movingObjectPosition = boundingBox.calculateIntercept( vec3, vec31 ); if( movingObjectPosition != null ) @@ -370,7 +358,7 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell } } - Vec3 vec = Vec3.createVectorHelper( d0, d1, d2 ); + Vec3 vec = new Vec3( d0, d1, d2 ); MovingObjectPosition pos = w.rayTraceBlocks( vec3, vec31, true ); if( entity != null && pos != null && pos.hitVec.squareDistanceTo( vec ) > closest ) { @@ -429,20 +417,19 @@ public class ToolMassCannon extends AEBasePoweredItem implements IStorageCell } else { - Block b = w.getBlock( pos.blockX, pos.blockY, pos.blockZ ); + Block b = w.getBlockState( pos.getBlockPos() ).getBlock(); // int meta = w.getBlockMetadata( // pos.blockX, pos.blockY, pos.blockZ ); - float hardness = b.getBlockHardness( w, pos.blockX, pos.blockY, pos.blockZ ) * 9.0f; + float hardness = b.getBlockHardness( w, pos.getBlockPos() ) * 9.0f; if( hardness >= 0.0 ) { - if( penetration > hardness && Platform.hasPermissions( new DimensionalCoord( w, pos.blockX, pos.blockY, pos.blockZ ), p ) ) + if( penetration > hardness && Platform.hasPermissions( new DimensionalCoord( w, pos.getBlockPos() ), p ) ) { hasDestroyed = true; penetration -= hardness; penetration *= 0.60; - w.func_147480_a( pos.blockX, pos.blockY, pos.blockZ, true ); - // w.destroyBlock( pos.blockX, pos.blockY, pos.blockZ, true ); + w.destroyBlock( pos.getBlockPos(), true ); } } } diff --git a/src/main/java/appeng/items/tools/powered/ToolPortableCell.java b/src/main/java/appeng/items/tools/powered/ToolPortableCell.java index de2d3a3b..bddf9a29 100644 --- a/src/main/java/appeng/items/tools/powered/ToolPortableCell.java +++ b/src/main/java/appeng/items/tools/powered/ToolPortableCell.java @@ -23,17 +23,13 @@ import java.util.EnumSet; import java.util.List; import java.util.Set; -import com.google.common.base.Optional; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.implementations.guiobjects.IGuiItem; @@ -45,6 +41,7 @@ import appeng.api.storage.ICellInventoryHandler; import appeng.api.storage.IMEInventory; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; +import appeng.api.util.AEPartLocation; import appeng.core.AEConfig; import appeng.core.features.AEFeature; import appeng.core.localization.GuiText; @@ -56,6 +53,8 @@ import appeng.items.tools.powered.powersink.AEBasePoweredItem; import appeng.me.storage.CellInventoryHandler; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolPortableCell extends AEBasePoweredItem implements IStorageCell, IGuiItem, IItemGroup { @@ -68,7 +67,7 @@ public class ToolPortableCell extends AEBasePoweredItem implements IStorageCell, @Override public ItemStack onItemRightClick( ItemStack item, World w, EntityPlayer player ) { - Platform.openGUI( player, null, ForgeDirection.UNKNOWN, GuiBridge.GUI_PORTABLE_CELL ); + Platform.openGUI( player, null, AEPartLocation.INTERNAL, GuiBridge.GUI_PORTABLE_CELL ); return item; } @@ -190,8 +189,8 @@ public class ToolPortableCell extends AEBasePoweredItem implements IStorageCell, } @Override - public IGuiItemObject getGuiObject( ItemStack is, World w, int x, int y, int z ) + public IGuiItemObject getGuiObject( ItemStack is, World w, BlockPos pos ) { - return new PortableCellViewer( is, x ); + return new PortableCellViewer( is, pos.getX() ); } } diff --git a/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java b/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java index 1203a8a1..b0e314b9 100644 --- a/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java +++ b/src/main/java/appeng/items/tools/powered/ToolWirelessTerminal.java @@ -22,17 +22,13 @@ package appeng.items.tools.powered; import java.util.EnumSet; import java.util.List; -import com.google.common.base.Optional; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.StatCollector; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.Settings; import appeng.api.config.SortDir; @@ -48,6 +44,8 @@ import appeng.util.ConfigManager; import appeng.util.IConfigManagerHost; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolWirelessTerminal extends AEBasePoweredItem implements IWirelessTermHandler { diff --git a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java index 4d05d132..904b1b32 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java +++ b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java @@ -22,7 +22,7 @@ package appeng.items.tools.powered.powersink; import com.google.common.base.Optional; -public abstract class AEBasePoweredItem extends RedstoneFlux +public abstract class AEBasePoweredItem extends AERootPoweredItem { public AEBasePoweredItem( double powerCapacity, Optional subName ) { diff --git a/src/main/java/appeng/items/tools/powered/powersink/AERootPoweredItem.java b/src/main/java/appeng/items/tools/powered/powersink/AERootPoweredItem.java index 3d0f782b..1238355b 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/AERootPoweredItem.java +++ b/src/main/java/appeng/items/tools/powered/powersink/AERootPoweredItem.java @@ -22,14 +22,11 @@ package appeng.items.tools.powered.powersink; import java.text.MessageFormat; import java.util.List; -import com.google.common.base.Optional; - 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 appeng.api.config.AccessRestriction; import appeng.api.config.PowerUnits; import appeng.api.implementations.items.IAEItemPowerStorage; @@ -37,6 +34,8 @@ import appeng.core.localization.GuiText; import appeng.items.AEBaseItem; import appeng.util.Platform; +import com.google.common.base.Optional; + public abstract class AERootPoweredItem extends AEBaseItem implements IAEItemPowerStorage { diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java index 5339b790..1f6879b2 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzAxe.java @@ -21,17 +21,16 @@ package appeng.items.tools.quartz; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemStack; - import appeng.core.features.AEFeature; import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.core.features.ItemFeatureHandler; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolQuartzAxe extends ItemAxe implements IAEFeature { diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java index 8a6aa5a8..a057da3a 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzCuttingKnife.java @@ -21,21 +21,22 @@ package appeng.items.tools.quartz; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.implementations.guiobjects.IGuiItem; import appeng.api.implementations.guiobjects.IGuiItemObject; +import appeng.api.util.AEPartLocation; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; import appeng.items.AEBaseItem; import appeng.items.contents.QuartzKnifeObj; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem { @@ -52,11 +53,19 @@ public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem } @Override - public boolean onItemUse( ItemStack is, EntityPlayer p, World w, int x, int y, int z, int s, float hitX, float hitY, float hitZ ) + public boolean onItemUse( + ItemStack stack, + EntityPlayer p, + World worldIn, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { if( Platform.isServer() ) { - Platform.openGUI( p, null, ForgeDirection.UNKNOWN, GuiBridge.GUI_QUARTZ_KNIFE ); + Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_QUARTZ_KNIFE ); } return true; } @@ -66,18 +75,12 @@ public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem { if( Platform.isServer() ) { - Platform.openGUI( p, null, ForgeDirection.UNKNOWN, GuiBridge.GUI_QUARTZ_KNIFE ); + Platform.openGUI( p, null, AEPartLocation.INTERNAL, GuiBridge.GUI_QUARTZ_KNIFE ); } p.swingItem(); return it; } - @Override - public boolean doesContainerItemLeaveCraftingGrid( ItemStack par1ItemStack ) - { - return false; - } - @Override public boolean getIsRepairable( ItemStack a, ItemStack b ) { @@ -104,7 +107,7 @@ public class ToolQuartzCuttingKnife extends AEBaseItem implements IGuiItem } @Override - public IGuiItemObject getGuiObject( ItemStack is, World world, int x, int y, int z ) + public IGuiItemObject getGuiObject( ItemStack is, World world, BlockPos pos ) { return new QuartzKnifeObj( is ); } diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java index 23edeb89..e20afa00 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzHoe.java @@ -21,17 +21,16 @@ package appeng.items.tools.quartz; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; - import appeng.core.features.AEFeature; import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.core.features.ItemFeatureHandler; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolQuartzHoe extends ItemHoe implements IAEFeature { diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java index 1d933327..b80c06be 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzPickaxe.java @@ -21,17 +21,16 @@ package appeng.items.tools.quartz; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; - import appeng.core.features.AEFeature; import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.core.features.ItemFeatureHandler; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolQuartzPickaxe extends ItemPickaxe implements IAEFeature { diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java index c126ab74..725d5a21 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzSpade.java @@ -21,17 +21,16 @@ package appeng.items.tools.quartz; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; - import appeng.core.features.AEFeature; import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.core.features.ItemFeatureHandler; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolQuartzSpade extends ItemSpade implements IAEFeature { diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java index 27d1d582..f9e98736 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzSword.java @@ -21,17 +21,16 @@ package appeng.items.tools.quartz; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; - import appeng.core.features.AEFeature; import appeng.core.features.IAEFeature; import appeng.core.features.IFeatureHandler; import appeng.core.features.ItemFeatureHandler; import appeng.util.Platform; +import com.google.common.base.Optional; + public class ToolQuartzSword extends ItemSword implements IAEFeature { diff --git a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java index c1f41cc1..88f6eec8 100644 --- a/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java +++ b/src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java @@ -21,26 +21,23 @@ package appeng.items.tools.quartz; import java.util.EnumSet; -import com.google.common.base.Optional; - import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import buildcraft.api.tools.IToolWrench; - import appeng.api.implementations.items.IAEWrench; import appeng.api.util.DimensionalCoord; import appeng.core.features.AEFeature; import appeng.items.AEBaseItem; -import appeng.transformer.annotations.Integration.Interface; import appeng.util.Platform; +import com.google.common.base.Optional; -@Interface( iface = "buildcraft.api.tools.IToolWrench", iname = "BC" ) -public class ToolQuartzWrench extends AEBaseItem implements IAEWrench, IToolWrench + +//@Interface( iface = "buildcraft.api.tools.IToolWrench", iname = "BC" ) IToolWrench +public class ToolQuartzWrench extends AEBaseItem implements IAEWrench { public ToolQuartzWrench( AEFeature type ) @@ -53,20 +50,27 @@ public class ToolQuartzWrench extends AEBaseItem implements IAEWrench, IToolWren } @Override - public boolean onItemUseFirst( ItemStack is, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ ) + public boolean onItemUseFirst( + ItemStack stack, + EntityPlayer player, + World world, + BlockPos pos, + EnumFacing side, + float hitX, + float hitY, + float hitZ ) { - Block b = world.getBlock( x, y, z ); - if( b != null && !player.isSneaking() && Platform.hasPermissions( new DimensionalCoord( world, x, y, z ), player ) ) + Block b = world.getBlockState( pos ).getBlock(); + if( b != null && !player.isSneaking() && Platform.hasPermissions( new DimensionalCoord( world, pos ), player ) ) { if( Platform.isClient() ) { return !world.isRemote; } - ForgeDirection mySide = ForgeDirection.getOrientation( side ); - if( b.rotateBlock( world, x, y, z, mySide ) ) + if( b.rotateBlock( world, pos, side ) ) { - b.onNeighborBlockChange( world, x, y, z, Platform.AIR_BLOCK ); + b.onNeighborBlockChange( world, pos, Platform.AIR_BLOCK.getDefaultState(), Platform.AIR_BLOCK ); player.swingItem(); return !world.isRemote; } @@ -75,18 +79,25 @@ public class ToolQuartzWrench extends AEBaseItem implements IAEWrench, IToolWren } @Override - // public boolean shouldPassSneakingClickToBlock(World w, int x, int y, int z) - public boolean doesSneakBypassUse( World world, int x, int y, int z, EntityPlayer player ) + public boolean doesSneakBypassUse( + World world, + BlockPos pos, + EntityPlayer player ) { return true; } @Override - public boolean canWrench( ItemStack is, EntityPlayer player, int x, int y, int z ) + public boolean canWrench( + ItemStack wrench, + EntityPlayer player, + BlockPos pos ) { return true; } + // TODO: BC Wrench Integration + /* @Override public boolean canWrench( EntityPlayer player, int x, int y, int z ) { @@ -98,4 +109,5 @@ public class ToolQuartzWrench extends AEBaseItem implements IAEWrench, IToolWren { player.swingItem(); } + */ } diff --git a/src/main/java/appeng/me/GridConnection.java b/src/main/java/appeng/me/GridConnection.java index d5f72090..09fa53af 100644 --- a/src/main/java/appeng/me/GridConnection.java +++ b/src/main/java/appeng/me/GridConnection.java @@ -22,14 +22,13 @@ package appeng.me; import java.util.Arrays; import java.util.EnumSet; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.exceptions.FailedConnection; import appeng.api.networking.GridFlags; import appeng.api.networking.IGridConnection; import appeng.api.networking.IGridNode; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.pathing.IPathingGrid; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IReadOnlyCollection; import appeng.core.AEConfig; @@ -47,10 +46,10 @@ public class GridConnection implements IGridConnection, IPathItem public int channelData = 0; Object visitorIterationNumber = null; private GridNode sideA; - private ForgeDirection fromAtoB; + private AEPartLocation fromAtoB; private GridNode sideB; - public GridConnection( IGridNode aNode, IGridNode bNode, ForgeDirection fromAtoB ) throws FailedConnection + public GridConnection( IGridNode aNode, IGridNode bNode, AEPartLocation fromAtoB ) throws FailedConnection { GridNode a = (GridNode) aNode; @@ -143,9 +142,9 @@ public class GridConnection implements IGridConnection, IPathItem } @Override - public ForgeDirection getDirection( IGridNode side ) + public AEPartLocation getDirection( IGridNode side ) { - if( this.fromAtoB == ForgeDirection.UNKNOWN ) + if( this.fromAtoB == AEPartLocation.INTERNAL ) { return this.fromAtoB; } @@ -189,7 +188,7 @@ public class GridConnection implements IGridConnection, IPathItem @Override public boolean hasDirection() { - return this.fromAtoB != ForgeDirection.UNKNOWN; + return this.fromAtoB != AEPartLocation.INTERNAL; } @Override diff --git a/src/main/java/appeng/me/GridNode.java b/src/main/java/appeng/me/GridNode.java index 8c09df41..a7c3bb9f 100644 --- a/src/main/java/appeng/me/GridNode.java +++ b/src/main/java/appeng/me/GridNode.java @@ -29,9 +29,9 @@ import java.util.concurrent.Callable; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.exceptions.FailedConnection; import appeng.api.networking.GridFlags; import appeng.api.networking.GridNotification; @@ -47,6 +47,7 @@ import appeng.api.networking.energy.IEnergyGrid; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.pathing.IPathingGrid; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IReadOnlyCollection; import appeng.core.WorldSettings; @@ -208,7 +209,7 @@ public class GridNode implements IGridNode, IPathItem this.compressedData |= ( this.gridProxy.getGridColor().ordinal() << 3 ); - for( ForgeDirection dir : this.gridProxy.getConnectableSides() ) + for( EnumFacing dir : this.gridProxy.getConnectableSides() ) { this.compressedData |= ( 1 << ( dir.ordinal() + 8 ) ); } @@ -285,9 +286,9 @@ public class GridNode implements IGridNode, IPathItem } @Override - public EnumSet getConnectedSides() + public EnumSet getConnectedSides() { - EnumSet set = EnumSet.noneOf( ForgeDirection.class ); + EnumSet set = EnumSet.noneOf( AEPartLocation.class ); for( IGridConnection gc : this.connections ) { set.add( gc.getDirection( this ) ); @@ -394,12 +395,12 @@ public class GridNode implements IGridNode, IPathItem return; } - EnumSet newSecurityConnections = EnumSet.noneOf( ForgeDirection.class ); + EnumSet newSecurityConnections = EnumSet.noneOf( AEPartLocation.class ); DimensionalCoord dc = this.gridProxy.getLocation(); - for( ForgeDirection f : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation f : AEPartLocation.SIDE_LOCATIONS ) { - IGridHost te = this.findGridHost( dc.getWorld(), dc.x + f.offsetX, dc.y + f.offsetY, dc.z + f.offsetZ ); + IGridHost te = this.findGridHost( dc.getWorld(), dc.x + f.xOffset, dc.y + f.yOffset, dc.z + f.zOffset ); if( te != null ) { GridNode node = (GridNode) te.getGridNode( f.getOpposite() ); @@ -462,9 +463,9 @@ public class GridNode implements IGridNode, IPathItem } } - for( ForgeDirection f : newSecurityConnections ) + for( AEPartLocation f : newSecurityConnections ) { - IGridHost te = this.findGridHost( dc.getWorld(), dc.x + f.offsetX, dc.y + f.offsetY, dc.z + f.offsetZ ); + IGridHost te = this.findGridHost( dc.getWorld(), dc.x + f.xOffset, dc.y + f.yOffset, dc.z + f.zOffset ); if( te != null ) { GridNode node = (GridNode) te.getGridNode( f.getOpposite() ); @@ -490,9 +491,10 @@ public class GridNode implements IGridNode, IPathItem private IGridHost findGridHost( World world, int x, int y, int z ) { - if( world.blockExists( x, y, z ) ) + BlockPos pos = new BlockPos(x,y,z); + if( world.isBlockLoaded( pos ) ) { - TileEntity te = world.getTileEntity( x, y, z ); + TileEntity te = world.getTileEntity( pos ); if( te instanceof IGridHost ) { return (IGridHost) te; @@ -501,7 +503,7 @@ public class GridNode implements IGridNode, IPathItem return null; } - public boolean canConnect( GridNode from, ForgeDirection dir ) + public boolean canConnect( GridNode from, AEPartLocation dir ) { if( !this.isValidDirection( dir ) ) { @@ -516,7 +518,7 @@ public class GridNode implements IGridNode, IPathItem return true; } - private boolean isValidDirection( ForgeDirection dir ) + private boolean isValidDirection( AEPartLocation dir ) { return ( this.compressedData & ( 1 << ( 8 + dir.ordinal() ) ) ) > 0; } diff --git a/src/main/java/appeng/me/GridStorage.java b/src/main/java/appeng/me/GridStorage.java index e7262fce..760574be 100644 --- a/src/main/java/appeng/me/GridStorage.java +++ b/src/main/java/appeng/me/GridStorage.java @@ -27,7 +27,6 @@ import java.util.WeakHashMap; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.networking.IGrid; import appeng.api.networking.IGridStorage; import appeng.core.AELog; diff --git a/src/main/java/appeng/me/cache/CraftingGridCache.java b/src/main/java/appeng/me/cache/CraftingGridCache.java index 8d009b4f..ac45a9f4 100644 --- a/src/main/java/appeng/me/cache/CraftingGridCache.java +++ b/src/main/java/appeng/me/cache/CraftingGridCache.java @@ -36,14 +36,7 @@ import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.ThreadFactory; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.ImmutableCollection; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Multimap; - import net.minecraft.world.World; - import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.networking.IGrid; @@ -85,6 +78,12 @@ import appeng.tile.crafting.TileCraftingStorageTile; import appeng.tile.crafting.TileCraftingTile; import appeng.util.ItemSorters; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.ImmutableCollection; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Multimap; + public class CraftingGridCache implements ICraftingGrid, ICraftingProviderHelper, ICellProvider, IMEInventoryHandler { diff --git a/src/main/java/appeng/me/cache/EnergyGridCache.java b/src/main/java/appeng/me/cache/EnergyGridCache.java index 8bd4149f..805ef61f 100644 --- a/src/main/java/appeng/me/cache/EnergyGridCache.java +++ b/src/main/java/appeng/me/cache/EnergyGridCache.java @@ -26,9 +26,6 @@ import java.util.LinkedHashSet; import java.util.Set; import java.util.TreeSet; -import com.google.common.collect.HashMultiset; -import com.google.common.collect.Multiset; - import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -54,6 +51,9 @@ import appeng.me.GridNode; import appeng.me.energy.EnergyThreshold; import appeng.me.energy.EnergyWatcher; +import com.google.common.collect.HashMultiset; +import com.google.common.collect.Multiset; + public class EnergyGridCache implements IEnergyGrid { diff --git a/src/main/java/appeng/me/cache/GridStorageCache.java b/src/main/java/appeng/me/cache/GridStorageCache.java index 4eb76806..4b318ed6 100644 --- a/src/main/java/appeng/me/cache/GridStorageCache.java +++ b/src/main/java/appeng/me/cache/GridStorageCache.java @@ -24,9 +24,6 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.SetMultimap; - import appeng.api.AEApi; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; @@ -54,6 +51,9 @@ import appeng.me.helpers.GenericInterestManager; import appeng.me.storage.ItemWatcher; import appeng.me.storage.NetworkInventoryHandler; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.SetMultimap; + public class GridStorageCache implements IStorageGrid { diff --git a/src/main/java/appeng/me/cache/P2PCache.java b/src/main/java/appeng/me/cache/P2PCache.java index 6cab8faf..203c480f 100644 --- a/src/main/java/appeng/me/cache/P2PCache.java +++ b/src/main/java/appeng/me/cache/P2PCache.java @@ -21,9 +21,6 @@ package appeng.me.cache; import java.util.HashMap; -import com.google.common.collect.LinkedHashMultimap; -import com.google.common.collect.Multimap; - import appeng.api.networking.GridFlags; import appeng.api.networking.IGrid; import appeng.api.networking.IGridCache; @@ -38,6 +35,9 @@ import appeng.me.cache.helpers.TunnelCollection; import appeng.parts.p2p.PartP2PTunnel; import appeng.parts.p2p.PartP2PTunnelME; +import com.google.common.collect.LinkedHashMultimap; +import com.google.common.collect.Multimap; + public class P2PCache implements IGridCache { diff --git a/src/main/java/appeng/me/cache/PathGridCache.java b/src/main/java/appeng/me/cache/PathGridCache.java index fea22d7a..3df917c4 100644 --- a/src/main/java/appeng/me/cache/PathGridCache.java +++ b/src/main/java/appeng/me/cache/PathGridCache.java @@ -26,8 +26,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Set; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.GridFlags; import appeng.api.networking.IGrid; import appeng.api.networking.IGridBlock; @@ -42,6 +40,7 @@ import appeng.api.networking.events.MENetworkControllerChange; import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.pathing.ControllerState; import appeng.api.networking.pathing.IPathingGrid; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.core.AEConfig; import appeng.core.features.AEFeature; @@ -187,7 +186,7 @@ public class PathGridCache implements IPathingGrid if( controllerIterator.hasNext() ) { final TileController controller = controllerIterator.next(); - controller.getGridNode( ForgeDirection.UNKNOWN ).beginVisit( new ControllerChannelUpdater() ); + controller.getGridNode( AEPartLocation.INTERNAL ).beginVisit( new ControllerChannelUpdater() ); } } @@ -278,7 +277,7 @@ public class PathGridCache implements IPathingGrid } else { - IGridNode startingNode = this.controllers.iterator().next().getGridNode( ForgeDirection.UNKNOWN ); + IGridNode startingNode = this.controllers.iterator().next().getGridNode( AEPartLocation.INTERNAL ); if( startingNode == null ) { this.controllerState = ControllerState.CONTROLLER_CONFLICT; diff --git a/src/main/java/appeng/me/cache/SecurityCache.java b/src/main/java/appeng/me/cache/SecurityCache.java index a42bcfea..baf8b410 100644 --- a/src/main/java/appeng/me/cache/SecurityCache.java +++ b/src/main/java/appeng/me/cache/SecurityCache.java @@ -25,7 +25,6 @@ import java.util.HashMap; import java.util.List; import net.minecraft.entity.player.EntityPlayer; - import appeng.api.config.SecurityPermissions; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; diff --git a/src/main/java/appeng/me/cache/TickManagerCache.java b/src/main/java/appeng/me/cache/TickManagerCache.java index 2f7c7e7b..468ea22b 100644 --- a/src/main/java/appeng/me/cache/TickManagerCache.java +++ b/src/main/java/appeng/me/cache/TickManagerCache.java @@ -25,7 +25,6 @@ import java.util.PriorityQueue; import net.minecraft.crash.CrashReport; import net.minecraft.crash.CrashReportCategory; import net.minecraft.util.ReportedException; - import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; diff --git a/src/main/java/appeng/me/cache/helpers/TickTracker.java b/src/main/java/appeng/me/cache/helpers/TickTracker.java index f1aeb492..c8947ee9 100644 --- a/src/main/java/appeng/me/cache/helpers/TickTracker.java +++ b/src/main/java/appeng/me/cache/helpers/TickTracker.java @@ -22,7 +22,6 @@ package appeng.me.cache.helpers; import javax.annotation.Nonnull; import net.minecraft.crash.CrashReportCategory; - import appeng.api.networking.IGridNode; import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickingRequest; diff --git a/src/main/java/appeng/me/cluster/MBCalculator.java b/src/main/java/appeng/me/cluster/MBCalculator.java index 775b5c6f..54924bc5 100644 --- a/src/main/java/appeng/me/cluster/MBCalculator.java +++ b/src/main/java/appeng/me/cluster/MBCalculator.java @@ -20,9 +20,9 @@ package appeng.me.cluster; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.AEPartLocation; import appeng.api.util.WorldCoord; import appeng.core.AELog; import appeng.util.Platform; @@ -124,7 +124,7 @@ public abstract class MBCalculator public boolean isValidTileAt( World w, int x, int y, int z ) { - return this.isValidTile( w.getTileEntity( x, y, z ) ); + return this.isValidTile( w.getTileEntity( new BlockPos( x, y, z ) ) ); } /** @@ -139,7 +139,7 @@ public abstract class MBCalculator public boolean verifyUnownedRegion( World w, WorldCoord min, WorldCoord max ) { - for( ForgeDirection side : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation side : AEPartLocation.SIDE_LOCATIONS ) { if( this.verifyUnownedRegionInner( w, min.x, min.y, min.z, max.x, max.y, max.z, side ) ) { @@ -187,7 +187,7 @@ public abstract class MBCalculator */ public abstract boolean isValidTile( TileEntity te ); - public boolean verifyUnownedRegionInner( World w, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, ForgeDirection side ) + public boolean verifyUnownedRegionInner( World w, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, AEPartLocation side ) { switch( side ) { @@ -215,7 +215,7 @@ public abstract class MBCalculator maxY += 1; minY = maxY; break; - case UNKNOWN: + case INTERNAL: return false; } @@ -225,7 +225,7 @@ public abstract class MBCalculator { for( int z = minZ; z <= maxZ; z++ ) { - TileEntity te = w.getTileEntity( x, y, z ); + TileEntity te = w.getTileEntity( new BlockPos( x, y, z ) ); if( this.isValidTile( te ) ) { return true; diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCalculator.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCalculator.java index d2d32204..448229b2 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCalculator.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCalculator.java @@ -22,13 +22,13 @@ package appeng.me.cluster.implementations; import java.util.Iterator; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; import appeng.api.networking.events.MENetworkCraftingCpuChange; +import appeng.api.util.AEPartLocation; import appeng.api.util.WorldCoord; import appeng.me.cluster.IAECluster; import appeng.me.cluster.IAEMultiBlock; @@ -85,7 +85,7 @@ public class CraftingCPUCalculator extends MBCalculator { for( int z = min.z; z <= max.z; z++ ) { - IAEMultiBlock te = (IAEMultiBlock) w.getTileEntity( x, y, z ); + IAEMultiBlock te = (IAEMultiBlock) w.getTileEntity( new BlockPos( x, y, z ) ); if( !te.isValid() ) { @@ -120,7 +120,7 @@ public class CraftingCPUCalculator extends MBCalculator { for( int z = min.z; z <= max.z; z++ ) { - TileCraftingTile te = (TileCraftingTile) w.getTileEntity( x, y, z ); + TileCraftingTile te = (TileCraftingTile) w.getTileEntity( new BlockPos( x, y, z ) ); te.updateStatus( c ); c.addTile( te ); } @@ -133,7 +133,7 @@ public class CraftingCPUCalculator extends MBCalculator while( i.hasNext() ) { IGridHost gh = i.next(); - IGridNode n = gh.getGridNode( ForgeDirection.UNKNOWN ); + IGridNode n = gh.getGridNode( AEPartLocation.INTERNAL ); if( n != null ) { IGrid g = n.getGrid(); diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index 4c1cf708..28ea3a87 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -26,18 +26,13 @@ import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; - import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.world.World; import net.minecraft.world.WorldServer; - -import cpw.mods.fml.common.FMLCommonHandler; - +import net.minecraftforge.fml.common.FMLCommonHandler; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; @@ -79,6 +74,9 @@ import appeng.tile.crafting.TileCraftingTile; import appeng.util.Platform; import appeng.util.item.AEItemStack; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; + public class CraftingCPUCluster implements IAECluster, ICraftingCPU { @@ -1245,7 +1243,7 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU private World getWorld() { - return this.getCore().getWorldObj(); + return this.getCore().getWorld(); } public boolean isMaking( IAEItemStack what ) diff --git a/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java b/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java index cae6c888..4a5fc5fd 100644 --- a/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java +++ b/src/main/java/appeng/me/cluster/implementations/QuantumCalculator.java @@ -21,9 +21,9 @@ package appeng.me.cluster.implementations; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; - import appeng.api.AEApi; import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlocks; @@ -78,7 +78,8 @@ public class QuantumCalculator extends MBCalculator { for( int z = min.z; z <= max.z; z++ ) { - IAEMultiBlock te = (IAEMultiBlock) w.getTileEntity( x, y, z ); + BlockPos p = new BlockPos( x, y, z ); + IAEMultiBlock te = (IAEMultiBlock) w.getTileEntity( p ); if( !te.isValid() ) { @@ -89,14 +90,14 @@ public class QuantumCalculator extends MBCalculator final IBlocks blocks = AEApi.instance().definitions().blocks(); if( num == 5 ) { - if( !this.isBlockAtLocation( w, x, y, z, blocks.quantumLink() ) ) + if( !this.isBlockAtLocation( w, p, blocks.quantumLink() ) ) { return false; } } else { - if( !this.isBlockAtLocation( w, x, y, z, blocks.quantumRing() ) ) + if( !this.isBlockAtLocation( w, p, blocks.quantumRing() ) ) { return false; } @@ -126,7 +127,7 @@ public class QuantumCalculator extends MBCalculator { for( int z = min.z; z <= max.z; z++ ) { - TileQuantumBridge te = (TileQuantumBridge) w.getTileEntity( x, y, z ); + TileQuantumBridge te = (TileQuantumBridge) w.getTileEntity( new BlockPos( x, y, z ) ); byte flags; @@ -162,11 +163,11 @@ public class QuantumCalculator extends MBCalculator return te instanceof TileQuantumBridge; } - private boolean isBlockAtLocation( IBlockAccess w, int x, int y, int z, IBlockDefinition def ) + private boolean isBlockAtLocation( IBlockAccess w, BlockPos pos, IBlockDefinition def ) { for( Block block : def.maybeBlock().asSet() ) { - return block == w.getBlock( x, y, z ); + return block == w.getBlockState( pos ).getBlock(); } return false; diff --git a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java index 6242fd5a..c8090aac 100644 --- a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java @@ -26,11 +26,8 @@ import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.common.DimensionManager; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.world.WorldEvent; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import appeng.api.AEApi; import appeng.api.events.LocatableEventAnnounce; import appeng.api.events.LocatableEventAnnounce.LocatableEvent; @@ -38,6 +35,7 @@ import appeng.api.exceptions.FailedConnection; import appeng.api.features.ILocatable; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; +import appeng.api.util.AEPartLocation; import appeng.api.util.WorldCoord; import appeng.me.cache.helpers.ConnectionWrapper; import appeng.me.cluster.IAECluster; @@ -69,7 +67,7 @@ public class QuantumCluster implements ILocatable, IAECluster @SubscribeEvent public void onUnload( WorldEvent.Unload e ) { - if( this.center.getWorldObj() == e.world ) + if( this.center.getWorld() == e.world ) { this.updateStatus = false; this.destroy(); @@ -190,16 +188,16 @@ public class QuantumCluster implements ILocatable, IAECluster QuantumCluster qc = (QuantumCluster) AEApi.instance().registries().locatable().getLocatableBy( qe ); if( qc != null ) { - World theWorld = qc.center.getWorldObj(); + World theWorld = qc.center.getWorld(); if( !qc.isDestroyed ) { - Chunk c = theWorld.getChunkFromBlockCoords( qc.center.xCoord, qc.center.zCoord ); - if( c.isChunkLoaded ) + Chunk c = theWorld.getChunkFromBlockCoords( qc.center.getPos() ); + if( c.isLoaded() ) { - int id = theWorld.provider.dimensionId; + int id = theWorld.provider.getDimensionId(); World cur = DimensionManager.getWorld( id ); - TileEntity te = theWorld.getTileEntity( qc.center.xCoord, qc.center.yCoord, qc.center.zCoord ); + TileEntity te = theWorld.getTileEntity( qc.center.getPos() ); return te != qc.center || theWorld != cur; } } @@ -219,7 +217,7 @@ public class QuantumCluster implements ILocatable, IAECluster private IGridNode getNode() { - return this.center.getGridNode( ForgeDirection.UNKNOWN ); + return this.center.getGridNode( AEPartLocation.INTERNAL ); } public boolean hasQES() diff --git a/src/main/java/appeng/me/cluster/implementations/SpatialPylonCalculator.java b/src/main/java/appeng/me/cluster/implementations/SpatialPylonCalculator.java index 5941699e..19bb10be 100644 --- a/src/main/java/appeng/me/cluster/implementations/SpatialPylonCalculator.java +++ b/src/main/java/appeng/me/cluster/implementations/SpatialPylonCalculator.java @@ -20,8 +20,8 @@ package appeng.me.cluster.implementations; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - import appeng.api.util.DimensionalCoord; import appeng.api.util.WorldCoord; import appeng.me.cluster.IAECluster; @@ -63,7 +63,7 @@ public class SpatialPylonCalculator extends MBCalculator { for( int z = min.z; z <= max.z; z++ ) { - IAEMultiBlock te = (IAEMultiBlock) w.getTileEntity( x, y, z ); + IAEMultiBlock te = (IAEMultiBlock) w.getTileEntity( new BlockPos( x, y, z ) ); if( !te.isValid() ) { @@ -93,7 +93,7 @@ public class SpatialPylonCalculator extends MBCalculator { for( int z = min.z; z <= max.z; z++ ) { - TileSpatialPylon te = (TileSpatialPylon) w.getTileEntity( x, y, z ); + TileSpatialPylon te = (TileSpatialPylon) w.getTileEntity( new BlockPos( x, y, z ) ); te.updateStatus( c ); c.line.add( ( te ) ); } diff --git a/src/main/java/appeng/me/helpers/AENetworkProxy.java b/src/main/java/appeng/me/helpers/AENetworkProxy.java index 59f86f25..eae1bdb7 100644 --- a/src/main/java/appeng/me/helpers/AENetworkProxy.java +++ b/src/main/java/appeng/me/helpers/AENetworkProxy.java @@ -25,8 +25,7 @@ import java.util.EnumSet; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.networking.GridFlags; import appeng.api.networking.GridNotification; @@ -64,7 +63,7 @@ public class AENetworkProxy implements IGridBlock private ItemStack myRepInstance; private boolean isReady = false; private IGridNode node = null; - private EnumSet validSides; + private EnumSet validSides; private EnumSet flags = EnumSet.noneOf( GridFlags.class ); private double idleDraw = 1.0; private EntityPlayer owner; @@ -75,7 +74,7 @@ public class AENetworkProxy implements IGridBlock this.nbtName = nbtName; this.worldNode = inWorld; this.myRepInstance = visual; - this.validSides = EnumSet.allOf( ForgeDirection.class ); + this.validSides = EnumSet.allOf( EnumFacing.class ); } public void setVisualRepresentation( ItemStack is ) @@ -91,7 +90,7 @@ public class AENetworkProxy implements IGridBlock } } - public void setValidSides( EnumSet validSides ) + public void setValidSides( EnumSet validSides ) { this.validSides = validSides; if( this.node != null ) @@ -337,7 +336,7 @@ public class AENetworkProxy implements IGridBlock } @Override - public EnumSet getConnectableSides() + public EnumSet getConnectableSides() { return this.validSides; } diff --git a/src/main/java/appeng/me/helpers/AENetworkProxyMultiblock.java b/src/main/java/appeng/me/helpers/AENetworkProxyMultiblock.java index 73a8bce9..3fca5e35 100644 --- a/src/main/java/appeng/me/helpers/AENetworkProxyMultiblock.java +++ b/src/main/java/appeng/me/helpers/AENetworkProxyMultiblock.java @@ -22,7 +22,6 @@ package appeng.me.helpers; import java.util.Iterator; import net.minecraft.item.ItemStack; - import appeng.api.networking.IGridMultiblock; import appeng.api.networking.IGridNode; import appeng.me.cluster.IAECluster; diff --git a/src/main/java/appeng/me/helpers/GenericInterestManager.java b/src/main/java/appeng/me/helpers/GenericInterestManager.java index 884673f9..4590c111 100644 --- a/src/main/java/appeng/me/helpers/GenericInterestManager.java +++ b/src/main/java/appeng/me/helpers/GenericInterestManager.java @@ -22,10 +22,10 @@ package appeng.me.helpers; import java.util.Collection; import java.util.LinkedList; -import com.google.common.collect.Multimap; - import appeng.api.storage.data.IAEStack; +import com.google.common.collect.Multimap; + public class GenericInterestManager { diff --git a/src/main/java/appeng/me/pathfinding/ControllerValidator.java b/src/main/java/appeng/me/pathfinding/ControllerValidator.java index 23aa4fc4..a3addcd9 100644 --- a/src/main/java/appeng/me/pathfinding/ControllerValidator.java +++ b/src/main/java/appeng/me/pathfinding/ControllerValidator.java @@ -19,6 +19,7 @@ package appeng.me.pathfinding; +import net.minecraft.util.BlockPos; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; import appeng.api.networking.IGridVisitor; @@ -40,10 +41,10 @@ public class ControllerValidator implements IGridVisitor public ControllerValidator( int x, int y, int z ) { this.minX = x; - this.minY = y; - this.minZ = z; this.maxX = x; + this.minY = y; this.maxY = y; + this.minZ = z; this.maxZ = z; } @@ -55,12 +56,14 @@ public class ControllerValidator implements IGridVisitor { TileController c = (TileController) host; - this.minX = Math.min( c.xCoord, this.minX ); - this.maxX = Math.max( c.xCoord, this.maxX ); - this.minY = Math.min( c.yCoord, this.minY ); - this.maxY = Math.max( c.yCoord, this.maxY ); - this.minZ = Math.min( c.zCoord, this.minZ ); - this.maxZ = Math.max( c.zCoord, this.maxZ ); + BlockPos pos = c.getPos(); + + this.minX = Math.min( pos.getX(), this.minX ); + this.maxX = Math.max( pos.getX(), this.maxX ); + this.minY = Math.min( pos.getY(), this.minY ); + this.maxY = Math.max( pos.getY(), this.maxY ); + this.minZ = Math.min( pos.getZ(), this.minZ ); + this.maxZ = Math.max( pos.getZ(), this.maxZ ); if( this.maxX - this.minX < 7 && this.maxY - this.minY < 7 && this.maxZ - this.minZ < 7 ) { diff --git a/src/main/java/appeng/me/storage/AEExternalHandler.java b/src/main/java/appeng/me/storage/AEExternalHandler.java index 0ac82eae..704a5d2d 100644 --- a/src/main/java/appeng/me/storage/AEExternalHandler.java +++ b/src/main/java/appeng/me/storage/AEExternalHandler.java @@ -20,8 +20,7 @@ package appeng.me.storage; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.implementations.tiles.ITileStorageMonitorable; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IExternalStorageHandler; @@ -37,7 +36,7 @@ public class AEExternalHandler implements IExternalStorageHandler { @Override - public boolean canHandle( TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource mySrc ) + public boolean canHandle( TileEntity te, EnumFacing d, StorageChannel channel, BaseActionSource mySrc ) { if( channel == StorageChannel.ITEMS && te instanceof ITileStorageMonitorable ) { @@ -48,7 +47,7 @@ public class AEExternalHandler implements IExternalStorageHandler } @Override - public IMEInventory getInventory( TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src ) + public IMEInventory getInventory( TileEntity te, EnumFacing d, StorageChannel channel, BaseActionSource src ) { if( te instanceof TileCondenser ) { diff --git a/src/main/java/appeng/me/storage/CellInventory.java b/src/main/java/appeng/me/storage/CellInventory.java index fdd8916d..f32299a5 100644 --- a/src/main/java/appeng/me/storage/CellInventory.java +++ b/src/main/java/appeng/me/storage/CellInventory.java @@ -27,7 +27,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; diff --git a/src/main/java/appeng/me/storage/CellInventoryHandler.java b/src/main/java/appeng/me/storage/CellInventoryHandler.java index 60385265..1771a2cf 100644 --- a/src/main/java/appeng/me/storage/CellInventoryHandler.java +++ b/src/main/java/appeng/me/storage/CellInventoryHandler.java @@ -22,7 +22,6 @@ package appeng.me.storage; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.AEApi; import appeng.api.config.FuzzyMode; import appeng.api.config.IncludeExclude; diff --git a/src/main/java/appeng/me/storage/CreativeCellInventory.java b/src/main/java/appeng/me/storage/CreativeCellInventory.java index f9983d1d..05ca0695 100644 --- a/src/main/java/appeng/me/storage/CreativeCellInventory.java +++ b/src/main/java/appeng/me/storage/CreativeCellInventory.java @@ -20,7 +20,6 @@ package appeng.me.storage; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; diff --git a/src/main/java/appeng/me/storage/DriveWatcher.java b/src/main/java/appeng/me/storage/DriveWatcher.java index dede9791..920e38fe 100644 --- a/src/main/java/appeng/me/storage/DriveWatcher.java +++ b/src/main/java/appeng/me/storage/DriveWatcher.java @@ -20,7 +20,6 @@ package appeng.me.storage; import net.minecraft.item.ItemStack; - import appeng.api.config.Actionable; import appeng.api.implementations.tiles.IChestOrDrive; import appeng.api.networking.security.BaseActionSource; diff --git a/src/main/java/appeng/me/storage/MEIInventoryWrapper.java b/src/main/java/appeng/me/storage/MEIInventoryWrapper.java index 8b72549f..78cc2512 100644 --- a/src/main/java/appeng/me/storage/MEIInventoryWrapper.java +++ b/src/main/java/appeng/me/storage/MEIInventoryWrapper.java @@ -21,7 +21,6 @@ package appeng.me.storage; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.config.Actionable; import appeng.api.networking.security.BaseActionSource; import appeng.api.storage.IMEInventory; diff --git a/src/main/java/appeng/me/storage/MEMonitorIInventory.java b/src/main/java/appeng/me/storage/MEMonitorIInventory.java index cd26b763..a7fea772 100644 --- a/src/main/java/appeng/me/storage/MEMonitorIInventory.java +++ b/src/main/java/appeng/me/storage/MEMonitorIInventory.java @@ -27,7 +27,6 @@ import java.util.NavigableMap; import java.util.concurrent.ConcurrentSkipListMap; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; diff --git a/src/main/java/appeng/me/storage/SecurityInventory.java b/src/main/java/appeng/me/storage/SecurityInventory.java index fa2efcc2..86d69001 100644 --- a/src/main/java/appeng/me/storage/SecurityInventory.java +++ b/src/main/java/appeng/me/storage/SecurityInventory.java @@ -19,8 +19,6 @@ package appeng.me.storage; -import com.mojang.authlib.GameProfile; - import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -35,6 +33,8 @@ import appeng.api.storage.data.IItemList; import appeng.me.GridAccessException; import appeng.tile.misc.TileSecurity; +import com.mojang.authlib.GameProfile; + public class SecurityInventory implements IMEInventoryHandler { diff --git a/src/main/java/appeng/parts/AEBasePart.java b/src/main/java/appeng/parts/AEBasePart.java index 9fb4bc62..194a0206 100644 --- a/src/main/java/appeng/parts/AEBasePart.java +++ b/src/main/java/appeng/parts/AEBasePart.java @@ -19,15 +19,15 @@ package appeng.parts; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; import java.util.Random; -import io.netty.buffer.ByteBuf; - -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.crash.CrashReportCategory; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; @@ -36,14 +36,12 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.Upgrades; import appeng.api.definitions.IDefinitions; @@ -57,12 +55,13 @@ import appeng.api.parts.IPart; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; -import appeng.api.parts.ISimplifiedBundle; import appeng.api.parts.PartItemStack; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; +import appeng.client.render.IRenderHelper; import appeng.helpers.ICustomNameObject; import appeng.helpers.IPriorityHost; import appeng.me.helpers.AENetworkProxy; @@ -78,16 +77,15 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, protected final AENetworkProxy proxy; protected final ItemStack is; - protected ISimplifiedBundle renderCache = null; protected TileEntity tile = null; protected IPartHost host = null; - protected ForgeDirection side = null; + protected AEPartLocation side = null; public AEBasePart( ItemStack is ) { this.is = is; this.proxy = new AENetworkProxy( this, "part", is, this instanceof PartCable ); - this.proxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.proxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); } public IPartHost getHost() @@ -96,13 +94,13 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, } @Override - public IGridNode getGridNode( ForgeDirection dir ) + public IGridNode getGridNode( AEPartLocation dir ) { return this.proxy.getNode(); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.GLASS; } @@ -115,7 +113,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, List items = new ArrayList(); items.add( this.is.copy() ); this.host.removePart( this.side, false ); - Platform.spawnDrops( this.tile.getWorldObj(), this.tile.xCoord, this.tile.yCoord, this.tile.zCoord, items ); + Platform.spawnDrops( this.tile.getWorld(), this.tile.getPos(), items ); this.is.stackSize = 0; } } @@ -141,7 +139,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, return 0; } @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { rh.setBounds( 1, 1, 1, 15, 15, 15 ); rh.renderInventoryBox( renderer ); @@ -189,12 +187,14 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, public String getCustomName() { return this.is.getDisplayName(); - } @Override + } + + @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { rh.setBounds( 1, 1, 1, 15, 15, 15 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } @Override @@ -214,7 +214,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, @Override @SideOnly( Side.CLIENT ) - public void renderDynamic( double x, double y, double z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderDynamic( double x, double y, double z, IPartRenderHelper rh, IRenderHelper renderer ) { } @@ -310,7 +310,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, } @Override - public void setPartHostInfo( ForgeDirection side, IPartHost host, TileEntity tile ) + public void setPartHostInfo( AEPartLocation side, IPartHost host, TileEntity tile ) { this.side = side; this.tile = tile; @@ -325,7 +325,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, @Override @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World world, int x, int y, int z, Random r ) + public void randomDisplayTick( World world, BlockPos pos, Random r ) { } @@ -522,7 +522,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, } @Override - public void onPlacement( EntityPlayer player, ItemStack held, ForgeDirection side ) + public void onPlacement( EntityPlayer player, ItemStack held, AEPartLocation side ) { this.proxy.setOwner( player ); } @@ -541,7 +541,7 @@ public abstract class AEBasePart implements IPart, IGridProxyable, IActionHost, @Override @SideOnly( Side.CLIENT ) - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture(IRenderHelper renderer) { return null; } diff --git a/src/main/java/appeng/parts/BusCollisionHelper.java b/src/main/java/appeng/parts/BusCollisionHelper.java index 85ca8353..b465d4f4 100644 --- a/src/main/java/appeng/parts/BusCollisionHelper.java +++ b/src/main/java/appeng/parts/BusCollisionHelper.java @@ -23,9 +23,9 @@ import java.util.List; import net.minecraft.entity.Entity; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.parts.IPartCollisionHelper; +import appeng.api.util.AEPartLocation; public class BusCollisionHelper implements IPartCollisionHelper @@ -33,14 +33,14 @@ public class BusCollisionHelper implements IPartCollisionHelper final List boxes; - private final ForgeDirection x; - private final ForgeDirection y; - private final ForgeDirection z; + private final EnumFacing x; + private final EnumFacing y; + private final EnumFacing z; private final Entity entity; private final boolean isVisual; - public BusCollisionHelper( List boxes, ForgeDirection x, ForgeDirection y, ForgeDirection z, Entity e, boolean visual ) + public BusCollisionHelper( List boxes, EnumFacing x, EnumFacing y, EnumFacing z, Entity e, boolean visual ) { this.boxes = boxes; this.x = x; @@ -50,7 +50,7 @@ public class BusCollisionHelper implements IPartCollisionHelper this.isVisual = visual; } - public BusCollisionHelper( List boxes, ForgeDirection s, Entity e, boolean visual ) + public BusCollisionHelper( List boxes, AEPartLocation s, Entity e, boolean visual ) { this.boxes = boxes; this.entity = e; @@ -59,40 +59,40 @@ public class BusCollisionHelper implements IPartCollisionHelper switch( s ) { case DOWN: - this.x = ForgeDirection.EAST; - this.y = ForgeDirection.NORTH; - this.z = ForgeDirection.DOWN; + this.x = EnumFacing.EAST; + this.y = EnumFacing.NORTH; + this.z = EnumFacing.DOWN; break; case UP: - this.x = ForgeDirection.EAST; - this.y = ForgeDirection.SOUTH; - this.z = ForgeDirection.UP; + this.x = EnumFacing.EAST; + this.y = EnumFacing.SOUTH; + this.z = EnumFacing.UP; break; case EAST: - this.x = ForgeDirection.SOUTH; - this.y = ForgeDirection.UP; - this.z = ForgeDirection.EAST; + this.x = EnumFacing.SOUTH; + this.y = EnumFacing.UP; + this.z = EnumFacing.EAST; break; case WEST: - this.x = ForgeDirection.NORTH; - this.y = ForgeDirection.UP; - this.z = ForgeDirection.WEST; + this.x = EnumFacing.NORTH; + this.y = EnumFacing.UP; + this.z = EnumFacing.WEST; break; case NORTH: - this.x = ForgeDirection.WEST; - this.y = ForgeDirection.UP; - this.z = ForgeDirection.NORTH; + this.x = EnumFacing.WEST; + this.y = EnumFacing.UP; + this.z = EnumFacing.NORTH; break; case SOUTH: - this.x = ForgeDirection.EAST; - this.y = ForgeDirection.UP; - this.z = ForgeDirection.SOUTH; + this.x = EnumFacing.EAST; + this.y = EnumFacing.UP; + this.z = EnumFacing.SOUTH; break; - case UNKNOWN: + case INTERNAL: default: - this.x = ForgeDirection.EAST; - this.y = ForgeDirection.UP; - this.z = ForgeDirection.SOUTH; + this.x = EnumFacing.EAST; + this.y = EnumFacing.UP; + this.z = EnumFacing.SOUTH; break; } } @@ -115,27 +115,27 @@ public class BusCollisionHelper implements IPartCollisionHelper maxY /= 16.0; maxZ /= 16.0; - double aX = minX * this.x.offsetX + minY * this.y.offsetX + minZ * this.z.offsetX; - double aY = minX * this.x.offsetY + minY * this.y.offsetY + minZ * this.z.offsetY; - double aZ = minX * this.x.offsetZ + minY * this.y.offsetZ + minZ * this.z.offsetZ; + double aX = minX * this.x.getFrontOffsetX() + minY * this.y.getFrontOffsetX() + minZ * this.z.getFrontOffsetX(); + double aY = minX * this.x.getFrontOffsetY() + minY * this.y.getFrontOffsetY() + minZ * this.z.getFrontOffsetY(); + double aZ = minX * this.x.getFrontOffsetZ() + minY * this.y.getFrontOffsetZ() + minZ * this.z.getFrontOffsetZ(); - double bX = maxX * this.x.offsetX + maxY * this.y.offsetX + maxZ * this.z.offsetX; - double bY = maxX * this.x.offsetY + maxY * this.y.offsetY + maxZ * this.z.offsetY; - double bZ = maxX * this.x.offsetZ + maxY * this.y.offsetZ + maxZ * this.z.offsetZ; + double bX = maxX * this.x.getFrontOffsetX() + maxY * this.y.getFrontOffsetX() + maxZ * this.z.getFrontOffsetX(); + double bY = maxX * this.x.getFrontOffsetY() + maxY * this.y.getFrontOffsetY() + maxZ * this.z.getFrontOffsetY(); + double bZ = maxX * this.x.getFrontOffsetZ() + maxY * this.y.getFrontOffsetZ() + maxZ * this.z.getFrontOffsetZ(); - if( this.x.offsetX + this.y.offsetX + this.z.offsetX < 0 ) + if( this.x.getFrontOffsetX() + this.y.getFrontOffsetX() + this.z.getFrontOffsetX() < 0 ) { aX += 1; bX += 1; } - if( this.x.offsetY + this.y.offsetY + this.z.offsetY < 0 ) + if( this.x.getFrontOffsetY() + this.y.getFrontOffsetY() + this.z.getFrontOffsetY() < 0 ) { aY += 1; bY += 1; } - if( this.x.offsetZ + this.y.offsetZ + this.z.offsetZ < 0 ) + if( this.x.getFrontOffsetZ() + this.y.getFrontOffsetZ() + this.z.getFrontOffsetZ() < 0 ) { aZ += 1; bZ += 1; @@ -148,23 +148,23 @@ public class BusCollisionHelper implements IPartCollisionHelper maxY = Math.max( aY, bY ); maxZ = Math.max( aZ, bZ ); - this.boxes.add( AxisAlignedBB.getBoundingBox( minX, minY, minZ, maxX, maxY, maxZ ) ); + this.boxes.add( AxisAlignedBB.fromBounds( minX, minY, minZ, maxX, maxY, maxZ ) ); } @Override - public ForgeDirection getWorldX() + public EnumFacing getWorldX() { return this.x; } @Override - public ForgeDirection getWorldY() + public EnumFacing getWorldY() { return this.y; } @Override - public ForgeDirection getWorldZ() + public EnumFacing getWorldZ() { return this.z; } diff --git a/src/main/java/appeng/parts/CableBusContainer.java b/src/main/java/appeng/parts/CableBusContainer.java index 1b7da191..4006bf39 100644 --- a/src/main/java/appeng/parts/CableBusContainer.java +++ b/src/main/java/appeng/parts/CableBusContainer.java @@ -19,6 +19,8 @@ package appeng.parts; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.EnumSet; import java.util.LinkedList; @@ -26,8 +28,6 @@ import java.util.List; import java.util.Random; import java.util.Set; -import io.netty.buffer.ByteBuf; - import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; @@ -36,13 +36,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.YesNo; import appeng.api.exceptions.FailedConnection; @@ -60,6 +59,7 @@ import appeng.api.parts.PartItemStack; import appeng.api.parts.SelectedPart; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.client.render.CableRenderHelper; import appeng.core.AELog; @@ -103,15 +103,15 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I { IPart[] newSides = new IPart[6]; - newSides[ForgeDirection.UP.ordinal()] = this.getSide( ForgeDirection.UP ); - newSides[ForgeDirection.DOWN.ordinal()] = this.getSide( ForgeDirection.DOWN ); + newSides[AEPartLocation.UP.ordinal()] = this.getSide( AEPartLocation.UP ); + newSides[AEPartLocation.DOWN.ordinal()] = this.getSide( AEPartLocation.DOWN ); - newSides[ForgeDirection.EAST.ordinal()] = this.getSide( ForgeDirection.NORTH ); - newSides[ForgeDirection.SOUTH.ordinal()] = this.getSide( ForgeDirection.EAST ); - newSides[ForgeDirection.WEST.ordinal()] = this.getSide( ForgeDirection.SOUTH ); - newSides[ForgeDirection.NORTH.ordinal()] = this.getSide( ForgeDirection.WEST ); + newSides[AEPartLocation.EAST.ordinal()] = this.getSide( AEPartLocation.NORTH ); + newSides[AEPartLocation.SOUTH.ordinal()] = this.getSide( AEPartLocation.EAST ); + newSides[AEPartLocation.WEST.ordinal()] = this.getSide( AEPartLocation.SOUTH ); + newSides[AEPartLocation.NORTH.ordinal()] = this.getSide( AEPartLocation.WEST ); - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation dir : AEPartLocation.SIDE_LOCATIONS ) { this.setSide( dir, newSides[dir.ordinal()] ); } @@ -126,7 +126,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public boolean canAddPart( ItemStack is, ForgeDirection side ) + public boolean canAddPart( ItemStack is, AEPartLocation side ) { if( PartPlacement.isFacade( is, side ) != null ) { @@ -146,7 +146,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I if( bp instanceof IPartCable ) { boolean canPlace = true; - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { if( this.getPart( d ) != null && !this.getPart( d ).canBePlacedOn( ( (IPartCable) bp ).supportsBuses() ) ) { @@ -159,11 +159,11 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I return false; } - return this.getPart( ForgeDirection.UNKNOWN ) == null; + return this.getPart( AEPartLocation.INTERNAL ) == null; } - else if( !( bp instanceof IPartCable ) && side != ForgeDirection.UNKNOWN ) + else if( !( bp instanceof IPartCable ) && side != AEPartLocation.INTERNAL ) { - IPart cable = this.getPart( ForgeDirection.UNKNOWN ); + IPart cable = this.getPart( AEPartLocation.INTERNAL ); if( cable != null && !bp.canBePlacedOn( ( (IPartCable) cable ).supportsBuses() ) ) { return false; @@ -177,7 +177,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public ForgeDirection addPart( ItemStack is, ForgeDirection side, EntityPlayer player ) + public AEPartLocation addPart( ItemStack is, AEPartLocation side, EntityPlayer player ) { if( this.canAddPart( is, side ) ) { @@ -192,7 +192,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I if( bp instanceof IPartCable ) { boolean canPlace = true; - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { if( this.getPart( d ) != null && !this.getPart( d ).canBePlacedOn( ( (IPartCable) bp ).supportsBuses() ) ) { @@ -205,13 +205,13 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I return null; } - if( this.getPart( ForgeDirection.UNKNOWN ) != null ) + if( this.getPart( AEPartLocation.INTERNAL ) != null ) { return null; } this.setCenter( (IPartCable) bp ); - bp.setPartHostInfo( ForgeDirection.UNKNOWN, this, this.tcb.getTile() ); + bp.setPartHostInfo( AEPartLocation.INTERNAL, this, this.tcb.getTile() ); if( player != null ) { @@ -226,7 +226,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I IGridNode cn = this.getCenter().getGridNode(); if( cn != null ) { - for( ForgeDirection ins : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation ins : AEPartLocation.SIDE_LOCATIONS ) { IPart sbp = this.getPart( ins ); if( sbp != null ) @@ -236,7 +236,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I { try { - new GridConnection( cn, sn, ForgeDirection.UNKNOWN ); + new GridConnection( cn, sn, AEPartLocation.INTERNAL ); } catch( FailedConnection e ) { @@ -255,11 +255,11 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I this.markForUpdate(); this.markForSave(); this.partChanged(); - return ForgeDirection.UNKNOWN; + return AEPartLocation.INTERNAL; } - else if( bp != null && !( bp instanceof IPartCable ) && side != ForgeDirection.UNKNOWN ) + else if( bp != null && !( bp instanceof IPartCable ) && side != AEPartLocation.INTERNAL ) { - IPart cable = this.getPart( ForgeDirection.UNKNOWN ); + IPart cable = this.getPart( AEPartLocation.INTERNAL ); if( cable != null && !bp.canBePlacedOn( ( (IPartCable) cable ).supportsBuses() ) ) { return null; @@ -287,7 +287,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I { try { - new GridConnection( cn, sn, ForgeDirection.UNKNOWN ); + new GridConnection( cn, sn, AEPartLocation.INTERNAL ); } catch( FailedConnection e ) { @@ -313,19 +313,25 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public IPart getPart( ForgeDirection side ) + public IPart getPart( AEPartLocation partLocation ) { - if( side == ForgeDirection.UNKNOWN ) + if( partLocation == AEPartLocation.INTERNAL ) { return this.getCenter(); } - return this.getSide( side ); + return this.getSide( partLocation ); } @Override - public void removePart( ForgeDirection side, boolean suppressUpdate ) + public IPart getPart( EnumFacing side ) { - if( side == ForgeDirection.UNKNOWN ) + return this.getSide( AEPartLocation.fromFacing( side ) ); + } + + @Override + public void removePart( AEPartLocation side, boolean suppressUpdate ) + { + if( side == AEPartLocation.INTERNAL ) { if( this.getCenter() != null ) { @@ -388,7 +394,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public boolean isBlocked( ForgeDirection side ) + public boolean isBlocked( EnumFacing side ) { return this.tcb.isBlocked( side ); } @@ -396,7 +402,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I @Override public SelectedPart selectPart( Vec3 pos ) { - for( ForgeDirection side : ForgeDirection.values() ) + for( AEPartLocation side : AEPartLocation.values() ) { IPart p = this.getPart( side ); if( p != null ) @@ -419,7 +425,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I if( AEApi.instance().partHelper().getCableRenderMode().opaqueFacades ) { IFacadeContainer fc = this.getFacadeContainer(); - for( ForgeDirection side : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation side : AEPartLocation.SIDE_LOCATIONS ) { IFacadePart p = fc.getFacade( side ); if( p != null ) @@ -457,7 +463,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I List facades = new LinkedList(); IFacadeContainer fc = this.getFacadeContainer(); - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { IFacadePart fp = fc.getFacade( d ); if( fp != null ) @@ -470,7 +476,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I if( !facades.isEmpty() ) { TileEntity te = this.tcb.getTile(); - Platform.spawnDrops( te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord, facades ); + Platform.spawnDrops( te.getWorld(), te.getPos(), facades ); } } @@ -478,7 +484,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public boolean hasRedstone( ForgeDirection side ) + public boolean hasRedstone( AEPartLocation side ) { if( this.hasRedstone == YesNo.UNDECIDED ) { @@ -492,7 +498,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I public boolean isEmpty() { IFacadeContainer fc = this.getFacadeContainer(); - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = this.getPart( s ); if( part != null ) @@ -500,7 +506,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I return false; } - if( s != ForgeDirection.UNKNOWN ) + if( s != AEPartLocation.INTERNAL ) { IFacadePart fp = fc.getFacade( s ); if( fp != null ) @@ -539,13 +545,13 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I private void updateRedstone() { TileEntity te = this.getTile(); - this.hasRedstone = te.getWorldObj().isBlockIndirectlyGettingPowered( te.xCoord, te.yCoord, te.zCoord ) ? YesNo.YES : YesNo.NO; + this.hasRedstone = te.getWorld().isBlockIndirectlyGettingPowered( te.getPos() ) != 0 ? YesNo.YES : YesNo.NO; } public void updateDynamicRender() { this.requiresDynamicRender = false; - for( ForgeDirection s : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation s : AEPartLocation.SIDE_LOCATIONS ) { IPart p = this.getPart( s ); if( p != null ) @@ -562,9 +568,9 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I { if( this.getCenter() != null ) { - EnumSet sides = EnumSet.allOf( ForgeDirection.class ); + EnumSet sides = EnumSet.allOf( EnumFacing.class ); - for( ForgeDirection s : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing s : EnumFacing.VALUES ) { if( this.getPart( s ) != null || this.isBlocked( s ) ) { @@ -596,7 +602,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I // start with the center, then install the side parts into the grid. for( int x = 6; x >= 0; x-- ) { - ForgeDirection s = ForgeDirection.getOrientation( x ); + AEPartLocation s = AEPartLocation.fromOrdinal( x ); IPart part = this.getPart( s ); if( part != null ) @@ -604,7 +610,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I part.setPartHostInfo( s, this, te ); part.addToWorld(); - if( s != ForgeDirection.UNKNOWN ) + if( s != AEPartLocation.INTERNAL ) { IGridNode sn = part.getGridNode(); if( sn != null ) @@ -613,7 +619,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I // here? // if ( !sn.getConnections().iterator().hasNext() ) - IPart center = this.getPart( ForgeDirection.UNKNOWN ); + IPart center = this.getPart( AEPartLocation.INTERNAL ); if( center != null ) { IGridNode cn = center.getGridNode(); @@ -648,7 +654,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I this.inWorld = false; - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = this.getPart( s ); if( part != null ) @@ -661,7 +667,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public IGridNode getGridNode( ForgeDirection side ) + public IGridNode getGridNode( AEPartLocation side ) { IPart part = this.getPart( side ); if( part != null ) @@ -682,7 +688,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { IPart part = this.getPart( dir ); if( part instanceof IGridHost ) @@ -705,7 +711,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I @Override public void securityBreak() { - for( ForgeDirection d : ForgeDirection.values() ) + for( AEPartLocation d : AEPartLocation.values() ) { IPart p = this.getPart( d ); if( p instanceof IGridHost ) @@ -720,7 +726,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I List boxes = new LinkedList(); IFacadeContainer fc = this.getFacadeContainer(); - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPartCollisionHelper bch = new BusCollisionHelper( boxes, s, e, visual ); @@ -739,7 +745,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I if( AEApi.instance().partHelper().getCableRenderMode().opaqueFacades || !visual ) { - if( includeFacades && s != null && s != ForgeDirection.UNKNOWN ) + if( includeFacades && s != null && s != AEPartLocation.INTERNAL ) { IFacadePart fp = fc.getFacade( s ); if( fp != null ) @@ -754,23 +760,23 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public int isProvidingStrongPower( ForgeDirection side ) + public int isProvidingStrongPower( EnumFacing side ) { IPart part = this.getPart( side ); return part != null ? part.isProvidingStrongPower() : 0; } @Override - public int isProvidingWeakPower( ForgeDirection side ) + public int isProvidingWeakPower( EnumFacing side ) { IPart part = this.getPart( side ); return part != null ? part.isProvidingWeakPower() : 0; } @Override - public boolean canConnectRedstone( EnumSet enumSet ) + public boolean canConnectRedstone( EnumSet enumSet ) { - for( ForgeDirection dir : enumSet ) + for( EnumFacing dir : enumSet ) { IPart part = this.getPart( dir ); if( part != null && part.canConnectRedstone() ) @@ -784,7 +790,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I @Override public void onEntityCollision( Entity entity ) { - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = this.getPart( s ); if( part != null ) @@ -810,7 +816,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I { this.hasRedstone = YesNo.UNDECIDED; - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = this.getPart( s ); if( part != null ) @@ -821,15 +827,15 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public boolean isSolidOnSide( ForgeDirection side ) + public boolean isSolidOnSide( EnumFacing side ) { - if( side == null || side == ForgeDirection.UNKNOWN ) + if( side == null ) { return false; } // facades are solid.. - IFacadePart fp = this.getFacadeContainer().getFacade( side ); + IFacadePart fp = this.getFacadeContainer().getFacade( AEPartLocation.fromFacing( side ) ); if( fp != null ) { return true; @@ -843,7 +849,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I @Override public boolean isLadder( EntityLivingBase entity ) { - for( ForgeDirection side : ForgeDirection.values() ) + for( AEPartLocation side : AEPartLocation.values() ) { IPart p = this.getPart( side ); if( p != null ) @@ -859,14 +865,14 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public void randomDisplayTick( World world, int x, int y, int z, Random r ) + public void randomDisplayTick( World world, BlockPos pos, Random r ) { - for( ForgeDirection side : ForgeDirection.values() ) + for( AEPartLocation side : AEPartLocation.values() ) { IPart p = this.getPart( side ); if( p != null ) { - p.randomDisplayTick( world, x, y, z, r ); + p.randomDisplayTick( world, pos, r ); } } } @@ -876,7 +882,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I { int light = 0; - for( ForgeDirection d : ForgeDirection.values() ) + for( AEPartLocation d : AEPartLocation.values() ) { IPart p = this.getPart( d ); if( p != null ) @@ -894,7 +900,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @SideOnly( Side.CLIENT ) - public void renderStatic( double x, double y, double z ) + public void renderStatic() { CableRenderHelper.getInstance().renderStatic( this, this.getFacadeContainer() ); } @@ -910,7 +916,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I int sides = 0; for( int x = 0; x < 7; x++ ) { - IPart p = this.getPart( ForgeDirection.getOrientation( x ) ); + IPart p = this.getPart( AEPartLocation.fromOrdinal( x ) ); if( p != null ) { sides |= ( 1 << x ); @@ -922,7 +928,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I for( int x = 0; x < 7; x++ ) { ItemStack is = null; - IPart p = this.getPart( ForgeDirection.getOrientation( x ) ); + IPart p = this.getPart( AEPartLocation.fromOrdinal( x ) ); if( p != null ) { is = p.getItemStack( PartItemStack.Network ); @@ -945,7 +951,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I for( int x = 0; x < 7; x++ ) { - ForgeDirection side = ForgeDirection.getOrientation( x ); + AEPartLocation side = AEPartLocation.fromOrdinal( x ); if( ( ( sides & ( 1 << x ) ) == ( 1 << x ) ) ) { IPart p = this.getPart( side ); @@ -997,7 +1003,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I data.setInteger( "hasRedstone", this.hasRedstone.ordinal() ); IFacadeContainer fc = this.getFacadeContainer(); - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { fc.writeToNBT( data ); @@ -1016,15 +1022,15 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } } - ForgeDirection getSide( IPart part ) + AEPartLocation getSide( IPart part ) { if( this.getCenter() == part ) { - return ForgeDirection.UNKNOWN; + return AEPartLocation.INTERNAL; } else { - for( ForgeDirection side : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation side : AEPartLocation.SIDE_LOCATIONS ) { if( this.getSide( side ) == part ) { @@ -1045,7 +1051,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I for( int x = 0; x < 7; x++ ) { - ForgeDirection side = ForgeDirection.getOrientation( x ); + AEPartLocation side = AEPartLocation.fromOrdinal( x ); NBTTagCompound def = data.getCompoundTag( "def:" + side.ordinal() ); NBTTagCompound extra = data.getCompoundTag( "extra:" + side.ordinal() ); @@ -1090,7 +1096,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I public List getDrops( List drops ) { - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = this.getPart( s ); if( part != null ) @@ -1099,7 +1105,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I part.getDrops( drops, false ); } - if( s != ForgeDirection.UNKNOWN ) + if( s != AEPartLocation.INTERNAL ) { IFacadePart fp = this.getFacadeContainer().getFacade( s ); if( fp != null ) @@ -1114,7 +1120,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I public List getNoDrops( List drops ) { - for( ForgeDirection s : ForgeDirection.values() ) + for( AEPartLocation s : AEPartLocation.values() ) { IPart part = this.getPart( s ); if( part != null ) @@ -1127,9 +1133,9 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I } @Override - public boolean recolourBlock( ForgeDirection side, AEColor colour, EntityPlayer who ) + public boolean recolourBlock( EnumFacing side, AEColor colour, EntityPlayer who ) { - IPart cable = this.getPart( ForgeDirection.UNKNOWN ); + IPart cable = this.getPart( AEPartLocation.INTERNAL ); if( cable != null ) { IPartCable pc = (IPartCable) cable; diff --git a/src/main/java/appeng/parts/CableBusStorage.java b/src/main/java/appeng/parts/CableBusStorage.java index 1d24c45a..2a4949df 100644 --- a/src/main/java/appeng/parts/CableBusStorage.java +++ b/src/main/java/appeng/parts/CableBusStorage.java @@ -19,11 +19,10 @@ package appeng.parts; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.implementations.parts.IPartCable; import appeng.api.parts.IFacadePart; import appeng.api.parts.IPart; +import appeng.api.util.AEPartLocation; /** @@ -46,7 +45,7 @@ public class CableBusStorage this.center = center; } - protected IPart getSide( ForgeDirection side ) + protected IPart getSide( AEPartLocation side ) { int x = side.ordinal(); if( this.sides != null && this.sides.length > x ) @@ -57,7 +56,7 @@ public class CableBusStorage return null; } - protected void setSide( ForgeDirection side, IPart part ) + protected void setSide( AEPartLocation side, IPart part ) { int x = side.ordinal(); diff --git a/src/main/java/appeng/parts/ICableBusContainer.java b/src/main/java/appeng/parts/ICableBusContainer.java index 9a0e6b5c..03b41ec0 100644 --- a/src/main/java/appeng/parts/ICableBusContainer.java +++ b/src/main/java/appeng/parts/ICableBusContainer.java @@ -25,13 +25,12 @@ import java.util.Random; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.parts.SelectedPart; import appeng.api.util.AEColor; @@ -39,11 +38,11 @@ import appeng.api.util.AEColor; public interface ICableBusContainer { - int isProvidingStrongPower( ForgeDirection opposite ); + int isProvidingStrongPower( EnumFacing opposite ); - int isProvidingWeakPower( ForgeDirection opposite ); + int isProvidingWeakPower( EnumFacing opposite ); - boolean canConnectRedstone( EnumSet of ); + boolean canConnectRedstone( EnumSet of ); void onEntityCollision( Entity e ); @@ -51,18 +50,18 @@ public interface ICableBusContainer void onNeighborChanged(); - boolean isSolidOnSide( ForgeDirection side ); + boolean isSolidOnSide( EnumFacing side ); boolean isEmpty(); SelectedPart selectPart( Vec3 v3 ); - boolean recolourBlock( ForgeDirection side, AEColor colour, EntityPlayer who ); + boolean recolourBlock( EnumFacing side, AEColor colour, EntityPlayer who ); boolean isLadder( EntityLivingBase entity ); @SideOnly( Side.CLIENT ) - void randomDisplayTick( World world, int x, int y, int z, Random r ); + void randomDisplayTick( World world, BlockPos pos, Random r ); int getLightValue(); } diff --git a/src/main/java/appeng/parts/NullCableBusContainer.java b/src/main/java/appeng/parts/NullCableBusContainer.java index bb71bab7..1f58b031 100644 --- a/src/main/java/appeng/parts/NullCableBusContainer.java +++ b/src/main/java/appeng/parts/NullCableBusContainer.java @@ -25,10 +25,10 @@ import java.util.Random; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.parts.SelectedPart; import appeng.api.util.AEColor; @@ -37,19 +37,19 @@ public class NullCableBusContainer implements ICableBusContainer { @Override - public int isProvidingStrongPower( ForgeDirection opposite ) + public int isProvidingStrongPower( EnumFacing opposite ) { return 0; } @Override - public int isProvidingWeakPower( ForgeDirection opposite ) + public int isProvidingWeakPower( EnumFacing opposite ) { return 0; } @Override - public boolean canConnectRedstone( EnumSet of ) + public boolean canConnectRedstone( EnumSet of ) { return false; } @@ -73,7 +73,7 @@ public class NullCableBusContainer implements ICableBusContainer } @Override - public boolean isSolidOnSide( ForgeDirection side ) + public boolean isSolidOnSide( EnumFacing side ) { return false; } @@ -91,7 +91,7 @@ public class NullCableBusContainer implements ICableBusContainer } @Override - public boolean recolourBlock( ForgeDirection side, AEColor colour, EntityPlayer who ) + public boolean recolourBlock( EnumFacing side, AEColor colour, EntityPlayer who ) { return false; } @@ -103,7 +103,7 @@ public class NullCableBusContainer implements ICableBusContainer } @Override - public void randomDisplayTick( World world, int x, int y, int z, Random r ) + public void randomDisplayTick( World world, BlockPos pos, Random r ) { } diff --git a/src/main/java/appeng/parts/PartBasicState.java b/src/main/java/appeng/parts/PartBasicState.java index 3ce03b7a..a82e5a53 100644 --- a/src/main/java/appeng/parts/PartBasicState.java +++ b/src/main/java/appeng/parts/PartBasicState.java @@ -19,25 +19,23 @@ package appeng.parts; -import java.io.IOException; - import io.netty.buffer.ByteBuf; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; +import java.io.IOException; + +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.implementations.IPowerChannelState; import appeng.api.networking.GridFlags; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.parts.IPartRenderHelper; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.me.GridAccessException; @@ -69,34 +67,33 @@ public abstract class PartBasicState extends AEBasePart implements IPowerChannel } @SideOnly( Side.CLIENT ) - public void renderLights( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderLights( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - rh.normalRendering(); - this.setColors( ( this.clientFlags & ( this.POWERED_FLAG | this.CHANNEL_FLAG ) ) == ( this.POWERED_FLAG | this.CHANNEL_FLAG ), ( this.clientFlags & this.POWERED_FLAG ) == this.POWERED_FLAG ); - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.EAST, renderer ); - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.WEST, renderer ); - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.UP, renderer ); - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.DOWN, renderer ); + this.setColors( renderer, ( this.clientFlags & ( this.POWERED_FLAG | this.CHANNEL_FLAG ) ) == ( this.POWERED_FLAG | this.CHANNEL_FLAG ), ( this.clientFlags & this.POWERED_FLAG ) == this.POWERED_FLAG ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.EAST, renderer ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.WEST, renderer ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.UP, renderer ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.DOWN, renderer ); } - public void setColors( boolean hasChan, boolean hasPower ) + public void setColors( IRenderHelper renderer, boolean hasChan, boolean hasPower ) { if( hasChan ) { int l = 14; - Tessellator.instance.setBrightness( l << 20 | l << 4 ); - Tessellator.instance.setColorOpaque_I( this.getColor().blackVariant ); + renderer.setBrightness( l << 20 | l << 4 ); + renderer.setColorOpaque_I( this.getColor().blackVariant ); } else if( hasPower ) { int l = 9; - Tessellator.instance.setBrightness( l << 20 | l << 4 ); - Tessellator.instance.setColorOpaque_I( this.getColor().whiteVariant ); + renderer.setBrightness( l << 20 | l << 4 ); + renderer.setColorOpaque_I( this.getColor().whiteVariant ); } else { - Tessellator.instance.setBrightness( 0 ); - Tessellator.instance.setColorOpaque_I( 0x000000 ); + renderer.setBrightness( 0 ); + renderer.setColorOpaque_I( 0x000000 ); } } @@ -147,9 +144,9 @@ public abstract class PartBasicState extends AEBasePart implements IPowerChannel @Override @SideOnly( Side.CLIENT ) - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture( IRenderHelper renderer ) { - return CableBusTextures.PartTransitionPlaneBack.getIcon(); + return CableBusTextures.PartTransitionPlaneBack.getIcon().getAtlas(); } @Override diff --git a/src/main/java/appeng/parts/PartPlacement.java b/src/main/java/appeng/parts/PartPlacement.java index c5caf0da..fb0983ab 100644 --- a/src/main/java/appeng/parts/PartPlacement.java +++ b/src/main/java/appeng/parts/PartPlacement.java @@ -22,8 +22,6 @@ package appeng.parts; import java.util.LinkedList; import java.util.List; -import com.google.common.base.Optional; - import net.minecraft.block.Block; import net.minecraft.block.Block.SoundType; import net.minecraft.client.Minecraft; @@ -31,18 +29,17 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.event.entity.player.PlayerDestroyItemEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.TickEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; import appeng.api.AEApi; import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IItems; @@ -51,6 +48,7 @@ import appeng.api.parts.IPartHost; import appeng.api.parts.IPartItem; import appeng.api.parts.PartItemStack; import appeng.api.parts.SelectedPart; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.core.CommonHelper; import appeng.core.sync.network.NetworkHandler; @@ -61,10 +59,11 @@ import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; import appeng.integration.abstraction.IFMP; -import appeng.integration.abstraction.IImmibisMicroblocks; import appeng.util.LookDirection; import appeng.util.Platform; +import com.google.common.base.Optional; + public class PartPlacement { @@ -73,24 +72,22 @@ public class PartPlacement private final ThreadLocal placing = new ThreadLocal(); private boolean wasCanceled = false; - public static boolean place( ItemStack held, int x, int y, int z, int face, EntityPlayer player, World world, PlaceType pass, int depth ) + public static boolean place( ItemStack held, BlockPos pos, EnumFacing side, EntityPlayer player, World world, PlaceType pass, int depth ) { if( depth > 3 ) { return false; } - ForgeDirection side = ForgeDirection.getOrientation( face ); - - if( held != null && Platform.isWrench( player, held, x, y, z ) && player.isSneaking() ) + if( held != null && Platform.isWrench( player, held, pos ) && player.isSneaking() ) { - if( !Platform.hasPermissions( new DimensionalCoord( world, x, y, z ), player ) ) + if( !Platform.hasPermissions( new DimensionalCoord( world, pos ), player ) ) { return false; } - Block block = world.getBlock( x, y, z ); - TileEntity tile = world.getTileEntity( x, y, z ); + Block block = world.getBlockState( pos ).getBlock(); + TileEntity tile = world.getTileEntity( pos ); IPartHost host = null; if( tile instanceof IPartHost ) @@ -103,11 +100,11 @@ public class PartPlacement if( !world.isRemote ) { LookDirection dir = Platform.getPlayerRay( player, getEyeOffset( player ) ); - MovingObjectPosition mop = block.collisionRayTrace( world, x, y, z, dir.a, dir.b ); + MovingObjectPosition mop = block.collisionRayTrace( world, pos, dir.a, dir.b ); if( mop != null ) { List is = new LinkedList(); - SelectedPart sp = selectPart( player, host, mop.hitVec.addVector( -mop.blockX, -mop.blockY, -mop.blockZ ) ); + SelectedPart sp = selectPart( player, host, mop.hitVec.addVector( -mop.getBlockPos().getX(), -mop.getBlockPos().getY(), -mop.getBlockPos().getZ() ) ); if( sp.part != null ) { @@ -120,7 +117,7 @@ public class PartPlacement { is.add( sp.facade.getItemStack() ); host.getFacadeContainer().removeFacade( host, sp.side ); - Platform.notifyBlocksOfNeighbors( world, x, y, z ); + Platform.notifyBlocksOfNeighbors( world, pos ); } if( host.isEmpty() ) @@ -130,14 +127,14 @@ public class PartPlacement if( !is.isEmpty() ) { - Platform.spawnDrops( world, x, y, z, is ); + Platform.spawnDrops( world, pos, is ); } } } else { player.swingItem(); - NetworkHandler.instance.sendToServer( new PacketPartPlacement( x, y, z, face, getEyeOffset( player ) ) ); + NetworkHandler.instance.sendToServer( new PacketPartPlacement( pos, side, getEyeOffset( player ) ) ); } return true; } @@ -145,7 +142,7 @@ public class PartPlacement return false; } - TileEntity tile = world.getTileEntity( x, y, z ); + TileEntity tile = world.getTileEntity( pos ); IPartHost host = null; if( tile instanceof IPartHost ) @@ -155,19 +152,19 @@ public class PartPlacement if( held != null ) { - IFacadePart fp = isFacade( held, side ); + IFacadePart fp = isFacade( held, AEPartLocation.fromFacing( side ) ); if( fp != null ) { if( host != null ) { if( !world.isRemote ) { - if( host.getPart( ForgeDirection.UNKNOWN ) == null ) + if( host.getPart( AEPartLocation.INTERNAL ) == null ) { return false; } - if( host.canAddPart( held, side ) ) + if( host.canAddPart( held, AEPartLocation.fromFacing( side ) ) ) { if( host.getFacadeContainer().addFacade( fp ) ) { @@ -188,7 +185,7 @@ public class PartPlacement else { player.swingItem(); - NetworkHandler.instance.sendToServer( new PacketPartPlacement( x, y, z, face, getEyeOffset( player ) ) ); + NetworkHandler.instance.sendToServer( new PacketPartPlacement( pos, side, getEyeOffset( player ) ) ); return true; } } @@ -196,6 +193,10 @@ public class PartPlacement } } + // TODO: IFMP INTEGRATION + // TODO IIMMIBISMICROBLOCKS INTEGRATION + + /* if( host == null && tile != null && IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.FMP ) ) { host = ( (IFMP) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.FMP ) ).getOrCreateHost( tile ); @@ -205,17 +206,18 @@ public class PartPlacement { host = ( (IImmibisMicroblocks) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.ImmibisMicroblocks ) ).getOrCreateHost( player, face, tile ); } - + */ + // if ( held == null ) { - Block block = world.getBlock( x, y, z ); + Block block = world.getBlockState( pos ).getBlock(); if( host != null && player.isSneaking() && block != null ) { LookDirection dir = Platform.getPlayerRay( player, getEyeOffset( player ) ); - MovingObjectPosition mop = block.collisionRayTrace( world, x, y, z, dir.a, dir.b ); + MovingObjectPosition mop = block.collisionRayTrace( world, pos, dir.a, dir.b ); if( mop != null ) { - mop.hitVec = mop.hitVec.addVector( -mop.blockX, -mop.blockY, -mop.blockZ ); + mop.hitVec = mop.hitVec.addVector( -mop.getBlockPos().getX(), -mop.getBlockPos().getY(), -mop.getBlockPos().getZ() ); SelectedPart sPart = selectPart( player, host, mop.hitVec ); if( sPart != null && sPart.part != null ) { @@ -223,7 +225,7 @@ public class PartPlacement { if( world.isRemote ) { - NetworkHandler.instance.sendToServer( new PacketPartPlacement( x, y, z, face, getEyeOffset( player ) ) ); + NetworkHandler.instance.sendToServer( new PacketPartPlacement( pos, side, getEyeOffset( player ) ) ); } return true; } @@ -237,17 +239,15 @@ public class PartPlacement return false; } - int te_x = x; - int te_y = y; - int te_z = z; + BlockPos te_pos = pos; final IBlockDefinition multiPart = AEApi.instance().definitions().blocks().multiPart(); if( host == null && pass == PlaceType.PLACE_ITEM ) { - ForgeDirection offset = ForgeDirection.UNKNOWN; + EnumFacing offset = null; - Block blkID = world.getBlock( x, y, z ); - if( blkID != null && !blkID.isReplaceable( world, x, y, z ) ) + Block blkID = world.getBlockState( pos ).getBlock(); + if( blkID != null && !blkID.isReplaceable( world, pos ) ) { offset = side; if( Platform.isServer() ) @@ -256,16 +256,18 @@ public class PartPlacement } } - te_x = x + offset.offsetX; - te_y = y + offset.offsetY; - te_z = z + offset.offsetZ; + te_pos = offset == null ? pos : pos.offset( offset ); - tile = world.getTileEntity( te_x, te_y, te_z ); + tile = world.getTileEntity( te_pos ); if( tile instanceof IPartHost ) { host = (IPartHost) tile; } + // TODO: IFMP INTEGRATION + // TODO IIMMIBISMICROBLOCKS INTEGRATION + + /* if( host == null && tile != null && IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.FMP ) ) { host = ( (IFMP) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.FMP ) ).getOrCreateHost( tile ); @@ -273,22 +275,23 @@ public class PartPlacement if( host == null && tile != null && IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.ImmibisMicroblocks ) ) { - host = ( (IImmibisMicroblocks) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.ImmibisMicroblocks ) ).getOrCreateHost( player, face, tile ); + host = ( (IImmibisMicroblocks) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.ImmibisMicroblocks ) ).getOrCreateHost( player, side, tile ); } - + */ + final Optional maybeMultiPartStack = multiPart.maybeStack( 1 ); final Optional maybeMultiPartBlock = multiPart.maybeBlock(); final Optional maybeMultiPartItemBlock = multiPart.maybeItemBlock(); final boolean hostIsNotPresent = host == null; final boolean multiPartPresent = maybeMultiPartBlock.isPresent() && maybeMultiPartStack.isPresent() && maybeMultiPartItemBlock.isPresent(); - final boolean canMultiPartBePlaced = maybeMultiPartBlock.get().canPlaceBlockAt( world, te_x, te_y, te_z ); + final boolean canMultiPartBePlaced = maybeMultiPartBlock.get().canPlaceBlockAt( world, te_pos ); - if( hostIsNotPresent && multiPartPresent && canMultiPartBePlaced && maybeMultiPartItemBlock.get().placeBlockAt( maybeMultiPartStack.get(), player, world, te_x, te_y, te_z, side.ordinal(), 0.5f, 0.5f, 0.5f, 0 ) ) + if( hostIsNotPresent && multiPartPresent && canMultiPartBePlaced && maybeMultiPartItemBlock.get().placeBlockAt( maybeMultiPartStack.get(), player, world, te_pos, side, 0.5f, 0.5f, 0.5f, maybeMultiPartBlock.get().getDefaultState() ) ) { if( !world.isRemote ) { - tile = world.getTileEntity( te_x, te_y, te_z ); + tile = world.getTileEntity( te_pos ); if( tile instanceof IPartHost ) { @@ -300,11 +303,11 @@ public class PartPlacement else { player.swingItem(); - NetworkHandler.instance.sendToServer( new PacketPartPlacement( x, y, z, face, getEyeOffset( player ) ) ); + NetworkHandler.instance.sendToServer( new PacketPartPlacement( pos, side, getEyeOffset( player ) ) ); return true; } } - else if( host != null && !host.canAddPart( held, side ) ) + else if( host != null && !host.canAddPart( held, AEPartLocation.fromFacing( side ) ) ) { return false; } @@ -315,25 +318,23 @@ public class PartPlacement return false; } - if( !host.canAddPart( held, side ) ) + if( !host.canAddPart( held, AEPartLocation.fromFacing( side ) ) ) { if( pass == PlaceType.INTERACT_FIRST_PASS || pass == PlaceType.PLACE_ITEM ) { - te_x = x + side.offsetX; - te_y = y + side.offsetY; - te_z = z + side.offsetZ; - - Block blkID = world.getBlock( te_x, te_y, te_z ); - tile = world.getTileEntity( te_x, te_y, te_z ); + te_pos = pos.offset( side ); + + Block blkID = world.getBlockState( te_pos ).getBlock(); + tile = world.getTileEntity( te_pos ); if( tile != null && IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.FMP ) ) { host = ( (IFMP) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.FMP ) ).getOrCreateHost( tile ); } - if( ( blkID == null || blkID.isReplaceable( world, te_x, te_y, te_z ) || host != null ) && side != ForgeDirection.UNKNOWN ) + if( ( blkID == null || blkID.isReplaceable( world, te_pos ) || host != null ) ) ///&& side != AEPartLocation.INTERNAL ) { - return place( held, te_x, te_y, te_z, side.getOpposite().ordinal(), player, world, pass == PlaceType.INTERACT_FIRST_PASS ? PlaceType.INTERACT_SECOND_PASS : PlaceType.PLACE_ITEM, depth + 1 ); + return place( held, te_pos, side.getOpposite(), player, world, pass == PlaceType.INTERACT_FIRST_PASS ? PlaceType.INTERACT_SECOND_PASS : PlaceType.PLACE_ITEM, depth + 1 ); } } return false; @@ -341,12 +342,12 @@ public class PartPlacement if( !world.isRemote ) { - Block block = world.getBlock( x, y, z ); + Block block = world.getBlockState( pos ).getBlock(); LookDirection dir = Platform.getPlayerRay( player, getEyeOffset( player ) ); - MovingObjectPosition mop = block.collisionRayTrace( world, x, y, z, dir.a, dir.b ); + MovingObjectPosition mop = block.collisionRayTrace( world, pos, dir.a, dir.b ); if( mop != null ) { - SelectedPart sp = selectPart( player, host, mop.hitVec.addVector( -mop.blockX, -mop.blockY, -mop.blockZ ) ); + SelectedPart sp = selectPart( player, host, mop.hitVec.addVector( -mop.getBlockPos().getX(), -mop.getBlockPos().getY(), -mop.getBlockPos().getZ() ) ); if( sp.part != null ) { @@ -363,14 +364,14 @@ public class PartPlacement return false; } - ForgeDirection mySide = host.addPart( held, side, player ); + AEPartLocation mySide = host.addPart( held, AEPartLocation.fromFacing( side ), player ); if( mySide != null ) { for( Block multiPartBlock : multiPart.maybeBlock().asSet() ) { final SoundType ss = multiPartBlock.stepSound; - world.playSoundEffect( 0.5 + x, 0.5 + y, 0.5 + z, ss.func_150496_b(), ( ss.getVolume() + 1.0F ) / 2.0F, ss.getPitch() * 0.8F ); + world.playSoundEffect( 0.5 + pos.getX(), 0.5 + pos.getY(), 0.5 + pos.getZ(), ss.getPlaceSound(), ( ss.getVolume() + 1.0F ) / 2.0F, ss.getFrequency() * 0.8F ); } if( !player.capabilities.isCreativeMode ) @@ -387,7 +388,7 @@ public class PartPlacement else { player.swingItem(); - NetworkHandler.instance.sendToServer( new PacketPartPlacement( x, y, z, face, getEyeOffset( player ) ) ); + NetworkHandler.instance.sendToServer( new PacketPartPlacement( pos, side, getEyeOffset( player ) ) ); } return true; } @@ -411,7 +412,7 @@ public class PartPlacement return sp; } - public static IFacadePart isFacade( ItemStack held, ForgeDirection side ) + public static IFacadePart isFacade( ItemStack held, AEPartLocation side ) { if( held.getItem() instanceof IFacadeItem ) { @@ -447,12 +448,12 @@ public class PartPlacement float f = 1.0F; double d0 = mc.playerController.getBlockReachDistance(); - Vec3 vec3 = mc.renderViewEntity.getPosition( f ); + Vec3 vec3 = mc.getRenderViewEntity().getPositionEyes( f ); if( mop != null && mop.hitVec.distanceTo( vec3 ) < d0 ) { World w = event.entity.worldObj; - TileEntity te = w.getTileEntity( mop.blockX, mop.blockY, mop.blockZ ); + TileEntity te = w.getTileEntity( mop.getBlockPos() ); if( te instanceof IPartHost && this.wasCanceled ) { event.setCanceled( true ); @@ -468,7 +469,7 @@ public class PartPlacement if( event.entityPlayer.isSneaking() && held != null && supportedItem ) { - NetworkHandler.instance.sendToServer( new PacketClick( event.x, event.y, event.z, event.face, 0, 0, 0 ) ); + NetworkHandler.instance.sendToServer( new PacketClick( event.pos, event.face, 0, 0, 0 ) ); } } } @@ -482,7 +483,7 @@ public class PartPlacement this.placing.set( event ); ItemStack held = event.entityPlayer.getHeldItem(); - if( place( held, event.x, event.y, event.z, event.face, event.entityPlayer, event.entityPlayer.worldObj, PlaceType.INTERACT_FIRST_PASS, 0 ) ) + if( place( held, event.pos, event.face, event.entityPlayer, event.entityPlayer.worldObj, PlaceType.INTERACT_FIRST_PASS, 0 ) ) { event.setCanceled( true ); this.wasCanceled = true; diff --git a/src/main/java/appeng/parts/automation/BlockUpgradeInventory.java b/src/main/java/appeng/parts/automation/BlockUpgradeInventory.java index 08167930..62151f33 100644 --- a/src/main/java/appeng/parts/automation/BlockUpgradeInventory.java +++ b/src/main/java/appeng/parts/automation/BlockUpgradeInventory.java @@ -5,7 +5,6 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; - import appeng.api.config.Upgrades; import appeng.tile.inventory.IAEAppEngInventory; diff --git a/src/main/java/appeng/parts/automation/DefinitionUpgradeInventory.java b/src/main/java/appeng/parts/automation/DefinitionUpgradeInventory.java index 35fbaf5a..64cbd57a 100644 --- a/src/main/java/appeng/parts/automation/DefinitionUpgradeInventory.java +++ b/src/main/java/appeng/parts/automation/DefinitionUpgradeInventory.java @@ -2,7 +2,6 @@ package appeng.parts.automation; import net.minecraft.item.ItemStack; - import appeng.api.config.Upgrades; import appeng.api.definitions.IItemDefinition; import appeng.tile.inventory.IAEAppEngInventory; diff --git a/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java b/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java index 48ba922b..d466e359 100644 --- a/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java +++ b/src/main/java/appeng/parts/automation/PartAnnihilationPlane.java @@ -22,24 +22,19 @@ package appeng.parts.automation; import java.util.List; import java.util.concurrent.Callable; -import com.google.common.collect.Lists; - import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.networking.IGridNode; @@ -58,7 +53,10 @@ import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; import appeng.api.storage.data.IAEItemStack; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; +import appeng.client.texture.IAESprite; import appeng.core.settings.TickRates; import appeng.core.sync.packets.PacketTransitionEffect; import appeng.hooks.TickHandler; @@ -68,13 +66,15 @@ import appeng.server.ServerHelper; import appeng.util.Platform; import appeng.util.item.AEItemStack; +import com.google.common.collect.Lists; + public class PartAnnihilationPlane extends PartBasicState implements IGridTickable, Callable { - private final static IIcon SIDE_ICON = CableBusTextures.PartPlaneSides.getIcon(); - private final static IIcon BACK_ICON = CableBusTextures.PartTransitionPlaneBack.getIcon(); - private final static IIcon STATUS_ICON = CableBusTextures.PartMonitorSidesStatus.getIcon(); - private final static IIcon ACTIVE_ICON = CableBusTextures.BlockAnnihilationPlaneOn.getIcon(); + private final static IAESprite SIDE_ICON = CableBusTextures.PartPlaneSides.getIcon(); + private final static IAESprite BACK_ICON = CableBusTextures.PartTransitionPlaneBack.getIcon(); + private final static IAESprite STATUS_ICON = CableBusTextures.PartMonitorSidesStatus.getIcon(); + private final static IAESprite ACTIVE_ICON = CableBusTextures.BlockAnnihilationPlaneOn.getIcon(); private final BaseActionSource mySrc = new MachineSource( this ); private boolean isAccepting = true; @@ -105,29 +105,27 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab { final TileEntity te = host.getTile(); - final int x = te.xCoord; - final int y = te.yCoord; - final int z = te.zCoord; + BlockPos pos = te.getPos(); - final ForgeDirection e = bch.getWorldX(); - final ForgeDirection u = bch.getWorldY(); + final EnumFacing e = bch.getWorldX(); + final EnumFacing u = bch.getWorldY(); - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x - e.offsetX, y - e.offsetY, z - e.offsetZ ), this.side ) ) + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( e.getOpposite() ) ), this.side ) ) { minX = 0; } - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x + e.offsetX, y + e.offsetY, z + e.offsetZ ), this.side ) ) + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( e ) ), this.side ) ) { maxX = 16; } - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x - u.offsetX, y - u.offsetY, z - u.offsetZ ), this.side ) ) + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( u.getOpposite() ) ), this.side ) ) { minY = 0; } - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x + u.offsetX, y + u.offsetY, z + u.offsetZ ), this.side ) ) + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( e ) ), this.side ) ) { maxY = 16; } @@ -139,9 +137,9 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( SIDE_ICON, SIDE_ICON, BACK_ICON, this.is.getIconIndex(), SIDE_ICON, SIDE_ICON ); + rh.setTexture( SIDE_ICON, SIDE_ICON, BACK_ICON, renderer.getIcon( is ), SIDE_ICON, SIDE_ICON ); rh.setBounds( 1, 1, 15, 15, 15, 16 ); rh.renderInventoryBox( renderer ); @@ -152,57 +150,57 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderStaticWithIcon( x, y, z, rh, renderer, ACTIVE_ICON ); + this.renderStaticWithIcon( pos, rh, renderer, ACTIVE_ICON ); } - protected void renderStaticWithIcon( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer, IIcon activeIcon ) + protected void renderStaticWithIcon( BlockPos opos, IPartRenderHelper rh, IRenderHelper renderer, IAESprite activeIcon ) { int minX = 1; int minY = 1; int maxX = 15; int maxY = 15; - final ForgeDirection e = rh.getWorldX(); - final ForgeDirection u = rh.getWorldY(); + final EnumFacing e = rh.getWorldX(); + final EnumFacing u = rh.getWorldY(); final TileEntity te = this.getHost().getTile(); - - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x - e.offsetX, y - e.offsetY, z - e.offsetZ ), this.side ) ) + BlockPos pos = te.getPos(); + + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( e.getOpposite() ) ), this.side ) ) { minX = 0; } - - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x + e.offsetX, y + e.offsetY, z + e.offsetZ ), this.side ) ) + + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( e ) ), this.side ) ) { maxX = 16; } - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x - u.offsetX, y - u.offsetY, z - u.offsetZ ), this.side ) ) + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( u.getOpposite() ) ), this.side ) ) { minY = 0; } - if( this.isAnnihilationPlane( te.getWorldObj().getTileEntity( x + u.offsetX, y + u.offsetY, z + u.offsetZ ), this.side ) ) + if( this.isAnnihilationPlane( te.getWorld().getTileEntity( pos.offset( e) ), this.side ) ) { maxY = 16; } final boolean isActive = ( this.clientFlags & ( PartBasicState.POWERED_FLAG | PartBasicState.CHANNEL_FLAG ) ) == ( PartBasicState.POWERED_FLAG | PartBasicState.CHANNEL_FLAG ); - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( SIDE_ICON, SIDE_ICON, BACK_ICON, isActive ? activeIcon : this.is.getIconIndex(), SIDE_ICON, SIDE_ICON ); + rh.setTexture( SIDE_ICON, SIDE_ICON, BACK_ICON, isActive ? activeIcon : renderer.getIcon( is ), SIDE_ICON, SIDE_ICON ); rh.setBounds( minX, minY, 15, maxX, maxY, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( opos, renderer ); - rh.setTexture( STATUS_ICON, STATUS_ICON, BACK_ICON, isActive ? activeIcon : this.is.getIconIndex(), STATUS_ICON, STATUS_ICON ); + rh.setTexture( STATUS_ICON, STATUS_ICON, BACK_ICON, isActive ? activeIcon : renderer.getIcon( is ), STATUS_ICON, STATUS_ICON ); rh.setBounds( 5, 5, 14, 11, 11, 15 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( opos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( opos, rh, renderer ); } @Override @@ -225,16 +223,17 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab if( this.isAccepting && entity instanceof EntityItem && !entity.isDead && Platform.isServer() && this.proxy.isActive() ) { boolean capture = false; + BlockPos pos = tile.getPos(); switch( this.side ) { case DOWN: case UP: - if( entity.posX > this.tile.xCoord && entity.posX < this.tile.xCoord + 1 ) + if( entity.posX > pos.getX() && entity.posX < pos.getX() + 1 ) { - if( entity.posZ > this.tile.zCoord && entity.posZ < this.tile.zCoord + 1 ) + if( entity.posZ > pos.getZ() && entity.posZ < pos.getZ() + 1 ) { - if( ( entity.posY > this.tile.yCoord + 0.9 && this.side == ForgeDirection.UP ) || ( entity.posY < this.tile.yCoord + 0.1 && this.side == ForgeDirection.DOWN ) ) + if( ( entity.posY > pos.getY() + 0.9 && this.side == AEPartLocation.UP ) || ( entity.posY < pos.getY() + 0.1 && this.side == AEPartLocation.DOWN ) ) { capture = true; } @@ -243,11 +242,11 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab break; case SOUTH: case NORTH: - if( entity.posX > this.tile.xCoord && entity.posX < this.tile.xCoord + 1 ) + if( entity.posX > pos.getX() && entity.posX < pos.getX() + 1 ) { - if( entity.posY > this.tile.yCoord && entity.posY < this.tile.yCoord + 1 ) + if( entity.posY > pos.getY() && entity.posY < pos.getY() + 1 ) { - if( ( entity.posZ > this.tile.zCoord + 0.9 && this.side == ForgeDirection.SOUTH ) || ( entity.posZ < this.tile.zCoord + 0.1 && this.side == ForgeDirection.NORTH ) ) + if( ( entity.posZ > pos.getZ() + 0.9 && this.side == AEPartLocation.SOUTH ) || ( entity.posZ < pos.getZ() + 0.1 && this.side == AEPartLocation.NORTH ) ) { capture = true; } @@ -256,11 +255,11 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab break; case EAST: case WEST: - if( entity.posZ > this.tile.zCoord && entity.posZ < this.tile.zCoord + 1 ) + if( entity.posZ > pos.getZ() && entity.posZ < pos.getZ() + 1 ) { - if( entity.posY > this.tile.yCoord && entity.posY < this.tile.yCoord + 1 ) + if( entity.posY > pos.getY() && entity.posY < pos.getY() + 1 ) { - if( ( entity.posX > this.tile.xCoord + 0.9 && this.side == ForgeDirection.EAST ) || ( entity.posX < this.tile.xCoord + 0.1 && this.side == ForgeDirection.WEST ) ) + if( ( entity.posX > pos.getX() + 0.9 && this.side == AEPartLocation.EAST ) || ( entity.posX < pos.getX() + 0.1 && this.side == AEPartLocation.WEST ) ) { capture = true; } @@ -274,7 +273,7 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab if( capture ) { - ServerHelper.proxy.sendToAllNearExcept( null, this.tile.xCoord, this.tile.yCoord, this.tile.zCoord, 64, this.tile.getWorldObj(), new PacketTransitionEffect( entity.posX, entity.posY, entity.posZ, this.side, false ) ); + ServerHelper.proxy.sendToAllNearExcept( null, pos.getX(), pos.getY(), pos.getZ(), 64, this.tile.getWorld(), new PacketTransitionEffect( entity.posX, entity.posY, entity.posZ, this.side, false ) ); this.storeEntityItem( (EntityItem) entity ); } } @@ -332,16 +331,13 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab } final TileEntity tileEntity = this.getTile(); - final WorldServer world = (WorldServer) tileEntity.getWorldObj(); + final WorldServer world = (WorldServer) tileEntity.getWorld(); - final int x = tileEntity.xCoord + this.side.offsetX; - final int y = tileEntity.yCoord + this.side.offsetY; - final int z = tileEntity.zCoord + this.side.offsetZ; - - Platform.spawnDrops( world, x, y, z, Lists.newArrayList( overflow.getItemStack() ) ); + BlockPos pos = tileEntity.getPos().offset( side.getFacing() ); + Platform.spawnDrops( world, pos, Lists.newArrayList( overflow.getItemStack() ) ); } - protected boolean isAnnihilationPlane( TileEntity blockTileEntity, ForgeDirection side ) + protected boolean isAnnihilationPlane( TileEntity blockTileEntity, AEPartLocation side ) { if( blockTileEntity instanceof IPartHost ) { @@ -374,18 +370,16 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab try { final TileEntity te = this.getTile(); - final WorldServer w = (WorldServer) te.getWorldObj(); + final WorldServer w = (WorldServer) te.getWorld(); - final int x = te.xCoord + this.side.offsetX; - final int y = te.yCoord + this.side.offsetY; - final int z = te.zCoord + this.side.offsetZ; + BlockPos pos = te.getPos().offset( side.getFacing() ); final IEnergyGrid energy = this.proxy.getEnergy(); - if( this.canHandleBlock( w, x, y, z ) ) + if( this.canHandleBlock( w, pos ) ) { - final List items = this.obtainBlockDrops( w, x, y, z ); - final float requiredPower = this.calculateEnergyUsage( w, x, y, z, items ); + final List items = this.obtainBlockDrops( w, pos ); + final float requiredPower = this.calculateEnergyUsage( w, pos, items ); final boolean hasPower = energy.extractAEPower( requiredPower, Actionable.SIMULATE, PowerMultiplier.CONFIG ) > requiredPower - 0.1; final boolean canStore = this.canStoreItemStacks( items ); @@ -395,13 +389,13 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab if( modulate ) { energy.extractAEPower( requiredPower, Actionable.MODULATE, PowerMultiplier.CONFIG ); - this.breakBlockAndStoreItems( w, x, y, z, items ); - ServerHelper.proxy.sendToAllNearExcept( null, x, y, z, 64, w, new PacketTransitionEffect( x, y, z, this.side, true ) ); + this.breakBlockAndStoreItems( w, pos, items ); + ServerHelper.proxy.sendToAllNearExcept( null, pos.getX(),pos.getY(),pos.getZ(), 64, w, new PacketTransitionEffect( pos.getX(),pos.getY(),pos.getZ(), this.side, true ) ); } else { this.breaking = true; - TickHandler.INSTANCE.addCallable( this.tile.getWorldObj(), this ); + TickHandler.INSTANCE.addCallable( this.tile.getWorld(), this ); } return TickRateModulation.URGENT; } @@ -438,30 +432,30 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab /** * Checks if this plane can handle the block at the specific coordinates. */ - protected boolean canHandleBlock( WorldServer w, int x, int y, int z ) + protected boolean canHandleBlock( WorldServer w, BlockPos pos ) { - final Block block = w.getBlock( x, y, z ); + final Block block = w.getBlockState( pos ).getBlock(); final Material material = block.getMaterial(); - final float hardness = block.getBlockHardness( w, x, y, z ); + final float hardness = block.getBlockHardness( w, pos ); final boolean ignoreMaterials = material == Material.air || material == Material.lava || material == Material.water || material.isLiquid(); final boolean ignoreBlocks = block == Blocks.bedrock || block == Blocks.end_portal || block == Blocks.end_portal_frame || block == Blocks.command_block; - return !ignoreMaterials && !ignoreBlocks && !w.isAirBlock( x, y, z ) && w.blockExists( x, y, z ) && w.canMineBlock( Platform.getPlayer( w ), x, y, z ) && hardness >= 0f; + return !ignoreMaterials && !ignoreBlocks && !w.isAirBlock( pos ) && w.isBlockLoaded( pos ) && w.canMineBlockBody( Platform.getPlayer( w ), pos ) && hardness >= 0f; } - protected List obtainBlockDrops( WorldServer w, int x, int y, int z ) + protected List obtainBlockDrops( WorldServer w, BlockPos pos ) { - final ItemStack[] out = Platform.getBlockDrops( w, x, y, z ); + final ItemStack[] out = Platform.getBlockDrops( w, pos ); return Lists.newArrayList( out ); } /** * Checks if this plane can handle the block at the specific coordinates. */ - protected float calculateEnergyUsage( WorldServer w, int x, int y, int z, List items ) + protected float calculateEnergyUsage( WorldServer w, BlockPos pos, List items ) { - final Block block = w.getBlock( x, y, z ); - final float hardness = block.getBlockHardness( w, x, y, z ); + final Block block = w.getBlockState( pos ).getBlock(); + final float hardness = block.getBlockHardness( w, pos ); float requiredEnergy = 1 + hardness; for( final ItemStack is : items ) @@ -508,11 +502,11 @@ public class PartAnnihilationPlane extends PartBasicState implements IGridTickab return canStore; } - protected void breakBlockAndStoreItems( WorldServer w, int x, int y, int z, List items ) + protected void breakBlockAndStoreItems( WorldServer w, BlockPos pos, List items ) { - w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 ); - - final AxisAlignedBB box = AxisAlignedBB.getBoundingBox( x - 0.2, y - 0.2, z - 0.2, x + 1.2, y + 1.2, z + 1.2 ); + w.setBlockToAir( pos ); + + final AxisAlignedBB box = AxisAlignedBB.fromBounds( pos.getX() - 0.2, pos.getY() - 0.2, pos.getZ() - 0.2, pos.getX() + 1.2, pos.getY() + 1.2, pos.getZ() + 1.2 ); for( final Object ei : w.getEntitiesWithinAABB( EntityItem.class, box ) ) { if( ei instanceof EntityItem ) diff --git a/src/main/java/appeng/parts/automation/PartExportBus.java b/src/main/java/appeng/parts/automation/PartExportBus.java index ef005cd3..29bcb7d0 100644 --- a/src/main/java/appeng/parts/automation/PartExportBus.java +++ b/src/main/java/appeng/parts/automation/PartExportBus.java @@ -19,18 +19,13 @@ package appeng.parts.automation; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; - -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.util.Vec3; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; import appeng.api.config.PowerMultiplier; @@ -52,6 +47,7 @@ import appeng.api.parts.IPartRenderHelper; import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEMonitor; import appeng.api.storage.data.IAEItemStack; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.core.AELog; import appeng.core.settings.TickRates; @@ -63,6 +59,9 @@ import appeng.util.InventoryAdaptor; import appeng.util.Platform; import appeng.util.item.AEItemStack; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; + public class PartExportBus extends PartSharedItemBus implements ICraftingRequester { @@ -144,7 +143,7 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest { if( this.isCraftingEnabled() ) { - this.didSomething = this.cratingTracker.handleCrafting( x, this.itemToSend, ais, d, this.getTile().getWorldObj(), this.proxy.getGrid(), cg, this.mySrc ) || this.didSomething; + this.didSomething = this.cratingTracker.handleCrafting( x, this.itemToSend, ais, d, this.getTile().getWorld(), this.proxy.getGrid(), cg, this.mySrc ) || this.didSomething; } continue; } @@ -169,7 +168,7 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest if( this.itemToSend == before && this.isCraftingEnabled() ) { - this.didSomething = this.cratingTracker.handleCrafting( x, this.itemToSend, ais, d, this.getTile().getWorldObj(), this.proxy.getGrid(), cg, this.mySrc ) || this.didSomething; + this.didSomething = this.cratingTracker.handleCrafting( x, this.itemToSend, ais, d, this.getTile().getWorld(), this.proxy.getGrid(), cg, this.mySrc ) || this.didSomething; } } } @@ -193,10 +192,10 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon() ); + rh.setTexture( CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon() ); rh.setBounds( 4, 4, 12, 12, 12, 14 ); rh.renderInventoryBox( renderer ); @@ -210,26 +209,25 @@ public class PartExportBus extends PartSharedItemBus implements ICraftingRequest @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon() ); + rh.setTexture( CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartExportSides.getIcon(), CableBusTextures.PartExportSides.getIcon() ); rh.setBounds( 4, 4, 12, 12, 12, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 5, 5, 14, 11, 11, 15 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 6, 6, 15, 10, 10, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); rh.setBounds( 6, 6, 11, 10, 10, 12 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( pos, rh, renderer ); } @Override diff --git a/src/main/java/appeng/parts/automation/PartFormationPlane.java b/src/main/java/appeng/parts/automation/PartFormationPlane.java index c978c4f8..f7a0cb8b 100644 --- a/src/main/java/appeng/parts/automation/PartFormationPlane.java +++ b/src/main/java/appeng/parts/automation/PartFormationPlane.java @@ -22,7 +22,6 @@ package appeng.parts.automation; import java.util.ArrayList; import java.util.List; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -35,16 +34,15 @@ import net.minecraft.item.ItemSkull; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.common.IPlantable; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -69,7 +67,9 @@ import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.AEPartLocation; import appeng.api.util.IConfigManager; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.core.AEConfig; import appeng.core.sync.GuiBridge; @@ -233,29 +233,27 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine { TileEntity te = host.getTile(); - int x = te.xCoord; - int y = te.yCoord; - int z = te.zCoord; + BlockPos pos = te.getPos(); - ForgeDirection e = bch.getWorldX(); - ForgeDirection u = bch.getWorldY(); + EnumFacing e = bch.getWorldX(); + EnumFacing u = bch.getWorldY(); - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x - e.offsetX, y - e.offsetY, z - e.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( e.getOpposite() ) ), this.side ) ) { minX = 0; } - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x + e.offsetX, y + e.offsetY, z + e.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( e) ), this.side ) ) { maxX = 16; } - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x - u.offsetX, y - u.offsetY, z - u.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( u.getOpposite() ) ), this.side ) ) { minY = 0; } - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x + u.offsetX, y + u.offsetY, z + u.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( u) ), this.side ) ) { maxY = 16; } @@ -267,9 +265,9 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartTransitionPlaneBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon() ); + rh.setTexture( CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartTransitionPlaneBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon() ); rh.setBounds( 1, 1, 15, 15, 15, 16 ); rh.renderInventoryBox( renderer ); @@ -280,66 +278,64 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos opos, IPartRenderHelper rh, IRenderHelper renderer ) { int minX = 1; int minY = 1; int maxX = 15; int maxY = 15; - ForgeDirection e = rh.getWorldX(); - ForgeDirection u = rh.getWorldY(); + EnumFacing e = rh.getWorldX(); + EnumFacing u = rh.getWorldY(); TileEntity te = this.getHost().getTile(); + BlockPos pos = te.getPos(); - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x - e.offsetX, y - e.offsetY, z - e.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( e.getOpposite() ) ), this.side ) ) { minX = 0; } - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x + e.offsetX, y + e.offsetY, z + e.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( e ) ), this.side ) ) { maxX = 16; } - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x - u.offsetX, y - u.offsetY, z - u.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( u.getOpposite() ) ), this.side ) ) { minY = 0; } - if( this.isTransitionPlane( te.getWorldObj().getTileEntity( x + u.offsetX, y + u.offsetY, z + u.offsetZ ), this.side ) ) + if( this.isTransitionPlane( te.getWorld().getTileEntity( pos.offset( u ) ), this.side ) ) { maxY = 16; } boolean isActive = ( this.clientFlags & ( this.POWERED_FLAG | this.CHANNEL_FLAG ) ) == ( this.POWERED_FLAG | this.CHANNEL_FLAG ); - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartTransitionPlaneBack.getIcon(), isActive ? CableBusTextures.BlockFormPlaneOn.getIcon() : this.is.getIconIndex(), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon() ); + rh.setTexture( CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartTransitionPlaneBack.getIcon(), isActive ? CableBusTextures.BlockFormPlaneOn.getIcon() : renderer.getIcon( is ), CableBusTextures.PartPlaneSides.getIcon(), CableBusTextures.PartPlaneSides.getIcon() ); rh.setBounds( minX, minY, 15, maxX, maxY, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( opos, renderer ); - rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartTransitionPlaneBack.getIcon(), isActive ? CableBusTextures.BlockFormPlaneOn.getIcon() : this.is.getIconIndex(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartTransitionPlaneBack.getIcon(), isActive ? CableBusTextures.BlockFormPlaneOn.getIcon() : renderer.getIcon( is ), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); rh.setBounds( 5, 5, 14, 11, 11, 15 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( opos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( opos, rh, renderer ); } @Override public void onNeighborChanged() { TileEntity te = this.host.getTile(); - World w = te.getWorldObj(); - ForgeDirection side = this.side; + World w = te.getWorld(); + AEPartLocation side = this.side; - int x = te.xCoord + side.offsetX; - int y = te.yCoord + side.offsetY; - int z = te.zCoord + side.offsetZ; - - this.blocked = !w.getBlock( x, y, z ).isReplaceable( w, x, y, z ); + BlockPos tePos = te.getPos().offset( side.getFacing() ); + + this.blocked = !w.getBlockState( tePos ).getBlock().isReplaceable( w, tePos ); } @Override @@ -365,7 +361,7 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine return false; } - private boolean isTransitionPlane( TileEntity blockTileEntity, ForgeDirection side ) + private boolean isTransitionPlane( TileEntity blockTileEntity, AEPartLocation side ) { if( blockTileEntity instanceof IPartHost ) { @@ -424,25 +420,25 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine boolean worked = false; TileEntity te = this.host.getTile(); - World w = te.getWorldObj(); - ForgeDirection side = this.side; + World w = te.getWorld(); + AEPartLocation side = this.side; - int x = te.xCoord + side.offsetX; - int y = te.yCoord + side.offsetY; - int z = te.zCoord + side.offsetZ; + BlockPos tePos = te.getPos().offset( side.getFacing() ); - if( w.getBlock( x, y, z ).isReplaceable( w, x, y, z ) ) + if( w.getBlockState( tePos ).getBlock().isReplaceable( w, tePos ) ) { if( placeBlock == YesNo.YES && ( i instanceof ItemBlock || i instanceof IPlantable || i instanceof ItemSkull || i instanceof ItemFirework || i instanceof IPartItem || i instanceof ItemReed ) ) { EntityPlayer player = Platform.getPlayer( (WorldServer) w ); Platform.configurePlayer( player, side, this.tile ); + // TODO: LIMIT FIREWORKS + /* if( i instanceof ItemFirework ) { - Chunk c = w.getChunkFromBlockCoords( x, z ); + Chunk c = w.getChunkFromBlockCoords( tePos ); int sum = 0; - for( List Z : c.entityLists ) + for( List Z : c.geten ) { sum += Z.size(); } @@ -451,6 +447,8 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine return input; } } + */ + maxStorage = is.stackSize; worked = true; if( type == Actionable.MODULATE ) @@ -459,31 +457,31 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine { boolean Worked = false; - if( side.offsetX == 0 && side.offsetZ == 0 ) + if( side.xOffset == 0 && side.zOffset == 0 ) { - Worked = i.onItemUse( is, player, w, x + side.offsetX, y + side.offsetY, z + side.offsetZ, side.getOpposite().ordinal(), side.offsetX, side.offsetY, side.offsetZ ); + Worked = i.onItemUse( is, player, w, tePos.offset( side.getFacing() ), side.getFacing().getOpposite(), side.xOffset, side.yOffset, side.zOffset ); } - if( !Worked && side.offsetX == 0 && side.offsetZ == 0 ) + if( !Worked && side.xOffset == 0 && side.zOffset == 0 ) { - Worked = i.onItemUse( is, player, w, x - side.offsetX, y - side.offsetY, z - side.offsetZ, side.ordinal(), side.offsetX, side.offsetY, side.offsetZ ); + Worked = i.onItemUse( is, player, w, tePos.offset( side.getFacing().getOpposite() ), side.getFacing(), side.xOffset, side.yOffset, side.zOffset ); } - if( !Worked && side.offsetY == 0 ) + if( !Worked && side.yOffset == 0 ) { - Worked = i.onItemUse( is, player, w, x, y - 1, z, ForgeDirection.UP.ordinal(), side.offsetX, side.offsetY, side.offsetZ ); + Worked = i.onItemUse( is, player, w, tePos.offset( EnumFacing.DOWN ), EnumFacing.UP, side.xOffset, side.yOffset, side.zOffset ); } if( !Worked ) { - i.onItemUse( is, player, w, x, y, z, side.getOpposite().ordinal(), side.offsetX, side.offsetY, side.offsetZ ); + i.onItemUse( is, player, w, tePos, side.getFacing().getOpposite(), side.xOffset, side.yOffset, side.zOffset ); } maxStorage -= is.stackSize; } else { - i.onItemUse( is, player, w, x, y, z, side.getOpposite().ordinal(), side.offsetX, side.offsetY, side.offsetZ ); + i.onItemUse( is, player, w, tePos, side.getFacing().getOpposite(), side.xOffset, side.yOffset, side.zOffset ); maxStorage -= is.stackSize; } } @@ -495,13 +493,18 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine else { worked = true; - Chunk c = w.getChunkFromBlockCoords( x, z ); + Chunk c = w.getChunkFromBlockCoords( tePos ); + int sum = 0; + + // TODO: LIMIT OTHER THIGNS! + /* for( List Z : c.entityLists ) { sum += Z.size(); } - + */ + if( sum < AEConfig.instance.formationPlaneEntityLimit ) { if( type == Actionable.MODULATE ) @@ -509,16 +512,16 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine is.stackSize = (int) maxStorage; EntityItem ei = new EntityItem( w, // w - ( ( side.offsetX != 0 ? 0.0 : 0.7 ) * ( Platform.getRandomFloat() - 0.5f ) ) + 0.5 + side.offsetX * -0.3 + x, // spawn - ( ( side.offsetY != 0 ? 0.0 : 0.7 ) * ( Platform.getRandomFloat() - 0.5f ) ) + 0.5 + side.offsetY * -0.3 + y, // spawn - ( ( side.offsetZ != 0 ? 0.0 : 0.7 ) * ( Platform.getRandomFloat() - 0.5f ) ) + 0.5 + side.offsetZ * -0.3 + z, // spawn + ( ( side.xOffset != 0 ? 0.0 : 0.7 ) * ( Platform.getRandomFloat() - 0.5f ) ) + 0.5 + side.xOffset * -0.3 + tePos.getX(), // spawn + ( ( side.yOffset != 0 ? 0.0 : 0.7 ) * ( Platform.getRandomFloat() - 0.5f ) ) + 0.5 + side.yOffset * -0.3 + tePos.getY(), // spawn + ( ( side.zOffset != 0 ? 0.0 : 0.7 ) * ( Platform.getRandomFloat() - 0.5f ) ) + 0.5 + side.zOffset * -0.3 + tePos.getZ(), // spawn is.copy() ); Entity result = ei; - ei.motionX = side.offsetX * 0.2; - ei.motionY = side.offsetY * 0.2; - ei.motionZ = side.offsetZ * 0.2; + ei.motionX = side.xOffset * 0.2; + ei.motionY = side.yOffset * 0.2; + ei.motionZ = side.zOffset * 0.2; if( is.getItem().hasCustomEntity( is ) ) { @@ -547,7 +550,7 @@ public class PartFormationPlane extends PartUpgradeable implements ICellContaine } } - this.blocked = !w.getBlock( x, y, z ).isReplaceable( w, x, y, z ); + this.blocked = !w.getBlockState( tePos ).getBlock().isReplaceable( w, tePos ); if( worked ) { diff --git a/src/main/java/appeng/parts/automation/PartIdentityAnnihilationPlane.java b/src/main/java/appeng/parts/automation/PartIdentityAnnihilationPlane.java index 05acc6e8..d54b6ccc 100644 --- a/src/main/java/appeng/parts/automation/PartIdentityAnnihilationPlane.java +++ b/src/main/java/appeng/parts/automation/PartIdentityAnnihilationPlane.java @@ -22,29 +22,28 @@ package appeng.parts.automation; import java.util.ArrayList; import java.util.List; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; import net.minecraft.world.WorldServer; import net.minecraftforge.common.util.FakePlayer; import net.minecraftforge.common.util.FakePlayerFactory; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; +import appeng.client.texture.IAESprite; public class PartIdentityAnnihilationPlane extends PartAnnihilationPlane { - private final static IIcon ACTIVE_ICON = CableBusTextures.BlockIdentityAnnihilationPlaneOn.getIcon(); + private final static IAESprite ACTIVE_ICON = CableBusTextures.BlockIdentityAnnihilationPlaneOn.getIcon(); private static final float SILK_TOUCH_FACTOR = 16; @@ -55,13 +54,13 @@ public class PartIdentityAnnihilationPlane extends PartAnnihilationPlane @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderStaticWithIcon( x, y, z, rh, renderer, ACTIVE_ICON ); + this.renderStaticWithIcon( pos, rh, renderer, ACTIVE_ICON ); } @Override - protected boolean isAnnihilationPlane( TileEntity blockTileEntity, ForgeDirection side ) + protected boolean isAnnihilationPlane( TileEntity blockTileEntity, AEPartLocation side ) { if( blockTileEntity instanceof IPartHost ) { @@ -72,31 +71,30 @@ public class PartIdentityAnnihilationPlane extends PartAnnihilationPlane } @Override - protected float calculateEnergyUsage( WorldServer w, int x, int y, int z, List items ) + protected float calculateEnergyUsage( WorldServer w, BlockPos pos, List items ) { - final float requiredEnergy = super.calculateEnergyUsage( w, x, y, z, items ); + final float requiredEnergy = super.calculateEnergyUsage( w, pos, items ); return requiredEnergy * SILK_TOUCH_FACTOR; } @Override - protected List obtainBlockDrops( WorldServer w, int x, int y, int z ) + protected List obtainBlockDrops( WorldServer w, BlockPos pos ) { final FakePlayer fakePlayer = FakePlayerFactory.getMinecraft( w ); - final Block block = w.getBlock( x, y, z ); - final int blockMeta = w.getBlockMetadata( x, y, z ); - - if( block.canSilkHarvest( w, fakePlayer, x, y, z, blockMeta ) ) + final IBlockState state = w.getBlockState( pos ); + + if( state.getBlock().canSilkHarvest( w, pos, state, fakePlayer ) ) { final List out = new ArrayList( 1 ); - final Item item = Item.getItemFromBlock( block ); + final Item item = Item.getItemFromBlock( state.getBlock() ); if( item != null ) { int meta = 0; if( item.getHasSubtypes() ) { - meta = blockMeta; + meta = state.getBlock().getMetaFromState( state ); } ItemStack itemstack = new ItemStack( item, 1, meta ); out.add( itemstack ); @@ -105,7 +103,7 @@ public class PartIdentityAnnihilationPlane extends PartAnnihilationPlane } else { - return super.obtainBlockDrops( w, x, y, z ); + return super.obtainBlockDrops( w, pos ); } } } diff --git a/src/main/java/appeng/parts/automation/PartImportBus.java b/src/main/java/appeng/parts/automation/PartImportBus.java index 81200b29..61875ce1 100644 --- a/src/main/java/appeng/parts/automation/PartImportBus.java +++ b/src/main/java/appeng/parts/automation/PartImportBus.java @@ -19,14 +19,12 @@ package appeng.parts.automation; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.BlockPos; import net.minecraft.util.Vec3; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; @@ -46,6 +44,7 @@ import appeng.api.parts.IPartRenderHelper; import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEMonitor; import appeng.api.storage.data.IAEItemStack; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.core.settings.TickRates; import appeng.core.sync.GuiBridge; @@ -100,9 +99,9 @@ public class PartImportBus extends PartSharedItemBus implements IInventoryDestin @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon() ); + rh.setTexture( CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon() ); rh.setBounds( 3, 3, 15, 13, 13, 16 ); rh.renderInventoryBox( renderer ); @@ -116,25 +115,24 @@ public class PartImportBus extends PartSharedItemBus implements IInventoryDestin @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon() ); + rh.setTexture( CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartImportSides.getIcon(), CableBusTextures.PartImportSides.getIcon() ); rh.setBounds( 4, 4, 14, 12, 12, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 5, 5, 13, 11, 11, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 6, 6, 12, 10, 10, 13 ); - rh.renderBlock( x, y, z, renderer ); - rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); + rh.renderBlock( pos, renderer ); + rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); rh.setBounds( 6, 6, 11, 10, 10, 12 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( pos, rh, renderer ); } @Override diff --git a/src/main/java/appeng/parts/automation/PartLevelEmitter.java b/src/main/java/appeng/parts/automation/PartLevelEmitter.java index b0a70a8f..2bf549f9 100644 --- a/src/main/java/appeng/parts/automation/PartLevelEmitter.java +++ b/src/main/java/appeng/parts/automation/PartLevelEmitter.java @@ -22,22 +22,20 @@ package appeng.parts.automation; import java.util.Collection; import java.util.Random; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumParticleTypes; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.FuzzyMode; import appeng.api.config.LevelType; import appeng.api.config.RedstoneMode; @@ -70,8 +68,11 @@ import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.IConfigManager; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; +import appeng.client.texture.IAESprite; import appeng.core.sync.GuiBridge; import appeng.helpers.Reflected; import appeng.me.GridAccessException; @@ -143,8 +144,8 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH this.host.markForUpdate(); TileEntity te = this.host.getTile(); this.prevState = isOn; - Platform.notifyBlocksOfNeighbors( te.getWorldObj(), te.xCoord, te.yCoord, te.zCoord ); - Platform.notifyBlocksOfNeighbors( te.getWorldObj(), te.xCoord + this.side.offsetX, te.yCoord + this.side.offsetY, te.zCoord + this.side.offsetZ ); + Platform.notifyBlocksOfNeighbors( te.getWorld(), te.getPos() ); + Platform.notifyBlocksOfNeighbors( te.getWorld(), te.getPos().offset( side.getFacing() ) ); } } @@ -191,9 +192,9 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH } @Override - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture( IRenderHelper renderer ) { - return this.is.getIconIndex(); + return renderer.getIcon( is ).getAtlas(); } @Override @@ -398,7 +399,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } @@ -411,21 +412,17 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( this.is.getIconIndex() ); - Tessellator.instance.startDrawingQuads(); - this.renderTorchAtAngle( 0, -0.5, 0 ); - Tessellator.instance.draw(); - // rh.setBounds( 7, 7, 10, 9, 9, 15 ); - // rh.renderInventoryBox( renderer ); + rh.setTexture( renderer.getIcon( is ) ); + this.renderTorchAtAngle( 0, -0.5, 0, renderer ); } - public void renderTorchAtAngle( double baseX, double baseY, double baseZ ) + public void renderTorchAtAngle( double baseX, double baseY, double baseZ, IRenderHelper renderer ) { boolean isOn = this.isLevelEmitterOn(); - IIcon offTexture = this.is.getIconIndex(); - IIcon IIcon = ( isOn ? CableBusTextures.LevelEmitterTorchOn.getIcon() : offTexture ); + IAESprite offTexture = renderer.getIcon( is ); + IAESprite IIcon = ( isOn ? CableBusTextures.LevelEmitterTorchOn.getIcon() : offTexture ); // this.centerX = baseX + 0.5; this.centerY = baseY + 0.5; @@ -438,12 +435,12 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH double Zero = 0; /* - * double d5 = (double)IIcon.func_94209_e(); double d6 = (double)IIcon.func_94206_g(); double d7 = - * (double)IIcon.func_94212_f(); double d8 = (double)IIcon.func_94210_h(); double d9 = - * (double)IIcon.func_94214_a(7.0D); double d10 = (double)IIcon.func_94207_b(6.0D); double d11 = - * (double)IIcon.func_94214_a(9.0D); double d12 = (double)IIcon.func_94207_b(8.0D); double d13 = - * (double)IIcon.func_94214_a(7.0D); double d14 = (double)IIcon.func_94207_b(13.0D); double d15 = - * (double)IIcon.func_94214_a(9.0D); double d16 = (double)IIcon.func_94207_b(15.0D); + * double d5 = (double)TextureAtlasSprite.func_94209_e(); double d6 = (double)TextureAtlasSprite.func_94206_g(); double d7 = + * (double)TextureAtlasSprite.func_94212_f(); double d8 = (double)TextureAtlasSprite.func_94210_h(); double d9 = + * (double)TextureAtlasSprite.func_94214_a(7.0D); double d10 = (double)TextureAtlasSprite.func_94207_b(6.0D); double d11 = + * (double)TextureAtlasSprite.func_94214_a(9.0D); double d12 = (double)TextureAtlasSprite.func_94207_b(8.0D); double d13 = + * (double)TextureAtlasSprite.func_94214_a(7.0D); double d14 = (double)TextureAtlasSprite.func_94207_b(13.0D); double d15 = + * (double)TextureAtlasSprite.func_94214_a(9.0D); double d16 = (double)TextureAtlasSprite.func_94207_b(15.0D); */ float var16 = IIcon.getMinU(); @@ -486,64 +483,63 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH toff = 1.0d / 16.0d; } - Tessellator var12 = Tessellator.instance; if( isOn ) { - var12.setColorOpaque_F( 1.0F, 1.0F, 1.0F ); - var12.setBrightness( 11 << 20 | 11 << 4 ); + renderer.setColorOpaque_F( 1.0F, 1.0F, 1.0F ); + renderer.setBrightness( 11 << 20 | 11 << 4 ); } - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var20, var22 ); - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var20, var26 ); - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var24, var26 ); - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var24, var22 ); + EnumFacing t = EnumFacing.UP; + + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var20, var22 ); + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var20, var26 ); + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var24, var26 ); + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + TorchLen - toff, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var24, var22 ); - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var24b, var22b ); - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var24b, var26b ); - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var20b, var26b ); - this.addVertexWithUV( baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var20b, var22b ); + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var24b, var22b ); + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) + var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var24b, var26b ); + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) + var44, var20b, var26b ); + this.addVertexWithUV(t,renderer, baseX + Zero * ( 1.0D - TorchLen ) - var44, baseY + var422, baseZ + par10 * ( 1.0D - TorchLen ) - var44, var20b, var22b ); - this.addVertexWithUV( baseX + var44 + Zero, baseY, baseZ - var44 + par10, var32, var30 ); - this.addVertexWithUV( baseX + var44 + Zero, baseY, baseZ + var44 + par10, var32, var34 ); - this.addVertexWithUV( baseX - var44 + Zero, baseY, baseZ + var44 + par10, var28, var34 ); - this.addVertexWithUV( baseX - var44 + Zero, baseY, baseZ - var44 + par10, var28, var30 ); + this.addVertexWithUV(t,renderer, baseX + var44 + Zero, baseY, baseZ - var44 + par10, var32, var30 ); + this.addVertexWithUV(t,renderer, baseX + var44 + Zero, baseY, baseZ + var44 + par10, var32, var34 ); + this.addVertexWithUV(t,renderer, baseX - var44 + Zero, baseY, baseZ + var44 + par10, var28, var34 ); + this.addVertexWithUV(t,renderer, baseX - var44 + Zero, baseY, baseZ - var44 + par10, var28, var30 ); - this.addVertexWithUV( baseX - var44, baseY + 1.0D, var40, var16, var18 ); - this.addVertexWithUV( baseX - var44 + Zero, baseY + 0.0D, var40 + par10, var16, var19 ); - this.addVertexWithUV( baseX - var44 + Zero, baseY + 0.0D, var42 + par10, var17, var19 ); - this.addVertexWithUV( baseX - var44, baseY + 1.0D, var42, var17, var18 ); + this.addVertexWithUV(t,renderer, baseX - var44, baseY + 1.0D, var40, var16, var18 ); + this.addVertexWithUV(t,renderer, baseX - var44 + Zero, baseY + 0.0D, var40 + par10, var16, var19 ); + this.addVertexWithUV(t,renderer, baseX - var44 + Zero, baseY + 0.0D, var42 + par10, var17, var19 ); + this.addVertexWithUV(t,renderer, baseX - var44, baseY + 1.0D, var42, var17, var18 ); - this.addVertexWithUV( baseX + var44, baseY + 1.0D, var42, var16, var18 ); - this.addVertexWithUV( baseX + Zero + var44, baseY + 0.0D, var42 + par10, var16, var19 ); - this.addVertexWithUV( baseX + Zero + var44, baseY + 0.0D, var40 + par10, var17, var19 ); - this.addVertexWithUV( baseX + var44, baseY + 1.0D, var40, var17, var18 ); + this.addVertexWithUV(t,renderer, baseX + var44, baseY + 1.0D, var42, var16, var18 ); + this.addVertexWithUV(t,renderer, baseX + Zero + var44, baseY + 0.0D, var42 + par10, var16, var19 ); + this.addVertexWithUV(t,renderer, baseX + Zero + var44, baseY + 0.0D, var40 + par10, var17, var19 ); + this.addVertexWithUV(t,renderer, baseX + var44, baseY + 1.0D, var40, var17, var18 ); - this.addVertexWithUV( var36, baseY + 1.0D, baseZ + var44, var16, var18 ); - this.addVertexWithUV( var36 + Zero, baseY + 0.0D, baseZ + var44 + par10, var16, var19 ); - this.addVertexWithUV( var38 + Zero, baseY + 0.0D, baseZ + var44 + par10, var17, var19 ); - this.addVertexWithUV( var38, baseY + 1.0D, baseZ + var44, var17, var18 ); + this.addVertexWithUV(t,renderer, var36, baseY + 1.0D, baseZ + var44, var16, var18 ); + this.addVertexWithUV(t,renderer, var36 + Zero, baseY + 0.0D, baseZ + var44 + par10, var16, var19 ); + this.addVertexWithUV(t,renderer, var38 + Zero, baseY + 0.0D, baseZ + var44 + par10, var17, var19 ); + this.addVertexWithUV(t,renderer, var38, baseY + 1.0D, baseZ + var44, var17, var18 ); - this.addVertexWithUV( var38, baseY + 1.0D, baseZ - var44, var16, var18 ); - this.addVertexWithUV( var38 + Zero, baseY + 0.0D, baseZ - var44 + par10, var16, var19 ); - this.addVertexWithUV( var36 + Zero, baseY + 0.0D, baseZ - var44 + par10, var17, var19 ); - this.addVertexWithUV( var36, baseY + 1.0D, baseZ - var44, var17, var18 ); + this.addVertexWithUV(t,renderer, var38, baseY + 1.0D, baseZ - var44, var16, var18 ); + this.addVertexWithUV(t,renderer, var38 + Zero, baseY + 0.0D, baseZ - var44 + par10, var16, var19 ); + this.addVertexWithUV(t,renderer, var36 + Zero, baseY + 0.0D, baseZ - var44 + par10, var17, var19 ); + this.addVertexWithUV(t,renderer, var36, baseY + 1.0D, baseZ - var44, var17, var18 ); } - public void addVertexWithUV( double x, double y, double z, double u, double v ) + public void addVertexWithUV( EnumFacing face, IRenderHelper renderer, double x, double y, double z, double u, double v ) { - Tessellator var12 = Tessellator.instance; - x -= this.centerX; y -= this.centerY; z -= this.centerZ; - if( this.side == ForgeDirection.DOWN ) + if( this.side == AEPartLocation.DOWN ) { y = -y; z = -z; } - if( this.side == ForgeDirection.EAST ) + if( this.side == AEPartLocation.EAST ) { double m = x; x = y; @@ -551,14 +547,14 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH y = -y; } - if( this.side == ForgeDirection.WEST ) + if( this.side == AEPartLocation.WEST ) { double m = x; x = -y; y = m; } - if( this.side == ForgeDirection.SOUTH ) + if( this.side == AEPartLocation.SOUTH ) { double m = z; z = y; @@ -566,7 +562,7 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH y = -y; } - if( this.side == ForgeDirection.NORTH ) + if( this.side == AEPartLocation.NORTH ) { double m = z; z = -y; @@ -577,14 +573,14 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH y += this.centerY;// + orientation.offsetY * 0.4; z += this.centerZ;// + orientation.offsetZ * 0.4; - var12.addVertexWithUV( x, y, z, u, v ); + renderer.addVertexWithUV( face, x, y, z, u, v ); } @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( this.is.getIconIndex() ); + rh.setTexture( renderer.getIcon( is ) ); // rh.setTexture( CableBusTextures.ItemPartLevelEmitterOn.getIcon() ); // rh.setBounds( 2, 2, 14, 14, 14, 16 ); @@ -595,16 +591,15 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH renderer.renderAllFaces = true; - Tessellator tess = Tessellator.instance; - tess.setBrightness( rh.getBlock().getMixedBrightnessForBlock( this.getHost().getTile().getWorldObj(), x, y, z ) ); - tess.setColorOpaque_F( 1.0F, 1.0F, 1.0F ); + renderer.setBrightness( rh.getBlock().getMixedBrightnessForBlock( this.getHost().getTile().getWorld(), pos ) ); + renderer.setColorOpaque_F( 1.0F, 1.0F, 1.0F ); - this.renderTorchAtAngle( x, y, z ); + this.renderTorchAtAngle( pos.getX(),pos.getY(),pos.getZ(),renderer ); renderer.renderAllFaces = false; rh.setBounds( 7, 7, 11, 9, 9, 12 ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( pos, rh, renderer ); // super.renderWorldBlock( world, x, y, z, block, modelId, renderer ); } @@ -622,17 +617,20 @@ public class PartLevelEmitter extends PartUpgradeable implements IEnergyWatcherH } @Override - public void randomDisplayTick( World world, int x, int y, int z, Random r ) + public void randomDisplayTick( + World world, + BlockPos pos, + Random r ) { if( this.isLevelEmitterOn() ) { - ForgeDirection d = this.side; + AEPartLocation d = this.side; - double d0 = d.offsetX * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D; - double d1 = d.offsetY * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D; - double d2 = d.offsetZ * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D; + double d0 = d.xOffset * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D; + double d1 = d.yOffset * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D; + double d2 = d.zOffset * 0.45F + ( r.nextFloat() - 0.5F ) * 0.2D; - world.spawnParticle( "reddust", 0.5 + x + d0, 0.5 + y + d1, 0.5 + z + d2, 0.0D, 0.0D, 0.0D ); + world.spawnParticle( EnumParticleTypes.REDSTONE, 0.5 + pos.getX() + d0, 0.5 + pos.getY() + d1, 0.5 + pos.getZ() + d2, 0.0D, 0.0D, 0.0D, new int[0] ); } } diff --git a/src/main/java/appeng/parts/automation/PartSharedItemBus.java b/src/main/java/appeng/parts/automation/PartSharedItemBus.java index 01d4ca07..a0ff331f 100644 --- a/src/main/java/appeng/parts/automation/PartSharedItemBus.java +++ b/src/main/java/appeng/parts/automation/PartSharedItemBus.java @@ -22,8 +22,8 @@ package appeng.parts.automation; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - import appeng.api.config.RedstoneMode; import appeng.api.config.Upgrades; import appeng.api.networking.ticking.IGridTickable; @@ -105,7 +105,7 @@ public abstract class PartSharedItemBus extends PartUpgradeable implements IGrid InventoryAdaptor getHandler() { TileEntity self = this.getHost().getTile(); - TileEntity target = this.getTileEntity( self, self.xCoord + this.side.offsetX, self.yCoord + this.side.offsetY, self.zCoord + this.side.offsetZ ); + TileEntity target = this.getTileEntity( self, self.getPos().offset( side.getFacing() ) ); int newAdaptorHash = Platform.generateTileHash( target ); @@ -115,18 +115,18 @@ public abstract class PartSharedItemBus extends PartUpgradeable implements IGrid } this.adaptorHash = newAdaptorHash; - this.adaptor = InventoryAdaptor.getAdaptor( target, this.side.getOpposite() ); + this.adaptor = InventoryAdaptor.getAdaptor( target, this.side.getFacing().getOpposite() ); return this.adaptor; } - private TileEntity getTileEntity( TileEntity self, int x, int y, int z ) + private TileEntity getTileEntity( TileEntity self, BlockPos pos ) { - World w = self.getWorldObj(); + World w = self.getWorld(); - if( w.getChunkProvider().chunkExists( x >> 4, z >> 4 ) ) + if( w.getChunkProvider().chunkExists( pos.getX() >> 4, pos.getZ() >> 4 ) ) { - return w.getTileEntity( x, y, z ); + return w.getTileEntity( pos ); } return null; diff --git a/src/main/java/appeng/parts/automation/PartUpgradeable.java b/src/main/java/appeng/parts/automation/PartUpgradeable.java index 2e7b934a..6586cb05 100644 --- a/src/main/java/appeng/parts/automation/PartUpgradeable.java +++ b/src/main/java/appeng/parts/automation/PartUpgradeable.java @@ -23,7 +23,6 @@ import java.util.List; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.config.RedstoneMode; import appeng.api.config.Upgrades; import appeng.api.util.IConfigManager; diff --git a/src/main/java/appeng/parts/automation/StackUpgradeInventory.java b/src/main/java/appeng/parts/automation/StackUpgradeInventory.java index 745161f0..cf001fbd 100644 --- a/src/main/java/appeng/parts/automation/StackUpgradeInventory.java +++ b/src/main/java/appeng/parts/automation/StackUpgradeInventory.java @@ -2,7 +2,6 @@ package appeng.parts.automation; import net.minecraft.item.ItemStack; - import appeng.api.config.Upgrades; import appeng.tile.inventory.IAEAppEngInventory; import appeng.util.Platform; @@ -18,6 +17,7 @@ public class StackUpgradeInventory extends UpgradeInventory this.stack = stack; } + @Override public int getMaxInstalled( Upgrades upgrades ) { int max = 0; diff --git a/src/main/java/appeng/parts/automation/UpgradeInventory.java b/src/main/java/appeng/parts/automation/UpgradeInventory.java index 606bf53e..7959effc 100644 --- a/src/main/java/appeng/parts/automation/UpgradeInventory.java +++ b/src/main/java/appeng/parts/automation/UpgradeInventory.java @@ -23,7 +23,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.config.Upgrades; import appeng.api.implementations.items.IUpgradeModule; import appeng.tile.inventory.AppEngInternalInventory; diff --git a/src/main/java/appeng/parts/layers/InvLayerData.java b/src/main/java/appeng/parts/layers/InvLayerData.java index 3e520050..14bab888 100644 --- a/src/main/java/appeng/parts/layers/InvLayerData.java +++ b/src/main/java/appeng/parts/layers/InvLayerData.java @@ -24,6 +24,7 @@ import java.util.List; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; public class InvLayerData @@ -104,7 +105,7 @@ public class InvLayerData } } - public boolean canExtractItem( int slot, ItemStack itemstack, int side ) + public boolean canExtractItem( int slot, ItemStack itemstack, EnumFacing side ) { if( this.isSlotValid( slot ) ) { @@ -114,7 +115,7 @@ public class InvLayerData return false; } - public boolean canInsertItem( int slot, ItemStack itemstack, int side ) + public boolean canInsertItem( int slot, ItemStack itemstack, EnumFacing side ) { if( this.isSlotValid( slot ) ) { @@ -135,12 +136,12 @@ public class InvLayerData } } - public int[] getAccessibleSlotsFromSide( int side ) + public int[] getSlotsForFace( EnumFacing side ) { - if( this.sides == null || side < 0 || side > 5 ) + if( this.sides == null || side == null ) { return NULL_SIDES; } - return this.sides[side]; + return this.sides[side.ordinal()]; } } diff --git a/src/main/java/appeng/parts/layers/InvSot.java b/src/main/java/appeng/parts/layers/InvSot.java index dc13911b..158fb2fd 100644 --- a/src/main/java/appeng/parts/layers/InvSot.java +++ b/src/main/java/appeng/parts/layers/InvSot.java @@ -21,6 +21,7 @@ package appeng.parts.layers; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; public class InvSot @@ -55,12 +56,12 @@ public class InvSot this.partInv.setInventorySlotContents( this.index, itemstack ); } - public boolean canExtractItem( ItemStack itemstack, int side ) + public boolean canExtractItem( ItemStack itemstack, EnumFacing side ) { return this.partInv.canExtractItem( this.index, itemstack, side ); } - public boolean canInsertItem( ItemStack itemstack, int side ) + public boolean canInsertItem( ItemStack itemstack, EnumFacing side ) { return this.partInv.canInsertItem( this.index, itemstack, side ); } diff --git a/src/main/java/appeng/parts/layers/LayerIEnergyHandler.java b/src/main/java/appeng/parts/layers/LayerIEnergyHandler.java index 422f0a02..512f423c 100644 --- a/src/main/java/appeng/parts/layers/LayerIEnergyHandler.java +++ b/src/main/java/appeng/parts/layers/LayerIEnergyHandler.java @@ -19,15 +19,13 @@ package appeng.parts.layers; -import net.minecraftforge.common.util.ForgeDirection; - import cofh.api.energy.IEnergyConnection; import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyProvider; import cofh.api.energy.IEnergyReceiver; - import appeng.api.parts.IPart; import appeng.api.parts.LayerBase; +import appeng.api.util.ForgeDirection; public class LayerIEnergyHandler extends LayerBase implements IEnergyHandler diff --git a/src/main/java/appeng/parts/layers/LayerIEnergySink.java b/src/main/java/appeng/parts/layers/LayerIEnergySink.java index 4cdacbd4..1f963e98 100644 --- a/src/main/java/appeng/parts/layers/LayerIEnergySink.java +++ b/src/main/java/appeng/parts/layers/LayerIEnergySink.java @@ -22,16 +22,14 @@ package appeng.parts.layers; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.ForgeDirection; - import ic2.api.energy.tile.IEnergyAcceptor; import ic2.api.energy.tile.IEnergySink; import ic2.api.energy.tile.IEnergyTile; - import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; import appeng.api.parts.LayerBase; import appeng.api.parts.LayerFlags; +import appeng.api.util.ForgeDirection; import appeng.util.Platform; @@ -51,7 +49,7 @@ public class LayerIEnergySink extends LayerBase implements IEnergySink return null; } - return this.getEnergySinkTile().getWorldObj(); + return this.getEnergySinkTile().getWorld(); } private boolean isTileValid() @@ -63,7 +61,7 @@ public class LayerIEnergySink extends LayerBase implements IEnergySink return false; } - return !te.isInvalid() && te.getWorldObj().blockExists( te.xCoord, te.yCoord, te.zCoord ); + return !te.isInvalid() && te.getWorld().blockExists( te.xCoord, te.yCoord, te.zCoord ); } private void addToENet() diff --git a/src/main/java/appeng/parts/layers/LayerIEnergySource.java b/src/main/java/appeng/parts/layers/LayerIEnergySource.java index 8f32e385..0ca0a273 100644 --- a/src/main/java/appeng/parts/layers/LayerIEnergySource.java +++ b/src/main/java/appeng/parts/layers/LayerIEnergySource.java @@ -22,17 +22,15 @@ package appeng.parts.layers; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.ForgeDirection; - import ic2.api.energy.tile.IEnergyEmitter; import ic2.api.energy.tile.IEnergySink; import ic2.api.energy.tile.IEnergySource; import ic2.api.energy.tile.IEnergyTile; - import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; import appeng.api.parts.LayerBase; import appeng.api.parts.LayerFlags; +import appeng.api.util.ForgeDirection; import appeng.util.Platform; @@ -51,7 +49,7 @@ public class LayerIEnergySource extends LayerBase implements IEnergySource { return null; } - return this.getEnergySourceTile().getWorldObj(); + return this.getEnergySourceTile().getWorld(); } private boolean isTileValid() diff --git a/src/main/java/appeng/parts/layers/LayerIFluidHandler.java b/src/main/java/appeng/parts/layers/LayerIFluidHandler.java index 3b3d3eaa..9354e70b 100644 --- a/src/main/java/appeng/parts/layers/LayerIFluidHandler.java +++ b/src/main/java/appeng/parts/layers/LayerIFluidHandler.java @@ -19,13 +19,12 @@ package appeng.parts.layers; -import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; - import appeng.api.parts.IPart; import appeng.api.parts.LayerBase; +import appeng.api.util.ForgeDirection; public class LayerIFluidHandler extends LayerBase implements IFluidHandler diff --git a/src/main/java/appeng/parts/layers/LayerIPipeConnection.java b/src/main/java/appeng/parts/layers/LayerIPipeConnection.java index 4553b718..f07dd39f 100644 --- a/src/main/java/appeng/parts/layers/LayerIPipeConnection.java +++ b/src/main/java/appeng/parts/layers/LayerIPipeConnection.java @@ -19,13 +19,11 @@ package appeng.parts.layers; -import net.minecraftforge.common.util.ForgeDirection; - import buildcraft.api.transport.IPipeConnection; import buildcraft.api.transport.IPipeTile.PipeType; - import appeng.api.parts.IPart; import appeng.api.parts.LayerBase; +import appeng.api.util.ForgeDirection; public class LayerIPipeConnection extends LayerBase implements IPipeConnection diff --git a/src/main/java/appeng/parts/layers/LayerISidedInventory.java b/src/main/java/appeng/parts/layers/LayerISidedInventory.java index f311aee9..2a95d22a 100644 --- a/src/main/java/appeng/parts/layers/LayerISidedInventory.java +++ b/src/main/java/appeng/parts/layers/LayerISidedInventory.java @@ -27,11 +27,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; +import net.minecraft.util.IChatComponent; import appeng.api.parts.IPart; import appeng.api.parts.IPartHost; import appeng.api.parts.LayerBase; +import appeng.api.util.AEPartLocation; /** @@ -66,7 +67,7 @@ public class LayerISidedInventory extends LayerBase implements ISidedInventory inventories = new ArrayList(); int slotCount = 0; - for( ForgeDirection side : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation side : AEPartLocation.SIDE_LOCATIONS ) { IPart bp = this.getPart( side ); if( bp instanceof ISidedInventory ) @@ -93,8 +94,8 @@ public class LayerISidedInventory extends LayerBase implements ISidedInventory offsetForPart = 0; slotCount = sides.getSizeInventory(); - ForgeDirection currentSide = ForgeDirection.UNKNOWN; - for( ForgeDirection side : ForgeDirection.VALID_DIRECTIONS ) + AEPartLocation currentSide = AEPartLocation.INTERNAL; + for( AEPartLocation side : AEPartLocation.SIDE_LOCATIONS ) { if( this.getPart( side ) == sides ) { @@ -178,13 +179,13 @@ public class LayerISidedInventory extends LayerBase implements ISidedInventory } @Override - public String getInventoryName() + public String getName() { return "AEMultiPart"; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -202,12 +203,12 @@ public class LayerISidedInventory extends LayerBase implements ISidedInventory } @Override - public void openInventory() + public void openInventory(EntityPlayer player) { } @Override - public void closeInventory() + public void closeInventory(EntityPlayer player) { } @@ -234,18 +235,18 @@ public class LayerISidedInventory extends LayerBase implements ISidedInventory } @Override - public int[] getAccessibleSlotsFromSide( int side ) + public int[] getSlotsForFace( EnumFacing side ) { if( this.invLayer != null ) { - return this.invLayer.getAccessibleSlotsFromSide( side ); + return this.invLayer.getSlotsForFace( side ); } return NULL_SIDES; } @Override - public boolean canInsertItem( int slot, ItemStack itemstack, int side ) + public boolean canInsertItem( int slot, ItemStack itemstack, EnumFacing side ) { if( this.invLayer == null ) { @@ -256,7 +257,7 @@ public class LayerISidedInventory extends LayerBase implements ISidedInventory } @Override - public boolean canExtractItem( int slot, ItemStack itemstack, int side ) + public boolean canExtractItem( int slot, ItemStack itemstack, EnumFacing side ) { if( this.invLayer == null ) { @@ -265,4 +266,37 @@ public class LayerISidedInventory extends LayerBase implements ISidedInventory return this.invLayer.canExtractItem( slot, itemstack, side ); } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + + } + + @Override + public IChatComponent getDisplayName() + { + return null; + } } diff --git a/src/main/java/appeng/parts/layers/LayerITileStorageMonitorable.java b/src/main/java/appeng/parts/layers/LayerITileStorageMonitorable.java index a6897042..032e2ae8 100644 --- a/src/main/java/appeng/parts/layers/LayerITileStorageMonitorable.java +++ b/src/main/java/appeng/parts/layers/LayerITileStorageMonitorable.java @@ -19,8 +19,7 @@ package appeng.parts.layers; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.implementations.tiles.ITileStorageMonitorable; import appeng.api.networking.security.BaseActionSource; import appeng.api.parts.IPart; @@ -32,7 +31,7 @@ public class LayerITileStorageMonitorable extends LayerBase implements ITileStor { @Override - public IStorageMonitorable getMonitorable( ForgeDirection side, BaseActionSource src ) + public IStorageMonitorable getMonitorable( EnumFacing side, BaseActionSource src ) { IPart part = this.getPart( side ); if( part instanceof ITileStorageMonitorable ) diff --git a/src/main/java/appeng/parts/layers/LayerSidedEnvironment.java b/src/main/java/appeng/parts/layers/LayerSidedEnvironment.java index a6e279eb..b9d198c8 100644 --- a/src/main/java/appeng/parts/layers/LayerSidedEnvironment.java +++ b/src/main/java/appeng/parts/layers/LayerSidedEnvironment.java @@ -20,15 +20,12 @@ package appeng.parts.layers; import javax.annotation.Nullable; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.common.event.FMLInitializationEvent; - +import net.minecraftforge.fml.common.event.FMLInitializationEvent; import li.cil.oc.api.network.Node; import li.cil.oc.api.network.SidedEnvironment; - import appeng.api.parts.IPart; import appeng.api.parts.LayerBase; +import appeng.api.util.ForgeDirection; import appeng.core.Registration; import appeng.helpers.Reflected; diff --git a/src/main/java/appeng/parts/misc/PartCableAnchor.java b/src/main/java/appeng/parts/misc/PartCableAnchor.java index 55019091..23abb608 100644 --- a/src/main/java/appeng/parts/misc/PartCableAnchor.java +++ b/src/main/java/appeng/parts/misc/PartCableAnchor.java @@ -19,44 +19,42 @@ package appeng.parts.misc; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.List; import java.util.Random; -import io.netty.buffer.ByteBuf; - -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.networking.IGridNode; import appeng.api.parts.BusSupport; import appeng.api.parts.IPart; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; -import appeng.api.parts.ISimplifiedBundle; import appeng.api.parts.PartItemStack; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; +import appeng.client.texture.IAESprite; public class PartCableAnchor implements IPart { - protected ISimplifiedBundle renderCache = null; ItemStack is = null; IPartHost host = null; - ForgeDirection mySide = ForgeDirection.UP; + AEPartLocation mySide = AEPartLocation.UP; public PartCableAnchor( ItemStack is ) { @@ -84,9 +82,9 @@ public class PartCableAnchor implements IPart @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper instance, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper instance, IRenderHelper renderer ) { - instance.setTexture( this.is.getIconIndex() ); + instance.setTexture( renderer.getIcon( is ) ); instance.setBounds( 7, 7, 4, 9, 9, 14 ); instance.renderInventoryBox( renderer ); instance.setTexture( null ); @@ -94,10 +92,9 @@ public class PartCableAnchor implements IPart @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - IIcon myIcon = this.is.getIconIndex(); + IAESprite myIcon = renderer.getIcon( is ); rh.setTexture( myIcon ); if( this.host != null && this.host.getFacadeContainer().getFacade( this.mySide ) != null ) { @@ -107,19 +104,19 @@ public class PartCableAnchor implements IPart { rh.setBounds( 7, 7, 10, 9, 9, 16 ); } - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setTexture( null ); } @Override @SideOnly( Side.CLIENT ) - public void renderDynamic( double x, double y, double z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderDynamic( double x, double y, double z, IPartRenderHelper rh, IRenderHelper renderer ) { } @Override - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture( IRenderHelper renderer) { return null; } @@ -163,7 +160,7 @@ public class PartCableAnchor implements IPart @Override public boolean isLadder( EntityLivingBase entity ) { - return this.mySide.offsetY == 0 && ( entity.isCollidedHorizontally || !entity.onGround ); + return this.mySide.yOffset == 0 && ( entity.isCollidedHorizontally || !entity.onGround ); } @Override @@ -227,7 +224,7 @@ public class PartCableAnchor implements IPart } @Override - public void setPartHostInfo( ForgeDirection side, IPartHost host, TileEntity tile ) + public void setPartHostInfo( AEPartLocation side, IPartHost host, TileEntity tile ) { this.host = host; this.mySide = side; @@ -258,14 +255,16 @@ public class PartCableAnchor implements IPart } @Override - @SideOnly( Side.CLIENT ) - public void randomDisplayTick( World world, int x, int y, int z, Random r ) + public void randomDisplayTick( + World world, + BlockPos pos, + Random r ) { } @Override - public void onPlacement( EntityPlayer player, ItemStack held, ForgeDirection side ) + public void onPlacement( EntityPlayer player, ItemStack held, AEPartLocation side ) { } diff --git a/src/main/java/appeng/parts/misc/PartInterface.java b/src/main/java/appeng/parts/misc/PartInterface.java index 71dfb374..135d5029 100644 --- a/src/main/java/appeng/parts/misc/PartInterface.java +++ b/src/main/java/appeng/parts/misc/PartInterface.java @@ -22,9 +22,7 @@ package appeng.parts.misc; import java.util.EnumSet; import java.util.List; -import com.google.common.collect.ImmutableSet; - -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; @@ -32,13 +30,12 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.IChatComponent; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.implementations.tiles.ITileStorageMonitorable; @@ -60,6 +57,7 @@ import appeng.api.storage.IStorageMonitorable; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.IConfigManager; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.core.sync.GuiBridge; import appeng.helpers.DualityInterface; @@ -72,6 +70,8 @@ import appeng.tile.inventory.InvOperation; import appeng.util.Platform; import appeng.util.inv.IInventoryDestination; +import com.google.common.collect.ImmutableSet; + public class PartInterface extends PartBasicState implements IGridTickable, IStorageMonitorable, IInventoryDestination, IInterfaceHost, ISidedInventory, IAEAppEngInventory, ITileStorageMonitorable, IPriorityHost { @@ -111,9 +111,9 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); rh.renderInventoryBox( renderer ); @@ -133,25 +133,24 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.setBounds( 5, 5, 12, 11, 11, 13 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); rh.setBounds( 5, 5, 13, 11, 11, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( pos, rh, renderer ); } @Override @@ -216,9 +215,9 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto } @Override - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture(IRenderHelper renderer) { - return this.is.getIconIndex(); + return renderer.getIcon( is ).getAtlas(); } @Override @@ -282,15 +281,15 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto } @Override - public String getInventoryName() + public String getName() { - return this.duality.getStorage().getInventoryName(); + return this.duality.getStorage().getName(); } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { - return this.duality.getStorage().hasCustomInventoryName(); + return this.duality.getStorage().hasCustomName(); } @Override @@ -312,15 +311,15 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto } @Override - public void openInventory() + public void openInventory( EntityPlayer player ) { - this.duality.getStorage().openInventory(); + this.duality.getStorage().openInventory(player); } @Override - public void closeInventory() + public void closeInventory( EntityPlayer player ) { - this.duality.getStorage().closeInventory(); + this.duality.getStorage().closeInventory(player); } @Override @@ -330,19 +329,19 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto } @Override - public int[] getAccessibleSlotsFromSide( int s ) + public int[] getSlotsForFace( EnumFacing side ) { - return this.duality.getAccessibleSlotsFromSide( s ); + return this.duality.getSlotsForFace( side ); } @Override - public boolean canInsertItem( int i, ItemStack itemstack, int j ) + public boolean canInsertItem( int i, ItemStack itemstack, EnumFacing j ) { return true; } @Override - public boolean canExtractItem( int i, ItemStack itemstack, int j ) + public boolean canExtractItem( int i, ItemStack itemstack, EnumFacing j ) { return true; } @@ -360,9 +359,9 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto } @Override - public EnumSet getTargets() + public EnumSet getTargets() { - return EnumSet.of( this.side ); + return EnumSet.of( this.side.getFacing() ); } @Override @@ -372,7 +371,7 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto } @Override - public IStorageMonitorable getMonitorable( ForgeDirection side, BaseActionSource src ) + public IStorageMonitorable getMonitorable( EnumFacing side, BaseActionSource src ) { return this.duality.getMonitorable( side, src, this ); } @@ -424,4 +423,37 @@ public class PartInterface extends PartBasicState implements IGridTickable, ISto { this.duality.setPriority( newValue ); } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + + } + + @Override + public IChatComponent getDisplayName() + { + return null; + } } diff --git a/src/main/java/appeng/parts/misc/PartInvertedToggleBus.java b/src/main/java/appeng/parts/misc/PartInvertedToggleBus.java index fbc3885d..807351b1 100644 --- a/src/main/java/appeng/parts/misc/PartInvertedToggleBus.java +++ b/src/main/java/appeng/parts/misc/PartInvertedToggleBus.java @@ -20,7 +20,6 @@ package appeng.parts.misc; import net.minecraft.item.ItemStack; - import appeng.helpers.Reflected; diff --git a/src/main/java/appeng/parts/misc/PartStorageBus.java b/src/main/java/appeng/parts/misc/PartStorageBus.java index ada9477a..2cc91b84 100644 --- a/src/main/java/appeng/parts/misc/PartStorageBus.java +++ b/src/main/java/appeng/parts/misc/PartStorageBus.java @@ -23,21 +23,15 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import buildcraft.api.transport.IPipeConnection; -import buildcraft.api.transport.IPipeTile.PipeType; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.FuzzyMode; @@ -69,7 +63,9 @@ import appeng.api.storage.IMEMonitorHandlerReceiver; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.AEPartLocation; import appeng.api.util.IConfigManager; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.core.settings.TickRates; import appeng.core.stats.Achievements; @@ -83,15 +79,13 @@ import appeng.me.storage.MEMonitorIInventory; import appeng.parts.automation.PartUpgradeable; import appeng.tile.inventory.AppEngInternalAEInventory; import appeng.tile.inventory.InvOperation; -import appeng.transformer.annotations.Integration.Interface; -import appeng.transformer.annotations.Integration.Method; import appeng.util.Platform; import appeng.util.prioitylist.FuzzyPriorityList; import appeng.util.prioitylist.PrecisePriorityList; - -@Interface( iname = "BC", iface = "buildcraft.api.transport.IPipeConnection" ) -public class PartStorageBus extends PartUpgradeable implements IGridTickable, ICellContainer, IMEMonitorHandlerReceiver, IPipeConnection, IPriorityHost +// TODO: BC PIPE INTEGRATION +//@Interface( iname = "BC", iface = "buildcraft.api.transport.IPipeConnection" ) - IPipeConnection +public class PartStorageBus extends PartUpgradeable implements IGridTickable, ICellContainer, IMEMonitorHandlerReceiver, IPriorityHost { final BaseActionSource mySrc; final AppEngInternalAEInventory Config = new AppEngInternalAEInventory( this, 63 ); @@ -204,7 +198,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC private void resetCache( boolean fullReset ) { - if( this.host == null || this.host.getTile() == null || this.host.getTile().getWorldObj() == null || this.host.getTile().getWorldObj().isRemote ) + if( this.host == null || this.host.getTile() == null || this.host.getTile().getWorld() == null || this.host.getTile().getWorld().isRemote ) { return; } @@ -266,9 +260,9 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon() ); + rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon() ); rh.setBounds( 3, 3, 15, 13, 13, 16 ); rh.renderInventoryBox( renderer ); @@ -282,28 +276,27 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon() ); + rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon() ); rh.setBounds( 3, 3, 15, 13, 13, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 2, 2, 14, 14, 14, 15 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon() ); + rh.setTexture( CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartStorageSides.getIcon(), CableBusTextures.PartStorageSides.getIcon() ); rh.setBounds( 5, 5, 12, 11, 11, 13 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); rh.setBounds( 5, 5, 13, 11, 11, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( pos, rh, renderer ); } @Override @@ -402,7 +395,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC this.cached = true; TileEntity self = this.getHost().getTile(); - TileEntity target = self.getWorldObj().getTileEntity( self.xCoord + this.side.offsetX, self.yCoord + this.side.offsetY, self.zCoord + this.side.offsetZ ); + TileEntity target = self.getWorld().getTileEntity( self.getPos().offset( side.getFacing() ) ); int newHandlerHash = Platform.generateTileHash( target ); @@ -426,10 +419,10 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC this.monitor = null; if( target != null ) { - IExternalStorageHandler esh = AEApi.instance().registries().externalStorage().getHandler( target, this.side.getOpposite(), StorageChannel.ITEMS, this.mySrc ); + IExternalStorageHandler esh = AEApi.instance().registries().externalStorage().getHandler( target, this.side.getFacing().getOpposite(), StorageChannel.ITEMS, this.mySrc ); if( esh != null ) { - IMEInventory inv = esh.getInventory( target, this.side.getOpposite(), StorageChannel.ITEMS, this.mySrc ); + IMEInventory inv = esh.getInventory( target, this.side.getFacing().getOpposite(), StorageChannel.ITEMS, this.mySrc ); if( inv instanceof MEMonitorIInventory ) { @@ -506,7 +499,7 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC return this.handler; } - private void checkInterfaceVsStorageBus( TileEntity target, ForgeDirection side ) + private void checkInterfaceVsStorageBus( TileEntity target, AEPartLocation side ) { IInterfaceHost achievement = null; @@ -564,13 +557,15 @@ public class PartStorageBus extends PartUpgradeable implements IGridTickable, IC { } + // TODO: BC PIPE INTEGRATION + /* @Override @Method( iname = "BC" ) - public ConnectOverride overridePipeConnection( PipeType type, ForgeDirection with ) + public ConnectOverride overridePipeConnection( PipeType type, AEPartLocation with ) { return type == PipeType.ITEM && with == this.side ? ConnectOverride.CONNECT : ConnectOverride.DISCONNECT; } - + */ @Override public void saveChanges( IMEInventory cellInventory ) { diff --git a/src/main/java/appeng/parts/misc/PartToggleBus.java b/src/main/java/appeng/parts/misc/PartToggleBus.java index 24ead871..be33a38a 100644 --- a/src/main/java/appeng/parts/misc/PartToggleBus.java +++ b/src/main/java/appeng/parts/misc/PartToggleBus.java @@ -23,18 +23,16 @@ import java.util.ArrayList; import java.util.EnumSet; import java.util.List; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.api.AEApi; import appeng.api.exceptions.FailedConnection; @@ -44,6 +42,8 @@ import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.helpers.Reflected; import appeng.me.helpers.AENetworkProxy; @@ -70,10 +70,10 @@ public class PartToggleBus extends PartBasicState } @Override - public void setColors( boolean hasChan, boolean hasPower ) + public void setColors( IRenderHelper renderer, boolean hasChan, boolean hasPower ) { this.hasRedstone = ( this.clientFlags & this.REDSTONE_FLAG ) == this.REDSTONE_FLAG; - super.setColors( hasChan && this.hasRedstone, hasPower && this.hasRedstone ); + super.setColors( renderer, hasChan && this.hasRedstone, hasPower && this.hasRedstone ); } @Override @@ -88,13 +88,13 @@ public class PartToggleBus extends PartBasicState } @Override - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture( IRenderHelper renderer ) { - return this.is.getIconIndex(); + return renderer.getIcon( is ).getAtlas(); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.GLASS; } @@ -107,7 +107,7 @@ public class PartToggleBus extends PartBasicState List items = new ArrayList(); items.add( this.is.copy() ); this.host.removePart( this.side, false ); - Platform.spawnDrops( this.tile.getWorldObj(), this.tile.xCoord, this.tile.yCoord, this.tile.zCoord, items ); + Platform.spawnDrops( this.tile.getWorld(), this.tile.getPos(), items ); this.is.stackSize = 0; } } @@ -120,11 +120,11 @@ public class PartToggleBus extends PartBasicState @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { GL11.glTranslated( -0.2, -0.3, 0.0 ); - rh.setTexture( this.is.getIconIndex() ); + rh.setTexture( renderer.getIcon( is ) ); rh.setBounds( 6, 6, 14 - 4, 10, 10, 16 - 4 ); rh.renderInventoryBox( renderer ); @@ -145,23 +145,22 @@ public class PartToggleBus extends PartBasicState @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( this.is.getIconIndex() ); + rh.setTexture( renderer.getIcon( is ) ); rh.setBounds( 6, 6, 14, 10, 10, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 6, 6, 11, 10, 10, 13 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); rh.setBounds( 6, 6, 13, 10, 10, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( pos, rh, renderer ); } @Override @@ -208,10 +207,10 @@ public class PartToggleBus extends PartBasicState } @Override - public void setPartHostInfo( ForgeDirection side, IPartHost host, TileEntity tile ) + public void setPartHostInfo( AEPartLocation side, IPartHost host, TileEntity tile ) { super.setPartHostInfo( side, host, tile ); - this.outerProxy.setValidSides( EnumSet.of( side ) ); + this.outerProxy.setValidSides( EnumSet.of( side.getFacing() ) ); } @Override @@ -227,7 +226,7 @@ public class PartToggleBus extends PartBasicState } @Override - public void onPlacement( EntityPlayer player, ItemStack held, ForgeDirection side ) + public void onPlacement( EntityPlayer player, ItemStack held, AEPartLocation side ) { super.onPlacement( player, held, side ); this.outerProxy.setOwner( player ); diff --git a/src/main/java/appeng/parts/networking/PartCable.java b/src/main/java/appeng/parts/networking/PartCable.java index 5a1827fe..2ae1d939 100644 --- a/src/main/java/appeng/parts/networking/PartCable.java +++ b/src/main/java/appeng/parts/networking/PartCable.java @@ -19,24 +19,22 @@ package appeng.parts.networking; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.EnumSet; -import org.lwjgl.opengl.GL11; - -import io.netty.buffer.ByteBuf; - -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.api.AEApi; import appeng.api.config.SecurityPermissions; @@ -54,10 +52,13 @@ import appeng.api.parts.IPartRenderHelper; import appeng.api.util.AECableType; import appeng.api.util.AEColor; import appeng.api.util.AEColoredItemDefinition; +import appeng.api.util.AEPartLocation; import appeng.api.util.IReadOnlyCollection; import appeng.block.AEBaseBlock; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.client.texture.FlippableIcon; +import appeng.client.texture.IAESprite; import appeng.client.texture.TaughtIcon; import appeng.items.parts.ItemMultiPart; import appeng.me.GridAccessException; @@ -71,7 +72,7 @@ public class PartCable extends AEBasePart implements IPartCable final int[] channelsOnSide = new int[] { 0, 0, 0, 0, 0, 0 }; - EnumSet connections = EnumSet.noneOf( ForgeDirection.class ); + EnumSet connections = EnumSet.noneOf( AEPartLocation.class ); boolean powered = false; public PartCable( ItemStack is ) @@ -144,8 +145,8 @@ public class PartCable extends AEBasePart implements IPartCable return true; } - this.getHost().removePart( ForgeDirection.UNKNOWN, true ); - this.getHost().addPart( newPart, ForgeDirection.UNKNOWN, who ); + this.getHost().removePart( AEPartLocation.INTERNAL, true ); + this.getHost().addPart( newPart, AEPartLocation.INTERNAL, who ); return true; } } @@ -153,15 +154,16 @@ public class PartCable extends AEBasePart implements IPartCable } @Override - public void setValidSides( EnumSet sides ) + public void setValidSides( + EnumSet sides ) { this.proxy.setValidSides( sides ); } @Override - public boolean isConnected( ForgeDirection side ) + public boolean isConnected( EnumFacing side ) { - return this.connections.contains( side ); + return this.connections.contains( AEPartLocation.fromFacing( side ) ); } public void markForUpdate() @@ -190,7 +192,7 @@ public class PartCable extends AEBasePart implements IPartCable IPartHost ph = this.getHost(); if( ph != null ) { - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation dir : AEPartLocation.SIDE_LOCATIONS ) { IPart p = ph.getPart( dir ); if( p instanceof IGridHost ) @@ -228,7 +230,7 @@ public class PartCable extends AEBasePart implements IPartCable } } - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { switch( of ) { @@ -257,22 +259,22 @@ public class PartCable extends AEBasePart implements IPartCable @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { GL11.glTranslated( -0.0, -0.0, 0.3 ); - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(),renderer ) ); rh.setBounds( 6.0f, 6.0f, 2.0f, 10.0f, 10.0f, 14.0f ); rh.renderInventoryBox( renderer ); rh.setTexture( null ); } - public IIcon getTexture( AEColor c ) + public IAESprite getTexture( AEColor c,IRenderHelper renderer ) { - return this.getGlassTexture( c ); + return this.getGlassTexture( c,renderer ); } - public IIcon getGlassTexture( AEColor c ) + public IAESprite getGlassTexture( AEColor c,IRenderHelper renderer ) { switch( c ) { @@ -314,7 +316,7 @@ public class PartCable extends AEBasePart implements IPartCable final AEColoredItemDefinition glassCable = AEApi.instance().definitions().parts().cableGlass(); final ItemStack glassCableStack = glassCable.stack( AEColor.Transparent, 1 ); - return glassCable.item( AEColor.Transparent ).getIconIndex( glassCableStack ); + return renderer.getIcon( glassCableStack ); } @Override @@ -325,13 +327,12 @@ public class PartCable extends AEBasePart implements IPartCable @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); boolean useCovered = false; boolean requireDetailed = false; - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation dir : AEPartLocation.SIDE_LOCATIONS ) { IPart p = this.getHost().getPart( dir ); if( p instanceof IGridHost ) @@ -346,7 +347,7 @@ public class PartCable extends AEBasePart implements IPartCable } else if( this.connections.contains( dir ) ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( pos.offset( dir.getFacing() ) ); IPartHost partHost = te instanceof IPartHost ? (IPartHost) te : null; IGridHost gh = te instanceof IGridHost ? (IGridHost) te : null; if( partHost == null && gh != null && gh.getCableConnectionType( dir ) != AECableType.GLASS ) @@ -358,15 +359,15 @@ public class PartCable extends AEBasePart implements IPartCable if( useCovered ) { - rh.setTexture( this.getCoveredTexture( this.getCableColor() ) ); + rh.setTexture( this.getCoveredTexture( this.getCableColor(), renderer ) ); } else { - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(),renderer ) ); } IPartHost ph = this.getHost(); - for( ForgeDirection of : EnumSet.complementOf( this.connections ) ) + for( AEPartLocation of : EnumSet.complementOf( this.connections ) ) { IPart bp = ph.getPart( of ); if( bp instanceof IGridHost ) @@ -397,7 +398,7 @@ public class PartCable extends AEBasePart implements IPartCable default: continue; } - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } } } @@ -407,27 +408,27 @@ public class PartCable extends AEBasePart implements IPartCable if( useCovered ) { rh.setBounds( 5, 5, 5, 11, 11, 11 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } else { rh.setBounds( 6, 6, 6, 10, 10, 10 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { - this.renderGlassConnection( x, y, z, rh, renderer, of ); + this.renderGlassConnection( pos, rh, renderer, of ); } } else { - IIcon def = this.getTexture( this.getCableColor() ); + IAESprite def = this.getTexture( this.getCableColor(), renderer ); rh.setTexture( def ); - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { - rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of, of.getOpposite() ) ) ); + rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of.getFacing(), of.getFacing().getOpposite() ) ) ); switch( of ) { case DOWN: @@ -449,10 +450,10 @@ public class PartCable extends AEBasePart implements IPartCable } } - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); } - rh.setFacesToRender( EnumSet.allOf( ForgeDirection.class ) ); + rh.setFacesToRender( EnumSet.allOf( EnumFacing.class ) ); rh.setTexture( null ); } @@ -487,7 +488,7 @@ public class PartCable extends AEBasePart implements IPartCable IGridNode n = this.getGridNode(); if( n != null ) { - for( ForgeDirection thisSide : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation thisSide : AEPartLocation.SIDE_LOCATIONS ) { IPart part = this.getHost().getPart( thisSide ); if( part != null ) @@ -512,8 +513,8 @@ public class PartCable extends AEBasePart implements IPartCable for( IGridConnection gc : n.getConnections() ) { - ForgeDirection side = gc.getDirection( n ); - if( side != ForgeDirection.UNKNOWN ) + AEPartLocation side = gc.getDirection( n ); + if( side != AEPartLocation.INTERNAL ) { boolean isTier2a = this.proxy.getNode().hasFlag( GridFlags.DENSE_CAPACITY ); boolean isTier2b = gc.getOtherSide( this.proxy.getNode() ).hasFlag( GridFlags.DENSE_CAPACITY ); @@ -535,7 +536,7 @@ public class PartCable extends AEBasePart implements IPartCable { if( this.proxy.getEnergy().isNetworkPowered() ) { - cs |= ( 1 << ForgeDirection.UNKNOWN.ordinal() ); + cs |= ( 1 << AEPartLocation.INTERNAL.ordinal() ); } } catch( GridAccessException e ) @@ -553,14 +554,14 @@ public class PartCable extends AEBasePart implements IPartCable int cs = data.readByte(); int sideOut = data.readInt(); - EnumSet myC = this.connections.clone(); + EnumSet myC = this.connections.clone(); boolean wasPowered = this.powered; this.powered = false; boolean channelsChanged = false; - for( ForgeDirection d : ForgeDirection.values() ) + for( AEPartLocation d : AEPartLocation.values() ) { - if( d != ForgeDirection.UNKNOWN ) + if( d != AEPartLocation.INTERNAL ) { int ch = ( sideOut >> ( d.ordinal() * 4 ) ) & 0xF; if( ch != this.channelsOnSide[d.ordinal()] ) @@ -570,7 +571,7 @@ public class PartCable extends AEBasePart implements IPartCable } } - if( d == ForgeDirection.UNKNOWN ) + if( d == AEPartLocation.INTERNAL ) { int id = 1 << d.ordinal(); if( id == ( cs & id ) ) @@ -597,12 +598,12 @@ public class PartCable extends AEBasePart implements IPartCable @Override @SideOnly( Side.CLIENT ) - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture( IRenderHelper renderer ) { - return this.getTexture( this.getCableColor() ); + return this.getTexture( this.getCableColor(), renderer ).getAtlas(); } - public IIcon getCoveredTexture( AEColor c ) + public IAESprite getCoveredTexture( AEColor c, IRenderHelper renderer ) { switch( c ) { @@ -644,30 +645,30 @@ public class PartCable extends AEBasePart implements IPartCable final AEColoredItemDefinition coveredCable = AEApi.instance().definitions().parts().cableCovered(); final ItemStack coveredCableStack = coveredCable.stack( AEColor.Transparent, 1 ); - return coveredCable.item( AEColor.Transparent ).getIconIndex( coveredCableStack ); + return renderer.getIcon( coveredCableStack ); } - protected boolean nonLinear( EnumSet sides ) + protected boolean nonLinear( EnumSet sides ) { - return ( sides.contains( ForgeDirection.EAST ) && sides.contains( ForgeDirection.WEST ) ) || ( sides.contains( ForgeDirection.NORTH ) && sides.contains( ForgeDirection.SOUTH ) ) || ( sides.contains( ForgeDirection.UP ) && sides.contains( ForgeDirection.DOWN ) ); + return ( sides.contains( AEPartLocation.EAST ) && sides.contains( AEPartLocation.WEST ) ) || ( sides.contains( AEPartLocation.NORTH ) && sides.contains( AEPartLocation.SOUTH ) ) || ( sides.contains( AEPartLocation.UP ) && sides.contains( AEPartLocation.DOWN ) ); } @SideOnly( Side.CLIENT ) - public void renderGlassConnection( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer, ForgeDirection of ) + public void renderGlassConnection( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer, AEPartLocation of ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( x + of.offsetX, y + of.offsetY, z + of.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( pos.offset( of.getFacing() ) ); IPartHost partHost = te instanceof IPartHost ? (IPartHost) te : null; IGridHost gh = te instanceof IGridHost ? (IGridHost) te : null; - rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of ) ) ); + rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of.getFacing() ) ) ); if( gh != null && partHost != null && gh.getCableConnectionType( of.getOpposite() ) == AECableType.GLASS && partHost.getColor() != AEColor.Transparent && partHost.getPart( of.getOpposite() ) == null ) { - rh.setTexture( this.getTexture( partHost.getColor() ) ); + rh.setTexture( this.getTexture( partHost.getColor(), renderer ) ); } else if( partHost == null && gh != null && gh.getCableConnectionType( of.getOpposite() ) != AECableType.GLASS ) { - rh.setTexture( this.getCoveredTexture( this.getCableColor() ) ); + rh.setTexture( this.getCoveredTexture( this.getCableColor(), renderer ) ); switch( of ) { case DOWN: @@ -692,12 +693,12 @@ public class PartCable extends AEBasePart implements IPartCable return; } - rh.renderBlock( x, y, z, renderer ); - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.renderBlock( pos, renderer ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); } else { - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); } switch( of ) @@ -724,25 +725,25 @@ public class PartCable extends AEBasePart implements IPartCable return; } - rh.renderBlock( x, y, z, renderer ); - rh.setFacesToRender( EnumSet.allOf( ForgeDirection.class ) ); + rh.renderBlock( pos, renderer ); + rh.setFacesToRender( EnumSet.allOf( EnumFacing.class ) ); } @SideOnly( Side.CLIENT ) - public void renderCoveredConnection( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer, int channels, ForgeDirection of ) + public void renderCoveredConnection( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer, int channels, AEPartLocation of ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( x + of.offsetX, y + of.offsetY, z + of.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( pos.offset( of.getFacing() ) ); IPartHost partHost = te instanceof IPartHost ? (IPartHost) te : null; IGridHost ghh = te instanceof IGridHost ? (IGridHost) te : null; - rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of ) ) ); + rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of.getFacing() ) ) ); if( ghh != null && partHost != null && ghh.getCableConnectionType( of.getOpposite() ) == AECableType.GLASS && partHost.getPart( of.getOpposite() ) == null && partHost.getColor() != AEColor.Transparent ) { - rh.setTexture( this.getGlassTexture( partHost.getColor() ) ); + rh.setTexture( this.getGlassTexture( partHost.getColor(), renderer ) ); } else if( partHost == null && ghh != null && ghh.getCableConnectionType( of.getOpposite() ) != AECableType.GLASS ) { - rh.setTexture( this.getCoveredTexture( this.getCableColor() ) ); + rh.setTexture( this.getCoveredTexture( this.getCableColor(), renderer ) ); switch( of ) { case DOWN: @@ -767,17 +768,17 @@ public class PartCable extends AEBasePart implements IPartCable return; } - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); } else if( ghh != null && partHost != null && ghh.getCableConnectionType( of.getOpposite() ) == AECableType.COVERED && partHost.getColor() != AEColor.Transparent && partHost.getPart( of.getOpposite() ) == null ) { - rh.setTexture( this.getCoveredTexture( partHost.getColor() ) ); + rh.setTexture( this.getCoveredTexture( partHost.getColor(), renderer ) ); } else { - rh.setTexture( this.getCoveredTexture( this.getCableColor() ) ); + rh.setTexture( this.getCoveredTexture( this.getCableColor(), renderer ) ); } switch( of ) @@ -804,30 +805,30 @@ public class PartCable extends AEBasePart implements IPartCable return; } - rh.renderBlock( x, y, z, renderer ); - rh.setFacesToRender( EnumSet.allOf( ForgeDirection.class ) ); - rh.setFacesToRender( EnumSet.allOf( ForgeDirection.class ) ); + rh.renderBlock( pos, renderer ); + rh.setFacesToRender( EnumSet.allOf( EnumFacing.class ) ); + rh.setFacesToRender( EnumSet.allOf( EnumFacing.class ) ); } @SideOnly( Side.CLIENT ) - public void renderSmartConnection( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer, int channels, ForgeDirection of ) + public void renderSmartConnection( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer, int channels, AEPartLocation of ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( x + of.offsetX, y + of.offsetY, z + of.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( pos.offset( of.getFacing() ) ); IPartHost partHost = te instanceof IPartHost ? (IPartHost) te : null; IGridHost ghh = te instanceof IGridHost ? (IGridHost) te : null; boolean isGlass = false; AEColor myColor = this.getCableColor(); - rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of ) ) ); + rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of.getFacing() ) ) ); if( ghh != null && partHost != null && ghh.getCableConnectionType( of.getOpposite() ) == AECableType.GLASS && partHost.getPart( of.getOpposite() ) == null && partHost.getColor() != AEColor.Transparent ) { isGlass = true; - rh.setTexture( this.getGlassTexture( myColor = partHost.getColor() ) ); + rh.setTexture( this.getGlassTexture( myColor = partHost.getColor(), renderer ) ); } else if( partHost == null && ghh != null && ghh.getCableConnectionType( of.getOpposite() ) != AECableType.GLASS ) { - rh.setTexture( this.getSmartTexture( myColor ) ); + rh.setTexture( this.getSmartTexture( myColor, renderer ) ); switch( of ) { case DOWN: @@ -851,40 +852,40 @@ public class PartCable extends AEBasePart implements IPartCable default: return; } - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); this.setSmartConnectionRotations( of, renderer ); - IIcon firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); - IIcon secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); + IAESprite firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); + IAESprite secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); - if( of == ForgeDirection.EAST || of == ForgeDirection.WEST ) + if( of == AEPartLocation.EAST || of == AEPartLocation.WEST ) { AEBaseBlock blk = (AEBaseBlock) rh.getBlock(); - FlippableIcon ico = blk.getRendererInstance().getTexture( ForgeDirection.EAST ); + FlippableIcon ico = blk.getRendererInstance().getTexture( AEPartLocation.EAST ); ico.setFlip( false, true ); } - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( myColor.blackVariant ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setColorOpaque_I( myColor.blackVariant ); rh.setTexture( firstIcon, firstIcon, firstIcon, firstIcon, firstIcon, firstIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( myColor.whiteVariant ); + renderer.setColorOpaque_I( myColor.whiteVariant ); rh.setTexture( secondIcon, secondIcon, secondIcon, secondIcon, secondIcon, secondIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); } else if( ghh != null && partHost != null && ghh.getCableConnectionType( of.getOpposite() ) != AECableType.GLASS && partHost.getColor() != AEColor.Transparent && partHost.getPart( of.getOpposite() ) == null ) { - rh.setTexture( this.getSmartTexture( myColor = partHost.getColor() ) ); + rh.setTexture( this.getSmartTexture( myColor = partHost.getColor(), renderer ) ); } else { - rh.setTexture( this.getSmartTexture( this.getCableColor() ) ); + rh.setTexture( this.getSmartTexture( this.getCableColor(), renderer ) ); } switch( of ) @@ -911,30 +912,30 @@ public class PartCable extends AEBasePart implements IPartCable return; } - rh.renderBlock( x, y, z, renderer ); - rh.setFacesToRender( EnumSet.allOf( ForgeDirection.class ) ); + rh.renderBlock( pos, renderer ); + rh.setFacesToRender( EnumSet.allOf( EnumFacing.class ) ); if( !isGlass ) { this.setSmartConnectionRotations( of, renderer ); - IIcon firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); - IIcon secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); + IAESprite firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); + IAESprite secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( myColor.blackVariant ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setColorOpaque_I( myColor.blackVariant ); rh.setTexture( firstIcon, firstIcon, firstIcon, firstIcon, firstIcon, firstIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( myColor.whiteVariant ); + renderer.setColorOpaque_I( myColor.whiteVariant ); rh.setTexture( secondIcon, secondIcon, secondIcon, secondIcon, secondIcon, secondIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; } } - public IIcon getSmartTexture( AEColor c ) + public IAESprite getSmartTexture( AEColor c, IRenderHelper renderer ) { switch( c ) { @@ -976,11 +977,11 @@ public class PartCable extends AEBasePart implements IPartCable final IParts parts = AEApi.instance().definitions().parts(); final ItemStack smartCableStack = parts.cableSmart().stack( AEColor.Transparent, 1 ); - return parts.cableCovered().item( AEColor.Transparent ).getIconIndex( smartCableStack ); + return renderer.getIcon(smartCableStack ); } @SideOnly( Side.CLIENT ) - protected void setSmartConnectionRotations( ForgeDirection of, RenderBlocks renderer ) + protected void setSmartConnectionRotations( AEPartLocation of, IRenderHelper renderer ) { switch( of ) { @@ -1055,14 +1056,14 @@ public class PartCable extends AEBasePart implements IPartCable } @SideOnly( Side.CLIENT ) - protected void renderAllFaces( AEBaseBlock blk, int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + protected void renderAllFaces( AEBaseBlock blk, BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { rh.setBounds( (float) renderer.renderMinX * 16.0f, (float) renderer.renderMinY * 16.0f, (float) renderer.renderMinZ * 16.0f, (float) renderer.renderMaxX * 16.0f, (float) renderer.renderMaxY * 16.0f, (float) renderer.renderMaxZ * 16.0f ); - rh.renderFace( x, y, z, blk.getRendererInstance().getTexture( ForgeDirection.WEST ), ForgeDirection.WEST, renderer ); - rh.renderFace( x, y, z, blk.getRendererInstance().getTexture( ForgeDirection.EAST ), ForgeDirection.EAST, renderer ); - rh.renderFace( x, y, z, blk.getRendererInstance().getTexture( ForgeDirection.NORTH ), ForgeDirection.NORTH, renderer ); - rh.renderFace( x, y, z, blk.getRendererInstance().getTexture( ForgeDirection.SOUTH ), ForgeDirection.SOUTH, renderer ); - rh.renderFace( x, y, z, blk.getRendererInstance().getTexture( ForgeDirection.DOWN ), ForgeDirection.DOWN, renderer ); - rh.renderFace( x, y, z, blk.getRendererInstance().getTexture( ForgeDirection.UP ), ForgeDirection.UP, renderer ); + rh.renderFace( pos, blk.getRendererInstance().getTexture( AEPartLocation.WEST ), EnumFacing.WEST, renderer ); + rh.renderFace( pos, blk.getRendererInstance().getTexture( AEPartLocation.EAST ), EnumFacing.EAST, renderer ); + rh.renderFace( pos, blk.getRendererInstance().getTexture( AEPartLocation.NORTH ), EnumFacing.NORTH, renderer ); + rh.renderFace( pos, blk.getRendererInstance().getTexture( AEPartLocation.SOUTH ), EnumFacing.SOUTH, renderer ); + rh.renderFace( pos, blk.getRendererInstance().getTexture( AEPartLocation.DOWN ), EnumFacing.DOWN, renderer ); + rh.renderFace( pos, blk.getRendererInstance().getTexture( AEPartLocation.UP ), EnumFacing.UP, renderer ); } } diff --git a/src/main/java/appeng/parts/networking/PartCableCovered.java b/src/main/java/appeng/parts/networking/PartCableCovered.java index 001034a8..d86dd577 100644 --- a/src/main/java/appeng/parts/networking/PartCableCovered.java +++ b/src/main/java/appeng/parts/networking/PartCableCovered.java @@ -21,15 +21,13 @@ package appeng.parts.networking; import java.util.EnumSet; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; @@ -42,6 +40,9 @@ import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; +import appeng.client.texture.IAESprite; import appeng.client.texture.OffsetIcon; import appeng.helpers.Reflected; import appeng.util.Platform; @@ -91,7 +92,7 @@ public class PartCableCovered extends PartCable } } - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { switch( of ) { @@ -120,7 +121,7 @@ public class PartCableCovered extends PartCable @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { GL11.glTranslated( -0.0, -0.0, 0.3 ); @@ -128,25 +129,25 @@ public class PartCableCovered extends PartCable float offU = 0; float offV = 9; - OffsetIcon main = new OffsetIcon( this.getTexture( this.getCableColor() ), offU, offV ); + OffsetIcon main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), offU, offV ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.UP, ForgeDirection.DOWN ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.UP, EnumFacing.DOWN ) ) { rh.renderInventoryFace( main, side, renderer ); } offU = 9; offV = 0; - main = new OffsetIcon( this.getTexture( this.getCableColor() ), offU, offV ); + main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), offU, offV ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.EAST, ForgeDirection.WEST ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.EAST, EnumFacing.WEST ) ) { rh.renderInventoryFace( main, side, renderer ); } - main = new OffsetIcon( this.getTexture( this.getCableColor() ), 0, 0 ); + main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), 0, 0 ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.SOUTH, ForgeDirection.NORTH ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.SOUTH, EnumFacing.NORTH ) ) { rh.renderInventoryFace( main, side, renderer ); } @@ -155,28 +156,27 @@ public class PartCableCovered extends PartCable } @Override - public IIcon getTexture( AEColor c ) + public IAESprite getTexture( AEColor c, IRenderHelper renderer ) { - return this.getCoveredTexture( c ); + return this.getCoveredTexture( c, renderer ); } @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); - EnumSet sides = this.connections.clone(); + EnumSet sides = this.connections.clone(); boolean hasBuses = false; IPartHost ph = this.getHost(); - for( ForgeDirection of : EnumSet.complementOf( this.connections ) ) + for( AEPartLocation of : EnumSet.complementOf( this.connections ) ) { IPart bp = ph.getPart( of ); if( bp instanceof IGridHost ) { - if( of != ForgeDirection.UNKNOWN ) + if( of != AEPartLocation.INTERNAL ) { sides.add( of ); hasBuses = true; @@ -208,27 +208,27 @@ public class PartCableCovered extends PartCable default: continue; } - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } } } if( sides.size() != 2 || !this.nonLinear( sides ) || hasBuses ) { - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { - this.renderCoveredConnection( x, y, z, rh, renderer, this.channelsOnSide[of.ordinal()], of ); + this.renderCoveredConnection( pos, rh, renderer, this.channelsOnSide[of.ordinal()], of ); } - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); rh.setBounds( 5, 5, 5, 11, 11, 11 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } else { - IIcon def = this.getTexture( this.getCableColor() ); - IIcon off = new OffsetIcon( def, 0, -12 ); - for( ForgeDirection of : this.connections ) + IAESprite def = this.getTexture( this.getCableColor(), renderer ); + IAESprite off = new OffsetIcon( def, 0, -12 ); + for( AEPartLocation of : this.connections ) { switch( of ) { @@ -254,7 +254,7 @@ public class PartCableCovered extends PartCable } } - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); } renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; diff --git a/src/main/java/appeng/parts/networking/PartCableGlass.java b/src/main/java/appeng/parts/networking/PartCableGlass.java index 246d0760..7268df95 100644 --- a/src/main/java/appeng/parts/networking/PartCableGlass.java +++ b/src/main/java/appeng/parts/networking/PartCableGlass.java @@ -20,7 +20,6 @@ package appeng.parts.networking; import net.minecraft.item.ItemStack; - import appeng.helpers.Reflected; diff --git a/src/main/java/appeng/parts/networking/PartCableSmart.java b/src/main/java/appeng/parts/networking/PartCableSmart.java index 624282e4..058c831d 100644 --- a/src/main/java/appeng/parts/networking/PartCableSmart.java +++ b/src/main/java/appeng/parts/networking/PartCableSmart.java @@ -21,16 +21,13 @@ package appeng.parts.networking; import java.util.EnumSet; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; @@ -43,8 +40,11 @@ import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseBlock; +import appeng.client.render.IRenderHelper; import appeng.client.texture.FlippableIcon; +import appeng.client.texture.IAESprite; import appeng.client.texture.OffsetIcon; import appeng.client.texture.TaughtIcon; import appeng.helpers.Reflected; @@ -95,7 +95,7 @@ public class PartCableSmart extends PartCable } } - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { switch( of ) { @@ -124,18 +124,18 @@ public class PartCableSmart extends PartCable @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { GL11.glTranslated( -0.0, -0.0, 0.3 ); float offU = 0; float offV = 9; - OffsetIcon main = new OffsetIcon( this.getTexture( this.getCableColor() ), offU, offV ); + OffsetIcon main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), offU, offV ); OffsetIcon ch1 = new OffsetIcon( this.getChannelTex( 4, false ).getIcon(), offU, offV ); OffsetIcon ch2 = new OffsetIcon( this.getChannelTex( 4, true ).getIcon(), offU, offV ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.UP, ForgeDirection.DOWN ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.UP, EnumFacing.DOWN ) ) { rh.setBounds( 5.0f, 5.0f, 2.0f, 11.0f, 11.0f, 14.0f ); rh.renderInventoryFace( main, side, renderer ); @@ -145,11 +145,11 @@ public class PartCableSmart extends PartCable offU = 9; offV = 0; - main = new OffsetIcon( this.getTexture( this.getCableColor() ), offU, offV ); + main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), offU, offV ); ch1 = new OffsetIcon( this.getChannelTex( 4, false ).getIcon(), offU, offV ); ch2 = new OffsetIcon( this.getChannelTex( 4, true ).getIcon(), offU, offV ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.EAST, ForgeDirection.WEST ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.EAST, EnumFacing.WEST ) ) { rh.setBounds( 5.0f, 5.0f, 2.0f, 11.0f, 11.0f, 14.0f ); rh.renderInventoryFace( main, side, renderer ); @@ -157,11 +157,11 @@ public class PartCableSmart extends PartCable rh.renderInventoryFace( ch2, side, renderer ); } - main = new OffsetIcon( this.getTexture( this.getCableColor() ), 0, 0 ); + main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), 0, 0 ); ch1 = new OffsetIcon( this.getChannelTex( 4, false ).getIcon(), 0, 0 ); ch2 = new OffsetIcon( this.getChannelTex( 4, true ).getIcon(), 0, 0 ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.SOUTH, ForgeDirection.NORTH ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.SOUTH, EnumFacing.NORTH ) ) { rh.setBounds( 5.0f, 5.0f, 2.0f, 11.0f, 11.0f, 14.0f ); rh.renderInventoryFace( main, side, renderer ); @@ -173,28 +173,27 @@ public class PartCableSmart extends PartCable } @Override - public IIcon getTexture( AEColor c ) + public IAESprite getTexture( AEColor c, IRenderHelper renderer ) { - return this.getSmartTexture( c ); + return this.getSmartTexture( c, renderer ); } @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); - EnumSet sides = this.connections.clone(); + EnumSet sides = this.connections.clone(); boolean hasBuses = false; IPartHost ph = this.getHost(); - for( ForgeDirection of : EnumSet.complementOf( this.connections ) ) + for( AEPartLocation of : EnumSet.complementOf( this.connections ) ) { IPart bp = ph.getPart( of ); if( bp instanceof IGridHost ) { - if( of != ForgeDirection.UNKNOWN ) + if( of != AEPartLocation.INTERNAL ) { sides.add( of ); hasBuses = true; @@ -226,65 +225,65 @@ public class PartCableSmart extends PartCable default: continue; } - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); this.setSmartConnectionRotations( of, renderer ); - IIcon firstIcon = new TaughtIcon( this.getChannelTex( this.channelsOnSide[of.ordinal()], false ).getIcon(), -0.2f ); - IIcon secondIcon = new TaughtIcon( this.getChannelTex( this.channelsOnSide[of.ordinal()], true ).getIcon(), -0.2f ); + IAESprite firstIcon = new TaughtIcon( this.getChannelTex( this.channelsOnSide[of.ordinal()], false ).getIcon(), -0.2f ); + IAESprite secondIcon = new TaughtIcon( this.getChannelTex( this.channelsOnSide[of.ordinal()], true ).getIcon(), -0.2f ); - if( of == ForgeDirection.EAST || of == ForgeDirection.WEST ) + if( of == AEPartLocation.EAST || of == AEPartLocation.WEST ) { AEBaseBlock blk = (AEBaseBlock) rh.getBlock(); - FlippableIcon ico = blk.getRendererInstance().getTexture( ForgeDirection.EAST ); + FlippableIcon ico = blk.getRendererInstance().getTexture( AEPartLocation.EAST ); ico.setFlip( false, true ); } - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().blackVariant ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setColorOpaque_I( this.getCableColor().blackVariant ); rh.setTexture( firstIcon, firstIcon, firstIcon, firstIcon, firstIcon, firstIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().whiteVariant ); + renderer.setColorOpaque_I( this.getCableColor().whiteVariant ); rh.setTexture( secondIcon, secondIcon, secondIcon, secondIcon, secondIcon, secondIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); } } } if( sides.size() != 2 || !this.nonLinear( sides ) || hasBuses ) { - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { - this.renderSmartConnection( x, y, z, rh, renderer, this.channelsOnSide[of.ordinal()], of ); + this.renderSmartConnection( pos, rh, renderer, this.channelsOnSide[of.ordinal()], of ); } - rh.setTexture( this.getCoveredTexture( this.getCableColor() ) ); + rh.setTexture( this.getCoveredTexture( this.getCableColor(), renderer ) ); rh.setBounds( 5, 5, 5, 11, 11, 11 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } else { - ForgeDirection selectedSide = ForgeDirection.UNKNOWN; + AEPartLocation selectedSide = AEPartLocation.INTERNAL; - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { selectedSide = of; break; } int channels = this.channelsOnSide[selectedSide.ordinal()]; - IIcon def = this.getTexture( this.getCableColor() ); - IIcon off = new OffsetIcon( def, 0, -12 ); + IAESprite def = this.getTexture( this.getCableColor(), renderer ); + IAESprite off = new OffsetIcon( def, 0, -12 ); - IIcon firstTaughtIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); - IIcon firstOffsetIcon = new OffsetIcon( firstTaughtIcon, 0, -12 ); + IAESprite firstTaughtIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); + IAESprite firstOffsetIcon = new OffsetIcon( firstTaughtIcon, 0, -12 ); - IIcon secondTaughtIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); - IIcon secondOffsetIcon = new OffsetIcon( secondTaughtIcon, 0, -12 ); + IAESprite secondTaughtIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); + IAESprite secondOffsetIcon = new OffsetIcon( secondTaughtIcon, 0, -12 ); switch( selectedSide ) { @@ -292,22 +291,22 @@ public class PartCableSmart extends PartCable case UP: renderer.setRenderBounds( 5 / 16.0, 0, 5 / 16.0, 11 / 16.0, 16 / 16.0, 11 / 16.0 ); rh.setTexture( def, def, off, off, off, off ); - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); renderer.uvRotateTop = 0; renderer.uvRotateBottom = 0; renderer.uvRotateSouth = 3; renderer.uvRotateEast = 3; - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().blackVariant ); + renderer.setColorOpaque_I( this.getCableColor().blackVariant ); rh.setTexture( firstTaughtIcon, firstTaughtIcon, firstOffsetIcon, firstOffsetIcon, firstOffsetIcon, firstOffsetIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().whiteVariant ); + renderer.setColorOpaque_I( this.getCableColor().whiteVariant ); rh.setTexture( secondTaughtIcon, secondTaughtIcon, secondOffsetIcon, secondOffsetIcon, secondOffsetIcon, secondOffsetIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); break; case EAST: case WEST: @@ -320,13 +319,13 @@ public class PartCableSmart extends PartCable renderer.uvRotateNorth = 0; AEBaseBlock blk = (AEBaseBlock) rh.getBlock(); - FlippableIcon ico = blk.getRendererInstance().getTexture( ForgeDirection.EAST ); + FlippableIcon ico = blk.getRendererInstance().getTexture( AEPartLocation.EAST ); ico.setFlip( false, true ); renderer.setRenderBounds( 0, 5 / 16.0, 5 / 16.0, 16 / 16.0, 11 / 16.0, 11 / 16.0 ); - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); FlippableIcon fpA = new FlippableIcon( firstTaughtIcon ); FlippableIcon fpB = new FlippableIcon( secondTaughtIcon ); @@ -337,13 +336,13 @@ public class PartCableSmart extends PartCable fpA.setFlip( true, false ); fpB.setFlip( true, false ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().blackVariant ); + renderer.setColorOpaque_I( this.getCableColor().blackVariant ); rh.setTexture( firstOffsetIcon, firstOffsetIcon, firstOffsetIcon, firstOffsetIcon, firstTaughtIcon, fpA ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().whiteVariant ); + renderer.setColorOpaque_I( this.getCableColor().whiteVariant ); rh.setTexture( secondOffsetIcon, secondOffsetIcon, secondOffsetIcon, secondOffsetIcon, secondTaughtIcon, fpB ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); break; case NORTH: case SOUTH: @@ -354,17 +353,17 @@ public class PartCableSmart extends PartCable renderer.uvRotateSouth = 2; renderer.uvRotateWest = 1; renderer.setRenderBounds( 5 / 16.0, 5 / 16.0, 0, 11 / 16.0, 11 / 16.0, 16 / 16.0 ); - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().blackVariant ); + renderer.setColorOpaque_I( this.getCableColor().blackVariant ); rh.setTexture( firstOffsetIcon, firstOffsetIcon, firstTaughtIcon, firstTaughtIcon, firstOffsetIcon, firstOffsetIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().whiteVariant ); + renderer.setColorOpaque_I( this.getCableColor().whiteVariant ); rh.setTexture( secondOffsetIcon, secondOffsetIcon, secondTaughtIcon, secondTaughtIcon, secondOffsetIcon, secondOffsetIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); break; default: break; diff --git a/src/main/java/appeng/parts/networking/PartDenseCable.java b/src/main/java/appeng/parts/networking/PartDenseCable.java index a84f3de4..8d518962 100644 --- a/src/main/java/appeng/parts/networking/PartDenseCable.java +++ b/src/main/java/appeng/parts/networking/PartDenseCable.java @@ -21,17 +21,14 @@ package appeng.parts.networking; import java.util.EnumSet; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.api.AEApi; import appeng.api.networking.GridFlags; @@ -46,9 +43,12 @@ import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.block.AEBaseBlock; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.client.texture.FlippableIcon; +import appeng.client.texture.IAESprite; import appeng.client.texture.OffsetIcon; import appeng.client.texture.TaughtIcon; import appeng.helpers.Reflected; @@ -99,7 +99,7 @@ public class PartDenseCable extends PartCable } } - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { if( this.isDense( of ) ) { @@ -156,7 +156,7 @@ public class PartDenseCable extends PartCable @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { GL11.glTranslated( -0.0, -0.0, 0.3 ); rh.setBounds( 4.0f, 4.0f, 2.0f, 12.0f, 12.0f, 14.0f ); @@ -164,11 +164,11 @@ public class PartDenseCable extends PartCable float offU = 0; float offV = 9; - OffsetIcon main = new OffsetIcon( this.getTexture( this.getCableColor() ), offU, offV ); + OffsetIcon main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), offU, offV ); OffsetIcon ch1 = new OffsetIcon( this.getChannelTex( 4, false ).getIcon(), offU, offV ); OffsetIcon ch2 = new OffsetIcon( this.getChannelTex( 4, true ).getIcon(), offU, offV ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.UP, ForgeDirection.DOWN ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.UP, EnumFacing.DOWN ) ) { rh.renderInventoryFace( main, side, renderer ); rh.renderInventoryFace( ch1, side, renderer ); @@ -177,22 +177,22 @@ public class PartDenseCable extends PartCable offU = 9; offV = 0; - main = new OffsetIcon( this.getTexture( this.getCableColor() ), offU, offV ); + main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), offU, offV ); ch1 = new OffsetIcon( this.getChannelTex( 4, false ).getIcon(), offU, offV ); ch2 = new OffsetIcon( this.getChannelTex( 4, true ).getIcon(), offU, offV ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.EAST, ForgeDirection.WEST ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.EAST, EnumFacing.WEST ) ) { rh.renderInventoryFace( main, side, renderer ); rh.renderInventoryFace( ch1, side, renderer ); rh.renderInventoryFace( ch2, side, renderer ); } - main = new OffsetIcon( this.getTexture( this.getCableColor() ), 0, 0 ); + main = new OffsetIcon( this.getTexture( this.getCableColor(), renderer ), 0, 0 ); ch1 = new OffsetIcon( this.getChannelTex( 4, false ).getIcon(), 0, 0 ); ch2 = new OffsetIcon( this.getChannelTex( 4, true ).getIcon(), 0, 0 ); - for( ForgeDirection side : EnumSet.of( ForgeDirection.SOUTH, ForgeDirection.NORTH ) ) + for( EnumFacing side : EnumSet.of( EnumFacing.SOUTH, EnumFacing.NORTH ) ) { rh.renderInventoryFace( main, side, renderer ); rh.renderInventoryFace( ch1, side, renderer ); @@ -203,27 +203,26 @@ public class PartDenseCable extends PartCable } @Override - public IIcon getTexture( AEColor c ) + public IAESprite getTexture( AEColor c, IRenderHelper renderer ) { if( c == AEColor.Transparent ) { - return AEApi.instance().definitions().parts().cableSmart().stack( AEColor.Transparent, 1 ).getIconIndex(); + return renderer.getIcon( AEApi.instance().definitions().parts().cableSmart().stack( AEColor.Transparent, 1 ) ); } - return this.getSmartTexture( c ); + return this.getSmartTexture( c, renderer ); } @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); - EnumSet sides = this.connections.clone(); + EnumSet sides = this.connections.clone(); boolean hasBuses = false; - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { if( !this.isDense( of ) ) { @@ -233,45 +232,45 @@ public class PartDenseCable extends PartCable if( sides.size() != 2 || !this.nonLinear( sides ) || hasBuses ) { - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { if( this.isDense( of ) ) { - this.renderDenseConnection( x, y, z, rh, renderer, this.channelsOnSide[of.ordinal()], of ); + this.renderDenseConnection( pos, rh, renderer, this.channelsOnSide[of.ordinal()], of ); } else if( this.isSmart( of ) ) { - this.renderSmartConnection( x, y, z, rh, renderer, this.channelsOnSide[of.ordinal()], of ); + this.renderSmartConnection( pos, rh, renderer, this.channelsOnSide[of.ordinal()], of ); } else { - this.renderCoveredConnection( x, y, z, rh, renderer, this.channelsOnSide[of.ordinal()], of ); + this.renderCoveredConnection( pos, rh, renderer, this.channelsOnSide[of.ordinal()], of ); } } - rh.setTexture( this.getDenseTexture( this.getCableColor() ) ); + rh.setTexture( this.getDenseTexture( this.getCableColor(), renderer ) ); rh.setBounds( 3, 3, 3, 13, 13, 13 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } else { - ForgeDirection selectedSide = ForgeDirection.UNKNOWN; + AEPartLocation selectedSide = AEPartLocation.INTERNAL; - for( ForgeDirection of : this.connections ) + for( AEPartLocation of : this.connections ) { selectedSide = of; break; } int channels = this.channelsOnSide[selectedSide.ordinal()]; - IIcon def = this.getTexture( this.getCableColor() ); - IIcon off = new OffsetIcon( def, 0, -12 ); + IAESprite def = this.getTexture( this.getCableColor(), renderer ); + IAESprite off = new OffsetIcon( def, 0, -12 ); - IIcon firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); - IIcon firstOffset = new OffsetIcon( firstIcon, 0, -12 ); + IAESprite firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); + IAESprite firstOffset = new OffsetIcon( firstIcon, 0, -12 ); - IIcon secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); - IIcon secondOffset = new OffsetIcon( secondIcon, 0, -12 ); + IAESprite secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); + IAESprite secondOffset = new OffsetIcon( secondIcon, 0, -12 ); switch( selectedSide ) { @@ -279,22 +278,22 @@ public class PartDenseCable extends PartCable case UP: renderer.setRenderBounds( 3 / 16.0, 0, 3 / 16.0, 13 / 16.0, 16 / 16.0, 13 / 16.0 ); rh.setTexture( def, def, off, off, off, off ); - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); renderer.uvRotateTop = 0; renderer.uvRotateBottom = 0; renderer.uvRotateSouth = 3; renderer.uvRotateEast = 3; - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().blackVariant ); + renderer.setColorOpaque_I( this.getCableColor().blackVariant ); rh.setTexture( firstIcon, firstIcon, firstOffset, firstOffset, firstOffset, firstOffset ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().whiteVariant ); + renderer.setColorOpaque_I( this.getCableColor().whiteVariant ); rh.setTexture( secondIcon, secondIcon, secondOffset, secondOffset, secondOffset, secondOffset ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); break; case EAST: case WEST: @@ -307,13 +306,13 @@ public class PartDenseCable extends PartCable renderer.uvRotateNorth = 0; AEBaseBlock blk = (AEBaseBlock) rh.getBlock(); - FlippableIcon ico = blk.getRendererInstance().getTexture( ForgeDirection.EAST ); + FlippableIcon ico = blk.getRendererInstance().getTexture( AEPartLocation.EAST ); ico.setFlip( false, true ); renderer.setRenderBounds( 0, 3 / 16.0, 3 / 16.0, 16 / 16.0, 13 / 16.0, 13 / 16.0 ); - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); FlippableIcon fpA = new FlippableIcon( firstIcon ); FlippableIcon fpB = new FlippableIcon( secondIcon ); @@ -321,13 +320,13 @@ public class PartDenseCable extends PartCable fpA.setFlip( true, false ); fpB.setFlip( true, false ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().blackVariant ); + renderer.setColorOpaque_I( this.getCableColor().blackVariant ); rh.setTexture( firstOffset, firstOffset, firstOffset, firstOffset, firstIcon, fpA ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().whiteVariant ); + renderer.setColorOpaque_I( this.getCableColor().whiteVariant ); rh.setTexture( secondOffset, secondOffset, secondOffset, secondOffset, secondIcon, fpB ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); break; case NORTH: case SOUTH: @@ -338,17 +337,17 @@ public class PartDenseCable extends PartCable renderer.uvRotateSouth = 2; renderer.uvRotateWest = 1; renderer.setRenderBounds( 3 / 16.0, 3 / 16.0, 0, 13 / 16.0, 13 / 16.0, 16 / 16.0 ); - rh.renderBlockCurrentBounds( x, y, z, renderer ); + rh.renderBlockCurrentBounds( pos, renderer ); - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().blackVariant ); + renderer.setColorOpaque_I( this.getCableColor().blackVariant ); rh.setTexture( firstOffset, firstOffset, firstIcon, firstIcon, firstOffset, firstOffset ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( this.getCableColor().whiteVariant ); + renderer.setColorOpaque_I( this.getCableColor().whiteVariant ); rh.setTexture( secondOffset, secondOffset, secondIcon, secondIcon, secondOffset, secondOffset ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); break; default: break; @@ -360,9 +359,9 @@ public class PartDenseCable extends PartCable } @SideOnly( Side.CLIENT ) - public void renderDenseConnection( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer, int channels, ForgeDirection of ) + public void renderDenseConnection( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer, int channels, AEPartLocation of ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( x + of.offsetX, y + of.offsetY, z + of.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( pos.offset( of.getFacing() ) ); IPartHost partHost = te instanceof IPartHost ? (IPartHost) te : null; IGridHost ghh = te instanceof IGridHost ? (IGridHost) te : null; boolean isGlass = false; @@ -377,12 +376,12 @@ public class PartDenseCable extends PartCable * 13 ); break; case WEST: rh.setBounds( 0, 3, 3, 4, 13, 13 ); break; default: return; } rh.renderBlock( x, y, * z, renderer ); * - * if ( true ) { setSmartConnectionRotations( of, renderer ); IIcon firstIcon = new TaughtIcon( getChannelTex( - * channels, false ).getIcon(), -0.2f ); IIcon secondIcon = new TaughtIcon( getChannelTex( channels, true ).getIcon(), + * if ( true ) { setSmartConnectionRotations( of, renderer ); TextureAtlasSprite firstIcon = new TaughtIcon( getChannelTex( + * channels, false ).getIcon(), -0.2f ); TextureAtlasSprite secondIcon = new TaughtIcon( getChannelTex( channels, true ).getIcon(), * -0.2f ); * - * if ( of == ForgeDirection.EAST || of == ForgeDirection.WEST ) { AEBaseBlock blk = (AEBaseBlock) - * rh.getBlock(); FlippableIcon ico = blk.getRendererInstance().getTexture( ForgeDirection.EAST ); ico.setFlip( + * if ( of == AEPartLocation.EAST || of == AEPartLocation.WEST ) { AEBaseBlock blk = (AEBaseBlock) + * rh.getBlock(); FlippableIcon ico = blk.getRendererInstance().getTexture( AEPartLocation.EAST ); ico.setFlip( * false, true ); } * * Tessellator.INSTANCE.setBrightness( 15 << 20 | 15 << 5 ); Tessellator.INSTANCE.setColorOpaque_I( @@ -398,14 +397,14 @@ public class PartDenseCable extends PartCable * rh.setTexture( getTexture( getCableColor() ) ); } */ - rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of, of.getOpposite() ) ) ); + rh.setFacesToRender( EnumSet.complementOf( EnumSet.of( of.getFacing(), of.getFacing().getOpposite() ) ) ); if( ghh != null && partHost != null && ghh.getCableConnectionType( of ) != AECableType.GLASS && partHost.getColor() != AEColor.Transparent && partHost.getPart( of.getOpposite() ) == null ) { - rh.setTexture( this.getTexture( myColor = partHost.getColor() ) ); + rh.setTexture( this.getTexture( myColor = partHost.getColor(), renderer ) ); } else { - rh.setTexture( this.getTexture( this.getCableColor() ) ); + rh.setTexture( this.getTexture( this.getCableColor(), renderer ) ); } switch( of ) @@ -432,32 +431,32 @@ public class PartDenseCable extends PartCable return; } - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setFacesToRender( EnumSet.allOf( ForgeDirection.class ) ); + rh.setFacesToRender( EnumSet.allOf( EnumFacing.class ) ); if( !isGlass ) { this.setSmartConnectionRotations( of, renderer ); - IIcon firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); - IIcon secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); + IAESprite firstIcon = new TaughtIcon( this.getChannelTex( channels, false ).getIcon(), -0.2f ); + IAESprite secondIcon = new TaughtIcon( this.getChannelTex( channels, true ).getIcon(), -0.2f ); - Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 ); - Tessellator.instance.setColorOpaque_I( myColor.blackVariant ); + renderer.setBrightness( 15 << 20 | 15 << 4 ); + renderer.setColorOpaque_I( myColor.blackVariant ); rh.setTexture( firstIcon, firstIcon, firstIcon, firstIcon, firstIcon, firstIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); - Tessellator.instance.setColorOpaque_I( myColor.whiteVariant ); + renderer.setColorOpaque_I( myColor.whiteVariant ); rh.setTexture( secondIcon, secondIcon, secondIcon, secondIcon, secondIcon, secondIcon ); - this.renderAllFaces( (AEBaseBlock) rh.getBlock(), x, y, z, rh, renderer ); + this.renderAllFaces( (AEBaseBlock) rh.getBlock(), pos, rh, renderer ); renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; } } - private boolean isSmart( ForgeDirection of ) + private boolean isSmart( AEPartLocation of ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( this.tile.xCoord + of.offsetX, this.tile.yCoord + of.offsetY, this.tile.zCoord + of.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( this.tile.getPos().offset( of.getFacing() ) ); if( te instanceof IGridHost ) { AECableType t = ( (IGridHost) te ).getCableConnectionType( of.getOpposite() ); @@ -466,7 +465,7 @@ public class PartDenseCable extends PartCable return false; } - private IIcon getDenseTexture( AEColor c ) + private IAESprite getDenseTexture( AEColor c, IRenderHelper renderer ) { switch( c ) { @@ -505,12 +504,12 @@ public class PartDenseCable extends PartCable default: } - return this.is.getIconIndex(); + return renderer.getIcon( is ); } - private boolean isDense( ForgeDirection of ) + private boolean isDense( AEPartLocation of ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( this.tile.xCoord + of.offsetX, this.tile.yCoord + of.offsetY, this.tile.zCoord + of.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( this.tile.getPos().offset( of.getFacing() ) ); if( te instanceof IGridHost ) { AECableType t = ( (IGridHost) te ).getCableConnectionType( of.getOpposite() ); diff --git a/src/main/java/appeng/parts/networking/PartQuartzFiber.java b/src/main/java/appeng/parts/networking/PartQuartzFiber.java index c2f2e116..348811f5 100644 --- a/src/main/java/appeng/parts/networking/PartQuartzFiber.java +++ b/src/main/java/appeng/parts/networking/PartQuartzFiber.java @@ -22,18 +22,15 @@ package appeng.parts.networking; import java.util.EnumSet; import java.util.Set; -import org.lwjgl.opengl.GL11; - -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; import appeng.api.config.Actionable; import appeng.api.networking.GridFlags; @@ -44,6 +41,9 @@ import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartHost; import appeng.api.parts.IPartRenderHelper; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; +import appeng.client.texture.IAESprite; import appeng.me.GridAccessException; import appeng.me.helpers.AENetworkProxy; import appeng.parts.AEBasePart; @@ -64,7 +64,7 @@ public class PartQuartzFiber extends AEBasePart implements IEnergyGridProvider } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.GLASS; } @@ -77,11 +77,11 @@ public class PartQuartzFiber extends AEBasePart implements IEnergyGridProvider @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { GL11.glTranslated( -0.2, -0.3, 0.0 ); - rh.setTexture( this.is.getIconIndex() ); + rh.setTexture( renderer.getIcon( is ) ); rh.setBounds( 6.0f, 6.0f, 5.0f, 10.0f, 10.0f, 11.0f ); rh.renderInventoryBox( renderer ); rh.setTexture( null ); @@ -89,12 +89,12 @@ public class PartQuartzFiber extends AEBasePart implements IEnergyGridProvider @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - IIcon myIcon = this.is.getIconIndex(); + IAESprite myIcon = renderer.getIcon( is ); rh.setTexture( myIcon ); rh.setBounds( 6, 6, 10, 10, 10, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setTexture( null ); } @@ -127,10 +127,10 @@ public class PartQuartzFiber extends AEBasePart implements IEnergyGridProvider } @Override - public void setPartHostInfo( ForgeDirection side, IPartHost host, TileEntity tile ) + public void setPartHostInfo( AEPartLocation side, IPartHost host, TileEntity tile ) { super.setPartHostInfo( side, host, tile ); - this.outerProxy.setValidSides( EnumSet.of( side ) ); + this.outerProxy.setValidSides( EnumSet.of( side.getFacing() ) ); } @Override @@ -146,7 +146,7 @@ public class PartQuartzFiber extends AEBasePart implements IEnergyGridProvider } @Override - public void onPlacement( EntityPlayer player, ItemStack held, ForgeDirection side ) + public void onPlacement( EntityPlayer player, ItemStack held, AEPartLocation side ) { super.onPlacement( player, held, side ); this.outerProxy.setOwner( player ); diff --git a/src/main/java/appeng/parts/p2p/PartP2PIC2Power.java b/src/main/java/appeng/parts/p2p/PartP2PIC2Power.java index 38c8fcbe..c82663a5 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PIC2Power.java +++ b/src/main/java/appeng/parts/p2p/PartP2PIC2Power.java @@ -21,17 +21,15 @@ package appeng.parts.p2p; import java.util.LinkedList; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.PowerUnits; +import appeng.api.util.ForgeDirection; import appeng.me.GridAccessException; import appeng.me.cache.helpers.TunnelCollection; import appeng.transformer.annotations.Integration.Interface; @@ -57,7 +55,7 @@ public class PartP2PIC2Power extends PartP2PTunnel implements i @Override @SideOnly( Side.CLIENT ) - public IIcon getTypeTexture() + public TextureAtlasSprite getTypeTexture() { return Blocks.diamond_block.getBlockTextureFromSide( 0 ); } diff --git a/src/main/java/appeng/parts/p2p/PartP2PItems.java b/src/main/java/appeng/parts/p2p/PartP2PItems.java index d27aeb82..8e1d4ee6 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PItems.java +++ b/src/main/java/appeng/parts/p2p/PartP2PItems.java @@ -23,21 +23,13 @@ import java.util.LinkedList; import java.util.List; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import buildcraft.api.transport.IPipeConnection; -import buildcraft.api.transport.IPipeTile.PipeType; - +import net.minecraft.util.EnumFacing; +import net.minecraft.util.IChatComponent; import appeng.api.networking.IGridNode; import appeng.api.networking.events.MENetworkBootingStatusChange; import appeng.api.networking.events.MENetworkChannelsChanged; @@ -47,22 +39,17 @@ import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.core.settings.TickRates; -import appeng.integration.IntegrationRegistry; -import appeng.integration.IntegrationType; -import appeng.integration.abstraction.IBC; import appeng.me.GridAccessException; import appeng.me.cache.helpers.TunnelCollection; import appeng.tile.inventory.AppEngNullInventory; -import appeng.transformer.annotations.Integration.Interface; -import appeng.transformer.annotations.Integration.Method; import appeng.util.Platform; -import appeng.util.inv.WrapperBCPipe; import appeng.util.inv.WrapperChainedInventory; import appeng.util.inv.WrapperMCISidedInventory; -@Interface( iface = "buildcraft.api.transport.IPipeConnection", iname = "BC" ) -public class PartP2PItems extends PartP2PTunnel implements IPipeConnection, ISidedInventory, IGridTickable +// TODO: BUILD CRAFT INTEGRATION +// @Interface( iface = "buildcraft.api.transport.IPipeConnection", iname = "BC" ) IPipeConnection +public class PartP2PItems extends PartP2PTunnel implements ISidedInventory, IGridTickable { final LinkedList which = new LinkedList(); @@ -132,7 +119,7 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo if( this.proxy.isActive() ) { - TileEntity te = this.tile.getWorldObj().getTileEntity( this.tile.xCoord + this.side.offsetX, this.tile.yCoord + this.side.offsetY, this.tile.zCoord + this.side.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( this.tile.getPos().offset( side.getFacing() ) ); if( this.which.contains( this ) ) { @@ -141,6 +128,8 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo this.which.add( this ); + /* + // TODO: BUILD CRAFT INTEGRATION if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.BC ) ) { IBC buildcraft = (IBC) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.BC ); @@ -150,7 +139,7 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo { try { - output = new WrapperBCPipe( te, this.side.getOpposite() ); + output = new WrapperBCPipe( te, this.side.getFacing().getOpposite() ); } catch( Throwable ignore ) { @@ -158,7 +147,8 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo } } } - + */ + /* * if ( AppEng.INSTANCE.isIntegrationEnabled( "TE" ) ) { ITE thermal = (ITE) AppEng.INSTANCE.getIntegration( * "TE" ); if ( thermal != null ) { if ( thermal.isPipe( te, side.getOpposite() ) ) { try { output = new @@ -173,7 +163,7 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo } else if( te instanceof ISidedInventory ) { - output = new WrapperMCISidedInventory( (ISidedInventory) te, this.side.getOpposite() ); + output = new WrapperMCISidedInventory( (ISidedInventory) te, this.side.getFacing().getOpposite() ); } else if( te instanceof IInventory ) { @@ -252,13 +242,6 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo } } - @Override - @SideOnly( Side.CLIENT ) - public IIcon getTypeTexture() - { - return Blocks.hopper.getBlockTextureFromSide( 0 ); - } - @Override public void onTunnelNetworkChange() { @@ -283,7 +266,8 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo } @Override - public int[] getAccessibleSlotsFromSide( int var1 ) + public int[] getSlotsForFace( + EnumFacing side ) { int[] slots = new int[this.getSizeInventory()]; for( int x = 0; x < this.getSizeInventory(); x++ ) @@ -324,13 +308,13 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo } @Override - public String getInventoryName() + public String getName() { return null; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -354,12 +338,12 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo } @Override - public void openInventory() + public void openInventory(EntityPlayer p) { } @Override - public void closeInventory() + public void closeInventory(EntityPlayer p) { } @@ -370,13 +354,13 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo } @Override - public boolean canInsertItem( int i, ItemStack itemstack, int j ) + public boolean canInsertItem( int i, ItemStack itemstack, EnumFacing j ) { return this.getDestination().isItemValidForSlot( i, itemstack ); } @Override - public boolean canExtractItem( int i, ItemStack itemstack, int j ) + public boolean canExtractItem( int i, ItemStack itemstack, EnumFacing j ) { return false; } @@ -386,10 +370,46 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo return 2.0f; } + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + // probobly not... + } + + @Override + public IChatComponent getDisplayName() + { + return null; + } + + /* + // TODO: BUILD CRAFT INTEGRATION @Override @Method( iname = "BC" ) - public ConnectOverride overridePipeConnection( PipeType type, ForgeDirection with ) + public ConnectOverride overridePipeConnection( PipeType type, AEPartLocation with ) { return this.side == with && type == PipeType.ITEM ? ConnectOverride.CONNECT : ConnectOverride.DEFAULT; } + */ } diff --git a/src/main/java/appeng/parts/p2p/PartP2PLight.java b/src/main/java/appeng/parts/p2p/PartP2PLight.java index 747e1f49..2e4c9ee8 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PLight.java +++ b/src/main/java/appeng/parts/p2p/PartP2PLight.java @@ -19,20 +19,14 @@ package appeng.parts.p2p; -import java.io.IOException; - import io.netty.buffer.ByteBuf; -import net.minecraft.init.Blocks; +import java.io.IOException; + import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - import appeng.api.networking.IGridNode; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkPowerStatusChange; @@ -92,9 +86,9 @@ public class PartP2PLight extends PartP2PTunnel implements IGridTi } TileEntity te = this.getTile(); - World w = te.getWorldObj(); + World w = te.getWorld(); - int newLevel = w.getBlockLightValue( te.xCoord + this.side.offsetX, te.yCoord + this.side.offsetY, te.zCoord + this.side.offsetZ ); + int newLevel = w.getLight( te.getPos().offset( side.getFacing() ) ); if( this.lastValue != newLevel && this.proxy.isActive() ) { @@ -150,19 +144,12 @@ public class PartP2PLight extends PartP2PTunnel implements IGridTi if( this.opacity < 0 ) { TileEntity te = this.getTile(); - this.opacity = 255 - te.getWorldObj().getBlockLightOpacity( te.xCoord + this.side.offsetX, te.yCoord + this.side.offsetY, te.zCoord + this.side.offsetZ ); + this.opacity = 255 - te.getWorld().getBlockLightOpacity( te.getPos().offset( side.getFacing() ) ); } return (int) ( emit * ( this.opacity / 255.0f ) ); } - @Override - @SideOnly( Side.CLIENT ) - public IIcon getTypeTexture() - { - return Blocks.quartz_block.getBlockTextureFromSide( 0 ); - } - @Override public void readFromNBT( NBTTagCompound tag ) { diff --git a/src/main/java/appeng/parts/p2p/PartP2PLiquids.java b/src/main/java/appeng/parts/p2p/PartP2PLiquids.java index 67e67257..a0c255c7 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PLiquids.java +++ b/src/main/java/appeng/parts/p2p/PartP2PLiquids.java @@ -24,19 +24,13 @@ import java.util.LinkedList; import java.util.List; import java.util.Stack; -import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - import appeng.me.GridAccessException; @@ -59,13 +53,6 @@ public class PartP2PLiquids extends PartP2PTunnel implements IFl return 2.0f; } - @Override - @SideOnly( Side.CLIENT ) - public IIcon getTypeTexture() - { - return Blocks.lapis_block.getBlockTextureFromSide( 0 ); - } - @Override public void onTunnelNetworkChange() { @@ -87,7 +74,7 @@ public class PartP2PLiquids extends PartP2PTunnel implements IFl } @Override - public int fill( ForgeDirection from, FluidStack resource, boolean doFill ) + public int fill( EnumFacing from, FluidStack resource, boolean doFill ) { Stack stack = this.getDepth(); @@ -111,7 +98,7 @@ public class PartP2PLiquids extends PartP2PTunnel implements IFl IFluidHandler tank = l.getTarget(); if( tank != null ) { - l.tmpUsed = tank.fill( l.side.getOpposite(), resource.copy(), false ); + l.tmpUsed = tank.fill( l.side.getFacing().getOpposite(), resource.copy(), false ); } else { @@ -166,7 +153,7 @@ public class PartP2PLiquids extends PartP2PTunnel implements IFl IFluidHandler tank = l.getTarget(); if( tank != null ) { - l.tmpUsed = tank.fill( l.side.getOpposite(), insert.copy(), true ); + l.tmpUsed = tank.fill( l.side.getFacing().getOpposite(), insert.copy(), true ); } else { @@ -208,7 +195,7 @@ public class PartP2PLiquids extends PartP2PTunnel implements IFl IFluidHandler handler = l.getTarget(); if( handler != null ) { - if( handler.canFill( l.side.getOpposite(), input ) ) + if( handler.canFill( l.side.getFacing().getOpposite(), input ) ) { outs.add( l ); } @@ -235,7 +222,7 @@ public class PartP2PLiquids extends PartP2PTunnel implements IFl return this.cachedTank; } - TileEntity te = this.tile.getWorldObj().getTileEntity( this.tile.xCoord + this.side.offsetX, this.tile.yCoord + this.side.offsetY, this.tile.zCoord + this.side.offsetZ ); + TileEntity te = this.tile.getWorld().getTileEntity( this.tile.getPos().offset( side.getFacing() ) ); if( te instanceof IFluidHandler ) { return this.cachedTank = (IFluidHandler) te; @@ -245,33 +232,33 @@ public class PartP2PLiquids extends PartP2PTunnel implements IFl } @Override - public FluidStack drain( ForgeDirection from, FluidStack resource, boolean doDrain ) + public FluidStack drain( EnumFacing from, FluidStack resource, boolean doDrain ) { return null; } @Override - public FluidStack drain( ForgeDirection from, int maxDrain, boolean doDrain ) + public FluidStack drain( EnumFacing from, int maxDrain, boolean doDrain ) { return null; } @Override - public boolean canFill( ForgeDirection from, Fluid fluid ) + public boolean canFill( EnumFacing from, Fluid fluid ) { - return !this.output && from == this.side && !this.getOutputs( fluid ).isEmpty(); + return !this.output && from == this.side.getFacing() && !this.getOutputs( fluid ).isEmpty(); } @Override - public boolean canDrain( ForgeDirection from, Fluid fluid ) + public boolean canDrain( EnumFacing from, Fluid fluid ) { return false; } @Override - public FluidTankInfo[] getTankInfo( ForgeDirection from ) + public FluidTankInfo[] getTankInfo( EnumFacing from ) { - if( from == this.side ) + if( from == this.side.getFacing() ) { return this.getTank(); } diff --git a/src/main/java/appeng/parts/p2p/PartP2POpenComputers.java b/src/main/java/appeng/parts/p2p/PartP2POpenComputers.java index bf63480c..f3854f02 100644 --- a/src/main/java/appeng/parts/p2p/PartP2POpenComputers.java +++ b/src/main/java/appeng/parts/p2p/PartP2POpenComputers.java @@ -20,16 +20,14 @@ package appeng.parts.p2p; import java.util.concurrent.Callable; + import javax.annotation.Nullable; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import li.cil.oc.api.API; import li.cil.oc.api.Items; import li.cil.oc.api.Network; @@ -38,11 +36,11 @@ import li.cil.oc.api.network.Message; import li.cil.oc.api.network.Node; import li.cil.oc.api.network.SidedEnvironment; import li.cil.oc.api.network.Visibility; - import appeng.api.networking.IGridNode; import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; +import appeng.api.util.ForgeDirection; import appeng.core.AELog; import appeng.core.settings.TickRates; import appeng.hooks.TickHandler; @@ -85,7 +83,7 @@ public final class PartP2POpenComputers extends PartP2PTunnel implemen @Override @SideOnly( Side.CLIENT ) - public IIcon getTypeTexture() + public TextureAtlasSprite getTypeTexture() { return Blocks.iron_block.getBlockTextureFromSide( 0 ); } @@ -169,7 +166,7 @@ public final class PartP2PRFPower extends PartP2PTunnel implemen if( !this.cachedTarget ) { TileEntity self = this.getTile(); - TileEntity te = self.getWorldObj().getTileEntity( self.xCoord + this.side.offsetX, self.yCoord + this.side.offsetY, self.zCoord + this.side.offsetZ ); + TileEntity te = self.getWorld().getTileEntity( self.xCoord + this.side.offsetX, self.yCoord + this.side.offsetY, self.zCoord + this.side.offsetZ ); this.outputTarget = te instanceof IEnergyReceiver ? (IEnergyReceiver) te : null; this.cachedTarget = true; } diff --git a/src/main/java/appeng/parts/p2p/PartP2PRedstone.java b/src/main/java/appeng/parts/p2p/PartP2PRedstone.java index 894a34ee..5582c6fa 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PRedstone.java +++ b/src/main/java/appeng/parts/p2p/PartP2PRedstone.java @@ -21,15 +21,12 @@ package appeng.parts.p2p; import net.minecraft.block.Block; import net.minecraft.block.BlockRedstoneWire; -import net.minecraft.init.Blocks; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - import appeng.api.networking.events.MENetworkBootingStatusChange; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkEventSubscribe; @@ -89,21 +86,13 @@ public class PartP2PRedstone extends PartP2PTunnel public void notifyNeighbors() { - World worldObj = this.tile.getWorldObj(); + World worldObj = this.tile.getWorld(); - int xCoord = this.tile.xCoord; - int yCoord = this.tile.yCoord; - int zCoord = this.tile.zCoord; - - Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord, zCoord ); + Platform.notifyBlocksOfNeighbors( worldObj,tile.getPos()); // and this cause sometimes it can go thought walls. - Platform.notifyBlocksOfNeighbors( worldObj, xCoord - 1, yCoord, zCoord ); - Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord - 1, zCoord ); - Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord, zCoord - 1 ); - Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord, zCoord + 1 ); - Platform.notifyBlocksOfNeighbors( worldObj, xCoord, yCoord + 1, zCoord ); - Platform.notifyBlocksOfNeighbors( worldObj, xCoord + 1, yCoord, zCoord ); + for ( EnumFacing face : EnumFacing.VALUES ) + Platform.notifyBlocksOfNeighbors( worldObj,tile.getPos().offset( face ) ); } @MENetworkEventSubscribe @@ -118,13 +107,6 @@ public class PartP2PRedstone extends PartP2PTunnel this.setNetworkReady(); } - @Override - @SideOnly( Side.CLIENT ) - public IIcon getTypeTexture() - { - return Blocks.redstone_block.getBlockTextureFromSide( 0 ); - } - @Override public void readFromNBT( NBTTagCompound tag ) { @@ -155,20 +137,20 @@ public class PartP2PRedstone extends PartP2PTunnel { if( !this.output ) { - int x = this.tile.xCoord + this.side.offsetX; - int y = this.tile.yCoord + this.side.offsetY; - int z = this.tile.zCoord + this.side.offsetZ; + BlockPos target = tile.getPos().offset( side.getFacing() ); - Block b = this.tile.getWorldObj().getBlock( x, y, z ); + IBlockState state = this.tile.getWorld().getBlockState( target ); + Block b = state.getBlock(); if( b != null && !this.output ) { - int srcSide = this.side.ordinal(); + EnumFacing srcSide = this.side.getFacing(); if( b instanceof BlockRedstoneWire ) { - srcSide = 1; + srcSide = EnumFacing.UP; } - this.power = b.isProvidingStrongPower( this.tile.getWorldObj(), x, y, z, srcSide ); - this.power = Math.max( this.power, b.isProvidingWeakPower( this.tile.getWorldObj(), x, y, z, srcSide ) ); + + this.power = b.isProvidingStrongPower( this.tile.getWorld(), target,state, srcSide ); + this.power = Math.max( this.power, b.isProvidingWeakPower( this.tile.getWorld(), target, state, srcSide ) ); this.sendToOutput( this.power ); } else diff --git a/src/main/java/appeng/parts/p2p/PartP2PTunnel.java b/src/main/java/appeng/parts/p2p/PartP2PTunnel.java index a40aef4b..043de198 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PTunnel.java +++ b/src/main/java/appeng/parts/p2p/PartP2PTunnel.java @@ -22,21 +22,16 @@ package appeng.parts.p2p; import java.util.ArrayList; import java.util.Collection; -import com.google.common.base.Optional; - import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; +import net.minecraft.util.BlockPos; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -50,7 +45,10 @@ import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartItem; import appeng.api.parts.IPartRenderHelper; import appeng.api.parts.PartItemStack; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; +import appeng.client.texture.IAESprite; import appeng.core.AEConfig; import appeng.me.GridAccessException; import appeng.me.cache.P2PCache; @@ -58,6 +56,8 @@ import appeng.me.cache.helpers.TunnelCollection; import appeng.parts.PartBasicState; import appeng.util.Platform; +import com.google.common.base.Optional; + public abstract class PartP2PTunnel extends PartBasicState { @@ -123,62 +123,62 @@ public abstract class PartP2PTunnel extends PartBasicSt @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( this.getTypeTexture() ); + rh.setTexture( this.getTypeTexture(renderer) ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); rh.renderInventoryBox( renderer ); - rh.setTexture( CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.BlockP2PTunnel2.getIcon(), this.is.getIconIndex(), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon() ); + rh.setTexture( CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.BlockP2PTunnel2.getIcon(), renderer.getIcon( is ), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon() ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); rh.renderInventoryBox( renderer ); } /** + * @param renderer * @return If enabled it returns the icon of an AE quartz block, else vanilla quartz block icon */ - protected IIcon getTypeTexture() + protected IAESprite getTypeTexture(IRenderHelper renderer ) { final Optional maybeBlock = AEApi.instance().definitions().blocks().quartz().maybeBlock(); if( maybeBlock.isPresent() ) { - return maybeBlock.get().getIcon( 0, 0 ); + return renderer.getIcon( new ItemStack(maybeBlock.get()) ); } else { - return Blocks.quartz_block.getIcon( 0, 0 ); + return renderer.getIcon( new ItemStack(Blocks.quartz_block) ); } } @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - rh.setTexture( this.getTypeTexture() ); + rh.setTexture( this.getTypeTexture(renderer) ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - rh.setTexture( CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.BlockP2PTunnel2.getIcon(), this.is.getIconIndex(), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon() ); + rh.setTexture( CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.BlockP2PTunnel2.getIcon(), renderer.getIcon( is ), CableBusTextures.PartTunnelSides.getIcon(), CableBusTextures.PartTunnelSides.getIcon() ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 3, 3, 13, 13, 13, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setTexture( CableBusTextures.BlockP2PTunnel3.getIcon() ); rh.setBounds( 6, 5, 12, 10, 11, 13 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); rh.setBounds( 5, 6, 12, 11, 10, 13 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); - this.renderLights( x, y, z, rh, renderer ); + this.renderLights( pos, rh, renderer ); } @Override @@ -251,7 +251,7 @@ public abstract class PartP2PTunnel extends PartBasicSt if( testPart instanceof PartP2PTunnel ) { this.getHost().removePart( this.side, true ); - ForgeDirection dir = this.getHost().addPart( newType, this.side, player ); + AEPartLocation dir = this.getHost().addPart( newType, this.side, player ); IPart newBus = this.getHost().getPart( dir ); if( newBus instanceof PartP2PTunnel ) @@ -294,27 +294,31 @@ public abstract class PartP2PTunnel extends PartBasicSt } break; + /* case RF_POWER: for( ItemStack stack : parts.p2PTunnelRF().maybeStack( 1 ).asSet() ) { newType = stack; } break; - + */ + case FLUID: for( ItemStack stack : parts.p2PTunnelLiquids().maybeStack( 1 ).asSet() ) { newType = stack; } break; - + + /* case IC2_POWER: for( ItemStack stack : parts.p2PTunnelEU().maybeStack( 1 ).asSet() ) { newType = stack; } break; - + */ + case ITEM: for( ItemStack stack : parts.p2PTunnelItems().maybeStack( 1 ).asSet() ) { @@ -335,14 +339,16 @@ public abstract class PartP2PTunnel extends PartBasicSt newType = stack; } break; - + + /* case COMPUTER_MESSAGE: for( ItemStack stack : parts.p2PTunnelOpenComputers().maybeStack( 1 ).asSet() ) { newType = stack; } break; - + */ + default: break; } @@ -353,7 +359,7 @@ public abstract class PartP2PTunnel extends PartBasicSt long myFreq = this.freq; this.getHost().removePart( this.side, false ); - ForgeDirection dir = this.getHost().addPart( newType, this.side, player ); + AEPartLocation dir = this.getHost().addPart( newType, this.side, player ); IPart newBus = this.getHost().getPart( dir ); if( newBus instanceof PartP2PTunnel ) @@ -373,7 +379,7 @@ public abstract class PartP2PTunnel extends PartBasicSt } } - Platform.notifyBlocksOfNeighbors( this.tile.getWorldObj(), this.tile.xCoord, this.tile.yCoord, this.tile.zCoord ); + Platform.notifyBlocksOfNeighbors( this.tile.getWorld(), this.tile.getPos() ); return true; } } @@ -434,9 +440,9 @@ public abstract class PartP2PTunnel extends PartBasicSt @Override @SideOnly( Side.CLIENT ) - public IIcon getBreakingTexture() + public TextureAtlasSprite getBreakingTexture( IRenderHelper renderer ) { - return CableBusTextures.BlockP2PTunnel2.getIcon(); + return CableBusTextures.BlockP2PTunnel2.getIcon().getAtlas(); } protected void queueTunnelDrain( PowerUnits unit, double f ) diff --git a/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java b/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java index e4e5e70e..2ab9d634 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java +++ b/src/main/java/appeng/parts/p2p/PartP2PTunnelME.java @@ -27,8 +27,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.exceptions.FailedConnection; import appeng.api.networking.GridFlags; @@ -38,6 +36,7 @@ import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.api.parts.IPartHost; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.core.AELog; import appeng.core.settings.TickRates; import appeng.hooks.TickHandler; @@ -92,7 +91,7 @@ public class PartP2PTunnelME extends PartP2PTunnel implements I } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.DENSE; } @@ -112,10 +111,10 @@ public class PartP2PTunnelME extends PartP2PTunnel implements I } @Override - public void setPartHostInfo( ForgeDirection side, IPartHost host, TileEntity tile ) + public void setPartHostInfo( AEPartLocation side, IPartHost host, TileEntity tile ) { super.setPartHostInfo( side, host, tile ); - this.outerProxy.setValidSides( EnumSet.of( side ) ); + this.outerProxy.setValidSides( EnumSet.of( side.getFacing() ) ); } @Override @@ -125,7 +124,7 @@ public class PartP2PTunnelME extends PartP2PTunnel implements I } @Override - public void onPlacement( EntityPlayer player, ItemStack held, ForgeDirection side ) + public void onPlacement( EntityPlayer player, ItemStack held, AEPartLocation side ) { super.onPlacement( player, held, side ); this.outerProxy.setOwner( player ); @@ -148,19 +147,19 @@ public class PartP2PTunnelME extends PartP2PTunnel implements I if( !this.proxy.getEnergy().isNetworkPowered() ) { this.connection.markDestroy(); - TickHandler.INSTANCE.addCallable( this.tile.getWorldObj(), this.connection ); + TickHandler.INSTANCE.addCallable( this.tile.getWorld(), this.connection ); } else { if( this.proxy.isActive() ) { this.connection.markCreate(); - TickHandler.INSTANCE.addCallable( this.tile.getWorldObj(), this.connection ); + TickHandler.INSTANCE.addCallable( this.tile.getWorld(), this.connection ); } else { this.connection.markDestroy(); - TickHandler.INSTANCE.addCallable( this.tile.getWorldObj(), this.connection ); + TickHandler.INSTANCE.addCallable( this.tile.getWorld(), this.connection ); } } @@ -233,7 +232,9 @@ public class PartP2PTunnelME extends PartP2PTunnel implements I { final TileEntity start = this.getTile(); final TileEntity end = me.getTile(); - AELog.warning( "Failed to establish a ME P2P Tunnel between the tunnels at [x=%d, y=%d, z=%d] and [x=%d, y=%d, z=%d]", start.xCoord, start.yCoord, start.zCoord, end.xCoord, end.yCoord, end.zCoord ); + AELog.warning( "Failed to establish a ME P2P Tunnel between the tunnels at [x=%d, y=%d, z=%d] and [x=%d, y=%d, z=%d]", + start.getPos().getX(), start.getPos().getY(), start.getPos().getZ(), + end.getPos().getX(), end.getPos().getY(), end.getPos().getZ() ); // :( } } diff --git a/src/main/java/appeng/parts/reporting/PartConversionMonitor.java b/src/main/java/appeng/parts/reporting/PartConversionMonitor.java index 738cf63a..e04fbd4b 100644 --- a/src/main/java/appeng/parts/reporting/PartConversionMonitor.java +++ b/src/main/java/appeng/parts/reporting/PartConversionMonitor.java @@ -25,9 +25,8 @@ import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.energy.IEnergySource; import appeng.api.networking.security.PlayerSource; import appeng.api.storage.IMEMonitor; @@ -144,13 +143,13 @@ public class PartConversionMonitor extends PartStorageMonitor if( retrieved != null ) { ItemStack newItems = retrieved.getItemStack(); - InventoryAdaptor adaptor = InventoryAdaptor.getAdaptor( player, ForgeDirection.UNKNOWN ); + InventoryAdaptor adaptor = InventoryAdaptor.getAdaptor( player, EnumFacing.UP ); newItems = adaptor.addItems( newItems ); if( newItems != null ) { TileEntity te = this.tile; List list = Collections.singletonList( newItems ); - Platform.spawnDrops( player.worldObj, te.xCoord + this.side.offsetX, te.yCoord + this.side.offsetY, te.zCoord + this.side.offsetZ, list ); + Platform.spawnDrops( player.worldObj, te.getPos().offset( side.getFacing() ), list ); } if( player.openContainer != null ) diff --git a/src/main/java/appeng/parts/reporting/PartCraftingTerminal.java b/src/main/java/appeng/parts/reporting/PartCraftingTerminal.java index f58ed834..c28d3d78 100644 --- a/src/main/java/appeng/parts/reporting/PartCraftingTerminal.java +++ b/src/main/java/appeng/parts/reporting/PartCraftingTerminal.java @@ -25,7 +25,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import appeng.client.texture.CableBusTextures; import appeng.core.sync.GuiBridge; import appeng.helpers.Reflected; @@ -84,9 +83,9 @@ public class PartCraftingTerminal extends PartTerminal int z = (int) p.posZ; if( this.getHost().getTile() != null ) { - x = this.tile.xCoord; - y = this.tile.yCoord; - z = this.tile.zCoord; + x = this.tile.getPos().getX(); + y = this.tile.getPos().getY(); + z = this.tile.getPos().getZ(); } if( GuiBridge.GUI_CRAFTING_TERMINAL.hasPermissions( this.getHost().getTile(), x, y, z, this.side, p ) ) diff --git a/src/main/java/appeng/parts/reporting/PartDarkMonitor.java b/src/main/java/appeng/parts/reporting/PartDarkMonitor.java index 800e49df..3114e834 100644 --- a/src/main/java/appeng/parts/reporting/PartDarkMonitor.java +++ b/src/main/java/appeng/parts/reporting/PartDarkMonitor.java @@ -19,15 +19,13 @@ package appeng.parts.reporting; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.parts.IPartRenderHelper; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; @@ -41,15 +39,15 @@ public class PartDarkMonitor extends PartMonitor @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.renderInventoryBox( renderer ); rh.setInvColor( this.getColor().mediumVariant ); - rh.renderInventoryFace( this.frontBright.getIcon(), ForgeDirection.SOUTH, renderer ); + rh.renderInventoryFace( this.frontBright.getIcon(), EnumFacing.SOUTH, renderer ); rh.setBounds( 4, 4, 13, 12, 12, 14 ); rh.renderInventoryBox( renderer ); @@ -57,23 +55,23 @@ public class PartDarkMonitor extends PartMonitor @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); if( this.getLightLevel() > 0 ) { int l = 13; - Tessellator.instance.setBrightness( l << 20 | l << 4 ); + renderer.setBrightness( l << 20 | l << 4 ); } - Tessellator.instance.setColorOpaque_I( this.getColor().mediumVariant ); - rh.renderFace( x, y, z, this.frontBright.getIcon(), ForgeDirection.SOUTH, renderer ); + renderer.setColorOpaque_I( this.getColor().mediumVariant ); + rh.renderFace( pos, this.frontBright.getIcon(), EnumFacing.SOUTH, renderer ); rh.setBounds( 4, 4, 13, 12, 12, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } } diff --git a/src/main/java/appeng/parts/reporting/PartInterfaceTerminal.java b/src/main/java/appeng/parts/reporting/PartInterfaceTerminal.java index 6726c60a..be78ca99 100644 --- a/src/main/java/appeng/parts/reporting/PartInterfaceTerminal.java +++ b/src/main/java/appeng/parts/reporting/PartInterfaceTerminal.java @@ -22,7 +22,6 @@ package appeng.parts.reporting; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.Vec3; - import appeng.client.texture.CableBusTextures; import appeng.core.sync.GuiBridge; import appeng.util.Platform; diff --git a/src/main/java/appeng/parts/reporting/PartMonitor.java b/src/main/java/appeng/parts/reporting/PartMonitor.java index cce90262..1f0ada69 100644 --- a/src/main/java/appeng/parts/reporting/PartMonitor.java +++ b/src/main/java/appeng/parts/reporting/PartMonitor.java @@ -19,23 +19,20 @@ package appeng.parts.reporting; -import java.io.IOException; - import io.netty.buffer.ByteBuf; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; +import java.io.IOException; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.implementations.IPowerChannelState; import appeng.api.implementations.parts.IPartMonitor; import appeng.api.networking.GridFlags; @@ -44,6 +41,8 @@ import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.parts.IPartCollisionHelper; import appeng.api.parts.IPartRenderHelper; +import appeng.api.util.AEPartLocation; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.me.GridAccessException; import appeng.parts.AEBasePart; @@ -109,21 +108,21 @@ public class PartMonitor extends AEBasePart implements IPartMonitor, IPowerChann @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.renderInventoryBox( renderer ); rh.setInvColor( this.getColor().whiteVariant ); - rh.renderInventoryFace( this.frontBright.getIcon(), ForgeDirection.SOUTH, renderer ); + rh.renderInventoryFace( this.frontBright.getIcon(), EnumFacing.SOUTH, renderer ); rh.setInvColor( this.getColor().mediumVariant ); - rh.renderInventoryFace( this.frontDark.getIcon(), ForgeDirection.SOUTH, renderer ); + rh.renderInventoryFace( this.frontDark.getIcon(), EnumFacing.SOUTH, renderer ); rh.setInvColor( this.getColor().blackVariant ); - rh.renderInventoryFace( this.frontColored.getIcon(), ForgeDirection.SOUTH, renderer ); + rh.renderInventoryFace( this.frontColored.getIcon(), EnumFacing.SOUTH, renderer ); rh.setBounds( 4, 4, 13, 12, 12, 14 ); rh.renderInventoryBox( renderer ); @@ -131,41 +130,39 @@ public class PartMonitor extends AEBasePart implements IPartMonitor, IPowerChann @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - this.renderCache = rh.useSimplifiedRendering( x, y, z, this, this.renderCache ); - - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); if( this.getLightLevel() > 0 ) { int l = 13; - Tessellator.instance.setBrightness( l << 20 | l << 4 ); + renderer.setBrightness( l << 20 | l << 4 ); } renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = this.spin; - Tessellator.instance.setColorOpaque_I( this.getColor().whiteVariant ); - rh.renderFace( x, y, z, this.frontBright.getIcon(), ForgeDirection.SOUTH, renderer ); + renderer.setColorOpaque_I( this.getColor().whiteVariant ); + rh.renderFace( pos, this.frontBright.getIcon(), EnumFacing.SOUTH, renderer ); - Tessellator.instance.setColorOpaque_I( this.getColor().mediumVariant ); - rh.renderFace( x, y, z, this.frontDark.getIcon(), ForgeDirection.SOUTH, renderer ); + renderer.setColorOpaque_I( this.getColor().mediumVariant ); + rh.renderFace( pos, this.frontDark.getIcon(), EnumFacing.SOUTH, renderer ); - Tessellator.instance.setColorOpaque_I( this.getColor().blackVariant ); - rh.renderFace( x, y, z, this.frontColored.getIcon(), ForgeDirection.SOUTH, renderer ); + renderer.setColorOpaque_I( this.getColor().blackVariant ); + rh.renderFace( pos, this.frontColored.getIcon(), EnumFacing.SOUTH, renderer ); renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0; if( this.notLightSource ) { - rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon( is ), CableBusTextures.PartMonitorSidesStatus.getIcon(), CableBusTextures.PartMonitorSidesStatus.getIcon() ); } rh.setBounds( 4, 4, 13, 12, 12, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); if( this.notLightSource ) { @@ -175,25 +172,25 @@ public class PartMonitor extends AEBasePart implements IPartMonitor, IPowerChann if( hasChan ) { int l = 14; - Tessellator.instance.setBrightness( l << 20 | l << 4 ); - Tessellator.instance.setColorOpaque_I( this.getColor().blackVariant ); + renderer.setBrightness( l << 20 | l << 4 ); + renderer.setColorOpaque_I( this.getColor().blackVariant ); } else if( hasPower ) { int l = 9; - Tessellator.instance.setBrightness( l << 20 | l << 4 ); - Tessellator.instance.setColorOpaque_I( this.getColor().whiteVariant ); + renderer.setBrightness( l << 20 | l << 4 ); + renderer.setColorOpaque_I( this.getColor().whiteVariant ); } else { - Tessellator.instance.setBrightness( 0 ); - Tessellator.instance.setColorOpaque_I( 0x000000 ); + renderer.setBrightness( 0 ); + renderer.setColorOpaque_I( 0x000000 ); } - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.EAST, renderer ); - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.WEST, renderer ); - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.UP, renderer ); - rh.renderFace( x, y, z, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), ForgeDirection.DOWN, renderer ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.EAST, renderer ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.WEST, renderer ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.UP, renderer ); + rh.renderFace( pos, CableBusTextures.PartMonitorSidesStatusLights.getIcon(), EnumFacing.DOWN, renderer ); } } @@ -279,7 +276,7 @@ public class PartMonitor extends AEBasePart implements IPartMonitor, IPowerChann { TileEntity te = this.getTile(); - if( !player.isSneaking() && Platform.isWrench( player, player.inventory.getCurrentItem(), te.xCoord, te.yCoord, te.zCoord ) ) + if( !player.isSneaking() && Platform.isWrench( player, player.inventory.getCurrentItem(), te.getPos() ) ) { if( Platform.isServer() ) { @@ -316,16 +313,16 @@ public class PartMonitor extends AEBasePart implements IPartMonitor, IPowerChann } @Override - public void onPlacement( EntityPlayer player, ItemStack held, ForgeDirection side ) + public void onPlacement( EntityPlayer player, ItemStack held, AEPartLocation side ) { super.onPlacement( player, held, side ); byte rotation = (byte) ( MathHelper.floor_double( ( player.rotationYaw * 4F ) / 360F + 2.5D ) & 3 ); - if( side == ForgeDirection.UP ) + if( side == AEPartLocation.UP ) { this.spin = rotation; } - else if( side == ForgeDirection.DOWN ) + else if( side == AEPartLocation.DOWN ) { this.spin = rotation; } @@ -336,7 +333,7 @@ public class PartMonitor extends AEBasePart implements IPartMonitor, IPowerChann if( this.opacity < 0 ) { TileEntity te = this.getTile(); - this.opacity = 255 - te.getWorldObj().getBlockLightOpacity( te.xCoord + this.side.offsetX, te.yCoord + this.side.offsetY, te.zCoord + this.side.offsetZ ); + this.opacity = 255 - te.getWorld().getBlockLightOpacity( te.getPos().offset( side.getFacing() ) ); } return (int) ( emit * ( this.opacity / 255.0f ) ); diff --git a/src/main/java/appeng/parts/reporting/PartPatternTerminal.java b/src/main/java/appeng/parts/reporting/PartPatternTerminal.java index a4972407..cd7c6038 100644 --- a/src/main/java/appeng/parts/reporting/PartPatternTerminal.java +++ b/src/main/java/appeng/parts/reporting/PartPatternTerminal.java @@ -25,7 +25,6 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.implementations.ICraftingPatternItem; import appeng.api.networking.crafting.ICraftingPatternDetails; import appeng.api.storage.data.IAEItemStack; @@ -94,9 +93,9 @@ public class PartPatternTerminal extends PartTerminal int z = (int) p.posZ; if( this.getHost().getTile() != null ) { - x = this.tile.xCoord; - y = this.tile.yCoord; - z = this.tile.zCoord; + x = this.tile.getPos().getX(); + y = this.tile.getPos().getY(); + z = this.tile.getPos().getZ(); } if( GuiBridge.GUI_PATTERN_TERMINAL.hasPermissions( this.getHost().getTile(), x, y, z, this.side, p ) ) @@ -115,7 +114,7 @@ public class PartPatternTerminal extends PartTerminal if( is != null && is.getItem() instanceof ICraftingPatternItem ) { ICraftingPatternItem pattern = (ICraftingPatternItem) is.getItem(); - ICraftingPatternDetails details = pattern.getPatternForItem( is, this.getHost().getTile().getWorldObj() ); + ICraftingPatternDetails details = pattern.getPatternForItem( is, this.getHost().getTile().getWorld() ); if( details != null ) { this.setCraftingRecipe( details.isCraftable() ); diff --git a/src/main/java/appeng/parts/reporting/PartSemiDarkMonitor.java b/src/main/java/appeng/parts/reporting/PartSemiDarkMonitor.java index b803d835..ccb82a8a 100644 --- a/src/main/java/appeng/parts/reporting/PartSemiDarkMonitor.java +++ b/src/main/java/appeng/parts/reporting/PartSemiDarkMonitor.java @@ -19,15 +19,13 @@ package appeng.parts.reporting; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.parts.IPartRenderHelper; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; @@ -42,17 +40,17 @@ public class PartSemiDarkMonitor extends PartMonitor @Override @SideOnly( Side.CLIENT ) - public void renderInventory( IPartRenderHelper rh, RenderBlocks renderer ) + public void renderInventory( IPartRenderHelper rh, IRenderHelper renderer ) { rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon(is), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.renderInventoryBox( renderer ); int light = this.getColor().whiteVariant; int dark = this.getColor().mediumVariant; rh.setInvColor( ( ( ( ( ( light >> 16 ) & 0xff ) + ( ( dark >> 16 ) & 0xff ) ) / 2 ) << 16 ) | ( ( ( ( ( light >> 8 ) & 0xff ) + ( ( dark >> 8 ) & 0xff ) ) / 2 ) << 8 ) | ( ( ( ( light ) & 0xff ) + ( ( dark ) & 0xff ) ) / 2 ) ); - rh.renderInventoryFace( this.frontBright.getIcon(), ForgeDirection.SOUTH, renderer ); + rh.renderInventoryFace( this.frontBright.getIcon(), EnumFacing.SOUTH, renderer ); rh.setBounds( 4, 4, 13, 12, 12, 14 ); rh.renderInventoryBox( renderer ); @@ -60,25 +58,25 @@ public class PartSemiDarkMonitor extends PartMonitor @Override @SideOnly( Side.CLIENT ) - public void renderStatic( int x, int y, int z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderStatic( BlockPos pos, IPartRenderHelper rh, IRenderHelper renderer ) { - rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), this.is.getIconIndex(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); + rh.setTexture( CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorBack.getIcon(), renderer.getIcon(is), CableBusTextures.PartMonitorSides.getIcon(), CableBusTextures.PartMonitorSides.getIcon() ); rh.setBounds( 2, 2, 14, 14, 14, 16 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); if( this.getLightLevel() > 0 ) { int l = 13; - Tessellator.instance.setBrightness( l << 20 | l << 4 ); + renderer.setBrightness( l << 20 | l << 4 ); } int light = this.getColor().whiteVariant; int dark = this.getColor().mediumVariant; - Tessellator.instance.setColorOpaque( ( ( ( light >> 16 ) & 0xff ) + ( ( dark >> 16 ) & 0xff ) ) / 2, ( ( ( light >> 8 ) & 0xff ) + ( ( dark >> 8 ) & 0xff ) ) / 2, ( ( ( light ) & 0xff ) + ( ( dark ) & 0xff ) ) / 2 ); - rh.renderFace( x, y, z, this.frontBright.getIcon(), ForgeDirection.SOUTH, renderer ); + renderer.setColorOpaque( ( ( ( light >> 16 ) & 0xff ) + ( ( dark >> 16 ) & 0xff ) ) / 2, ( ( ( light >> 8 ) & 0xff ) + ( ( dark >> 8 ) & 0xff ) ) / 2, ( ( ( light ) & 0xff ) + ( ( dark ) & 0xff ) ) / 2 ); + rh.renderFace( pos, this.frontBright.getIcon(), EnumFacing.SOUTH, renderer ); rh.setBounds( 4, 4, 13, 12, 12, 14 ); - rh.renderBlock( x, y, z, renderer ); + rh.renderBlock( pos, renderer ); } } diff --git a/src/main/java/appeng/parts/reporting/PartStorageMonitor.java b/src/main/java/appeng/parts/reporting/PartStorageMonitor.java index f49a4948..da206565 100644 --- a/src/main/java/appeng/parts/reporting/PartStorageMonitor.java +++ b/src/main/java/appeng/parts/reporting/PartStorageMonitor.java @@ -19,29 +19,27 @@ package appeng.parts.reporting; -import java.io.IOException; - -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; - import io.netty.buffer.ByteBuf; +import java.io.IOException; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.renderer.GLAllocation; import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import appeng.api.implementations.parts.IPartStorageMonitor; import appeng.api.networking.security.BaseActionSource; @@ -53,7 +51,9 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.AEPartLocation; import appeng.client.ClientHelper; +import appeng.client.render.IRenderHelper; import appeng.client.texture.CableBusTextures; import appeng.core.AELog; import appeng.core.localization.PlayerMessages; @@ -176,7 +176,7 @@ public class PartStorageMonitor extends PartMonitor implements IPartStorageMonit TileEntity te = this.tile; ItemStack eq = player.getCurrentEquippedItem(); - if( Platform.isWrench( player, eq, te.xCoord, te.yCoord, te.zCoord ) ) + if( Platform.isWrench( player, eq, te.getPos() ) ) { this.isLocked = !this.isLocked; player.addChatMessage( ( this.isLocked ? PlayerMessages.isNowLocked : PlayerMessages.isNowUnlocked ).get() ); @@ -256,14 +256,15 @@ public class PartStorageMonitor extends PartMonitor implements IPartStorageMonit @Override @SideOnly( Side.CLIENT ) - public void renderDynamic( double x, double y, double z, IPartRenderHelper rh, RenderBlocks renderer ) + public void renderDynamic( double x, double y, double z, IPartRenderHelper rh, IRenderHelper renderer ) { if( this.dspList == null ) { this.dspList = GLAllocation.generateDisplayLists( 1 ); } - Tessellator tess = Tessellator.instance; + Tessellator tess = Tessellator.getInstance(); + WorldRenderer wr = tess.getWorldRenderer(); if( ( this.clientFlags & ( this.POWERED_FLAG | this.CHANNEL_FLAG ) ) != ( this.POWERED_FLAG | this.CHANNEL_FLAG ) ) { @@ -280,7 +281,9 @@ public class PartStorageMonitor extends PartMonitor implements IPartStorageMonit { this.updateList = false; GL11.glNewList( this.dspList, GL11.GL_COMPILE_AND_EXECUTE ); - this.tesrRenderScreen( tess, ais ); + wr.startDrawingQuads(); + this.tesrRenderScreen( wr, ais ); + tess.draw(); GL11.glEndList(); } else @@ -304,44 +307,44 @@ public class PartStorageMonitor extends PartMonitor implements IPartStorageMonit return this.configuredItem; } - private void tesrRenderScreen( Tessellator tess, IAEItemStack ais ) + private void tesrRenderScreen( WorldRenderer wr, IAEItemStack ais ) { GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS ); - ForgeDirection d = this.side; - GL11.glTranslated( d.offsetX * 0.77, d.offsetY * 0.77, d.offsetZ * 0.77 ); + AEPartLocation d = this.side; + GL11.glTranslated( d.xOffset * 0.77, d.yOffset * 0.77, d.zOffset * 0.77 ); - if( d == ForgeDirection.UP ) + if( d == AEPartLocation.UP ) { GL11.glScalef( 1.0f, -1.0f, 1.0f ); GL11.glRotatef( 90.0f, 1.0f, 0.0f, 0.0f ); GL11.glRotatef( this.spin * 90.0F, 0, 0, 1 ); } - if( d == ForgeDirection.DOWN ) + if( d == AEPartLocation.DOWN ) { GL11.glScalef( 1.0f, -1.0f, 1.0f ); GL11.glRotatef( -90.0f, 1.0f, 0.0f, 0.0f ); GL11.glRotatef( this.spin * -90.0F, 0, 0, 1 ); } - if( d == ForgeDirection.EAST ) + if( d == AEPartLocation.EAST ) { GL11.glScalef( -1.0f, -1.0f, -1.0f ); GL11.glRotatef( -90.0f, 0.0f, 1.0f, 0.0f ); } - if( d == ForgeDirection.WEST ) + if( d == AEPartLocation.WEST ) { GL11.glScalef( -1.0f, -1.0f, -1.0f ); GL11.glRotatef( 90.0f, 0.0f, 1.0f, 0.0f ); } - if( d == ForgeDirection.NORTH ) + if( d == AEPartLocation.NORTH ) { GL11.glScalef( -1.0f, -1.0f, -1.0f ); } - if( d == ForgeDirection.SOUTH ) + if( d == AEPartLocation.SOUTH ) { GL11.glScalef( -1.0f, -1.0f, -1.0f ); GL11.glRotatef( 180.0f, 0.0f, 1.0f, 0.0f ); @@ -363,9 +366,9 @@ public class PartStorageMonitor extends PartMonitor implements IPartStorageMonit GL11.glDisable( GL11.GL_LIGHTING ); GL11.glDisable( GL12.GL_RESCALE_NORMAL ); // RenderHelper.enableGUIStandardItemLighting(); - tess.setColorOpaque_F( 1.0f, 1.0f, 1.0f ); + wr.setColorOpaque_F( 1.0f, 1.0f, 1.0f ); - ClientHelper.proxy.doRenderItem( sis, this.tile.getWorldObj() ); + ClientHelper.proxy.doRenderItem( sis, this.tile.getWorld() ); } catch( Exception e ) { @@ -380,7 +383,7 @@ public class PartStorageMonitor extends PartMonitor implements IPartStorageMonit final long stackSize = ais.getStackSize(); final String renderedStackSize = NUMBER_CONVERTER.toWideReadableForm( stackSize ); - FontRenderer fr = Minecraft.getMinecraft().fontRenderer; + FontRenderer fr = Minecraft.getMinecraft().fontRendererObj; int width = fr.getStringWidth( renderedStackSize ); GL11.glTranslatef( -0.5f * width, 0.0f, -1.0f ); fr.drawString( renderedStackSize, 0, 0, 0 ); diff --git a/src/main/java/appeng/parts/reporting/PartTerminal.java b/src/main/java/appeng/parts/reporting/PartTerminal.java index efcfdc90..b760fe7a 100644 --- a/src/main/java/appeng/parts/reporting/PartTerminal.java +++ b/src/main/java/appeng/parts/reporting/PartTerminal.java @@ -26,7 +26,6 @@ import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.Vec3; - import appeng.api.config.Settings; import appeng.api.config.SortDir; import appeng.api.config.SortOrder; diff --git a/src/main/java/appeng/recipes/AEItemResolver.java b/src/main/java/appeng/recipes/AEItemResolver.java index e5487805..53dabd37 100644 --- a/src/main/java/appeng/recipes/AEItemResolver.java +++ b/src/main/java/appeng/recipes/AEItemResolver.java @@ -20,7 +20,6 @@ package appeng.recipes; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.definitions.IDefinitions; import appeng.api.definitions.IItems; diff --git a/src/main/java/appeng/recipes/GroupIngredient.java b/src/main/java/appeng/recipes/GroupIngredient.java index 69b9a728..e11a2298 100644 --- a/src/main/java/appeng/recipes/GroupIngredient.java +++ b/src/main/java/appeng/recipes/GroupIngredient.java @@ -25,7 +25,6 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/Ingredient.java b/src/main/java/appeng/recipes/Ingredient.java index 65665673..3361ce74 100644 --- a/src/main/java/appeng/recipes/Ingredient.java +++ b/src/main/java/appeng/recipes/Ingredient.java @@ -25,10 +25,8 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.oredict.OreDictionary; - -import cpw.mods.fml.common.registry.GameRegistry; - import appeng.api.AEApi; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; diff --git a/src/main/java/appeng/recipes/IngredientSet.java b/src/main/java/appeng/recipes/IngredientSet.java index fbb849a2..18b93045 100644 --- a/src/main/java/appeng/recipes/IngredientSet.java +++ b/src/main/java/appeng/recipes/IngredientSet.java @@ -24,7 +24,6 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; import appeng.api.recipes.IIngredient; diff --git a/src/main/java/appeng/recipes/RecipeHandler.java b/src/main/java/appeng/recipes/RecipeHandler.java index 8e5b6dd6..a38caab0 100644 --- a/src/main/java/appeng/recipes/RecipeHandler.java +++ b/src/main/java/appeng/recipes/RecipeHandler.java @@ -30,18 +30,14 @@ import java.util.Map; import java.util.Map.Entry; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import javax.annotation.Nonnull; -import com.google.common.base.Optional; -import com.google.common.collect.HashMultimap; +import javax.annotation.Nonnull; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.LoaderState; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; - +import net.minecraftforge.fml.common.LoaderState; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.common.registry.GameRegistry.UniqueIdentifier; import appeng.api.AEApi; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IDefinitions; @@ -64,6 +60,9 @@ import appeng.items.parts.ItemMultiPart; import appeng.recipes.handlers.IWebsiteSerializer; import appeng.recipes.handlers.OreRegistration; +import com.google.common.base.Optional; +import com.google.common.collect.HashMultimap; + /** * @author AlgorithmX2 @@ -357,7 +356,7 @@ public class RecipeHandler implements IRecipeHandler @Override public void injectRecipes() { - if( cpw.mods.fml.common.Loader.instance().hasReachedState( LoaderState.POSTINITIALIZATION ) ) + if( net.minecraftforge.fml.common.Loader.instance().hasReachedState( LoaderState.POSTINITIALIZATION ) ) { throw new IllegalStateException( "Recipes must now be loaded in Init." ); } diff --git a/src/main/java/appeng/recipes/game/DisassembleRecipe.java b/src/main/java/appeng/recipes/game/DisassembleRecipe.java index 4b3023f9..a009869f 100644 --- a/src/main/java/appeng/recipes/game/DisassembleRecipe.java +++ b/src/main/java/appeng/recipes/game/DisassembleRecipe.java @@ -25,14 +25,12 @@ import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import com.google.common.base.Optional; - import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.world.World; - +import net.minecraftforge.common.ForgeHooks; import appeng.api.AEApi; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IDefinitions; @@ -44,6 +42,8 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import com.google.common.base.Optional; + public final class DisassembleRecipe implements IRecipe { @@ -173,4 +173,11 @@ public final class DisassembleRecipe implements IRecipe { return null; } + + @Override + public ItemStack[] getRemainingItems( + InventoryCrafting inv ) + { + return ForgeHooks.defaultRecipeGetRemainingItems(inv); + } } \ No newline at end of file diff --git a/src/main/java/appeng/recipes/game/FacadeRecipe.java b/src/main/java/appeng/recipes/game/FacadeRecipe.java index 186d8855..a9490d60 100644 --- a/src/main/java/appeng/recipes/game/FacadeRecipe.java +++ b/src/main/java/appeng/recipes/game/FacadeRecipe.java @@ -21,20 +21,20 @@ package appeng.recipes.game; import javax.annotation.Nullable; -import com.google.common.base.Optional; - import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.world.World; - +import net.minecraftforge.common.ForgeHooks; import appeng.api.AEApi; import appeng.api.definitions.IComparableDefinition; import appeng.api.definitions.IDefinitions; import appeng.items.parts.ItemFacade; +import com.google.common.base.Optional; + public final class FacadeRecipe implements IRecipe { @@ -97,4 +97,12 @@ public final class FacadeRecipe implements IRecipe { return null; } + + @Override + public ItemStack[] getRemainingItems( + InventoryCrafting inv ) + { + return ForgeHooks.defaultRecipeGetRemainingItems(inv); + } + } \ No newline at end of file diff --git a/src/main/java/appeng/recipes/game/ShapedRecipe.java b/src/main/java/appeng/recipes/game/ShapedRecipe.java index c18f76f1..a4957b2c 100644 --- a/src/main/java/appeng/recipes/game/ShapedRecipe.java +++ b/src/main/java/appeng/recipes/game/ShapedRecipe.java @@ -27,8 +27,8 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; import appeng.api.recipes.IIngredient; @@ -325,4 +325,12 @@ public class ShapedRecipe implements IRecipe, IRecipeBakeable this.disable = true; } } + + @Override + public ItemStack[] getRemainingItems( + InventoryCrafting inv ) + { + return ForgeHooks.defaultRecipeGetRemainingItems(inv); + } + } \ No newline at end of file diff --git a/src/main/java/appeng/recipes/game/ShapelessRecipe.java b/src/main/java/appeng/recipes/game/ShapelessRecipe.java index 0d599994..d0fd0d96 100644 --- a/src/main/java/appeng/recipes/game/ShapelessRecipe.java +++ b/src/main/java/appeng/recipes/game/ShapelessRecipe.java @@ -25,8 +25,8 @@ import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; import appeng.api.recipes.IIngredient; @@ -179,4 +179,12 @@ public class ShapelessRecipe implements IRecipe, IRecipeBakeable this.disable = true; } } + + @Override + public ItemStack[] getRemainingItems( + InventoryCrafting inv ) + { + return ForgeHooks.defaultRecipeGetRemainingItems(inv); + } + } \ No newline at end of file diff --git a/src/main/java/appeng/recipes/handlers/Crusher.java b/src/main/java/appeng/recipes/handlers/Crusher.java index f90862c7..c6081c5d 100644 --- a/src/main/java/appeng/recipes/handlers/Crusher.java +++ b/src/main/java/appeng/recipes/handlers/Crusher.java @@ -22,7 +22,6 @@ package appeng.recipes.handlers; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/Grind.java b/src/main/java/appeng/recipes/handlers/Grind.java index 7bdd058c..3d089291 100644 --- a/src/main/java/appeng/recipes/handlers/Grind.java +++ b/src/main/java/appeng/recipes/handlers/Grind.java @@ -22,7 +22,6 @@ package appeng.recipes.handlers; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; diff --git a/src/main/java/appeng/recipes/handlers/GrindFZ.java b/src/main/java/appeng/recipes/handlers/GrindFZ.java index 2b4262ea..e1284551 100644 --- a/src/main/java/appeng/recipes/handlers/GrindFZ.java +++ b/src/main/java/appeng/recipes/handlers/GrindFZ.java @@ -22,7 +22,6 @@ package appeng.recipes.handlers; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/HCCrusher.java b/src/main/java/appeng/recipes/handlers/HCCrusher.java index 763d81ea..9c472000 100644 --- a/src/main/java/appeng/recipes/handlers/HCCrusher.java +++ b/src/main/java/appeng/recipes/handlers/HCCrusher.java @@ -23,9 +23,7 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.event.FMLInterModComms; - +import net.minecraftforge.fml.common.event.FMLInterModComms; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/IWebsiteSerializer.java b/src/main/java/appeng/recipes/handlers/IWebsiteSerializer.java index f15d7732..334848ec 100644 --- a/src/main/java/appeng/recipes/handlers/IWebsiteSerializer.java +++ b/src/main/java/appeng/recipes/handlers/IWebsiteSerializer.java @@ -20,7 +20,6 @@ package appeng.recipes.handlers; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; import appeng.recipes.RecipeHandler; diff --git a/src/main/java/appeng/recipes/handlers/Inscribe.java b/src/main/java/appeng/recipes/handlers/Inscribe.java index 46523b10..d0953cc2 100644 --- a/src/main/java/appeng/recipes/handlers/Inscribe.java +++ b/src/main/java/appeng/recipes/handlers/Inscribe.java @@ -24,7 +24,6 @@ import java.util.Collections; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/InscriberProcess.java b/src/main/java/appeng/recipes/handlers/InscriberProcess.java index 15068bb1..ce16a385 100644 --- a/src/main/java/appeng/recipes/handlers/InscriberProcess.java +++ b/src/main/java/appeng/recipes/handlers/InscriberProcess.java @@ -6,7 +6,6 @@ import java.util.List; import javax.annotation.Nullable; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/Macerator.java b/src/main/java/appeng/recipes/handlers/Macerator.java index 5655edb0..3a9b3b83 100644 --- a/src/main/java/appeng/recipes/handlers/Macerator.java +++ b/src/main/java/appeng/recipes/handlers/Macerator.java @@ -22,7 +22,6 @@ package appeng.recipes.handlers; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/MekCrusher.java b/src/main/java/appeng/recipes/handlers/MekCrusher.java index f26253e5..df3ff6b5 100644 --- a/src/main/java/appeng/recipes/handlers/MekCrusher.java +++ b/src/main/java/appeng/recipes/handlers/MekCrusher.java @@ -22,7 +22,6 @@ package appeng.recipes.handlers; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/MekEnrichment.java b/src/main/java/appeng/recipes/handlers/MekEnrichment.java index 1ad9e7f9..854e4325 100644 --- a/src/main/java/appeng/recipes/handlers/MekEnrichment.java +++ b/src/main/java/appeng/recipes/handlers/MekEnrichment.java @@ -22,7 +22,6 @@ package appeng.recipes.handlers; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/OreRegistration.java b/src/main/java/appeng/recipes/handlers/OreRegistration.java index f77738cb..0c8b802d 100644 --- a/src/main/java/appeng/recipes/handlers/OreRegistration.java +++ b/src/main/java/appeng/recipes/handlers/OreRegistration.java @@ -23,7 +23,6 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/Press.java b/src/main/java/appeng/recipes/handlers/Press.java index ccbdb530..7dafc7f6 100644 --- a/src/main/java/appeng/recipes/handlers/Press.java +++ b/src/main/java/appeng/recipes/handlers/Press.java @@ -24,7 +24,6 @@ import java.util.Collections; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/Pulverizer.java b/src/main/java/appeng/recipes/handlers/Pulverizer.java index cd12fe35..94052b6c 100644 --- a/src/main/java/appeng/recipes/handlers/Pulverizer.java +++ b/src/main/java/appeng/recipes/handlers/Pulverizer.java @@ -23,9 +23,7 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.event.FMLInterModComms; - +import net.minecraftforge.fml.common.event.FMLInterModComms; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/Shaped.java b/src/main/java/appeng/recipes/handlers/Shaped.java index 2b710601..5e8f2afd 100644 --- a/src/main/java/appeng/recipes/handlers/Shaped.java +++ b/src/main/java/appeng/recipes/handlers/Shaped.java @@ -23,9 +23,7 @@ import java.util.ArrayList; import java.util.List; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameRegistry; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/Shapeless.java b/src/main/java/appeng/recipes/handlers/Shapeless.java index 6881dbf6..26dab88e 100644 --- a/src/main/java/appeng/recipes/handlers/Shapeless.java +++ b/src/main/java/appeng/recipes/handlers/Shapeless.java @@ -23,9 +23,7 @@ import java.util.ArrayList; import java.util.List; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameRegistry; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/handlers/Smelt.java b/src/main/java/appeng/recipes/handlers/Smelt.java index 810961f4..77f1d189 100644 --- a/src/main/java/appeng/recipes/handlers/Smelt.java +++ b/src/main/java/appeng/recipes/handlers/Smelt.java @@ -22,9 +22,7 @@ package appeng.recipes.handlers; import java.util.List; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.registry.GameRegistry; - +import net.minecraftforge.fml.common.registry.GameRegistry; import appeng.api.exceptions.MissingIngredientError; import appeng.api.exceptions.RecipeError; import appeng.api.exceptions.RegistrationError; diff --git a/src/main/java/appeng/recipes/loader/ConfigLoader.java b/src/main/java/appeng/recipes/loader/ConfigLoader.java index ecb83fce..e001f3f6 100644 --- a/src/main/java/appeng/recipes/loader/ConfigLoader.java +++ b/src/main/java/appeng/recipes/loader/ConfigLoader.java @@ -23,12 +23,13 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; + import javax.annotation.Nonnull; -import com.google.common.base.Preconditions; - import appeng.api.recipes.IRecipeLoader; +import com.google.common.base.Preconditions; + public final class ConfigLoader implements IRecipeLoader { diff --git a/src/main/java/appeng/recipes/loader/JarLoader.java b/src/main/java/appeng/recipes/loader/JarLoader.java index 00957799..208f6960 100644 --- a/src/main/java/appeng/recipes/loader/JarLoader.java +++ b/src/main/java/appeng/recipes/loader/JarLoader.java @@ -21,12 +21,13 @@ package appeng.recipes.loader; import java.io.BufferedReader; import java.io.InputStreamReader; + import javax.annotation.Nonnull; -import com.google.common.base.Preconditions; - import appeng.api.recipes.IRecipeLoader; +import com.google.common.base.Preconditions; + public class JarLoader implements IRecipeLoader { diff --git a/src/main/java/appeng/recipes/loader/RecipeResourceCopier.java b/src/main/java/appeng/recipes/loader/RecipeResourceCopier.java index 00686f85..b2e5ff11 100644 --- a/src/main/java/appeng/recipes/loader/RecipeResourceCopier.java +++ b/src/main/java/appeng/recipes/loader/RecipeResourceCopier.java @@ -31,12 +31,13 @@ import java.util.HashSet; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.regex.Pattern; + import javax.annotation.Nonnull; -import com.google.common.base.Preconditions; - import org.apache.commons.io.FileUtils; +import com.google.common.base.Preconditions; + /** * copies recipes in jars onto file system diff --git a/src/main/java/appeng/recipes/ores/OreDictionaryHandler.java b/src/main/java/appeng/recipes/ores/OreDictionaryHandler.java index 19fadf21..73f1062b 100644 --- a/src/main/java/appeng/recipes/ores/OreDictionaryHandler.java +++ b/src/main/java/appeng/recipes/ores/OreDictionaryHandler.java @@ -24,10 +24,8 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.oredict.OreDictionary; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - import appeng.core.AELog; import appeng.recipes.game.IRecipeBakeable; diff --git a/src/main/java/appeng/server/AECommand.java b/src/main/java/appeng/server/AECommand.java index 5140e9d4..c57580f7 100644 --- a/src/main/java/appeng/server/AECommand.java +++ b/src/main/java/appeng/server/AECommand.java @@ -19,13 +19,14 @@ package appeng.server; -import com.google.common.base.Joiner; - import net.minecraft.command.CommandBase; +import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraft.command.WrongUsageException; import net.minecraft.server.MinecraftServer; +import com.google.common.base.Joiner; + public final class AECommand extends CommandBase { @@ -50,9 +51,9 @@ public final class AECommand extends CommandBase { return 1; } - + @Override - public String getCommandName() + public String getName() { return "ae2"; } @@ -64,7 +65,9 @@ public final class AECommand extends CommandBase } @Override - public void processCommand( ICommandSender sender, String[] args ) + public void execute( + ICommandSender sender, + String[] args ) throws CommandException { if( args.length == 0 ) { @@ -98,7 +101,7 @@ public final class AECommand extends CommandBase try { Commands c = Commands.valueOf( args[0] ); - if( sender.canCommandSenderUseCommand( c.level, this.getCommandName() ) ) + if( sender.canUseCommand( c.level, this.getName() ) ) { c.command.call( this.srv, args, sender ); } diff --git a/src/main/java/appeng/server/ServerHelper.java b/src/main/java/appeng/server/ServerHelper.java index f5665d73..b4b69390 100644 --- a/src/main/java/appeng/server/ServerHelper.java +++ b/src/main/java/appeng/server/ServerHelper.java @@ -30,10 +30,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; - -import cpw.mods.fml.common.FMLCommonHandler; - +import net.minecraftforge.fml.common.FMLCommonHandler; import appeng.api.parts.CableRenderMode; import appeng.block.AEBaseBlock; import appeng.client.EffectType; @@ -50,7 +49,13 @@ public class ServerHelper extends CommonHelper private EntityPlayer renderModeBased; @Override - public void init() + public void configureIcon(Object item, String name ) + { + + } + + @Override + public void preinit() { } @@ -189,4 +194,12 @@ public class ServerHelper extends CommonHelper { throw new IllegalStateException( "Unable to Load Core Mod, please verify that AE2 is properly install in the mods folder, with a .jar extension." ); } + + @Override + public ResourceLocation addIcon( + String string ) + { + // TODO Auto-generated method stub + return null; + } } diff --git a/src/main/java/appeng/server/subcommands/ChunkLogger.java b/src/main/java/appeng/server/subcommands/ChunkLogger.java index 154fa6b8..77730045 100644 --- a/src/main/java/appeng/server/subcommands/ChunkLogger.java +++ b/src/main/java/appeng/server/subcommands/ChunkLogger.java @@ -24,9 +24,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.util.ChatComponentTranslation; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.ChunkEvent; - -import cpw.mods.fml.common.eventhandler.SubscribeEvent; - +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import appeng.core.AEConfig; import appeng.core.AELog; import appeng.core.features.AEFeature; diff --git a/src/main/java/appeng/server/subcommands/Supporters.java b/src/main/java/appeng/server/subcommands/Supporters.java index 637f7842..693c5692 100644 --- a/src/main/java/appeng/server/subcommands/Supporters.java +++ b/src/main/java/appeng/server/subcommands/Supporters.java @@ -19,14 +19,13 @@ package appeng.server.subcommands; -import com.google.common.base.Joiner; - import net.minecraft.command.ICommandSender; import net.minecraft.server.MinecraftServer; import net.minecraft.util.ChatComponentText; - import appeng.server.ISubCommand; +import com.google.common.base.Joiner; + public class Supporters implements ISubCommand { diff --git a/src/main/java/appeng/services/CompassService.java b/src/main/java/appeng/services/CompassService.java index 1bf8c24a..407968f7 100644 --- a/src/main/java/appeng/services/CompassService.java +++ b/src/main/java/appeng/services/CompassService.java @@ -33,7 +33,6 @@ import javax.annotation.Nonnull; import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; - import appeng.api.AEApi; import appeng.api.util.DimensionalCoord; import appeng.services.compass.CompassReader; @@ -102,7 +101,7 @@ public class CompassService implements ThreadFactory int hi_y = low_y + 32; // lower level... - Chunk c = w.getChunkFromBlockCoords( x, z ); + Chunk c = w.getChunkFromChunkCoords( cx, cz ); for( Block skyStoneBlock : AEApi.instance().definitions().blocks().skyStone().maybeBlock().asSet() ) { @@ -113,7 +112,7 @@ public class CompassService implements ThreadFactory for( int k = low_y; k < hi_y; k++ ) { Block blk = c.getBlock( i, k, j ); - if( blk == skyStoneBlock && c.getBlockMetadata( i, k, j ) == 0 ) + if( blk == skyStoneBlock ) { return this.executor.submit( new CMUpdatePost( w, cx, cz, cdy, true ) ); } @@ -131,7 +130,7 @@ public class CompassService implements ThreadFactory if( cr == null ) { - cr = new CompassReader( w.provider.dimensionId, this.rootFolder ); + cr = new CompassReader( w.provider.getDimensionId(), this.rootFolder ); this.worldSet.put( w, cr ); } diff --git a/src/main/java/appeng/services/VersionChecker.java b/src/main/java/appeng/services/VersionChecker.java index c6a37a2e..86a8a692 100644 --- a/src/main/java/appeng/services/VersionChecker.java +++ b/src/main/java/appeng/services/VersionChecker.java @@ -22,10 +22,8 @@ package appeng.services; import java.util.Date; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.event.FMLInterModComms; - +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.event.FMLInterModComms; import appeng.core.AEConfig; import appeng.core.AELog; import appeng.core.AppEng; diff --git a/src/main/java/appeng/services/version/github/ReleaseFetcher.java b/src/main/java/appeng/services/version/github/ReleaseFetcher.java index 8efee900..676907ac 100644 --- a/src/main/java/appeng/services/version/github/ReleaseFetcher.java +++ b/src/main/java/appeng/services/version/github/ReleaseFetcher.java @@ -6,9 +6,6 @@ import java.lang.reflect.Type; import java.net.URL; import java.util.List; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - import org.apache.commons.io.IOUtils; import appeng.core.AELog; @@ -17,6 +14,9 @@ import appeng.services.version.Version; import appeng.services.version.VersionCheckerConfig; import appeng.services.version.VersionParser; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + public final class ReleaseFetcher { diff --git a/src/main/java/appeng/spatial/CachedPlane.java b/src/main/java/appeng/spatial/CachedPlane.java index 3338167a..ada7360b 100644 --- a/src/main/java/appeng/spatial/CachedPlane.java +++ b/src/main/java/appeng/spatial/CachedPlane.java @@ -25,18 +25,18 @@ import java.util.List; import java.util.Map.Entry; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.ChunkPosition; +import net.minecraft.util.BlockPos; import net.minecraft.world.NextTickListEntry; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.definitions.IBlockDefinition; import appeng.api.movable.IMovableHandler; import appeng.api.movable.IMovableRegistry; +import appeng.api.util.AEPartLocation; import appeng.api.util.WorldCoord; import appeng.core.AELog; import appeng.core.WorldSettings; @@ -110,18 +110,20 @@ public class CachedPlane { for( int cz = 0; cz < this.cz_size; cz++ ) { - LinkedList> rawTiles = new LinkedList>(); - LinkedList deadTiles = new LinkedList(); + LinkedList> rawTiles = new LinkedList>(); + LinkedList deadTiles = new LinkedList(); Chunk c = w.getChunkFromChunkCoords( minCX + cx, minCZ + cz ); this.myChunks[cx][cz] = c; - rawTiles.addAll( ( (HashMap) c.chunkTileEntityMap ).entrySet() ); - for( Entry tx : rawTiles ) + rawTiles.addAll( ( (HashMap) c.getTileEntityMap() ).entrySet() ); + for( Entry tx : rawTiles ) { - ChunkPosition cp = tx.getKey(); + BlockPos cp = tx.getKey(); TileEntity te = tx.getValue(); - if( te.xCoord >= minX && te.xCoord <= maxX && te.yCoord >= minY && te.yCoord <= maxY && te.zCoord >= minZ && te.zCoord <= maxZ ) + + BlockPos tePOS = te.getPos(); + if( tePOS.getX() >= minX && tePOS.getX() <= maxX && tePOS.getY() >= minY && tePOS.getY() <= maxY && tePOS.getZ() >= minZ && tePOS.getZ() <= maxZ ) { if( mr.askToMove( te ) ) { @@ -130,26 +132,25 @@ public class CachedPlane } else { - Object[] details = this.myColumns[te.xCoord - minX][te.zCoord - minZ].getDetails( te.yCoord ); + Object[] details = this.myColumns[tePOS.getX() - minX][tePOS.getZ() - minZ].getDetails( tePOS.getY() ); Block blk = (Block) details[0]; // don't skip air, just let the code replace it... - if( blk != null && blk.isAir( c.worldObj, te.xCoord, te.yCoord, te.zCoord ) && blk.isReplaceable( c.worldObj, te.xCoord, te.yCoord, te.zCoord ) ) + if( blk != null && blk.isAir( c.getWorld(), tePOS ) && blk.isReplaceable( c.getWorld(), tePOS ) ) { - c.worldObj.setBlock( te.xCoord, te.yCoord, te.zCoord, Platform.AIR_BLOCK ); - c.worldObj.notifyBlocksOfNeighborChange( te.xCoord, te.yCoord, te.zCoord, Platform.AIR_BLOCK ); + c.getWorld().setBlockToAir( tePOS ); } else { - this.myColumns[te.xCoord - minX][te.zCoord - minZ].setSkip( te.yCoord ); + this.myColumns[tePOS.getX() - minX][tePOS.getZ() - minZ].setSkip( tePOS.getY() ); } } } } - for( ChunkPosition cp : deadTiles ) + for( BlockPos cp : deadTiles ) { - c.chunkTileEntityMap.remove( cp ); + c.getTileEntityMap().remove( cp ); } long k = this.world.getTotalWorldTime(); @@ -159,9 +160,10 @@ public class CachedPlane for( Object o : list ) { NextTickListEntry entry = (NextTickListEntry) o; - if( entry.xCoord >= minX && entry.xCoord <= maxX && entry.yCoord >= minY && entry.yCoord <= maxY && entry.zCoord >= minZ && entry.zCoord <= maxZ ) + BlockPos tePOS = entry.position; + if( tePOS.getX() >= minX && tePOS.getX() <= maxX && tePOS.getY() >= minY && tePOS.getY() <= maxY && tePOS.getZ() >= minZ && tePOS.getZ() <= maxZ ) { - NextTickListEntry newEntry = new NextTickListEntry( entry.xCoord, entry.yCoord, entry.zCoord, entry.func_151351_a() ); + NextTickListEntry newEntry = new NextTickListEntry( tePOS, entry.getBlock() ); newEntry.scheduledTime = entry.scheduledTime - k; this.ticks.add( newEntry ); } @@ -234,22 +236,26 @@ public class CachedPlane for( TileEntity te : this.tiles ) { - dst.addTile( te.xCoord - this.x_offset, te.yCoord - this.y_offset, te.zCoord - this.z_offset, te, this, mr ); + BlockPos tePOS = te.getPos(); + dst.addTile( tePOS.getX() - this.x_offset, tePOS.getY() - this.y_offset, tePOS.getZ() - this.z_offset, te, this, mr ); } for( TileEntity te : dst.tiles ) { - this.addTile( te.xCoord - dst.x_offset, te.yCoord - dst.y_offset, te.zCoord - dst.z_offset, te, dst, mr ); + BlockPos tePOS = te.getPos(); + this.addTile( tePOS.getX() - dst.x_offset, tePOS.getY() - dst.y_offset, tePOS.getZ() - dst.z_offset, te, dst, mr ); } for( NextTickListEntry entry : this.ticks ) { - dst.addTick( entry.xCoord - this.x_offset, entry.yCoord - this.y_offset, entry.zCoord - this.z_offset, entry ); + BlockPos tePOS = entry.position; + dst.addTick( tePOS.getX() - this.x_offset, tePOS.getY() - this.y_offset, tePOS.getZ() - this.z_offset, entry ); } for( NextTickListEntry entry : dst.ticks ) { - this.addTick( entry.xCoord - dst.x_offset, entry.yCoord - dst.y_offset, entry.zCoord - dst.z_offset, entry ); + BlockPos tePOS = entry.position; + this.addTick( tePOS.getX() - dst.x_offset, tePOS.getY() - dst.y_offset, tePOS.getZ() - dst.z_offset, entry ); } startTime = System.nanoTime(); @@ -265,15 +271,15 @@ public class CachedPlane private void markForUpdate( int x, int y, int z ) { this.updates.add( new WorldCoord( x, y, z ) ); - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { - this.updates.add( new WorldCoord( x + d.offsetX, y + d.offsetY, z + d.offsetZ ) ); + this.updates.add( new WorldCoord( x + d.xOffset, y + d.yOffset, z + d.zOffset ) ); } } private void addTick( int x, int y, int z, NextTickListEntry entry ) { - this.world.scheduleBlockUpdate( x + this.x_offset, y + this.y_offset, z + this.z_offset, entry.func_151351_a(), (int) entry.scheduledTime ); + this.world.scheduleUpdate( new BlockPos( x + this.x_offset, y + this.y_offset, z + this.z_offset ), entry.getBlock(), (int) entry.scheduledTime ); } private void addTile( int x, int y, int z, TileEntity te, CachedPlane alternateDestination, IMovableRegistry mr ) @@ -288,25 +294,24 @@ public class CachedPlane try { - handler.moveTile( te, this.world, x + this.x_offset, y + this.y_offset, z + this.z_offset ); + handler.moveTile( te, this.world, new BlockPos( x + this.x_offset, y + this.y_offset, z + this.z_offset ) ); } catch( Throwable e ) { AELog.error( e ); + BlockPos pos = new BlockPos( x,y,z); + // attempt recovery... te.setWorldObj( this.world ); - te.xCoord = x; - te.yCoord = y; - te.zCoord = z; - - c.c.func_150812_a( c.x, y + y, c.z, te ); + te.setPos( pos ); + c.c.addTileEntity( new BlockPos( c.x, y + y, c.z ), te ); // c.c.setChunkTileEntity( c.x, y + y, c.z, te ); - if( c.c.isChunkLoaded ) + if( c.c.isLoaded() ) { this.world.addTileEntity( te ); - this.world.markBlockForUpdate( x, y, z ); + this.world.markBlockForUpdate( pos ); } } @@ -334,7 +339,7 @@ public class CachedPlane Chunk c = this.myChunks[x][z]; c.resetRelightChecks(); c.generateSkylightMap(); - c.isModified = true; + c.setModified( true ); } } @@ -362,7 +367,7 @@ public class CachedPlane private final int x; private final int z; private final Chunk c; - private final Object[] ch = { 0, 0, 0 }; + private final Object[] ch = { 0, 0 }; private final ExtendedBlockStorage[] storage; private List skipThese = null; @@ -380,7 +385,7 @@ public class CachedPlane ExtendedBlockStorage extendedblockstorage = this.storage[by]; if( extendedblockstorage == null ) { - extendedblockstorage = this.storage[by] = new ExtendedBlockStorage( by << 4, !this.c.worldObj.provider.hasNoSky ); + extendedblockstorage = this.storage[by] = new ExtendedBlockStorage( by << 4, !this.c.getWorld().provider.getHasNoSky() ); } } } @@ -396,18 +401,16 @@ public class CachedPlane } ExtendedBlockStorage extendedBlockStorage = this.storage[y >> 4]; - extendedBlockStorage.func_150818_a( this.x, y & 15, this.z, (Block) blk[0] ); + extendedBlockStorage.set( this.x, y & 15, this.z, (IBlockState) blk[0] ); // extendedBlockStorage.setExtBlockID( x, y & 15, z, blk[0] ); - extendedBlockStorage.setExtBlockMetadata( this.x, y & 15, this.z, (Integer) blk[1] ); - extendedBlockStorage.setExtBlocklightValue( this.x, y & 15, this.z, (Integer) blk[2] ); + extendedBlockStorage.setExtBlocklightValue( this.x, y & 15, this.z, (Integer) blk[1] ); } public Object[] getDetails( int y ) { ExtendedBlockStorage extendedblockstorage = this.storage[y >> 4]; - this.ch[0] = extendedblockstorage.getBlockByExtId( this.x, y & 15, this.z ); - this.ch[1] = extendedblockstorage.getExtBlockMetadata( this.x, y & 15, this.z ); - this.ch[2] = extendedblockstorage.getExtBlocklightValue( this.x, y & 15, this.z ); + this.ch[0] = extendedblockstorage.get( this.x, y & 15, this.z ); + this.ch[1] = extendedblockstorage.getExtBlocklightValue( this.x, y & 15, this.z ); return this.ch; } diff --git a/src/main/java/appeng/spatial/DefaultSpatialHandler.java b/src/main/java/appeng/spatial/DefaultSpatialHandler.java index 862a43bf..92242e00 100644 --- a/src/main/java/appeng/spatial/DefaultSpatialHandler.java +++ b/src/main/java/appeng/spatial/DefaultSpatialHandler.java @@ -20,9 +20,9 @@ package appeng.spatial; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; - import appeng.api.movable.IMovableHandler; @@ -43,22 +43,18 @@ public class DefaultSpatialHandler implements IMovableHandler } @Override - public void moveTile( TileEntity te, World w, int x, int y, int z ) + public void moveTile( TileEntity te, World w, BlockPos newPosition ) { - te.setWorldObj( w ); - te.xCoord = x; - te.yCoord = y; - te.zCoord = z; + te.setPos( newPosition ); - Chunk c = w.getChunkFromBlockCoords( x, z ); - c.func_150812_a( x & 0xF, y, z & 0xF, te ); - // c.setChunkBlockTileEntity( x & 0xF, y, z & 0xF, te ); + Chunk c = w.getChunkFromBlockCoords( newPosition ); + c.addTileEntity( newPosition, te ); - if( c.isChunkLoaded ) + if( c.isLoaded() ) { w.addTileEntity( te ); - w.markBlockForUpdate( x, y, z ); + w.markBlockForUpdate( newPosition ); } } } diff --git a/src/main/java/appeng/spatial/ISpatialVisitor.java b/src/main/java/appeng/spatial/ISpatialVisitor.java index 204bde08..75dc1041 100644 --- a/src/main/java/appeng/spatial/ISpatialVisitor.java +++ b/src/main/java/appeng/spatial/ISpatialVisitor.java @@ -18,9 +18,11 @@ package appeng.spatial; +import net.minecraft.util.BlockPos; + public interface ISpatialVisitor { - void visit( int x, int y, int z ); + void visit( BlockPos pos ); } diff --git a/src/main/java/appeng/spatial/StorageChunkProvider.java b/src/main/java/appeng/spatial/StorageChunkProvider.java index 0a58b05e..3e3882f8 100644 --- a/src/main/java/appeng/spatial/StorageChunkProvider.java +++ b/src/main/java/appeng/spatial/StorageChunkProvider.java @@ -24,11 +24,11 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.entity.EnumCreatureType; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.ChunkProviderGenerate; - import appeng.api.AEApi; import appeng.core.AEConfig; @@ -55,14 +55,14 @@ public class StorageChunkProvider extends ChunkProviderGenerate public StorageChunkProvider( World world, long i ) { - super( world, i, false ); + super( world, i, false, null ); this.world = world; } @Override public Chunk provideChunk( int x, int z ) { - Chunk chunk = new Chunk( this.world, BLOCKS, x, z ); + Chunk chunk = new Chunk( this.world, x, z ); byte[] biomes = chunk.getBiomeArray(); AEConfig config = AEConfig.instance; @@ -72,9 +72,9 @@ public class StorageChunkProvider extends ChunkProviderGenerate biomes[k] = (byte) config.storageBiomeID; } - if( !chunk.isTerrainPopulated ) + if( !chunk.isTerrainPopulated() ) { - chunk.isTerrainPopulated = true; + chunk.setTerrainPopulated( true ); chunk.resetRelightChecks(); } @@ -94,7 +94,9 @@ public class StorageChunkProvider extends ChunkProviderGenerate } @Override - public List getPossibleCreatures( EnumCreatureType a, int b, int c, int d ) + public List func_177458_a( + EnumCreatureType p_177458_1_, + BlockPos p_177458_2_ ) { return new ArrayList(); } diff --git a/src/main/java/appeng/spatial/StorageHelper.java b/src/main/java/appeng/spatial/StorageHelper.java index 90d4ab05..4894af51 100644 --- a/src/main/java/appeng/spatial/StorageHelper.java +++ b/src/main/java/appeng/spatial/StorageHelper.java @@ -23,16 +23,17 @@ import java.lang.reflect.Method; import java.util.List; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityHanging; import net.minecraft.entity.EntityList; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; import net.minecraft.util.MathHelper; import net.minecraft.world.Teleporter; import net.minecraft.world.World; import net.minecraft.world.WorldServer; - import appeng.api.AEApi; import appeng.api.util.WorldCoord; import appeng.core.stats.Achievements; @@ -103,7 +104,7 @@ public class StorageHelper } // load the chunk! - WorldServer.class.cast( newWorld ).getChunkProvider().loadChunk( MathHelper.floor_double( link.x ) >> 4, MathHelper.floor_double( link.z ) >> 4 ); + WorldServer.class.cast( newWorld ).getChunkProvider().provideChunk( MathHelper.floor_double( link.x ) >> 4, MathHelper.floor_double( link.z ) >> 4 ); boolean diffDestination = newWorld != oldWorld; if( diffDestination ) @@ -115,7 +116,7 @@ public class StorageHelper Achievements.SpatialIOExplorer.addToPlayer( player ); } - player.mcServer.getConfigurationManager().transferPlayerToDimension( player, link.dim.provider.dimensionId, new METeleporter( newWorld, link ) ); + player.mcServer.getConfigurationManager().transferPlayerToDimension( player, link.dim.provider.getDimensionId(), new METeleporter( newWorld, link ) ); } else { @@ -125,7 +126,7 @@ public class StorageHelper if( ( entity.addedToChunk ) && ( oldWorld.getChunkProvider().chunkExists( entX, entZ ) ) ) { oldWorld.getChunkFromChunkCoords( entX, entZ ).removeEntity( entity ); - oldWorld.getChunkFromChunkCoords( entX, entZ ).isModified = true; + oldWorld.getChunkFromChunkCoords( entX, entZ ).setModified( true ); } Entity newEntity = EntityList.createEntityByName( EntityList.getEntityString( entity ), newWorld ); @@ -138,13 +139,11 @@ public class StorageHelper if( entity instanceof EntityHanging ) { EntityHanging h = (EntityHanging) entity; - h.field_146063_b += link.xOff; - h.field_146064_c += link.yOff; - h.field_146062_d += link.zOff; + h.setPosition( link.x, link.y, link.z ); // TODO: VERIFIY THIS WORKS } - newEntity.copyDataFrom( entity, true ); - newEntity.dimension = newWorld.provider.dimensionId; + newEntity.copyDataFromOld( entity ); + newEntity.dimension = newWorld.provider.getDimensionId(); newEntity.forceSpawn = true; entity.isDead = true; @@ -183,8 +182,8 @@ public class StorageHelper { for( int z = minZ; z < maxZ; z++ ) { - visitor.visit( minX, y, z ); - visitor.visit( maxX, y, z ); + visitor.visit( new BlockPos( minX, y, z ) ); + visitor.visit( new BlockPos( maxX, y, z ) ); } } @@ -192,8 +191,8 @@ public class StorageHelper { for( int z = minZ; z < maxZ; z++ ) { - visitor.visit( x, minY, z ); - visitor.visit( x, maxY, z ); + visitor.visit( new BlockPos( x, minY, z ) ); + visitor.visit( new BlockPos( x, maxY, z ) ); } } @@ -201,8 +200,8 @@ public class StorageHelper { for( int y = minY; y < maxY; y++ ) { - visitor.visit( x, y, minZ ); - visitor.visit( x, y, maxZ ); + visitor.visit( new BlockPos( x, y, minZ ) ); + visitor.visit( new BlockPos( x, y, maxZ ) ); } } } @@ -211,12 +210,12 @@ public class StorageHelper { for( Block matrixFrameBlock : AEApi.instance().definitions().blocks().matrixFrame().maybeBlock().asSet() ) { - this.transverseEdges( i - 1, j - 1, k - 1, i + scaleX + 1, j + scaleY + 1, k + scaleZ + 1, new WrapInMatrixFrame( matrixFrameBlock, 0, dst ) ); + this.transverseEdges( i - 1, j - 1, k - 1, i + scaleX + 1, j + scaleY + 1, k + scaleZ + 1, new WrapInMatrixFrame( matrixFrameBlock.getDefaultState(), dst ) ); } - AxisAlignedBB srcBox = AxisAlignedBB.getBoundingBox( x, y, z, x + scaleX + 1, y + scaleY + 1, z + scaleZ + 1 ); + AxisAlignedBB srcBox = AxisAlignedBB.fromBounds( x, y, z, x + scaleX + 1, y + scaleY + 1, z + scaleZ + 1 ); - AxisAlignedBB dstBox = AxisAlignedBB.getBoundingBox( i, j, k, i + scaleX + 1, j + scaleY + 1, k + scaleZ + 1 ); + AxisAlignedBB dstBox = AxisAlignedBB.fromBounds( i, j, k, i + scaleX + 1, j + scaleY + 1, k + scaleZ + 1 ); CachedPlane cDst = new CachedPlane( dst, i, j, k, i + scaleX, j + scaleY, k + scaleZ ); CachedPlane cSrc = new CachedPlane( src, x, y, z, x + scaleX, y + scaleY, z + scaleZ ); @@ -239,12 +238,12 @@ public class StorageHelper for( WorldCoord wc : cDst.updates ) { - cDst.world.notifyBlockOfNeighborChange( wc.x, wc.y, wc.z, Platform.AIR_BLOCK ); + cSrc.world.notifyBlockOfStateChange( wc.getPos(), Platform.AIR_BLOCK ); } for( WorldCoord wc : cSrc.updates ) { - cSrc.world.notifyBlockOfNeighborChange( wc.x, wc.y, wc.z, Platform.AIR_BLOCK ); + cSrc.world.notifyBlockOfStateChange( wc.getPos(), Platform.AIR_BLOCK ); } this.transverseEdges( x - 1, y - 1, z - 1, x + scaleX + 1, y + scaleY + 1, z + scaleZ + 1, new TriggerUpdates( src ) ); @@ -273,10 +272,10 @@ public class StorageHelper } @Override - public void visit( int x, int y, int z ) + public void visit( BlockPos pos ) { - Block blk = this.dst.getBlock( x, y, z ); - blk.onNeighborBlockChange( this.dst, x, y, z, Platform.AIR_BLOCK ); + Block blk = this.dst.getBlockState( pos ).getBlock(); + blk.onNeighborBlockChange( this.dst, pos, Platform.AIR_BLOCK.getDefaultState(), Platform.AIR_BLOCK); } } @@ -285,20 +284,18 @@ public class StorageHelper { final World dst; - final Block blkID; - final int Meta; + final IBlockState state; - public WrapInMatrixFrame( Block blockID, int metaData, World dst2 ) + public WrapInMatrixFrame( IBlockState state, World dst2 ) { this.dst = dst2; - this.blkID = blockID; - this.Meta = metaData; + this.state = state; } @Override - public void visit( int x, int y, int z ) + public void visit( BlockPos pos ) { - this.dst.setBlock( x, y, z, this.blkID, this.Meta, 3 ); + this.dst.setBlockState( pos, state ); } } @@ -339,14 +336,18 @@ public class StorageHelper } @Override - public void placeInPortal( Entity par1Entity, double par2, double par4, double par6, float par8 ) + public void placeInPortal( + Entity par1Entity, + float rotationYaw ) { par1Entity.setLocationAndAngles( this.destination.x, this.destination.y, this.destination.z, par1Entity.rotationYaw, 0.0F ); par1Entity.motionX = par1Entity.motionY = par1Entity.motionZ = 0.0D; } @Override - public boolean placeInExistingPortal( Entity par1Entity, double par2, double par4, double par6, float par8 ) + public boolean placeInExistingPortal( + Entity entityIn, + float p_180620_2_ ) { return false; } diff --git a/src/main/java/appeng/spatial/StorageWorldProvider.java b/src/main/java/appeng/spatial/StorageWorldProvider.java index 95b7fc36..d3f3355d 100644 --- a/src/main/java/appeng/spatial/StorageWorldProvider.java +++ b/src/main/java/appeng/spatial/StorageWorldProvider.java @@ -20,17 +20,15 @@ package appeng.spatial; import net.minecraft.entity.Entity; -import net.minecraft.util.ChunkCoordinates; +import net.minecraft.util.BlockPos; import net.minecraft.util.Vec3; import net.minecraft.world.WorldProvider; import net.minecraft.world.biome.WorldChunkManagerHell; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.IChunkProvider; import net.minecraftforge.client.IRenderHandler; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.client.render.SpatialSkyRender; import appeng.core.Registration; @@ -77,7 +75,7 @@ public class StorageWorldProvider extends WorldProvider @Override public Vec3 getFogColor( float par1, float par2 ) { - return Vec3.createVectorHelper( 0.07, 0.07, 0.07 ); + return new Vec3( 0.07, 0.07, 0.07 ); } @Override @@ -120,7 +118,7 @@ public class StorageWorldProvider extends WorldProvider @Override public Vec3 getSkyColor( Entity cameraEntity, float partialTicks ) { - return Vec3.createVectorHelper( 0.07, 0.07, 0.07 ); + return new Vec3( 0.07, 0.07, 0.07 ); } @Override @@ -130,19 +128,19 @@ public class StorageWorldProvider extends WorldProvider } @Override - public boolean canSnowAt( int x, int y, int z, boolean checkLight ) + public boolean canSnowAt( BlockPos pos, boolean checkLight ) { return false; } - + @Override - public ChunkCoordinates getSpawnPoint() + public BlockPos getSpawnCoordinate() { - return new ChunkCoordinates( 0, 0, 0 ); + return new BlockPos(0,0,0); } @Override - public boolean isBlockHighHumidity( int x, int y, int z ) + public boolean isBlockHighHumidity( BlockPos pos ) { return false; } @@ -152,4 +150,10 @@ public class StorageWorldProvider extends WorldProvider { return false; } + + @Override + public String getInternalNameSuffix() + { + return null; + } } diff --git a/src/main/java/appeng/tile/AEBaseInvTile.java b/src/main/java/appeng/tile/AEBaseInvTile.java index 529d9866..78af7661 100644 --- a/src/main/java/appeng/tile/AEBaseInvTile.java +++ b/src/main/java/appeng/tile/AEBaseInvTile.java @@ -27,8 +27,10 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.IChatComponent; import appeng.block.AEBaseBlock; import appeng.tile.events.TileEventType; import appeng.tile.inventory.IAEAppEngInventory; @@ -104,7 +106,7 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor * Returns the name of the inventory */ @Override - public String getInventoryName() + public String getName() { return this.getCustomName(); } @@ -113,9 +115,9 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor * Returns if the inventory is named */ @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { - return this.hasCustomName(); + return getInternalInventory().hasCustomName(); } @Override @@ -129,17 +131,19 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor { final double squaredMCReach = 64.0D; - return this.worldObj.getTileEntity( this.xCoord, this.yCoord, this.zCoord ) == this && p.getDistanceSq( this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D ) <= squaredMCReach; + return this.worldObj.getTileEntity( pos ) == this && p.getDistanceSq( pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D ) <= squaredMCReach; } @Override - public void openInventory() - { - } - + public void openInventory(EntityPlayer player) { + + }; + @Override - public void closeInventory() + public void closeInventory( + EntityPlayer player ) { + } @Override @@ -152,28 +156,63 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor public abstract void onChangeInventory( IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added ); @Override - public final int[] getAccessibleSlotsFromSide( int side ) + public int[] getSlotsForFace( + EnumFacing side ) { - Block blk = this.worldObj.getBlock( this.xCoord, this.yCoord, this.zCoord ); + Block blk = this.worldObj.getBlockState( pos ).getBlock(); if( blk instanceof AEBaseBlock ) { - ForgeDirection mySide = ForgeDirection.getOrientation( side ); - return this.getAccessibleSlotsBySide( ( (AEBaseBlock) blk ).mapRotation( this, mySide ) ); + return this.getAccessibleSlotsBySide( ( (AEBaseBlock) blk ).mapRotation( this, side ) ); } - return this.getAccessibleSlotsBySide( ForgeDirection.getOrientation( side ) ); + return this.getAccessibleSlotsBySide( side ); } @Override - public boolean canInsertItem( int slotIndex, ItemStack insertingItem, int side ) + public boolean canInsertItem( int slotIndex, ItemStack insertingItem, EnumFacing side ) { return this.isItemValidForSlot( slotIndex, insertingItem ); } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { return true; } + + @Override + public void clear() + { + this.getInternalInventory().clear(); + } + + @Override + public int getField( + int id ) + { + return 0; + } + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public IChatComponent getDisplayName() + { + if ( hasCustomName() ) + return new ChatComponentText(getName()); + return new ChatComponentTranslation( getBlockType().getUnlocalizedName() ); + } - public abstract int[] getAccessibleSlotsBySide( ForgeDirection whichSide ); + + public abstract int[] getAccessibleSlotsBySide( EnumFacing whichSide ); } diff --git a/src/main/java/appeng/tile/AEBaseTile.java b/src/main/java/appeng/tile/AEBaseTile.java index 7ed7fddf..144a0754 100644 --- a/src/main/java/appeng/tile/AEBaseTile.java +++ b/src/main/java/appeng/tile/AEBaseTile.java @@ -19,6 +19,9 @@ package appeng.tile; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + import java.lang.ref.WeakReference; import java.lang.reflect.Method; import java.util.ArrayList; @@ -31,9 +34,7 @@ import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; - +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; @@ -42,9 +43,9 @@ import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.implementations.tiles.ISegmentedInventory; import appeng.api.util.ICommonTile; import appeng.api.util.IConfigManager; @@ -70,9 +71,19 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, private int renderFragment = 0; @Nullable public String customName; - private ForgeDirection forward = ForgeDirection.UNKNOWN; - private ForgeDirection up = ForgeDirection.UNKNOWN; + private EnumFacing forward = null; + private EnumFacing up = null; + @Override + public boolean shouldRefresh( + World world, + BlockPos pos, + IBlockState oldState, + IBlockState newSate ) + { + return newSate.getBlock() != oldState.getBlock(); // state dosn't change tile entities in AE2. + } + public static void registerTileItem( Class c, ItemStackSrc wat ) { ITEM_STACKS.put( c, wat ); @@ -86,7 +97,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, public boolean notLoaded() { - return !this.worldObj.blockExists( this.xCoord, this.yCoord, this.zCoord ); + return !this.worldObj.isBlockLoaded( pos ); } @Nonnull @@ -136,8 +147,8 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, { if( this.canBeRotated() ) { - this.forward = ForgeDirection.valueOf( data.getString( "orientation_forward" ) ); - this.up = ForgeDirection.valueOf( data.getString( "orientation_up" ) ); + this.forward = EnumFacing.valueOf( data.getString( "forward" ) ); + this.up = EnumFacing.valueOf( data.getString( "up" ) ); } } catch( IllegalArgumentException ignored ) @@ -158,8 +169,8 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, if( this.canBeRotated() ) { - data.setString( "orientation_forward", this.forward.name() ); - data.setString( "orientation_up", this.up.name() ); + data.setString( "forward", this.forward.name() ); + data.setString( "up", this.up.name() ); } if( this.customName != null ) @@ -173,8 +184,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, } } - @Override - public final void updateEntity() + public final void update() { for( AETileEventHandler h : this.getHandlerListFor( TileEventType.TICK ) ) { @@ -204,13 +214,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, stream.capacity( stream.readableBytes() ); data.setByteArray( "X", stream.array() ); - return new S35PacketUpdateTileEntity( this.xCoord, this.yCoord, this.zCoord, 64, data ); - } - - @Override - public final boolean canUpdate() - { - return this.hasHandlerFor( TileEventType.TICK ); + return new S35PacketUpdateTileEntity( pos, 64, data ); } private boolean hasHandlerFor( TileEventType type ) @@ -224,9 +228,9 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, public void onDataPacket( NetworkManager net, S35PacketUpdateTileEntity pkt ) { // / pkt.actionType - if( pkt.func_148853_f() == 64 ) + if( pkt.getTileEntityType() == 64 ) { - ByteBuf stream = Unpooled.copiedBuffer( pkt.func_148857_g().getByteArray( "X" ) ); + ByteBuf stream = Unpooled.copiedBuffer( pkt.getNbtCompound().getByteArray( "X" ) ); if( this.readFromStream( stream ) ) { this.markForUpdate(); @@ -252,12 +256,12 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, if( this.canBeRotated() ) { - ForgeDirection old_Forward = this.forward; - ForgeDirection old_Up = this.up; + EnumFacing old_Forward = this.forward; + EnumFacing old_Up = this.up; byte orientation = data.readByte(); - this.forward = ForgeDirection.getOrientation( orientation & 0x7 ); - this.up = ForgeDirection.getOrientation( orientation >> 3 ); + this.forward = EnumFacing.VALUES[ orientation & 0x7 ]; + this.up = EnumFacing.VALUES[ orientation >> 3 ]; output = this.forward != old_Forward || this.up != old_Up; } @@ -296,8 +300,8 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, // TODO: Optimize Network Load if( this.worldObj != null ) { - AELog.blockUpdate( this.xCoord, this.yCoord, this.zCoord, this ); - this.worldObj.markBlockForUpdate( this.xCoord, this.yCoord, this.zCoord ); + AELog.blockUpdate( pos, this ); + this.worldObj.markBlockForUpdate( pos ); } } } @@ -403,27 +407,27 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, } @Override - public ForgeDirection getForward() + public EnumFacing getForward() { return this.forward; } @Override - public ForgeDirection getUp() + public EnumFacing getUp() { return this.up; } @Override - public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) + public void setOrientation( EnumFacing inForward, EnumFacing inUp ) { this.forward = inForward; this.up = inUp; this.markForUpdate(); - Platform.notifyBlocksOfNeighbors( this.worldObj, this.xCoord, this.yCoord, this.zCoord ); + Platform.notifyBlocksOfNeighbors( this.worldObj, pos ); } - public void onPlacement( ItemStack stack, EntityPlayer player, int side ) + public void onPlacement( ItemStack stack, EntityPlayer player, EnumFacing side ) { if( stack.hasTagCompound() ) { @@ -480,7 +484,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, * @param drops drops of tile entity */ @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( World w, BlockPos pos, List drops ) { if( this instanceof IInventory ) { @@ -497,7 +501,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, } } - public void getNoDrops( World w, int x, int y, int z, List drops ) + public void getNoDrops( World w, BlockPos pos, List drops ) { } @@ -566,7 +570,7 @@ public class AEBaseTile extends TileEntity implements IOrientable, ICommonTile, public void securityBreak() { - this.worldObj.func_147480_a( this.xCoord, this.yCoord, this.zCoord, true ); + this.worldObj.destroyBlock( pos, true ); this.disableDrops(); } diff --git a/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java b/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java index 62dbf2e2..1e05d682 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingMonitorTile.java @@ -19,17 +19,15 @@ package appeng.tile.crafting; -import java.io.IOException; - import io.netty.buffer.ByteBuf; +import java.io.IOException; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraft.util.EnumFacing; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.implementations.tiles.IColorableTile; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.AEColor; @@ -149,7 +147,7 @@ public class TileCraftingMonitorTile extends TileCraftingTile implements IColora } @Override - public boolean recolourBlock( ForgeDirection side, AEColor newPaintedColor, EntityPlayer who ) + public boolean recolourBlock( EnumFacing side, AEColor newPaintedColor, EntityPlayer who ) { if( this.paintedColor == newPaintedColor ) { diff --git a/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java b/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java index 7466d410..646799d6 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingStorageTile.java @@ -20,9 +20,9 @@ package appeng.tile.crafting; import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.definitions.IBlocks; +import appeng.block.crafting.BlockCraftingUnit; public class TileCraftingStorageTile extends TileCraftingTile @@ -80,16 +80,17 @@ public class TileCraftingStorageTile extends TileCraftingTile return 0; } - switch( this.worldObj.getBlockMetadata( this.xCoord, this.yCoord, this.zCoord ) & 3 ) + BlockCraftingUnit unit = (BlockCraftingUnit)this.worldObj.getBlockState( pos ).getBlock(); + switch( unit.type ) { default: - case 0: + case STORAGE_1K: return 1024; - case 1: + case STORAGE_4K: return 4 * 1024; - case 2: + case STORAGE_16K: return 16 * 1024; - case 3: + case STORAGE_64K: return 64 * 1024; } } diff --git a/src/main/java/appeng/tile/crafting/TileCraftingTile.java b/src/main/java/appeng/tile/crafting/TileCraftingTile.java index 5e5f0a8b..4eced5a6 100644 --- a/src/main/java/appeng/tile/crafting/TileCraftingTile.java +++ b/src/main/java/appeng/tile/crafting/TileCraftingTile.java @@ -24,11 +24,11 @@ import java.util.EnumSet; import java.util.Iterator; import java.util.LinkedList; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.implementations.IPowerChannelState; @@ -37,10 +37,12 @@ import appeng.api.networking.IGridHost; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; -import appeng.api.parts.ISimplifiedBundle; import appeng.api.storage.IMEInventory; import appeng.api.storage.data.IAEItemStack; +import appeng.api.util.AEPartLocation; import appeng.api.util.WorldCoord; +import appeng.block.crafting.BlockCraftingUnit; +import appeng.block.crafting.BlockCraftingUnit.CraftingUnitType; import appeng.me.cluster.IAECluster; import appeng.me.cluster.IAEMultiBlock; import appeng.me.cluster.implementations.CraftingCPUCalculator; @@ -55,10 +57,9 @@ import appeng.util.Platform; public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IPowerChannelState { + private final CraftingCPUCalculator calc = new CraftingCPUCalculator( this ); - public ISimplifiedBundle lightCache; - public NBTTagCompound previousState = null; public boolean isCoreBlock = false; CraftingCPUCluster cluster; @@ -66,7 +67,7 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP public TileCraftingTile() { this.gridProxy.setFlags( GridFlags.MULTIBLOCK, GridFlags.REQUIRE_CHANNEL ); - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); } @Override @@ -112,7 +113,9 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP { return false; } - return ( this.worldObj.getBlockMetadata( this.xCoord, this.yCoord, this.zCoord ) & 3 ) == 1; + + BlockCraftingUnit unit = (BlockCraftingUnit)this.worldObj.getBlockState( pos ).getBlock(); + return unit.type == CraftingUnitType.ACCELERATOR; } @Override @@ -154,23 +157,23 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP power = this.gridProxy.isActive(); } - int current = this.worldObj.getBlockMetadata( this.xCoord, this.yCoord, this.zCoord ); - int newMeta = ( current & 3 ) | ( formed ? 8 : 0 ) | ( power ? 4 : 0 ); + IBlockState current = this.worldObj.getBlockState( pos ); + IBlockState newState = current.withProperty( BlockCraftingUnit.POWERED, power ).withProperty( BlockCraftingUnit.FORMED, formed ); - if( current != newMeta ) + if( current != newState ) { - this.worldObj.setBlockMetadataWithNotify( this.xCoord, this.yCoord, this.zCoord, newMeta, 2 ); + this.worldObj.setBlockState( pos, newState ); } if( updateFormed ) { if( formed ) { - this.gridProxy.setValidSides( EnumSet.allOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.allOf( EnumFacing.class ) ); } else { - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); } } } @@ -179,7 +182,7 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP { if( Platform.isClient() ) { - return ( this.worldObj.getBlockMetadata( this.xCoord, this.yCoord, this.zCoord ) & 8 ) == 8; + return (boolean)this.worldObj.getBlockState( pos ).getValue( BlockCraftingUnit.FORMED ); } return this.cluster != null; } @@ -284,11 +287,11 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP { TileEntity te = (TileEntity) h; - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation d : AEPartLocation.SIDE_LOCATIONS ) { WorldCoord wc = new WorldCoord( te ); wc.add( d, 1 ); - if( this.worldObj.isAirBlock( wc.x, wc.y, wc.z ) ) + if( this.worldObj.isAirBlock( wc.getPos() ) ) { places.add( wc ); } @@ -318,7 +321,7 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP WorldCoord wc = places.poll(); places.add( wc ); - Platform.spawnDrops( this.worldObj, wc.x, wc.y, wc.z, Collections.singletonList( g.getItemStack() ) ); + Platform.spawnDrops( this.worldObj, wc.getPos(), Collections.singletonList( g.getItemStack() ) ); } } @@ -331,7 +334,7 @@ public class TileCraftingTile extends AENetworkTile implements IAEMultiBlock, IP { if( Platform.isClient() ) { - return ( this.worldObj.getBlockMetadata( this.xCoord, this.yCoord, this.zCoord ) & 4 ) == 4; + return (boolean)this.worldObj.getBlockState( pos ).getValue( BlockCraftingUnit.POWERED ); } return this.gridProxy.isActive(); } diff --git a/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java b/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java index 6a09bf44..f17a3883 100644 --- a/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java +++ b/src/main/java/appeng/tile/crafting/TileMolecularAssembler.java @@ -19,23 +19,22 @@ package appeng.tile.crafting; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.List; -import io.netty.buffer.ByteBuf; - import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraft.world.WorldServer; -import net.minecraftforge.common.util.ForgeDirection; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; - +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.network.NetworkRegistry.TargetPoint; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -53,9 +52,9 @@ import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; -import appeng.api.parts.ISimplifiedBundle; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.container.ContainerNull; @@ -85,9 +84,8 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade private final AppEngInternalInventory inv = new AppEngInternalInventory( this, 9 + 2 ); private final IConfigManager settings; private final UpgradeInventory upgrades; - public ISimplifiedBundle lightCache; private boolean isPowered = false; - private ForgeDirection pushDirection = ForgeDirection.UNKNOWN; + private AEPartLocation pushDirection = AEPartLocation.INTERNAL; private ItemStack myPattern = null; private ICraftingPatternDetails myPlan = null; private double progress = 0; @@ -113,7 +111,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade } @Override - public boolean pushPattern( ICraftingPatternDetails patternDetails, InventoryCrafting table, ForgeDirection where ) + public boolean pushPattern( ICraftingPatternDetails patternDetails, InventoryCrafting table, EnumFacing where ) { if( this.myPattern == null ) { @@ -127,7 +125,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade { this.forcePlan = true; this.myPlan = patternDetails; - this.pushDirection = where; + this.pushDirection = AEPartLocation.fromFacing( where ); for( int x = 0; x < table.getSizeInventory(); x++ ) { @@ -183,7 +181,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade this.craftingInv.setInventorySlotContents( x, this.inv.getStackInSlot( x ) ); } - return this.myPlan.getOutput( this.craftingInv, this.getWorldObj() ) != null; + return this.myPlan.getOutput( this.craftingInv, this.getWorld() ) != null; } @Override @@ -241,14 +239,14 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade if( myPat != null && myPat.getItem() instanceof ItemEncodedPattern ) { - World w = this.getWorldObj(); + World w = this.getWorld(); ItemEncodedPattern iep = (ItemEncodedPattern) myPat.getItem(); ICraftingPatternDetails ph = iep.getPatternForItem( myPat, w ); if( ph != null && ph.isCraftable() ) { this.forcePlan = true; this.myPlan = ph; - this.pushDirection = ForgeDirection.getOrientation( data.getInteger( "pushDirection" ) ); + this.pushDirection = AEPartLocation.fromOrdinal( data.getInteger( "pushDirection" ) ); } } } @@ -274,7 +272,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade { if( !Platform.isSameItem( is, this.myPattern ) ) { - World w = this.getWorldObj(); + World w = this.getWorld(); ItemEncodedPattern iep = (ItemEncodedPattern) is.getItem(); ICraftingPatternDetails ph = iep.getPatternForItem( is, w ); @@ -292,14 +290,14 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade this.forcePlan = false; this.myPlan = null; this.myPattern = null; - this.pushDirection = ForgeDirection.UNKNOWN; + this.pushDirection = AEPartLocation.INTERNAL; } this.updateSleepiness(); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } @@ -360,7 +358,7 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade if( this.hasPattern() ) { - return this.myPlan.isValidItemForSlot( i, itemstack, this.getWorldObj() ); + return this.myPlan.isValidItemForSlot( i, itemstack, this.getWorld() ); } return false; @@ -381,13 +379,13 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { return slotIndex == 9; } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection whichSide ) + public int[] getAccessibleSlotsBySide( EnumFacing whichSide ) { return SIDES; } @@ -398,9 +396,12 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade } @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( + World w, + BlockPos pos, + List drops ) { - super.getDrops( w, x, y, z, drops ); + super.getDrops( w, pos, drops ); for( int h = 0; h < this.upgrades.getSizeInventory(); h++ ) { @@ -487,10 +488,10 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade } this.progress = 0; - ItemStack output = this.myPlan.getOutput( this.craftingInv, this.getWorldObj() ); + ItemStack output = this.myPlan.getOutput( this.craftingInv, this.getWorld() ); if( output != null ) { - FMLCommonHandler.instance().firePlayerCraftingEvent( Platform.getPlayer( (WorldServer) this.getWorldObj() ), output, this.craftingInv ); + FMLCommonHandler.instance().firePlayerCraftingEvent( Platform.getPlayer( (WorldServer) this.getWorld() ), output, this.craftingInv ); this.pushOut( output.copy() ); @@ -503,16 +504,16 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade { this.forcePlan = false; this.myPlan = null; - this.pushDirection = ForgeDirection.UNKNOWN; + this.pushDirection = AEPartLocation.INTERNAL; } this.ejectHeldItems(); try { - TargetPoint where = new TargetPoint( this.worldObj.provider.dimensionId, this.xCoord, this.yCoord, this.zCoord, 32 ); + TargetPoint where = new TargetPoint( this.worldObj.provider.getDimensionId(), pos.getX(), pos.getY(), pos.getZ(), 32 ); IAEItemStack item = AEItemStack.create( output ); - NetworkHandler.instance.sendToAllAround( new PacketAssemblerAnimation( this.xCoord, this.yCoord, this.zCoord, (byte) speed, item ), where ); + NetworkHandler.instance.sendToAllAround( new PacketAssemblerAnimation( pos, (byte) speed, item ), where ); } catch( IOException e ) { @@ -563,16 +564,16 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade private void pushOut( ItemStack output ) { - if( this.pushDirection == ForgeDirection.UNKNOWN ) + if( this.pushDirection == AEPartLocation.INTERNAL ) { - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing d : EnumFacing.VALUES ) { output = this.pushTo( output, d ); } } else { - output = this.pushTo( output, this.pushDirection ); + output = this.pushTo( output, this.pushDirection.getFacing() ); } if( output == null && this.forcePlan ) @@ -584,14 +585,14 @@ public class TileMolecularAssembler extends AENetworkInvTile implements IUpgrade this.inv.setInventorySlotContents( 9, output ); } - private ItemStack pushTo( ItemStack output, ForgeDirection d ) + private ItemStack pushTo( ItemStack output, EnumFacing d ) { if( output == null ) { return output; } - TileEntity te = this.getWorldObj().getTileEntity( this.xCoord + d.offsetX, this.yCoord + d.offsetY, this.zCoord + d.offsetZ ); + TileEntity te = this.getWorld().getTileEntity( pos.offset( d ) ); if( te == null ) { diff --git a/src/main/java/appeng/tile/events/AETileEventHandler.java b/src/main/java/appeng/tile/events/AETileEventHandler.java index 3bd648e3..58cd4f17 100644 --- a/src/main/java/appeng/tile/events/AETileEventHandler.java +++ b/src/main/java/appeng/tile/events/AETileEventHandler.java @@ -19,16 +19,14 @@ package appeng.tile.events; +import io.netty.buffer.ByteBuf; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import io.netty.buffer.ByteBuf; - import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.tile.AEBaseTile; diff --git a/src/main/java/appeng/tile/events/TileEventType.java b/src/main/java/appeng/tile/events/TileEventType.java index 26cadd3d..0f0e869a 100644 --- a/src/main/java/appeng/tile/events/TileEventType.java +++ b/src/main/java/appeng/tile/events/TileEventType.java @@ -21,8 +21,11 @@ package appeng.tile.events; public enum TileEventType { + /** + * Requires IUpdatePlayerListBox, this makes the tile entity tick in 1.8 + */ TICK, - + WORLD_NBT_READ, WORLD_NBT_WRITE, /** diff --git a/src/main/java/appeng/tile/grid/AENetworkInvTile.java b/src/main/java/appeng/tile/grid/AENetworkInvTile.java index 00871f90..48b2c035 100644 --- a/src/main/java/appeng/tile/grid/AENetworkInvTile.java +++ b/src/main/java/appeng/tile/grid/AENetworkInvTile.java @@ -20,10 +20,9 @@ package appeng.tile.grid; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGridNode; import appeng.api.networking.security.IActionHost; +import appeng.api.util.AEPartLocation; import appeng.me.helpers.AENetworkProxy; import appeng.me.helpers.IGridProxyable; import appeng.tile.AEBaseInvTile; @@ -61,7 +60,7 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH } @Override - public IGridNode getGridNode( ForgeDirection dir ) + public IGridNode getGridNode( AEPartLocation dir ) { return this.gridProxy.getNode(); } @@ -99,4 +98,18 @@ public abstract class AENetworkInvTile extends AEBaseInvTile implements IActionH { return this.gridProxy.getNode(); } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public int getFieldCount() + { + return 0; + } + } diff --git a/src/main/java/appeng/tile/grid/AENetworkPowerTile.java b/src/main/java/appeng/tile/grid/AENetworkPowerTile.java index b5a0a6b3..316a44f7 100644 --- a/src/main/java/appeng/tile/grid/AENetworkPowerTile.java +++ b/src/main/java/appeng/tile/grid/AENetworkPowerTile.java @@ -20,11 +20,10 @@ package appeng.tile.grid; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGridNode; import appeng.api.networking.security.IActionHost; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.me.helpers.AENetworkProxy; import appeng.me.helpers.IGridProxyable; @@ -69,13 +68,13 @@ public abstract class AENetworkPowerTile extends AEBasePoweredTile implements IA } @Override - public IGridNode getGridNode( ForgeDirection dir ) + public IGridNode getGridNode( AEPartLocation dir ) { return this.gridProxy.getNode(); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } diff --git a/src/main/java/appeng/tile/grid/AENetworkTile.java b/src/main/java/appeng/tile/grid/AENetworkTile.java index db76da81..1e6a09dd 100644 --- a/src/main/java/appeng/tile/grid/AENetworkTile.java +++ b/src/main/java/appeng/tile/grid/AENetworkTile.java @@ -20,11 +20,10 @@ package appeng.tile.grid; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGridNode; import appeng.api.networking.security.IActionHost; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.me.helpers.AENetworkProxy; import appeng.me.helpers.IGridProxyable; @@ -56,13 +55,13 @@ public class AENetworkTile extends AEBaseTile implements IActionHost, IGridProxy } @Override - public IGridNode getGridNode( ForgeDirection dir ) + public IGridNode getGridNode( AEPartLocation dir ) { return this.gridProxy.getNode(); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } diff --git a/src/main/java/appeng/tile/grindstone/TileCrank.java b/src/main/java/appeng/tile/grindstone/TileCrank.java index f39de93b..0ba73ea2 100644 --- a/src/main/java/appeng/tile/grindstone/TileCrank.java +++ b/src/main/java/appeng/tile/grindstone/TileCrank.java @@ -19,17 +19,19 @@ package appeng.tile.grindstone; +import io.netty.buffer.ByteBuf; + import java.util.Collections; import java.util.List; -import io.netty.buffer.ByteBuf; - +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; +import net.minecraft.server.gui.IUpdatePlayerListBox; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.implementations.tiles.ICrankable; import appeng.helpers.ICustomCollision; import appeng.tile.AEBaseTile; @@ -38,7 +40,7 @@ import appeng.tile.events.TileEventType; import appeng.util.Platform; -public class TileCrank extends AEBaseTile implements ICustomCollision +public class TileCrank extends AEBaseTile implements ICustomCollision, IUpdatePlayerListBox { final int ticksPerRotation = 18; @@ -78,8 +80,8 @@ public class TileCrank extends AEBaseTile implements ICustomCollision return null; } - ForgeDirection grinder = this.getUp().getOpposite(); - TileEntity te = this.worldObj.getTileEntity( this.xCoord + grinder.offsetX, this.yCoord + grinder.offsetY, this.zCoord + grinder.offsetZ ); + EnumFacing grinder = this.getUp().getOpposite(); + TileEntity te = this.worldObj.getTileEntity( pos.offset( grinder ) ); if( te instanceof ICrankable ) { return (ICrankable) te; @@ -101,10 +103,11 @@ public class TileCrank extends AEBaseTile implements ICustomCollision } @Override - public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) + public void setOrientation( EnumFacing inForward, EnumFacing inUp ) { super.setOrientation( inForward, inUp ); - this.getBlockType().onNeighborBlockChange( this.worldObj, this.xCoord, this.yCoord, this.zCoord, Platform.AIR_BLOCK ); + IBlockState state = this.worldObj.getBlockState( pos ); + this.getBlockType().onNeighborBlockChange( this.worldObj, pos, state, state.getBlock() ); } @Override @@ -140,8 +143,7 @@ public class TileCrank extends AEBaseTile implements ICustomCollision this.hits++; if( this.hits > 10 ) { - this.worldObj.func_147480_a( this.xCoord, this.yCoord, this.zCoord, false ); - // worldObj.destroyBlock( xCoord, yCoord, zCoord, false ); + this.worldObj.destroyBlock( pos, false ); } } } @@ -151,21 +153,30 @@ public class TileCrank extends AEBaseTile implements ICustomCollision } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual ) + public Iterable getSelectedBoundingBoxesFromPool( + World w, + BlockPos pos, + Entity thePlayer, + boolean b ) { - double xOff = -0.15 * this.getUp().offsetX; - double yOff = -0.15 * this.getUp().offsetY; - double zOff = -0.15 * this.getUp().offsetZ; - return Collections.singletonList( AxisAlignedBB.getBoundingBox( xOff + 0.15, yOff + 0.15, zOff + 0.15, xOff + 0.85, yOff + 0.85, zOff + 0.85 ) ); + double xOff = -0.15 * this.getUp().getFrontOffsetX(); + double yOff = -0.15 * this.getUp().getFrontOffsetY(); + double zOff = -0.15 * this.getUp().getFrontOffsetZ(); + return Collections.singletonList( AxisAlignedBB.fromBounds( xOff + 0.15, yOff + 0.15, zOff + 0.15, xOff + 0.85, yOff + 0.85, zOff + 0.85 ) ); } - + @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - double xOff = -0.15 * this.getUp().offsetX; - double yOff = -0.15 * this.getUp().offsetY; - double zOff = -0.15 * this.getUp().offsetZ; - out.add( AxisAlignedBB.getBoundingBox( xOff + 0.15, yOff + 0.15, zOff + 0.15,// ahh + double xOff = -0.15 * this.getUp().getFrontOffsetX(); + double yOff = -0.15 * this.getUp().getFrontOffsetY(); + double zOff = -0.15 * this.getUp().getFrontOffsetZ(); + out.add( AxisAlignedBB.fromBounds( xOff + 0.15, yOff + 0.15, zOff + 0.15,// ahh xOff + 0.85, yOff + 0.85, zOff + 0.85 ) ); } } diff --git a/src/main/java/appeng/tile/grindstone/TileGrinder.java b/src/main/java/appeng/tile/grindstone/TileGrinder.java index 7f3280c5..49820632 100644 --- a/src/main/java/appeng/tile/grindstone/TileGrinder.java +++ b/src/main/java/appeng/tile/grindstone/TileGrinder.java @@ -22,14 +22,13 @@ package appeng.tile.grindstone; import java.util.ArrayList; import java.util.List; +import net.minecraft.block.state.IBlockState; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.features.IGrinderEntry; import appeng.api.implementations.tiles.ICrankable; -import appeng.api.util.WorldCoord; import appeng.tile.AEBaseInvTile; import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.InvOperation; @@ -47,10 +46,11 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable int points; @Override - public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) + public void setOrientation( EnumFacing inForward, EnumFacing inUp ) { super.setOrientation( inForward, inUp ); - this.getBlockType().onNeighborBlockChange( this.worldObj, this.xCoord, this.yCoord, this.zCoord, Platform.AIR_BLOCK ); + IBlockState state = worldObj.getBlockState( pos ); + this.getBlockType().onNeighborBlockChange( this.worldObj, pos, state, state.getBlock() ); } @Override @@ -66,7 +66,7 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable } @Override - public boolean canInsertItem( int slotIndex, ItemStack insertingItem, int side ) + public boolean canInsertItem( int slotIndex, ItemStack insertingItem, EnumFacing side ) { if( AEApi.instance().registries().grinder().getRecipeForInput( insertingItem ) == null ) { @@ -77,13 +77,13 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { return slotIndex >= 3 && slotIndex <= 5; } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return this.sides; } @@ -152,7 +152,7 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable } this.points = 0; - InventoryAdaptor sia = InventoryAdaptor.getAdaptor( new WrapperInventoryRange( this, 3, 3, true ), ForgeDirection.EAST ); + InventoryAdaptor sia = InventoryAdaptor.getAdaptor( new WrapperInventoryRange( this, 3, 3, true ), EnumFacing.EAST ); this.addItem( sia, r.getOutput() ); @@ -182,19 +182,15 @@ public class TileGrinder extends AEBaseInvTile implements ICrankable ItemStack notAdded = sia.addItems( output ); if( notAdded != null ) { - WorldCoord wc = new WorldCoord( this.xCoord, this.yCoord, this.zCoord ); - - wc.add( this.getForward(), 1 ); - List out = new ArrayList(); out.add( notAdded ); - Platform.spawnDrops( this.worldObj, wc.x, wc.y, wc.z, out ); + Platform.spawnDrops( this.worldObj, pos.offset( this.getForward() ), out ); } } @Override - public boolean canCrankAttach( ForgeDirection directionToCrank ) + public boolean canCrankAttach( EnumFacing directionToCrank ) { return this.getUp() == directionToCrank; } diff --git a/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java b/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java index 39da082c..f97b70ea 100644 --- a/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java +++ b/src/main/java/appeng/tile/inventory/AppEngInternalAEInventory.java @@ -25,7 +25,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - +import net.minecraft.util.IChatComponent; import appeng.api.AEApi; import appeng.api.storage.data.IAEItemStack; import appeng.core.AELog; @@ -218,13 +218,13 @@ public class AppEngInternalAEInventory implements IInventory, Iterable } @Override - public String getInventoryName() + public String getName() { return "appeng-internal"; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -190,16 +190,6 @@ public class AppEngInternalInventory implements IInventory, Iterable return true; } - @Override - public void openInventory() - { - } - - @Override - public void closeInventory() - { - } - @Override public boolean isItemValidForSlot( int i, ItemStack itemstack ) { @@ -282,4 +272,53 @@ public class AppEngInternalInventory implements IInventory, Iterable { return new InvIterator( this ); } + + @Override + public IChatComponent getDisplayName() + { + return null; + } + + @Override + public void openInventory( + EntityPlayer player ) + { + + } + + @Override + public void closeInventory( + EntityPlayer player ) + { + + } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + for( int x = 0; x < this.size; x++ ) + { + setInventorySlotContents( x,null ); + } + } } diff --git a/src/main/java/appeng/tile/inventory/AppEngNullInventory.java b/src/main/java/appeng/tile/inventory/AppEngNullInventory.java index 20c766d6..81a1cc42 100644 --- a/src/main/java/appeng/tile/inventory/AppEngNullInventory.java +++ b/src/main/java/appeng/tile/inventory/AppEngNullInventory.java @@ -23,6 +23,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IChatComponent; public class AppEngNullInventory implements IInventory @@ -67,13 +68,13 @@ public class AppEngNullInventory implements IInventory } @Override - public String getInventoryName() + public String getName() { return "appeng-internal"; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -96,19 +97,56 @@ public class AppEngNullInventory implements IInventory return false; } - @Override - public void openInventory() - { - } - - @Override - public void closeInventory() - { - } - @Override public boolean isItemValidForSlot( int i, ItemStack itemstack ) { return false; } + + @Override + public IChatComponent getDisplayName() + { + return null; + } + + @Override + public void openInventory( + EntityPlayer player ) + { + + } + + @Override + public void closeInventory( + EntityPlayer player ) + { + + } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + + } } diff --git a/src/main/java/appeng/tile/misc/TileCellWorkbench.java b/src/main/java/appeng/tile/misc/TileCellWorkbench.java index b6001d89..54cece73 100644 --- a/src/main/java/appeng/tile/misc/TileCellWorkbench.java +++ b/src/main/java/appeng/tile/misc/TileCellWorkbench.java @@ -24,8 +24,8 @@ import java.util.List; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - import appeng.api.config.CopyMode; import appeng.api.config.Settings; import appeng.api.config.Upgrades; @@ -235,9 +235,12 @@ public class TileCellWorkbench extends AEBaseTile implements IUpgradeableHost, I } @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( + World w, + BlockPos pos, + List drops ) { - super.getDrops( w, x, y, z, drops ); + super.getDrops( w, pos, drops ); if( this.cell.getStackInSlot( 0 ) != null ) { diff --git a/src/main/java/appeng/tile/misc/TileCharger.java b/src/main/java/appeng/tile/misc/TileCharger.java index 0f221cf3..ca71532e 100644 --- a/src/main/java/appeng/tile/misc/TileCharger.java +++ b/src/main/java/appeng/tile/misc/TileCharger.java @@ -19,18 +19,18 @@ package appeng.tile.misc; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; -import io.netty.buffer.ByteBuf; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.server.gui.IUpdatePlayerListBox; +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -41,6 +41,7 @@ import appeng.api.implementations.items.IAEItemPowerStorage; import appeng.api.implementations.tiles.ICrankable; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.me.GridAccessException; import appeng.tile.TileEvent; @@ -52,7 +53,7 @@ import appeng.util.Platform; import appeng.util.item.AEItemStack; -public class TileCharger extends AENetworkPowerTile implements ICrankable +public class TileCharger extends AENetworkPowerTile implements ICrankable, IUpdatePlayerListBox { final int[] sides = new int[] { 0 }; @@ -64,14 +65,14 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable public TileCharger() { - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); this.gridProxy.setFlags(); this.internalMaxPower = 1500; this.gridProxy.setIdlePowerUsage( 0 ); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } @@ -174,7 +175,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable } @Override - public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) + public void setOrientation( EnumFacing inForward, EnumFacing inUp ) { super.setOrientation( inForward, inUp ); this.gridProxy.setValidSides( EnumSet.of( this.getUp(), this.getUp().getOpposite() ) ); @@ -216,7 +217,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable } @Override - public boolean canCrankAttach( ForgeDirection directionToCrank ) + public boolean canCrankAttach( EnumFacing directionToCrank ) { return this.getUp() == directionToCrank || this.getUp().getOpposite() == directionToCrank; } @@ -248,7 +249,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { if( Platform.isChargeable( extractedItem ) ) { @@ -263,7 +264,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection whichSide ) + public int[] getAccessibleSlotsBySide( EnumFacing whichSide ) { return this.sides; } @@ -291,7 +292,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable List drops = new ArrayList(); drops.add( myItem ); this.setInventorySlotContents( 0, null ); - Platform.spawnDrops( this.worldObj, this.xCoord + this.getForward().offsetX, this.yCoord + this.getForward().offsetY, this.zCoord + this.getForward().offsetZ, drops ); + Platform.spawnDrops( this.worldObj, pos.offset( getForward() ), drops ); } } } diff --git a/src/main/java/appeng/tile/misc/TileCondenser.java b/src/main/java/appeng/tile/misc/TileCondenser.java index a379e235..cdbf769a 100644 --- a/src/main/java/appeng/tile/misc/TileCondenser.java +++ b/src/main/java/appeng/tile/misc/TileCondenser.java @@ -22,12 +22,11 @@ package appeng.tile.misc; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; - import appeng.api.AEApi; import appeng.api.config.CondenserOutput; import appeng.api.config.Settings; @@ -209,25 +208,25 @@ public class TileCondenser extends AEBaseInvTile implements IFluidHandler, IConf } @Override - public boolean canInsertItem( int slotIndex, ItemStack insertingItem, int side ) + public boolean canInsertItem( int slotIndex, ItemStack insertingItem, EnumFacing side ) { return slotIndex == 0; } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { return slotIndex != 0; } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return this.sides; } @Override - public int fill( ForgeDirection from, FluidStack resource, boolean doFill ) + public int fill( EnumFacing from, FluidStack resource, boolean doFill ) { if( doFill ) { @@ -238,31 +237,31 @@ public class TileCondenser extends AEBaseInvTile implements IFluidHandler, IConf } @Override - public FluidStack drain( ForgeDirection from, FluidStack resource, boolean doDrain ) + public FluidStack drain( EnumFacing from, FluidStack resource, boolean doDrain ) { return null; } @Override - public FluidStack drain( ForgeDirection from, int maxDrain, boolean doDrain ) + public FluidStack drain( EnumFacing from, int maxDrain, boolean doDrain ) { return null; } @Override - public boolean canFill( ForgeDirection from, Fluid fluid ) + public boolean canFill( EnumFacing from, Fluid fluid ) { return true; } @Override - public boolean canDrain( ForgeDirection from, Fluid fluid ) + public boolean canDrain( EnumFacing from, Fluid fluid ) { return false; } @Override - public FluidTankInfo[] getTankInfo( ForgeDirection from ) + public FluidTankInfo[] getTankInfo( EnumFacing from ) { return EMPTY; } diff --git a/src/main/java/appeng/tile/misc/TileInscriber.java b/src/main/java/appeng/tile/misc/TileInscriber.java index c64cd0e0..2cda5000 100644 --- a/src/main/java/appeng/tile/misc/TileInscriber.java +++ b/src/main/java/appeng/tile/misc/TileInscriber.java @@ -19,22 +19,20 @@ package appeng.tile.misc; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.EnumSet; import java.util.List; import javax.annotation.Nullable; -import com.google.common.collect.Lists; - -import io.netty.buffer.ByteBuf; - import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -51,6 +49,7 @@ import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.IConfigManager; import appeng.core.features.registries.entries.InscriberRecipe; import appeng.core.settings.TickRates; @@ -70,6 +69,8 @@ import appeng.util.Platform; import appeng.util.inv.WrapperInventoryRange; import appeng.util.item.AEItemStack; +import com.google.common.collect.Lists; + /** * @author AlgorithmX2 @@ -96,7 +97,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, @Reflected public TileInscriber() { - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); this.internalMaxPower = 1500; this.gridProxy.setIdlePowerUsage( 0 ); this.settings = new ConfigManager( this ); @@ -111,7 +112,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } @@ -186,7 +187,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, } @Override - public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) + public void setOrientation( EnumFacing inForward, EnumFacing inUp ) { super.setOrientation( inForward, inUp ); this.gridProxy.setValidSides( EnumSet.complementOf( EnumSet.of( this.getForward() ) ) ); @@ -194,9 +195,12 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, } @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( + World w, + BlockPos pos, + List drops ) { - super.getDrops( w, x, y, z, drops ); + super.getDrops( w, pos, drops ); for( int h = 0; h < this.upgrades.getSizeInventory(); h++ ) { @@ -280,7 +284,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { if( this.smash ) { @@ -291,14 +295,14 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection d ) + public int[] getAccessibleSlotsBySide( EnumFacing d ) { - if( d == ForgeDirection.UP ) + if( d == EnumFacing.UP ) { return this.top; } - if( d == ForgeDirection.DOWN ) + if( d == EnumFacing.DOWN ) { return this.bottom; } @@ -429,7 +433,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, if( out != null ) { final ItemStack outputCopy = out.getOutput().copy(); - InventoryAdaptor ad = InventoryAdaptor.getAdaptor( new WrapperInventoryRange( this.inv, 3, 1, true ), ForgeDirection.UNKNOWN ); + InventoryAdaptor ad = InventoryAdaptor.getAdaptor( new WrapperInventoryRange( this.inv, 3, 1, true ), EnumFacing.UP ); if( ad.addItems( outputCopy ) == null ) { @@ -498,7 +502,7 @@ public class TileInscriber extends AENetworkPowerTile implements IGridTickable, if( out != null ) { ItemStack outputCopy = out.getOutput().copy(); - InventoryAdaptor ad = InventoryAdaptor.getAdaptor( new WrapperInventoryRange( this.inv, 3, 1, true ), ForgeDirection.UNKNOWN ); + InventoryAdaptor ad = InventoryAdaptor.getAdaptor( new WrapperInventoryRange( this.inv, 3, 1, true ), EnumFacing.UP ); if( ad.simulateAdd( outputCopy ) == null ) { this.smash = true; diff --git a/src/main/java/appeng/tile/misc/TileInterface.java b/src/main/java/appeng/tile/misc/TileInterface.java index 7d3e11d8..fd03f2b8 100644 --- a/src/main/java/appeng/tile/misc/TileInterface.java +++ b/src/main/java/appeng/tile/misc/TileInterface.java @@ -22,16 +22,14 @@ package appeng.tile.misc; import java.util.EnumSet; import java.util.List; -import com.google.common.collect.ImmutableSet; - import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.Actionable; import appeng.api.config.Upgrades; import appeng.api.implementations.tiles.ITileStorageMonitorable; @@ -51,6 +49,7 @@ import appeng.api.storage.IStorageMonitorable; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.helpers.DualityInterface; @@ -63,12 +62,14 @@ import appeng.tile.inventory.InvOperation; import appeng.util.Platform; import appeng.util.inv.IInventoryDestination; +import com.google.common.collect.ImmutableSet; + public class TileInterface extends AENetworkInvTile implements IGridTickable, ITileStorageMonitorable, IStorageMonitorable, IInventoryDestination, IInterfaceHost, IPriorityHost { final DualityInterface duality = new DualityInterface( this.gridProxy, this ); - ForgeDirection pointAt = ForgeDirection.UNKNOWN; + AEPartLocation pointAt = AEPartLocation.INTERNAL; @MENetworkEventSubscribe public void stateChange( MENetworkChannelsChanged c ) @@ -82,7 +83,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT this.duality.notifyNeighbors(); } - public void setSide( ForgeDirection axis ) + public void setSide( AEPartLocation axis ) { if( Platform.isClient() ) { @@ -95,9 +96,9 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT } else if( this.pointAt == axis || this.pointAt == axis.getOpposite() ) { - this.pointAt = ForgeDirection.UNKNOWN; + this.pointAt = AEPartLocation.INTERNAL; } - else if( this.pointAt == ForgeDirection.UNKNOWN ) + else if( this.pointAt == AEPartLocation.INTERNAL ) { this.pointAt = axis.getOpposite(); } @@ -106,20 +107,28 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT this.pointAt = Platform.rotateAround( this.pointAt, axis ); } - if( ForgeDirection.UNKNOWN == this.pointAt ) + if( AEPartLocation.INTERNAL == this.pointAt ) { - this.setOrientation( this.pointAt, this.pointAt ); + this.setOrientation( EnumFacing.UP, EnumFacing.UP ); } else { - this.setOrientation( this.pointAt.offsetY != 0 ? ForgeDirection.SOUTH : ForgeDirection.UP, this.pointAt.getOpposite() ); + this.setOrientation( this.pointAt.yOffset != 0 ? EnumFacing.SOUTH : EnumFacing.UP, this.pointAt.getOpposite().getFacing() ); } - this.gridProxy.setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) ); + configureNodeSides(); this.markForUpdate(); this.markDirty(); } + private void configureNodeSides() + { + if ( this.pointAt == AEPartLocation.INTERNAL ) + this.gridProxy.setValidSides( EnumSet.allOf(EnumFacing.class) ); + else + this.gridProxy.setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt.getFacing() ) ) ); + } + @Override public void markDirty() { @@ -127,7 +136,10 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT } @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( + World w, + BlockPos pos, + List drops ) { this.duality.addDrops( drops ); } @@ -141,7 +153,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT @Override public void onReady() { - this.gridProxy.setValidSides( EnumSet.complementOf( EnumSet.of( this.pointAt ) ) ); + configureNodeSides(); super.onReady(); this.duality.initialize(); } @@ -158,20 +170,20 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT { int val = data.getInteger( "pointAt" ); - if( val >= 0 && val < ForgeDirection.values().length ) + if( val >= 0 && val < AEPartLocation.values().length ) { - this.pointAt = ForgeDirection.values()[val]; + this.pointAt = AEPartLocation.values()[val]; } else { - this.pointAt = ForgeDirection.UNKNOWN; + this.pointAt = AEPartLocation.INTERNAL; } this.duality.readFromNBT( data ); } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return this.duality.getCableConnectionType( dir ); } @@ -231,9 +243,9 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { - return this.duality.getAccessibleSlotsFromSide( side.ordinal() ); + return this.duality.getSlotsForFace( side ); } @Override @@ -243,13 +255,13 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT } @Override - public EnumSet getTargets() + public EnumSet getTargets() { - if( this.pointAt == null || this.pointAt == ForgeDirection.UNKNOWN ) + if( this.pointAt == null || this.pointAt == AEPartLocation.INTERNAL ) { - return EnumSet.complementOf( EnumSet.of( ForgeDirection.UNKNOWN ) ); + return EnumSet.allOf( EnumFacing.class ); } - return EnumSet.of( this.pointAt ); + return EnumSet.of( this.pointAt.getFacing() ); } @Override @@ -259,7 +271,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IT } @Override - public IStorageMonitorable getMonitorable( ForgeDirection side, BaseActionSource src ) + public IStorageMonitorable getMonitorable( EnumFacing side, BaseActionSource src ) { return this.duality.getMonitorable( side, src, this ); } diff --git a/src/main/java/appeng/tile/misc/TileLightDetector.java b/src/main/java/appeng/tile/misc/TileLightDetector.java index 3921de19..ba6679aa 100644 --- a/src/main/java/appeng/tile/misc/TileLightDetector.java +++ b/src/main/java/appeng/tile/misc/TileLightDetector.java @@ -19,13 +19,14 @@ package appeng.tile.misc; +import net.minecraft.server.gui.IUpdatePlayerListBox; import appeng.tile.AEBaseTile; import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; import appeng.util.Platform; -public class TileLightDetector extends AEBaseTile +public class TileLightDetector extends AEBaseTile implements IUpdatePlayerListBox { int lastCheck = 30; @@ -49,12 +50,12 @@ public class TileLightDetector extends AEBaseTile public void updateLight() { - int val = this.worldObj.getBlockLightValue( this.xCoord, this.yCoord, this.zCoord ); + int val = this.worldObj.getLight( pos ); if( this.lastLight != val ) { this.lastLight = val; - Platform.notifyBlocksOfNeighbors( this.worldObj, this.xCoord, this.yCoord, this.zCoord ); + Platform.notifyBlocksOfNeighbors( this.worldObj, pos ); } } diff --git a/src/main/java/appeng/tile/misc/TilePaint.java b/src/main/java/appeng/tile/misc/TilePaint.java index a73d576d..95f7381c 100644 --- a/src/main/java/appeng/tile/misc/TilePaint.java +++ b/src/main/java/appeng/tile/misc/TilePaint.java @@ -19,24 +19,21 @@ package appeng.tile.misc; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; -import com.google.common.collect.ImmutableList; - -import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.EnumSkyBlock; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.util.AEColor; import appeng.helpers.Splotch; import appeng.items.misc.ItemPaintBall; @@ -44,6 +41,8 @@ import appeng.tile.AEBaseTile; import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; +import com.google.common.collect.ImmutableList; + public class TilePaint extends AEBaseTile { @@ -53,6 +52,12 @@ public class TilePaint extends AEBaseTile int isLit = 0; List dots = null; + @Override + public boolean canBeRotated() + { + return false; + } + @TileEvent( TileEventType.WORLD_NBT_WRITE ) public void writeToNBT_TilePaint( NBTTagCompound data ) { @@ -127,7 +132,7 @@ public class TilePaint extends AEBaseTile if( this.worldObj != null ) { - this.worldObj.updateLightByType( EnumSkyBlock.Block, this.xCoord, this.yCoord, this.zCoord ); + this.worldObj.getLightFor( EnumSkyBlock.BLOCK, pos ); } } @@ -151,7 +156,7 @@ public class TilePaint extends AEBaseTile return; } - for( ForgeDirection side : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing side : EnumFacing.VALUES ) { if( !this.isSideValid( side ) ) { @@ -162,13 +167,14 @@ public class TilePaint extends AEBaseTile this.updateData(); } - public boolean isSideValid( ForgeDirection side ) + public boolean isSideValid( EnumFacing side ) { - Block blk = this.worldObj.getBlock( this.xCoord + side.offsetX, this.yCoord + side.offsetY, this.zCoord + side.offsetZ ); - return blk.isSideSolid( this.worldObj, this.xCoord + side.offsetX, this.yCoord + side.offsetY, this.zCoord + side.offsetZ, side.getOpposite() ); + BlockPos p = pos.offset( side ); + IBlockState blk = this.worldObj.getBlockState( p ); + return blk.getBlock().isSideSolid( this.worldObj, p, side.getOpposite() ); } - private void removeSide( ForgeDirection side ) + private void removeSide( EnumFacing side ) { Iterator i = this.dots.iterator(); while( i.hasNext() ) @@ -204,11 +210,11 @@ public class TilePaint extends AEBaseTile if( this.dots == null ) { - this.worldObj.setBlock( this.xCoord, this.yCoord, this.zCoord, Blocks.air ); + this.worldObj.setBlockToAir( pos ); } } - public void cleanSide( ForgeDirection side ) + public void cleanSide( EnumFacing side ) { if( this.dots == null ) { @@ -225,10 +231,12 @@ public class TilePaint extends AEBaseTile return this.isLit; } - public void addBlot( ItemStack type, ForgeDirection side, Vec3 hitVec ) + public void addBlot( ItemStack type, EnumFacing side, Vec3 hitVec ) { - Block blk = this.worldObj.getBlock( this.xCoord + side.offsetX, this.yCoord + side.offsetY, this.zCoord + side.offsetZ ); - if( blk.isSideSolid( this.worldObj, this.xCoord + side.offsetX, this.yCoord + side.offsetY, this.zCoord + side.offsetZ, side.getOpposite() ) ) + BlockPos p = pos.offset(side); + + IBlockState blk = this.worldObj.getBlockState( p ); + if( blk.getBlock().isSideSolid( this.worldObj, p, side.getOpposite() ) ) { ItemPaintBall ipb = (ItemPaintBall) type.getItem(); diff --git a/src/main/java/appeng/tile/misc/TileQuartzGrowthAccelerator.java b/src/main/java/appeng/tile/misc/TileQuartzGrowthAccelerator.java index 94df8090..07dd16b8 100644 --- a/src/main/java/appeng/tile/misc/TileQuartzGrowthAccelerator.java +++ b/src/main/java/appeng/tile/misc/TileQuartzGrowthAccelerator.java @@ -19,17 +19,17 @@ package appeng.tile.misc; -import java.util.EnumSet; - import io.netty.buffer.ByteBuf; -import net.minecraftforge.common.util.ForgeDirection; +import java.util.EnumSet; +import net.minecraft.util.EnumFacing; import appeng.api.implementations.IPowerChannelState; import appeng.api.implementations.tiles.ICrystalGrowthAccelerator; import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.me.GridAccessException; import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; @@ -44,7 +44,7 @@ public class TileQuartzGrowthAccelerator extends AENetworkTile implements IPower public TileQuartzGrowthAccelerator() { - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); this.gridProxy.setFlags(); this.gridProxy.setIdlePowerUsage( 8 ); } @@ -56,7 +56,7 @@ public class TileQuartzGrowthAccelerator extends AENetworkTile implements IPower } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } @@ -83,7 +83,7 @@ public class TileQuartzGrowthAccelerator extends AENetworkTile implements IPower } @Override - public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) + public void setOrientation( EnumFacing inForward, EnumFacing inUp ) { super.setOrientation( inForward, inUp ); this.gridProxy.setValidSides( EnumSet.of( this.getUp(), this.getUp().getOpposite() ) ); diff --git a/src/main/java/appeng/tile/misc/TileSecurity.java b/src/main/java/appeng/tile/misc/TileSecurity.java index 957a0b8b..881af007 100644 --- a/src/main/java/appeng/tile/misc/TileSecurity.java +++ b/src/main/java/appeng/tile/misc/TileSecurity.java @@ -19,22 +19,22 @@ package appeng.tile.misc; +import io.netty.buffer.ByteBuf; + import java.util.EnumSet; import java.util.HashMap; import java.util.List; -import io.netty.buffer.ByteBuf; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.SecurityPermissions; import appeng.api.config.Settings; @@ -61,6 +61,7 @@ import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.helpers.PlayerSecurityWrapper; @@ -112,9 +113,12 @@ public class TileSecurity extends AENetworkTile implements ITerminalHost, IAEApp { } - + @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( + World w, + BlockPos pos, + List drops ) { if( !this.configSlot.isEmpty() ) { @@ -187,7 +191,7 @@ public class TileSecurity extends AENetworkTile implements ITerminalHost, IAEApp this.configSlot.readFromNBT( data, "config" ); NBTTagCompound storedItems = data.getCompoundTag( "storedItems" ); - for( Object key : storedItems.func_150296_c() ) + for( Object key : storedItems.getKeySet() ) { NBTBase obj = storedItems.getTag( (String) key ); if( obj instanceof NBTTagCompound ) @@ -223,7 +227,7 @@ public class TileSecurity extends AENetworkTile implements ITerminalHost, IAEApp } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } @@ -347,7 +351,7 @@ public class TileSecurity extends AENetworkTile implements ITerminalHost, IAEApp } @Override - public boolean recolourBlock( ForgeDirection side, AEColor newPaintedColor, EntityPlayer who ) + public boolean recolourBlock( EnumFacing side, AEColor newPaintedColor, EntityPlayer who ) { if( this.paintedColor == newPaintedColor ) { diff --git a/src/main/java/appeng/tile/misc/TileVibrationChamber.java b/src/main/java/appeng/tile/misc/TileVibrationChamber.java index dbfd51d7..028c5f21 100644 --- a/src/main/java/appeng/tile/misc/TileVibrationChamber.java +++ b/src/main/java/appeng/tile/misc/TileVibrationChamber.java @@ -20,13 +20,11 @@ package appeng.tile.misc; import io.netty.buffer.ByteBuf; - import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntityFurnace; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.config.Actionable; import appeng.api.networking.IGridNode; import appeng.api.networking.energy.IEnergyGrid; @@ -34,6 +32,7 @@ import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.core.settings.TickRates; import appeng.helpers.Reflected; @@ -70,7 +69,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } @@ -141,13 +140,13 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { return false; } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return ACCESSIBLE_SLOTS; } @@ -290,7 +289,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka if ( this.hasWorldObj() ) { - Platform.notifyBlocksOfNeighbors( this.worldObj, this.xCoord, this.yCoord, this.zCoord ); + Platform.notifyBlocksOfNeighbors( this.worldObj, pos ); } } } diff --git a/src/main/java/appeng/tile/networking/TileCableBus.java b/src/main/java/appeng/tile/networking/TileCableBus.java index a083ce17..f3a0d7b0 100644 --- a/src/main/java/appeng/tile/networking/TileCableBus.java +++ b/src/main/java/appeng/tile/networking/TileCableBus.java @@ -19,21 +19,21 @@ package appeng.tile.networking; +import io.netty.buffer.ByteBuf; + import java.io.IOException; import java.util.List; import java.util.Set; -import io.netty.buffer.ByteBuf; - import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.Vec3; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGridNode; import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IPart; @@ -41,6 +41,7 @@ import appeng.api.parts.LayerFlags; import appeng.api.parts.SelectedPart; import appeng.api.util.AECableType; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.block.networking.BlockCableBus; import appeng.helpers.AEMultiTile; @@ -88,8 +89,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl if( newLV != this.oldLV ) { this.oldLV = newLV; - this.worldObj.func_147451_t( this.xCoord, this.yCoord, this.zCoord ); - // worldObj.updateAllLightTypes( xCoord, yCoord, zCoord ); + this.worldObj.checkLight( pos ); } this.updateTileSetting(); @@ -105,7 +105,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl { tcb = (TileCableBus) BlockCableBus.tesrTile.newInstance(); tcb.copyFrom( this ); - this.getWorldObj().setTileEntity( this.xCoord, this.yCoord, this.zCoord, tcb ); + this.getWorld().setTileEntity( pos, tcb ); } catch( Throwable ignored ) { @@ -149,13 +149,13 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl } @Override - public IGridNode getGridNode( ForgeDirection dir ) + public IGridNode getGridNode( AEPartLocation dir ) { return this.cb.getGridNode( dir ); } @Override - public AECableType getCableConnectionType( ForgeDirection side ) + public AECableType getCableConnectionType( AEPartLocation side ) { return this.cb.getCableConnectionType( side ); } @@ -179,7 +179,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl if( newLV != this.oldLV ) { this.oldLV = newLV; - this.worldObj.func_147451_t( this.xCoord, this.yCoord, this.zCoord ); + this.worldObj.getLight( pos ); // worldObj.updateAllLightTypes( xCoord, yCoord, zCoord ); } @@ -193,13 +193,13 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl } @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( World w, BlockPos pos, List drops ) { this.cb.getDrops( drops ); } @Override - public void getNoDrops( World w, int x, int y, int z, List drops ) + public void getNoDrops( World w, BlockPos pos, List drops ) { this.cb.getNoDrops( drops ); } @@ -210,9 +210,9 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl super.onReady(); if( this.cb.isEmpty() ) { - if( this.worldObj.getTileEntity( this.xCoord, this.yCoord, this.zCoord ) == this ) + if( this.worldObj.getTileEntity( pos ) == this ) { - this.worldObj.func_147480_a( this.xCoord, this.yCoord, this.zCoord, true ); + this.worldObj.destroyBlock( pos, true ); } } else @@ -234,25 +234,31 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl } @Override - public boolean canAddPart( ItemStack is, ForgeDirection side ) + public boolean canAddPart( ItemStack is, AEPartLocation side ) { return this.cb.canAddPart( is, side ); } @Override - public ForgeDirection addPart( ItemStack is, ForgeDirection side, EntityPlayer player ) + public AEPartLocation addPart( ItemStack is, AEPartLocation side, EntityPlayer player ) { return this.cb.addPart( is, side, player ); } @Override - public IPart getPart( ForgeDirection side ) + public IPart getPart( AEPartLocation side ) { return this.cb.getPart( side ); } @Override - public void removePart( ForgeDirection side, boolean suppressUpdate ) + public IPart getPart( EnumFacing side ) + { + return this.cb.getPart( side ); + } + + @Override + public void removePart( AEPartLocation side, boolean suppressUpdate ) { this.cb.removePart( side, suppressUpdate ); } @@ -276,11 +282,13 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl } @Override - public boolean isBlocked( ForgeDirection side ) + public boolean isBlocked( EnumFacing side ) { - return !this.ImmibisMicroblocks_isSideOpen( side.ordinal() ); - } @Override - public Iterable getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean visual ) + return !this.ImmibisMicroblocks_isSideOpen( side ); + } + + @Override + public Iterable getSelectedBoundingBoxesFromPool( World w, BlockPos pos, Entity e, boolean visual ) { return this.cb.getSelectedBoundingBoxesFromPool( false, true, e, visual ); } @@ -304,7 +312,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl } @Override - public boolean hasRedstone( ForgeDirection side ) + public boolean hasRedstone( AEPartLocation side ) { return this.cb.hasRedstone( side ); } @@ -333,22 +341,29 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl } } - this.getWorldObj().setBlock( this.xCoord, this.yCoord, this.zCoord, Platform.AIR_BLOCK ); - } @Override - public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e ) + this.getWorld().setBlockToAir( pos ); + } + + @Override + public void addCollidingBlockToList( + World w, + BlockPos pos, + AxisAlignedBB bb, + List out, + Entity e ) { - for( AxisAlignedBB bx : this.getSelectedBoundingBoxesFromPool( w, x, y, z, e, false ) ) + for( AxisAlignedBB bx : this.getSelectedBoundingBoxesFromPool( w, pos, e, false ) ) { - out.add( AxisAlignedBB.getBoundingBox( bx.minX, bx.minY, bx.minZ, bx.maxX, bx.maxY, bx.maxZ ) ); + out.add( AxisAlignedBB.fromBounds( bx.minX, bx.minY, bx.minZ, bx.maxX, bx.maxY, bx.maxZ ) ); } } @Override public void notifyNeighbors() { - if( this.worldObj != null && this.worldObj.blockExists( this.xCoord, this.yCoord, this.zCoord ) && !CableBusContainer.isLoading() ) + if( this.worldObj != null && this.worldObj.isBlockLoaded( pos ) && !CableBusContainer.isLoading() ) { - Platform.notifyBlocksOfNeighbors( this.worldObj, this.xCoord, this.yCoord, this.zCoord ); + Platform.notifyBlocksOfNeighbors( this.worldObj, pos ); } } @@ -358,7 +373,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl return this.cb.isInWorld(); } - public boolean ImmibisMicroblocks_isSideOpen( int side ) + public boolean ImmibisMicroblocks_isSideOpen( EnumFacing side ) { return true; } @@ -369,7 +384,10 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl } @Override - public boolean recolourBlock( ForgeDirection side, AEColor colour, EntityPlayer who ) + public boolean recolourBlock( + EnumFacing side, + AEColor colour, + EntityPlayer who ) { return this.cb.recolourBlock( side, colour, who ); } diff --git a/src/main/java/appeng/tile/networking/TileCableBusTESR.java b/src/main/java/appeng/tile/networking/TileCableBusTESR.java index e0bb7368..5b93682b 100644 --- a/src/main/java/appeng/tile/networking/TileCableBusTESR.java +++ b/src/main/java/appeng/tile/networking/TileCableBusTESR.java @@ -35,7 +35,7 @@ public class TileCableBusTESR extends TileCableBus { tcb = (TileCableBus) BlockCableBus.noTesrTile.newInstance(); tcb.copyFrom( this ); - this.getWorldObj().setTileEntity( this.xCoord, this.yCoord, this.zCoord, tcb ); + this.getWorld().setTileEntity( pos, tcb ); } catch( Throwable ignored ) { diff --git a/src/main/java/appeng/tile/networking/TileController.java b/src/main/java/appeng/tile/networking/TileController.java index 1481d0b4..994e0615 100644 --- a/src/main/java/appeng/tile/networking/TileController.java +++ b/src/main/java/appeng/tile/networking/TileController.java @@ -23,8 +23,7 @@ import java.util.EnumSet; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.config.Actionable; import appeng.api.networking.GridFlags; import appeng.api.networking.events.MENetworkControllerChange; @@ -34,6 +33,9 @@ import appeng.api.networking.events.MENetworkPowerStorage; import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType; import appeng.api.networking.pathing.ControllerState; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; +import appeng.block.networking.BlockController; +import appeng.block.networking.BlockController.ControllerBlockState; import appeng.me.GridAccessException; import appeng.tile.grid.AENetworkPowerTile; import appeng.tile.inventory.AppEngInternalInventory; @@ -56,7 +58,7 @@ public class TileController extends AENetworkPowerTile } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.DENSE; } @@ -70,9 +72,9 @@ public class TileController extends AENetworkPowerTile public void onNeighborChange( boolean force ) { - boolean xx = this.worldObj.getTileEntity( this.xCoord - 1, this.yCoord, this.zCoord ) instanceof TileController && this.worldObj.getTileEntity( this.xCoord + 1, this.yCoord, this.zCoord ) instanceof TileController; - boolean yy = this.worldObj.getTileEntity( this.xCoord, this.yCoord - 1, this.zCoord ) instanceof TileController && this.worldObj.getTileEntity( this.xCoord, this.yCoord + 1, this.zCoord ) instanceof TileController; - boolean zz = this.worldObj.getTileEntity( this.xCoord, this.yCoord, this.zCoord - 1 ) instanceof TileController && this.worldObj.getTileEntity( this.xCoord, this.yCoord, this.zCoord + 1 ) instanceof TileController; + boolean xx = this.worldObj.getTileEntity( pos.offset( EnumFacing.EAST ) ) instanceof TileController && this.worldObj.getTileEntity( pos.offset( EnumFacing.WEST ) ) instanceof TileController; + boolean yy = this.worldObj.getTileEntity( pos.offset( EnumFacing.UP ) ) instanceof TileController && this.worldObj.getTileEntity( pos.offset( EnumFacing.DOWN ) ) instanceof TileController; + boolean zz = this.worldObj.getTileEntity( pos.offset( EnumFacing.NORTH ) ) instanceof TileController && this.worldObj.getTileEntity( pos.offset( EnumFacing.SOUTH ) ) instanceof TileController; // int meta = world.getBlockMetadata( xCoord, yCoord, zCoord ); // boolean hasPower = meta > 0; @@ -86,11 +88,11 @@ public class TileController extends AENetworkPowerTile { if( this.isValid ) { - this.gridProxy.setValidSides( EnumSet.allOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.allOf( EnumFacing.class ) ); } else { - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); } } @@ -104,26 +106,26 @@ public class TileController extends AENetworkPowerTile return; } - int meta = 0; - + ControllerBlockState metaState = ControllerBlockState.OFFLINE; + try { if( this.gridProxy.getEnergy().isNetworkPowered() ) { - meta = 1; + metaState = ControllerBlockState.ONLINE; if( this.gridProxy.getPath().getControllerState() == ControllerState.CONTROLLER_CONFLICT ) { - meta = 2; + metaState = ControllerBlockState.CONFLICTED; } } } catch( GridAccessException e ) { - meta = 0; + metaState = ControllerBlockState.OFFLINE; } - this.worldObj.setBlockMetadataWithNotify( this.xCoord, this.yCoord, this.zCoord, meta, 2 ); + this.worldObj.setBlockState( pos, worldObj.getBlockState( pos ).withProperty( BlockController.CONTROLLER_STATE, metaState ) ); } @Override @@ -197,7 +199,7 @@ public class TileController extends AENetworkPowerTile } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing whichSide ) { return this.ACCESSIBLE_SLOTS_BY_SIDE; } diff --git a/src/main/java/appeng/tile/networking/TileCreativeEnergyCell.java b/src/main/java/appeng/tile/networking/TileCreativeEnergyCell.java index 247be2eb..e29d8d3e 100644 --- a/src/main/java/appeng/tile/networking/TileCreativeEnergyCell.java +++ b/src/main/java/appeng/tile/networking/TileCreativeEnergyCell.java @@ -19,13 +19,12 @@ package appeng.tile.networking; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.networking.energy.IAEPowerStorage; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.tile.grid.AENetworkTile; @@ -38,7 +37,7 @@ public class TileCreativeEnergyCell extends AENetworkTile implements IAEPowerSto } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } diff --git a/src/main/java/appeng/tile/networking/TileEnergyAcceptor.java b/src/main/java/appeng/tile/networking/TileEnergyAcceptor.java index 901d9a64..cf9b5336 100644 --- a/src/main/java/appeng/tile/networking/TileEnergyAcceptor.java +++ b/src/main/java/appeng/tile/networking/TileEnergyAcceptor.java @@ -22,11 +22,11 @@ package appeng.tile.networking; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.config.Actionable; import appeng.api.networking.energy.IEnergyGrid; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.me.GridAccessException; import appeng.tile.grid.AENetworkPowerTile; import appeng.tile.inventory.AppEngInternalInventory; @@ -62,7 +62,7 @@ public class TileEnergyAcceptor extends AENetworkPowerTile } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } @@ -113,7 +113,7 @@ public class TileEnergyAcceptor extends AENetworkPowerTile } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return this.sides; } diff --git a/src/main/java/appeng/tile/networking/TileEnergyCell.java b/src/main/java/appeng/tile/networking/TileEnergyCell.java index 4515adcc..0720aa4d 100644 --- a/src/main/java/appeng/tile/networking/TileEnergyCell.java +++ b/src/main/java/appeng/tile/networking/TileEnergyCell.java @@ -20,8 +20,6 @@ package appeng.tile.networking; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -29,6 +27,8 @@ import appeng.api.networking.energy.IAEPowerStorage; import appeng.api.networking.events.MENetworkPowerStorage; import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; +import appeng.block.networking.BlockEnergyCell; import appeng.me.GridAccessException; import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; @@ -39,6 +39,7 @@ import appeng.util.SettingsFrom; public class TileEnergyCell extends AENetworkTile implements IAEPowerStorage { + protected double internalCurrentPower = 0.0; protected double internalMaxPower = 200000.0; @@ -50,7 +51,7 @@ public class TileEnergyCell extends AENetworkTile implements IAEPowerStorage } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.COVERED; } @@ -59,7 +60,8 @@ public class TileEnergyCell extends AENetworkTile implements IAEPowerStorage public void onReady() { super.onReady(); - this.currentMeta = (byte) this.worldObj.getBlockMetadata( this.xCoord, this.yCoord, this.zCoord ); + int value = ( Integer ) this.worldObj.getBlockState( pos ).getValue( BlockEnergyCell.ENERGY_STORAGE ); + currentMeta = (byte)value; this.changePowerLevel(); } @@ -84,7 +86,7 @@ public class TileEnergyCell extends AENetworkTile implements IAEPowerStorage if( this.currentMeta != boundMetadata ) { this.currentMeta = boundMetadata; - this.worldObj.setBlockMetadataWithNotify( this.xCoord, this.yCoord, this.zCoord, this.currentMeta, 2 ); + this.worldObj.setBlockState( pos, this.worldObj.getBlockState( pos ).withProperty( BlockEnergyCell.ENERGY_STORAGE, (int)boundMetadata ) ); } } diff --git a/src/main/java/appeng/tile/networking/TileWireless.java b/src/main/java/appeng/tile/networking/TileWireless.java index 7ff518d8..81a5483f 100644 --- a/src/main/java/appeng/tile/networking/TileWireless.java +++ b/src/main/java/appeng/tile/networking/TileWireless.java @@ -19,14 +19,13 @@ package appeng.tile.networking; -import java.util.EnumSet; - import io.netty.buffer.ByteBuf; +import java.util.EnumSet; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.implementations.IPowerChannelState; import appeng.api.implementations.tiles.IWirelessAccessPoint; @@ -36,6 +35,7 @@ import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.core.AEConfig; import appeng.me.GridAccessException; @@ -61,11 +61,11 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi public TileWireless() { this.gridProxy.setFlags( GridFlags.REQUIRE_CHANNEL ); - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); } @Override - public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) + public void setOrientation( EnumFacing inForward, EnumFacing inUp ) { super.setOrientation( inForward, inUp ); this.gridProxy.setValidSides( EnumSet.of( this.getForward().getOpposite() ) ); @@ -118,7 +118,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } @@ -148,7 +148,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return this.sides; } diff --git a/src/main/java/appeng/tile/powersink/AEBasePoweredTile.java b/src/main/java/appeng/tile/powersink/AEBasePoweredTile.java index 592a7241..88cc5d32 100644 --- a/src/main/java/appeng/tile/powersink/AEBasePoweredTile.java +++ b/src/main/java/appeng/tile/powersink/AEBasePoweredTile.java @@ -19,7 +19,7 @@ package appeng.tile.powersink; -public abstract class AEBasePoweredTile extends MekJoules +public abstract class AEBasePoweredTile extends AERootPoweredTile // extends MekJoules { } diff --git a/src/main/java/appeng/tile/powersink/AERootPoweredTile.java b/src/main/java/appeng/tile/powersink/AERootPoweredTile.java index 2d158244..87c8fecd 100644 --- a/src/main/java/appeng/tile/powersink/AERootPoweredTile.java +++ b/src/main/java/appeng/tile/powersink/AERootPoweredTile.java @@ -22,8 +22,7 @@ package appeng.tile.powersink; import java.util.EnumSet; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; @@ -46,14 +45,14 @@ public abstract class AERootPoweredTile extends AEBaseInvTile implements IAEPowe protected AccessRestriction internalPowerFlow = AccessRestriction.READ_WRITE; // the current power buffer. protected double internalCurrentPower = 0; - private EnumSet internalPowerSides = EnumSet.allOf( ForgeDirection.class ); + private EnumSet internalPowerSides = EnumSet.allOf( EnumFacing.class ); - protected EnumSet getPowerSides() + protected EnumSet getPowerSides() { return this.internalPowerSides.clone(); } - protected void setPowerSides( EnumSet sides ) + protected void setPowerSides( EnumSet sides ) { this.internalPowerSides = sides; // trigger re-calc! diff --git a/src/main/java/appeng/tile/powersink/IC2.java b/src/main/java/appeng/tile/powersink/IC2.java index 0f93d19c..65a481c5 100644 --- a/src/main/java/appeng/tile/powersink/IC2.java +++ b/src/main/java/appeng/tile/powersink/IC2.java @@ -22,11 +22,9 @@ package appeng.tile.powersink; import java.util.EnumSet; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import ic2.api.energy.tile.IEnergySink; - import appeng.api.config.PowerUnits; +import appeng.api.util.ForgeDirection; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.IIC2; diff --git a/src/main/java/appeng/tile/powersink/MekJoules.java b/src/main/java/appeng/tile/powersink/MekJoules.java index ef6d8d79..0a3d0851 100644 --- a/src/main/java/appeng/tile/powersink/MekJoules.java +++ b/src/main/java/appeng/tile/powersink/MekJoules.java @@ -19,11 +19,9 @@ package appeng.tile.powersink; -import net.minecraftforge.common.util.ForgeDirection; - import mekanism.api.energy.IStrictEnergyAcceptor; - import appeng.api.config.PowerUnits; +import appeng.api.util.ForgeDirection; import appeng.transformer.annotations.Integration.Interface; diff --git a/src/main/java/appeng/tile/powersink/RedstoneFlux.java b/src/main/java/appeng/tile/powersink/RedstoneFlux.java index 663b42eb..378d5424 100644 --- a/src/main/java/appeng/tile/powersink/RedstoneFlux.java +++ b/src/main/java/appeng/tile/powersink/RedstoneFlux.java @@ -19,11 +19,9 @@ package appeng.tile.powersink; -import net.minecraftforge.common.util.ForgeDirection; - import cofh.api.energy.IEnergyReceiver; - import appeng.api.config.PowerUnits; +import appeng.api.util.ForgeDirection; import appeng.transformer.annotations.Integration.Interface; diff --git a/src/main/java/appeng/tile/powersink/RotaryCraft.java b/src/main/java/appeng/tile/powersink/RotaryCraft.java index 79d6d42d..3b1cbe6b 100644 --- a/src/main/java/appeng/tile/powersink/RotaryCraft.java +++ b/src/main/java/appeng/tile/powersink/RotaryCraft.java @@ -21,12 +21,10 @@ package appeng.tile.powersink; import appeng.transformer.annotations.Integration; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import Reika.RotaryCraft.API.Interfaces.Transducerable; import Reika.RotaryCraft.API.Power.AdvancedShaftPowerReceiver; - import appeng.api.config.PowerUnits; +import appeng.api.util.ForgeDirection; import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; import appeng.transformer.annotations.Integration.Interface; diff --git a/src/main/java/appeng/tile/powersink/UniversalElectricity.java b/src/main/java/appeng/tile/powersink/UniversalElectricity.java index a1057961..dff3e3a1 100644 --- a/src/main/java/appeng/tile/powersink/UniversalElectricity.java +++ b/src/main/java/appeng/tile/powersink/UniversalElectricity.java @@ -28,13 +28,13 @@ public abstract class UniversalElectricity extends ThermalExpansion implements I { @Override - public final boolean canConnect(ForgeDirection direction) + public final boolean canConnect(AEPartLocation direction) { return internalCanAcceptPower && getPowerSides().contains( direction ); } @Override - public final float receiveElectricity(ForgeDirection from, ElectricityPack receive, boolean doReceive) + public final float receiveElectricity(AEPartLocation from, ElectricityPack receive, boolean doReceive) { float accepted = 0; double receivedPower = receive.getWatts(); @@ -56,7 +56,7 @@ public abstract class UniversalElectricity extends ThermalExpansion implements I } @Override - public final float getRequest(ForgeDirection direction) + public final float getRequest(AEPartLocation direction) { return (float) getExternalPowerDemand( PowerUnits.KJ ); } @@ -68,13 +68,13 @@ public abstract class UniversalElectricity extends ThermalExpansion implements I } @Override - public final ElectricityPack provideElectricity(ForgeDirection from, ElectricityPack request, boolean doProvide) + public final ElectricityPack provideElectricity(AEPartLocation from, ElectricityPack request, boolean doProvide) { return null; // cannot be dis-charged } @Override - public final float getProvide(ForgeDirection direction) + public final float getProvide(AEPartLocation direction) { return 0; } diff --git a/src/main/java/appeng/tile/qnb/TileQuantumBridge.java b/src/main/java/appeng/tile/qnb/TileQuantumBridge.java index d2fde562..abf59752 100644 --- a/src/main/java/appeng/tile/qnb/TileQuantumBridge.java +++ b/src/main/java/appeng/tile/qnb/TileQuantumBridge.java @@ -19,25 +19,24 @@ package appeng.tile.qnb; -import java.util.EnumSet; - -import com.google.common.base.Optional; - import io.netty.buffer.ByteBuf; +import java.util.EnumSet; + import net.minecraft.block.Block; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.server.gui.IUpdatePlayerListBox; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.definitions.IBlockDefinition; import appeng.api.networking.GridFlags; import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.me.GridAccessException; import appeng.me.cluster.IAECluster; @@ -51,8 +50,10 @@ import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; +import com.google.common.base.Optional; -public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock + +public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock, IUpdatePlayerListBox { private static final IBlockDefinition RING_DEFINITION = AEApi.instance().definitions().blocks().quantumRing(); public final byte corner = 16; @@ -70,7 +71,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock public TileQuantumBridge() { - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); this.gridProxy.setFlags( GridFlags.DENSE_CAPACITY ); this.gridProxy.setIdlePowerUsage( 22 ); this.internalInventory.setMaxStackSize( 1 ); @@ -133,7 +134,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { if( this.isCenter() ) { @@ -208,7 +209,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock if( affectWorld ) { - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); } } @@ -238,11 +239,16 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock if( this.isCorner() || this.isCenter() ) { - this.gridProxy.setValidSides( this.getConnections() ); + EnumSet sides = EnumSet.noneOf( EnumFacing.class ); + for ( AEPartLocation dir : this.getConnections() ) + if ( dir != AEPartLocation.INTERNAL ) + sides.add( dir.getFacing()); + + this.gridProxy.setValidSides( sides ); } else { - this.gridProxy.setValidSides( EnumSet.allOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.allOf( EnumFacing.class ) ); } } } @@ -252,13 +258,13 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock return ( this.constructed & this.corner ) == this.corner && this.constructed != -1; } - public EnumSet getConnections() + public EnumSet getConnections() { - EnumSet set = EnumSet.noneOf( ForgeDirection.class ); + EnumSet set = EnumSet.noneOf( AEPartLocation.class ); - for( ForgeDirection d : ForgeDirection.VALID_DIRECTIONS ) + for( AEPartLocation d : AEPartLocation.values() ) { - TileEntity te = this.worldObj.getTileEntity( this.xCoord + d.offsetX, this.yCoord + d.offsetY, this.zCoord + d.offsetZ ); + TileEntity te = this.worldObj.getTileEntity( d == AEPartLocation.INTERNAL ? pos : pos.offset( d.getFacing() ) ); if( te instanceof TileQuantumBridge ) { set.add( d ); @@ -307,7 +313,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.DENSE; } diff --git a/src/main/java/appeng/tile/spatial/TileSpatialIOPort.java b/src/main/java/appeng/tile/spatial/TileSpatialIOPort.java index 105b5eeb..a8accd62 100644 --- a/src/main/java/appeng/tile/spatial/TileSpatialIOPort.java +++ b/src/main/java/appeng/tile/spatial/TileSpatialIOPort.java @@ -24,8 +24,7 @@ import java.util.concurrent.Callable; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.config.YesNo; @@ -38,6 +37,7 @@ import appeng.api.networking.events.MENetworkEvent; import appeng.api.networking.events.MENetworkSpatialEvent; import appeng.api.networking.spatial.ISpatialCache; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.hooks.TickHandler; import appeng.me.cache.SpatialPylonCache; @@ -88,7 +88,7 @@ public class TileSpatialIOPort extends AENetworkInvTile implements Callable public void updateRedstoneState() { - YesNo currentState = this.worldObj.isBlockIndirectlyGettingPowered( this.xCoord, this.yCoord, this.zCoord ) ? YesNo.YES : YesNo.NO; + YesNo currentState = this.worldObj.isBlockIndirectlyGettingPowered( pos ) != 0 ? YesNo.YES : YesNo.NO; if( this.lastRedstoneState != currentState ) { this.lastRedstoneState = currentState; @@ -159,7 +159,7 @@ public class TileSpatialIOPort extends AENetworkInvTile implements Callable } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } @@ -189,19 +189,19 @@ public class TileSpatialIOPort extends AENetworkInvTile implements Callable } @Override - public boolean canInsertItem( int slotIndex, ItemStack insertingItem, int side ) + public boolean canInsertItem( int slotIndex, ItemStack insertingItem, EnumFacing side ) { return this.isItemValidForSlot( slotIndex, insertingItem ); } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { return slotIndex == 1; } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return this.sides; } diff --git a/src/main/java/appeng/tile/spatial/TileSpatialPylon.java b/src/main/java/appeng/tile/spatial/TileSpatialPylon.java index 9f725592..d53aa1c2 100644 --- a/src/main/java/appeng/tile/spatial/TileSpatialPylon.java +++ b/src/main/java/appeng/tile/spatial/TileSpatialPylon.java @@ -19,12 +19,11 @@ package appeng.tile.spatial; -import java.util.EnumSet; - import io.netty.buffer.ByteBuf; -import net.minecraftforge.common.util.ForgeDirection; +import java.util.EnumSet; +import net.minecraft.util.EnumFacing; import appeng.api.networking.GridFlags; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkEventSubscribe; @@ -63,7 +62,7 @@ public class TileSpatialPylon extends AENetworkTile implements IAEMultiBlock { this.gridProxy.setFlags( GridFlags.REQUIRE_CHANNEL, GridFlags.MULTIBLOCK ); this.gridProxy.setIdlePowerUsage( 0.5 ); - this.gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( EnumSet.noneOf( EnumFacing.class ) ); } @Override @@ -123,7 +122,7 @@ public class TileSpatialPylon extends AENetworkTile implements IAEMultiBlock public void updateStatus( SpatialPylonCluster c ) { this.cluster = c; - this.gridProxy.setValidSides( c == null ? EnumSet.noneOf( ForgeDirection.class ) : EnumSet.allOf( ForgeDirection.class ) ); + this.gridProxy.setValidSides( c == null ? EnumSet.noneOf( EnumFacing.class ) : EnumSet.allOf( EnumFacing.class ) ); this.recalculateDisplay(); } @@ -196,7 +195,7 @@ public class TileSpatialPylon extends AENetworkTile implements IAEMultiBlock if( hasLight != this.didHaveLight ) { this.didHaveLight = hasLight; - this.worldObj.func_147451_t( this.xCoord, this.yCoord, this.zCoord ); + this.worldObj.checkLight( pos ); // worldObj.updateAllLightTypes( xCoord, yCoord, zCoord ); } } diff --git a/src/main/java/appeng/tile/storage/TileChest.java b/src/main/java/appeng/tile/storage/TileChest.java index 1fb1bd09..da778d54 100644 --- a/src/main/java/appeng/tile/storage/TileChest.java +++ b/src/main/java/appeng/tile/storage/TileChest.java @@ -19,23 +19,23 @@ package appeng.tile.storage; +import io.netty.buffer.ByteBuf; + import java.util.ArrayList; import java.util.Collections; import java.util.List; -import io.netty.buffer.ByteBuf; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.server.gui.IUpdatePlayerListBox; +import net.minecraft.util.EnumFacing; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidTankInfo; import net.minecraftforge.fluids.IFluidHandler; - import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -92,7 +92,7 @@ import appeng.util.Platform; import appeng.util.item.AEFluidStack; -public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHandler, ITerminalHost, IPriorityHost, IConfigManagerHost, IColorableTile +public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHandler, ITerminalHost, IPriorityHost, IConfigManagerHost, IColorableTile, IUpdatePlayerListBox { static final ChestNoHandler NO_HANDLER = new ChestNoHandler(); @@ -545,14 +545,14 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan // update the neighbors if( this.worldObj != null ) { - Platform.notifyBlocksOfNeighbors( this.worldObj, this.xCoord, this.yCoord, this.zCoord ); + Platform.notifyBlocksOfNeighbors( this.worldObj, pos ); this.markForUpdate(); } } } @Override - public boolean canInsertItem( int slotIndex, ItemStack insertingItem, int side ) + public boolean canInsertItem( int slotIndex, ItemStack insertingItem, EnumFacing side ) { if( slotIndex == 1 ) { @@ -581,15 +581,15 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { return slotIndex == 1; } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { - if( ForgeDirection.SOUTH == side ) + if( EnumFacing.SOUTH == side ) { return FRONT; } @@ -694,7 +694,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan } @Override - public int fill( ForgeDirection from, FluidStack resource, boolean doFill ) + public int fill( EnumFacing from, FluidStack resource, boolean doFill ) { double req = resource.amount / 500.0; double available = this.extractAEPower( req, Actionable.SIMULATE, PowerMultiplier.CONFIG ); @@ -722,19 +722,19 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan } @Override - public FluidStack drain( ForgeDirection from, FluidStack resource, boolean doDrain ) + public FluidStack drain( EnumFacing from, FluidStack resource, boolean doDrain ) { return null; } @Override - public FluidStack drain( ForgeDirection from, int maxDrain, boolean doDrain ) + public FluidStack drain( EnumFacing from, int maxDrain, boolean doDrain ) { return null; } @Override - public boolean canFill( ForgeDirection from, Fluid fluid ) + public boolean canFill( EnumFacing from, Fluid fluid ) { try { @@ -748,13 +748,13 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan } @Override - public boolean canDrain( ForgeDirection from, Fluid fluid ) + public boolean canDrain( EnumFacing from, Fluid fluid ) { return false; } @Override - public FluidTankInfo[] getTankInfo( ForgeDirection from ) + public FluidTankInfo[] getTankInfo( EnumFacing from ) { try { @@ -772,7 +772,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan } @Override - public IStorageMonitorable getMonitorable( ForgeDirection side, BaseActionSource src ) + public IStorageMonitorable getMonitorable( EnumFacing side, BaseActionSource src ) { if( Platform.canAccess( this.gridProxy, src ) && side != this.getForward() ) { @@ -802,7 +802,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan } - public boolean openGui( EntityPlayer p, ICellHandler ch, ItemStack cell, int side ) + public boolean openGui( EntityPlayer p, ICellHandler ch, ItemStack cell, EnumFacing side ) { try { @@ -842,7 +842,10 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan } @Override - public boolean recolourBlock( ForgeDirection side, AEColor newPaintedColor, EntityPlayer who ) + public boolean recolourBlock( + EnumFacing side, + AEColor newPaintedColor, + EntityPlayer who ) { if( this.paintedColor == newPaintedColor ) { @@ -858,7 +861,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan @Override public void saveChanges( IMEInventory cellInventory ) { - this.worldObj.markTileEntityChunkModified( this.xCoord, this.yCoord, this.zCoord, this ); + this.worldObj.markChunkDirty( pos, this ); } private static class ChestNoHandler extends Exception diff --git a/src/main/java/appeng/tile/storage/TileDrive.java b/src/main/java/appeng/tile/storage/TileDrive.java index 55cd67a3..39b255b9 100644 --- a/src/main/java/appeng/tile/storage/TileDrive.java +++ b/src/main/java/appeng/tile/storage/TileDrive.java @@ -19,17 +19,16 @@ package appeng.tile.storage; +import io.netty.buffer.ByteBuf; + import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import io.netty.buffer.ByteBuf; - import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.AEApi; import appeng.api.implementations.tiles.IChestOrDrive; import appeng.api.networking.GridFlags; @@ -46,6 +45,7 @@ import appeng.api.storage.IMEInventoryHandler; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.helpers.IPriorityHost; import appeng.me.GridAccessException; @@ -248,7 +248,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } @@ -295,7 +295,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return this.sides; } @@ -417,6 +417,6 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior @Override public void saveChanges( IMEInventory cellInventory ) { - this.worldObj.markTileEntityChunkModified( this.xCoord, this.yCoord, this.zCoord, this ); + this.worldObj.markChunkDirty( pos, this ); } } diff --git a/src/main/java/appeng/tile/storage/TileIOPort.java b/src/main/java/appeng/tile/storage/TileIOPort.java index 554161c3..6c491576 100644 --- a/src/main/java/appeng/tile/storage/TileIOPort.java +++ b/src/main/java/appeng/tile/storage/TileIOPort.java @@ -25,9 +25,9 @@ import net.minecraft.block.Block; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FullnessMode; @@ -53,6 +53,7 @@ import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; import appeng.api.util.AECableType; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.core.settings.TickRates; @@ -141,7 +142,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC } @Override - public AECableType getCableConnectionType( ForgeDirection dir ) + public AECableType getCableConnectionType( AEPartLocation dir ) { return AECableType.SMART; } @@ -173,7 +174,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC public void updateRedstoneState() { - YesNo currentState = this.worldObj.isBlockIndirectlyGettingPowered( this.xCoord, this.yCoord, this.zCoord ) ? YesNo.YES : YesNo.NO; + YesNo currentState = this.worldObj.isBlockIndirectlyGettingPowered( pos ) != 0 ? YesNo.YES : YesNo.NO; if( this.lastRedstoneState != currentState ) { this.lastRedstoneState = currentState; @@ -266,7 +267,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC } @Override - public boolean canInsertItem( int slotIndex, ItemStack insertingItem, int side ) + public boolean canInsertItem( int slotIndex, ItemStack insertingItem, EnumFacing side ) { for( int inputSlotIndex : this.input ) { @@ -280,7 +281,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC } @Override - public boolean canExtractItem( int slotIndex, ItemStack extractedItem, int side ) + public boolean canExtractItem( int slotIndex, ItemStack extractedItem, EnumFacing side ) { for( int outputSlotIndex : this.output ) { @@ -294,9 +295,9 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection d ) + public int[] getAccessibleSlotsBySide( EnumFacing d ) { - if( d == ForgeDirection.UP || d == ForgeDirection.DOWN ) + if( d == EnumFacing.UP || d == EnumFacing.DOWN ) { return this.input; } @@ -509,7 +510,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC private boolean moveSlot( int x ) { WrapperInventoryRange wir = new WrapperInventoryRange( this, this.output, true ); - ItemStack result = InventoryAdaptor.getAdaptor( wir, ForgeDirection.UNKNOWN ).addItems( this.getStackInSlot( x ) ); + ItemStack result = InventoryAdaptor.getAdaptor( wir, EnumFacing.UP ).addItems( this.getStackInSlot( x ) ); if( result == null ) { @@ -562,9 +563,12 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC * @param drops drops of tile entity */ @Override - public void getDrops( World w, int x, int y, int z, List drops ) + public void getDrops( + World w, + BlockPos pos, + List drops ) { - super.getDrops( w, x, y, z, drops ); + super.getDrops( w, pos, drops ); for( int upgradeIndex = 0; upgradeIndex < this.upgrades.getSizeInventory(); upgradeIndex++ ) { diff --git a/src/main/java/appeng/tile/storage/TileSkyChest.java b/src/main/java/appeng/tile/storage/TileSkyChest.java index 4f2bccc9..11e0173f 100644 --- a/src/main/java/appeng/tile/storage/TileSkyChest.java +++ b/src/main/java/appeng/tile/storage/TileSkyChest.java @@ -20,11 +20,10 @@ package appeng.tile.storage; import io.netty.buffer.ByteBuf; - +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.tile.AEBaseInvTile; import appeng.tile.TileEvent; import appeng.tile.events.TileEventType; @@ -77,7 +76,7 @@ public class TileSkyChest extends AEBaseInvTile } @Override - public void openInventory() + public void openInventory( EntityPlayer player ) { if( Platform.isClient() ) { @@ -88,13 +87,13 @@ public class TileSkyChest extends AEBaseInvTile if( this.playerOpen == 1 ) { - this.getWorldObj().playSoundEffect( this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D, "random.chestopen", 0.5F, this.getWorldObj().rand.nextFloat() * 0.1F + 0.9F ); + this.getWorld().playSoundEffect( pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, "random.chestopen", 0.5F, this.getWorld().rand.nextFloat() * 0.1F + 0.9F ); this.markForUpdate(); } } @Override - public void closeInventory() + public void closeInventory( EntityPlayer player ) { if( Platform.isClient() ) { @@ -110,7 +109,7 @@ public class TileSkyChest extends AEBaseInvTile if( this.playerOpen == 0 ) { - this.getWorldObj().playSoundEffect( this.xCoord + 0.5D, this.yCoord + 0.5D, this.zCoord + 0.5D, "random.chestclosed", 0.5F, this.getWorldObj().rand.nextFloat() * 0.1F + 0.9F ); + this.getWorld().playSoundEffect( pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, "random.chestclosed", 0.5F, this.getWorld().rand.nextFloat() * 0.1F + 0.9F ); this.markForUpdate(); } } @@ -122,7 +121,7 @@ public class TileSkyChest extends AEBaseInvTile } @Override - public int[] getAccessibleSlotsBySide( ForgeDirection side ) + public int[] getAccessibleSlotsBySide( EnumFacing side ) { return this.sides; } diff --git a/src/main/java/appeng/transformer/AppEngCore.java b/src/main/java/appeng/transformer/AppEngCore.java index 191231db..631459bf 100644 --- a/src/main/java/appeng/transformer/AppEngCore.java +++ b/src/main/java/appeng/transformer/AppEngCore.java @@ -23,21 +23,20 @@ import java.util.Map; import javax.annotation.Nullable; -import com.google.common.eventbus.EventBus; - -import cpw.mods.fml.common.DummyModContainer; -import cpw.mods.fml.common.LoadController; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.ModMetadata; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.relauncher.FMLRelaunchLog; -import cpw.mods.fml.relauncher.IFMLLoadingPlugin; -import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; - +import net.minecraftforge.fml.common.DummyModContainer; +import net.minecraftforge.fml.common.LoadController; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.ModMetadata; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.relauncher.FMLRelaunchLog; +import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; +import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin.MCVersion; import appeng.core.AEConfig; +import com.google.common.eventbus.EventBus; -@MCVersion( "1.7.10" ) + +@MCVersion( "1.8" ) public final class AppEngCore extends DummyModContainer implements IFMLLoadingPlugin { private final ModMetadata metadata = new ModMetadata(); diff --git a/src/main/java/appeng/transformer/MissingCoreMod.java b/src/main/java/appeng/transformer/MissingCoreMod.java index 38288ab8..20377b70 100644 --- a/src/main/java/appeng/transformer/MissingCoreMod.java +++ b/src/main/java/appeng/transformer/MissingCoreMod.java @@ -21,10 +21,9 @@ package appeng.transformer; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiErrorScreen; - -import cpw.mods.fml.client.CustomModLoadingErrorDisplayException; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import net.minecraftforge.fml.client.CustomModLoadingErrorDisplayException; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; @SideOnly( Side.CLIENT ) diff --git a/src/main/java/appeng/transformer/asm/ASMIntegration.java b/src/main/java/appeng/transformer/asm/ASMIntegration.java index 96b57a11..bc43e8ef 100644 --- a/src/main/java/appeng/transformer/asm/ASMIntegration.java +++ b/src/main/java/appeng/transformer/asm/ASMIntegration.java @@ -23,6 +23,9 @@ import java.util.Iterator; import javax.annotation.Nullable; +import net.minecraft.launchwrapper.IClassTransformer; +import net.minecraftforge.fml.relauncher.FMLRelaunchLog; + import org.apache.logging.log4j.Level; import org.objectweb.asm.ClassReader; import org.objectweb.asm.ClassWriter; @@ -31,10 +34,6 @@ import org.objectweb.asm.tree.AnnotationNode; import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; -import net.minecraft.launchwrapper.IClassTransformer; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; - import appeng.helpers.Reflected; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; diff --git a/src/main/java/appeng/transformer/asm/ASMTweaker.java b/src/main/java/appeng/transformer/asm/ASMTweaker.java index 44b8a271..7296f412 100644 --- a/src/main/java/appeng/transformer/asm/ASMTweaker.java +++ b/src/main/java/appeng/transformer/asm/ASMTweaker.java @@ -23,8 +23,8 @@ import java.util.Iterator; import javax.annotation.Nullable; -import com.google.common.collect.HashMultimap; -import com.google.common.collect.Multimap; +import net.minecraft.launchwrapper.IClassTransformer; +import net.minecraftforge.fml.relauncher.FMLRelaunchLog; import org.apache.logging.log4j.Level; import org.objectweb.asm.ClassReader; @@ -37,12 +37,11 @@ import org.objectweb.asm.tree.MethodInsnNode; import org.objectweb.asm.tree.MethodNode; import org.objectweb.asm.tree.VarInsnNode; -import net.minecraft.launchwrapper.IClassTransformer; - -import cpw.mods.fml.relauncher.FMLRelaunchLog; - import appeng.helpers.Reflected; +import com.google.common.collect.HashMultimap; +import com.google.common.collect.Multimap; + @Reflected public final class ASMTweaker implements IClassTransformer diff --git a/src/main/java/appeng/util/BlockUpdate.java b/src/main/java/appeng/util/BlockUpdate.java index ac308395..4b40ace3 100644 --- a/src/main/java/appeng/util/BlockUpdate.java +++ b/src/main/java/appeng/util/BlockUpdate.java @@ -21,6 +21,7 @@ package appeng.util; import java.util.concurrent.Callable; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; @@ -28,24 +29,20 @@ public class BlockUpdate implements Callable { final World w; - final int x; - final int y; - final int z; + final BlockPos pos; - public BlockUpdate( World w, int x, int y, int z ) + public BlockUpdate( World w, BlockPos pos ) { this.w = w; - this.x = x; - this.y = y; - this.z = z; + this.pos=pos; } @Override public Object call() throws Exception { - if( this.w.blockExists( this.x, this.y, this.z ) ) + if( this.w.isBlockLoaded( this.pos ) ) { - this.w.notifyBlocksOfNeighborChange( this.x, this.y, this.z, Platform.AIR_BLOCK ); + this.w.notifyNeighborsOfStateChange( this.pos, Platform.AIR_BLOCK ); } return true; diff --git a/src/main/java/appeng/util/ClassInstantiation.java b/src/main/java/appeng/util/ClassInstantiation.java index af3ae018..b445b3d5 100644 --- a/src/main/java/appeng/util/ClassInstantiation.java +++ b/src/main/java/appeng/util/ClassInstantiation.java @@ -22,10 +22,10 @@ package appeng.util; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; -import com.google.common.base.Optional; - import appeng.core.AELog; +import com.google.common.base.Optional; + public class ClassInstantiation { diff --git a/src/main/java/appeng/util/ConfigManager.java b/src/main/java/appeng/util/ConfigManager.java index 53ff5009..28f5e4df 100644 --- a/src/main/java/appeng/util/ConfigManager.java +++ b/src/main/java/appeng/util/ConfigManager.java @@ -24,7 +24,6 @@ import java.util.Map; import java.util.Set; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.config.LevelEmitterMode; import appeng.api.config.Settings; import appeng.api.config.StorageFilter; diff --git a/src/main/java/appeng/util/InventoryAdaptor.java b/src/main/java/appeng/util/InventoryAdaptor.java index f0265b5f..a90920d7 100644 --- a/src/main/java/appeng/util/InventoryAdaptor.java +++ b/src/main/java/appeng/util/InventoryAdaptor.java @@ -26,8 +26,7 @@ import net.minecraft.inventory.IInventory; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityChest; -import net.minecraftforge.common.util.ForgeDirection; - +import net.minecraft.util.EnumFacing; import appeng.api.config.FuzzyMode; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; @@ -44,7 +43,7 @@ public abstract class InventoryAdaptor implements Iterable { // returns an appropriate adaptor, or null - public static InventoryAdaptor getAdaptor( Object te, ForgeDirection d ) + public static InventoryAdaptor getAdaptor( Object te, EnumFacing d ) { if( te == null ) { @@ -75,7 +74,7 @@ public abstract class InventoryAdaptor implements Iterable else if( te instanceof ISidedInventory ) { ISidedInventory si = (ISidedInventory) te; - int[] slots = si.getAccessibleSlotsFromSide( d.ordinal() ); + int[] slots = si.getSlotsForFace( d ); if( si.getSizeInventory() > 0 && slots != null && slots.length > 0 ) { return new AdaptorIInventory( new WrapperMCISidedInventory( si, d ) ); diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index 17db0917..e34eba38 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -32,10 +32,12 @@ import java.util.List; import java.util.Random; import java.util.Set; import java.util.WeakHashMap; + import javax.annotation.Nonnull; import javax.annotation.Nullable; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; @@ -62,26 +64,24 @@ import net.minecraft.stats.Achievement; import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityChest; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraft.util.MathHelper; import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.StatCollector; import net.minecraft.util.Vec3; +import net.minecraft.world.ILockableContainer; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.common.util.FakePlayerFactory; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.Loader; +import net.minecraftforge.fml.common.ModContainer; +import net.minecraftforge.fml.relauncher.ReflectionHelper; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.oredict.OreDictionary; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Loader; -import cpw.mods.fml.common.ModContainer; -import cpw.mods.fml.relauncher.ReflectionHelper; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import buildcraft.api.tools.IToolWrench; - import appeng.api.AEApi; import appeng.api.config.AccessRestriction; import appeng.api.config.Actionable; @@ -117,6 +117,7 @@ import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IAETagCompound; import appeng.api.storage.data.IItemList; import appeng.api.util.AEColor; +import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.core.AEConfig; import appeng.core.AELog; @@ -212,31 +213,59 @@ public class Platform return df.format( p ) + ' ' + level + unitName + ( isRate ? "/t" : "" ); } - public static ForgeDirection crossProduct( ForgeDirection forward, ForgeDirection up ) + public static AEPartLocation crossProduct( AEPartLocation forward, AEPartLocation up ) { - int west_x = forward.offsetY * up.offsetZ - forward.offsetZ * up.offsetY; - int west_y = forward.offsetZ * up.offsetX - forward.offsetX * up.offsetZ; - int west_z = forward.offsetX * up.offsetY - forward.offsetY * up.offsetX; + int west_x = forward.yOffset * up.zOffset - forward.zOffset * up.yOffset; + int west_y = forward.zOffset * up.xOffset - forward.xOffset * up.zOffset; + int west_z = forward.xOffset * up.yOffset - forward.yOffset * up.xOffset; switch( west_x + west_y * 2 + west_z * 3 ) { case 1: - return ForgeDirection.EAST; + return AEPartLocation.EAST; case -1: - return ForgeDirection.WEST; + return AEPartLocation.WEST; case 2: - return ForgeDirection.UP; + return AEPartLocation.UP; case -2: - return ForgeDirection.DOWN; + return AEPartLocation.DOWN; case 3: - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; case -3: - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; } - return ForgeDirection.UNKNOWN; + return AEPartLocation.INTERNAL; + } + + public static EnumFacing crossProduct( EnumFacing forward, EnumFacing up ) + { + int west_x = forward.getFrontOffsetY() * up.getFrontOffsetZ() - forward.getFrontOffsetZ() * up.getFrontOffsetY(); + int west_y = forward.getFrontOffsetZ() * up.getFrontOffsetX() - forward.getFrontOffsetX() * up.getFrontOffsetZ(); + int west_z = forward.getFrontOffsetX() * up.getFrontOffsetY() - forward.getFrontOffsetY() * up.getFrontOffsetX(); + + switch( west_x + west_y * 2 + west_z * 3 ) + { + case 1: + return EnumFacing.EAST; + case -1: + return EnumFacing.WEST; + + case 2: + return EnumFacing.UP; + case -2: + return EnumFacing.DOWN; + + case 3: + return EnumFacing.SOUTH; + case -3: + return EnumFacing.NORTH; + } + + //something is better then nothing? + return EnumFacing.NORTH; } public static T rotateEnum( T ce, boolean backwards, EnumSet validOptions ) @@ -339,7 +368,7 @@ public class Platform return false; } - public static void openGUI( @Nonnull EntityPlayer p, @Nullable TileEntity tile, @Nullable ForgeDirection side, @Nonnull GuiBridge type ) + public static void openGUI( @Nonnull EntityPlayer p, @Nullable TileEntity tile, @Nullable AEPartLocation side, @Nonnull GuiBridge type ) { if( isClient() ) { @@ -351,12 +380,12 @@ public class Platform int z = (int) p.posZ; if( tile != null ) { - x = tile.xCoord; - y = tile.yCoord; - z = tile.zCoord; + x = tile.getPos().getX(); + y = tile.getPos().getY(); + z = tile.getPos().getZ(); } - if( ( type.getType().isItem() && tile == null ) || type.hasPermissions( tile, x, y, z, side, p ) ) + if( ( type.getType().isItem() && tile == null ) || type.hasPermissions( tile, x,y,z, side, p ) ) { if( tile == null && type.getType() == GuiHostType.ITEM ) { @@ -368,7 +397,7 @@ public class Platform } else { - p.openGui( AppEng.instance(), type.ordinal() << 4 | ( side.ordinal() ), tile.getWorldObj(), x, y, z ); + p.openGui( AppEng.instance(), type.ordinal() << 4 | ( side.ordinal() ), tile.getWorld(), x, y, z ); } } } @@ -383,17 +412,17 @@ public class Platform public static boolean hasPermissions( DimensionalCoord dc, EntityPlayer player ) { - return dc.getWorld().canMineBlock( player, dc.x, dc.y, dc.z ); + return dc.getWorld().canMineBlockBody( player, dc.getPos() ); } /* * Checks to see if a block is air? */ - public static boolean isBlockAir( World w, int x, int y, int z ) + public static boolean isBlockAir( World w, BlockPos pos ) { try { - return w.getBlock( x, y, z ).isAir( w, x, y, z ); + return w.getBlockState( pos ).getBlock().isAir( w, pos ); } catch( Throwable e ) { @@ -464,8 +493,8 @@ public class Platform NBTTagCompound ctA = (NBTTagCompound) left; NBTTagCompound ctB = (NBTTagCompound) right; - Set cA = ctA.func_150296_c(); - Set cB = ctB.func_150296_c(); + Set cA = ctA.getKeySet(); + Set cB = ctB.getKeySet(); if( cA.size() != cB.size() ) { @@ -523,22 +552,22 @@ public class Platform } case 1: // ( A instanceof NBTTagByte ) - return ( (NBTBase.NBTPrimitive) left ).func_150287_d() == ( (NBTBase.NBTPrimitive) right ).func_150287_d(); + return ( (NBTBase.NBTPrimitive) left ).getByte() == ( (NBTBase.NBTPrimitive) right ).getByte(); case 4: // else if ( A instanceof NBTTagLong ) - return ( (NBTBase.NBTPrimitive) left ).func_150291_c() == ( (NBTBase.NBTPrimitive) right ).func_150291_c(); + return ( (NBTBase.NBTPrimitive) left ).getLong() == ( (NBTBase.NBTPrimitive) right ).getLong(); case 8: // else if ( A instanceof NBTTagString ) - return ( (NBTTagString) left ).func_150285_a_().equals( ( (NBTTagString) right ).func_150285_a_() ) || ( (NBTTagString) left ).func_150285_a_().equals( ( (NBTTagString) right ).func_150285_a_() ); + return ( (NBTTagString) left ).getString().equals( ( (NBTTagString) right ).getString() ) || ( (NBTTagString) left ).getString().equals( ( (NBTTagString) right ).getString() ); case 6: // else if ( A instanceof NBTTagDouble ) - return ( (NBTBase.NBTPrimitive) left ).func_150286_g() == ( (NBTBase.NBTPrimitive) right ).func_150286_g(); + return ( (NBTBase.NBTPrimitive) left ).getDouble() == ( (NBTBase.NBTPrimitive) right ).getDouble(); case 5: // else if ( A instanceof NBTTagFloat ) - return ( (NBTBase.NBTPrimitive) left ).func_150288_h() == ( (NBTBase.NBTPrimitive) right ).func_150288_h(); + return ( (NBTBase.NBTPrimitive) left ).getFloat() == ( (NBTBase.NBTPrimitive) right ).getFloat(); case 3: // else if ( A instanceof NBTTagInt ) - return ( (NBTBase.NBTPrimitive) left ).func_150287_d() == ( (NBTBase.NBTPrimitive) right ).func_150287_d(); + return ( (NBTBase.NBTPrimitive) left ).getInt() == ( (NBTBase.NBTPrimitive) right ).getInt(); default: return left.equals( right ); @@ -599,7 +628,7 @@ public class Platform { NBTTagCompound ctA = (NBTTagCompound) nbt; - Set cA = ctA.func_150296_c(); + Set cA = ctA.getKeySet(); for( String name : cA ) { @@ -624,22 +653,22 @@ public class Platform } case 1: // ( A instanceof NBTTagByte ) - return hash + ( (NBTBase.NBTPrimitive) nbt ).func_150290_f(); + return hash + ( (NBTBase.NBTPrimitive) nbt ).getByte(); case 4: // else if ( A instanceof NBTTagLong ) - return hash + (int) ( (NBTBase.NBTPrimitive) nbt ).func_150291_c(); + return hash + (int) ( (NBTBase.NBTPrimitive) nbt ).getLong(); case 8: // else if ( A instanceof NBTTagString ) - return hash + ( (NBTTagString) nbt ).func_150285_a_().hashCode(); + return hash + ( (NBTTagString) nbt ).getString().hashCode(); case 6: // else if ( A instanceof NBTTagDouble ) - return hash + (int) ( (NBTBase.NBTPrimitive) nbt ).func_150286_g(); + return hash + (int) ( (NBTBase.NBTPrimitive) nbt ).getDouble(); case 5: // else if ( A instanceof NBTTagFloat ) - return hash + (int) ( (NBTBase.NBTPrimitive) nbt ).func_150288_h(); + return hash + (int) ( (NBTBase.NBTPrimitive) nbt ).getFloat(); case 3: // else if ( A instanceof NBTTagInt ) - return hash + ( (NBTBase.NBTPrimitive) nbt ).func_150287_d(); + return hash + ( (NBTBase.NBTPrimitive) nbt ).getInt(); default: return hash; @@ -665,14 +694,14 @@ public class Platform return null; } - public static ItemStack[] getBlockDrops( World w, int x, int y, int z ) + public static ItemStack[] getBlockDrops( World w, BlockPos pos ) { List out = new ArrayList(); - Block which = w.getBlock( x, y, z ); + IBlockState state = w.getBlockState( pos ); - if( which != null ) + if( state != null ) { - out = which.getDrops( w, x, y, z, w.getBlockMetadata( x, y, z ), 0 ); + out = state.getBlock().getDrops( w, pos, state, 0 ); } if( out == null ) @@ -682,26 +711,26 @@ public class Platform return out.toArray( new ItemStack[out.size()] ); } - public static ForgeDirection cycleOrientations( ForgeDirection dir, boolean upAndDown ) + public static AEPartLocation cycleOrientations( AEPartLocation dir, boolean upAndDown ) { if( upAndDown ) { switch( dir ) { case NORTH: - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; case SOUTH: - return ForgeDirection.EAST; + return AEPartLocation.EAST; case EAST: - return ForgeDirection.WEST; + return AEPartLocation.WEST; case WEST: - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; case UP: - return ForgeDirection.UP; + return AEPartLocation.UP; case DOWN: - return ForgeDirection.DOWN; - case UNKNOWN: - return ForgeDirection.UNKNOWN; + return AEPartLocation.DOWN; + case INTERNAL: + return AEPartLocation.INTERNAL; } } else @@ -709,23 +738,23 @@ public class Platform switch( dir ) { case UP: - return ForgeDirection.DOWN; + return AEPartLocation.DOWN; case DOWN: - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; case NORTH: - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; case SOUTH: - return ForgeDirection.EAST; + return AEPartLocation.EAST; case EAST: - return ForgeDirection.WEST; + return AEPartLocation.WEST; case WEST: - return ForgeDirection.UP; - case UNKNOWN: - return ForgeDirection.UNKNOWN; + return AEPartLocation.UP; + case INTERNAL: + return AEPartLocation.INTERNAL; } } - return ForgeDirection.UNKNOWN; + return AEPartLocation.INTERNAL; } /* @@ -746,7 +775,7 @@ public class Platform /* * Generates Item entities in the world similar to how items are generally dropped. */ - public static void spawnDrops( World w, int x, int y, int z, List drops ) + public static void spawnDrops( World w, BlockPos pos, List drops ) { if( isServer() ) { @@ -759,7 +788,7 @@ public class Platform double offset_x = ( getRandomInt() % 32 - 16 ) / 82; double offset_y = ( getRandomInt() % 32 - 16 ) / 82; double offset_z = ( getRandomInt() % 32 - 16 ) / 82; - EntityItem ei = new EntityItem( w, 0.5 + offset_x + x, 0.5 + offset_y + y, 0.2 + offset_z + z, i.copy() ); + EntityItem ei = new EntityItem( w, 0.5 + offset_x + pos.getX(), 0.5 + offset_y + pos.getY(), 0.2 + offset_z + pos.getZ(), i.copy() ); w.spawnEntityInWorld( ei ); } } @@ -787,11 +816,14 @@ public class Platform { TileEntityChest teA = (TileEntityChest) te; TileEntity teB = null; - Block myBlockID = teA.getWorldObj().getBlock( teA.xCoord, teA.yCoord, teA.zCoord ); + IBlockState myBlockID = teA.getWorld().getBlockState( teA.getPos() ); - if( teA.getWorldObj().getBlock( teA.xCoord + 1, teA.yCoord, teA.zCoord ) == myBlockID ) + BlockPos posX = teA.getPos().offset( EnumFacing.EAST ); + BlockPos negX = teA.getPos().offset( EnumFacing.WEST ); + + if( teA.getWorld().getBlockState( posX ) == myBlockID ) { - teB = teA.getWorldObj().getTileEntity( teA.xCoord + 1, teA.yCoord, teA.zCoord ); + teB = teA.getWorld().getTileEntity( posX ); if( !( teB instanceof TileEntityChest ) ) { teB = null; @@ -800,9 +832,9 @@ public class Platform if( teB == null ) { - if( teA.getWorldObj().getBlock( teA.xCoord - 1, teA.yCoord, teA.zCoord ) == myBlockID ) + if( teA.getWorld().getBlockState( negX ) == myBlockID ) { - teB = teA.getWorldObj().getTileEntity( teA.xCoord - 1, teA.yCoord, teA.zCoord ); + teB = teA.getWorld().getTileEntity( negX ); if( !( teB instanceof TileEntityChest ) ) { teB = null; @@ -816,11 +848,14 @@ public class Platform } } + BlockPos posY = teA.getPos().offset( EnumFacing.SOUTH ); + BlockPos negY = teA.getPos().offset( EnumFacing.NORTH ); + if( teB == null ) { - if( teA.getWorldObj().getBlock( teA.xCoord, teA.yCoord, teA.zCoord + 1 ) == myBlockID ) + if( teA.getWorld().getBlockState( posY ) == myBlockID ) { - teB = teA.getWorldObj().getTileEntity( teA.xCoord, teA.yCoord, teA.zCoord + 1 ); + teB = teA.getWorld().getTileEntity(posY); if( !( teB instanceof TileEntityChest ) ) { teB = null; @@ -830,9 +865,9 @@ public class Platform if( teB == null ) { - if( teA.getWorldObj().getBlock( teA.xCoord, teA.yCoord, teA.zCoord - 1 ) == myBlockID ) + if( teA.getWorld().getBlockState( negY ) == myBlockID ) { - teB = teA.getWorldObj().getTileEntity( teA.xCoord, teA.yCoord, teA.zCoord - 1 ); + teB = teA.getWorld().getTileEntity( negY ); if( !( teB instanceof TileEntityChest ) ) { teB = null; @@ -851,7 +886,7 @@ public class Platform return teA; } - return new InventoryLargeChest( "", teA, (IInventory) teB ); + return new InventoryLargeChest( "", teA, (ILockableContainer) teB ); } public static boolean isModLoaded( String modid ) @@ -995,17 +1030,20 @@ public class Platform return false; } - public static boolean isWrench( EntityPlayer player, ItemStack eq, int x, int y, int z ) + public static boolean isWrench( EntityPlayer player, ItemStack eq, BlockPos pos ) { if( eq != null ) { try { + // TODO: Build Craft Wrench? + /* if( eq.getItem() instanceof IToolWrench ) { IToolWrench wrench = (IToolWrench) eq.getItem(); return wrench.canWrench( player, x, y, z ); } + */ } catch( Throwable ignore ) { // explodes without BC @@ -1015,7 +1053,7 @@ public class Platform if( eq.getItem() instanceof IAEWrench ) { IAEWrench wrench = (IAEWrench) eq.getItem(); - return wrench.canWrench( eq, player, x, y, z ); + return wrench.canWrench( eq, player, pos ); } } return false; @@ -1114,9 +1152,9 @@ public class Platform return null; // wtf? } - public static ForgeDirection rotateAround( ForgeDirection forward, ForgeDirection axis ) + public static AEPartLocation rotateAround( AEPartLocation forward, AEPartLocation axis ) { - if( axis == ForgeDirection.UNKNOWN || forward == ForgeDirection.UNKNOWN ) + if( axis == AEPartLocation.INTERNAL || forward == AEPartLocation.INTERNAL ) { return forward; } @@ -1131,13 +1169,13 @@ public class Platform case UP: return forward; case NORTH: - return ForgeDirection.EAST; + return AEPartLocation.EAST; case SOUTH: - return ForgeDirection.WEST; + return AEPartLocation.WEST; case EAST: - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; case WEST: - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; default: break; } @@ -1146,13 +1184,13 @@ public class Platform switch( axis ) { case NORTH: - return ForgeDirection.WEST; + return AEPartLocation.WEST; case SOUTH: - return ForgeDirection.EAST; + return AEPartLocation.EAST; case EAST: - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; case WEST: - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; default: break; } @@ -1161,13 +1199,13 @@ public class Platform switch( axis ) { case UP: - return ForgeDirection.WEST; + return AEPartLocation.WEST; case DOWN: - return ForgeDirection.EAST; + return AEPartLocation.EAST; case EAST: - return ForgeDirection.UP; + return AEPartLocation.UP; case WEST: - return ForgeDirection.DOWN; + return AEPartLocation.DOWN; default: break; } @@ -1176,13 +1214,13 @@ public class Platform switch( axis ) { case UP: - return ForgeDirection.EAST; + return AEPartLocation.EAST; case DOWN: - return ForgeDirection.WEST; + return AEPartLocation.WEST; case EAST: - return ForgeDirection.DOWN; + return AEPartLocation.DOWN; case WEST: - return ForgeDirection.UP; + return AEPartLocation.UP; default: break; } @@ -1191,13 +1229,13 @@ public class Platform switch( axis ) { case UP: - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; case DOWN: - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; case NORTH: - return ForgeDirection.UP; + return AEPartLocation.UP; case SOUTH: - return ForgeDirection.DOWN; + return AEPartLocation.DOWN; default: break; } @@ -1205,13 +1243,115 @@ public class Platform switch( axis ) { case UP: - return ForgeDirection.SOUTH; + return AEPartLocation.SOUTH; case DOWN: - return ForgeDirection.NORTH; + return AEPartLocation.NORTH; case NORTH: - return ForgeDirection.DOWN; + return AEPartLocation.DOWN; case SOUTH: - return ForgeDirection.UP; + return AEPartLocation.UP; + default: + break; + } + default: + break; + } + return forward; + } + + public static EnumFacing rotateAround( EnumFacing forward, EnumFacing axis ) + { + switch( forward ) + { + case DOWN: + switch( axis ) + { + case DOWN: + return forward; + case UP: + return forward; + case NORTH: + return EnumFacing.EAST; + case SOUTH: + return EnumFacing.WEST; + case EAST: + return EnumFacing.NORTH; + case WEST: + return EnumFacing.SOUTH; + default: + break; + } + break; + case UP: + switch( axis ) + { + case NORTH: + return EnumFacing.WEST; + case SOUTH: + return EnumFacing.EAST; + case EAST: + return EnumFacing.SOUTH; + case WEST: + return EnumFacing.NORTH; + default: + break; + } + break; + case NORTH: + switch( axis ) + { + case UP: + return EnumFacing.WEST; + case DOWN: + return EnumFacing.EAST; + case EAST: + return EnumFacing.UP; + case WEST: + return EnumFacing.DOWN; + default: + break; + } + break; + case SOUTH: + switch( axis ) + { + case UP: + return EnumFacing.EAST; + case DOWN: + return EnumFacing.WEST; + case EAST: + return EnumFacing.DOWN; + case WEST: + return EnumFacing.UP; + default: + break; + } + break; + case EAST: + switch( axis ) + { + case UP: + return EnumFacing.NORTH; + case DOWN: + return EnumFacing.SOUTH; + case NORTH: + return EnumFacing.UP; + case SOUTH: + return EnumFacing.DOWN; + default: + break; + } + case WEST: + switch( axis ) + { + case UP: + return EnumFacing.SOUTH; + case DOWN: + return EnumFacing.NORTH; + case NORTH: + return EnumFacing.DOWN; + case SOUTH: + return EnumFacing.UP; default: break; } @@ -1265,12 +1405,18 @@ public class Platform } else if( mode == FuzzyMode.PERCENT_99 ) { - return ( a.getItemDamageForDisplay() > 1 ) == ( b.getItemDamageForDisplay() > 1 ); + Item ai = a.getItem(); + Item bi = b.getItem(); + + return ( ai.getDurabilityForDisplay(a) > 1 ) == ( bi.getDurabilityForDisplay(b) > 1 ); } else { - float percentDamagedOfA = 1.0f - (float) a.getItemDamageForDisplay() / (float) a.getMaxDamage(); - float percentDamagedOfB = 1.0f - (float) b.getItemDamageForDisplay() / (float) b.getMaxDamage(); + Item ai = a.getItem(); + Item bi = b.getItem(); + + float percentDamagedOfA = 1.0f - (float) ai.getDurabilityForDisplay(a); + float percentDamagedOfB = 1.0f - (float) bi.getDurabilityForDisplay(b); return ( percentDamagedOfA > mode.breakPoint ) == ( percentDamagedOfB > mode.breakPoint ); } @@ -1320,30 +1466,34 @@ public class Platform return a.isItemEqual( b ); } - public static LookDirection getPlayerRay( EntityPlayer player, float eyeOffset ) + public static LookDirection getPlayerRay( EntityPlayer playerIn, float eyeOffset ) { - float f = 1.0F; - float f1 = player.prevRotationPitch + ( player.rotationPitch - player.prevRotationPitch ) * f; - float f2 = player.prevRotationYaw + ( player.rotationYaw - player.prevRotationYaw ) * f; - double d0 = player.prevPosX + ( player.posX - player.prevPosX ) * f; - double d1 = eyeOffset; - double d2 = player.prevPosZ + ( player.posZ - player.prevPosZ ) * f; + double reachDistance = 5.0d; - Vec3 vec3 = Vec3.createVectorHelper( d0, d1, d2 ); - float f3 = MathHelper.cos( -f2 * 0.017453292F - (float) Math.PI ); - float f4 = MathHelper.sin( -f2 * 0.017453292F - (float) Math.PI ); - float f5 = -MathHelper.cos( -f1 * 0.017453292F ); - float f6 = MathHelper.sin( -f1 * 0.017453292F ); - float f7 = f4 * f5; - float f8 = f3 * f5; - double d3 = 5.0D; + final double x = playerIn.prevPosX + ( playerIn.posX - playerIn.prevPosX ); + final double y = playerIn.prevPosY + ( playerIn.posY - playerIn.prevPosY ) + playerIn.getEyeHeight(); + final double z = playerIn.prevPosZ + ( playerIn.posZ - playerIn.prevPosZ ); - if( player instanceof EntityPlayerMP ) + final float playerPitch = playerIn.prevRotationPitch + ( playerIn.rotationPitch - playerIn.prevRotationPitch ); + final float playerYaw = playerIn.prevRotationYaw + ( playerIn.rotationYaw - playerIn.prevRotationYaw ); + + final float yawRayX = MathHelper.sin( -playerYaw * 0.017453292f - ( float ) Math.PI ); + final float yawRayZ = MathHelper.cos( -playerYaw * 0.017453292f - ( float ) Math.PI ); + + final float pitchMultiplier = -MathHelper.cos( -playerPitch * 0.017453292F ); + final float eyeRayY = MathHelper.sin( -playerPitch * 0.017453292F ); + final float eyeRayX = yawRayX * pitchMultiplier; + final float eyeRayZ = yawRayZ * pitchMultiplier; + + if ( playerIn instanceof EntityPlayerMP ) { - d3 = ( (EntityPlayerMP) player ).theItemInWorldManager.getBlockReachDistance(); + reachDistance = ( ( EntityPlayerMP ) playerIn ).theItemInWorldManager.getBlockReachDistance(); } - Vec3 vec31 = vec3.addVector( f7 * d3, f6 * d3, f8 * d3 ); - return new LookDirection( vec3, vec31 ); + + final Vec3 from = new Vec3( x, y, z ); + final Vec3 to = from.addVector( eyeRayX * reachDistance, eyeRayY * reachDistance, eyeRayZ * reachDistance ); + + return new LookDirection( from, to ); } public static MovingObjectPosition rayTrace( EntityPlayer p, boolean hitBlocks, boolean hitEntities ) @@ -1354,9 +1504,9 @@ public class Platform float f1 = p.prevRotationPitch + ( p.rotationPitch - p.prevRotationPitch ) * f; float f2 = p.prevRotationYaw + ( p.rotationYaw - p.prevRotationYaw ) * f; double d0 = p.prevPosX + ( p.posX - p.prevPosX ) * f; - double d1 = p.prevPosY + ( p.posY - p.prevPosY ) * f + 1.62D - p.yOffset; + double d1 = p.prevPosY + ( p.posY - p.prevPosY ) * f + 1.62D - p.getYOffset(); double d2 = p.prevPosZ + ( p.posZ - p.prevPosZ ) * f; - Vec3 vec3 = Vec3.createVectorHelper( d0, d1, d2 ); + Vec3 vec3 = new Vec3( d0, d1, d2 ); float f3 = MathHelper.cos( -f2 * 0.017453292F - (float) Math.PI ); float f4 = MathHelper.sin( -f2 * 0.017453292F - (float) Math.PI ); float f5 = -MathHelper.cos( -f1 * 0.017453292F ); @@ -1367,7 +1517,7 @@ public class Platform Vec3 vec31 = vec3.addVector( f7 * d3, f6 * d3, f8 * d3 ); - AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( Math.min( vec3.xCoord, vec31.xCoord ), Math.min( vec3.yCoord, vec31.yCoord ), Math.min( vec3.zCoord, vec31.zCoord ), Math.max( vec3.xCoord, vec31.xCoord ), Math.max( vec3.yCoord, vec31.yCoord ), Math.max( vec3.zCoord, vec31.zCoord ) ).expand( 16, 16, 16 ); + AxisAlignedBB bb = AxisAlignedBB.fromBounds( Math.min( vec3.xCoord, vec31.xCoord ), Math.min( vec3.yCoord, vec31.yCoord ), Math.min( vec3.zCoord, vec31.zCoord ), Math.max( vec3.xCoord, vec31.xCoord ), Math.max( vec3.yCoord, vec31.yCoord ), Math.max( vec3.zCoord, vec31.zCoord ) ).expand( 16, 16, 16 ); Entity entity = null; double closest = 9999999.0D; @@ -1391,7 +1541,7 @@ public class Platform } f1 = 0.3F; - AxisAlignedBB boundingBox = entity1.boundingBox.expand( f1, f1, f1 ); + AxisAlignedBB boundingBox = entity1.getBoundingBox().expand( f1, f1, f1 ); MovingObjectPosition movingObjectPosition = boundingBox.calculateIntercept( vec3, vec31 ); if( movingObjectPosition != null ) @@ -1414,7 +1564,7 @@ public class Platform if( hitBlocks ) { - vec = Vec3.createVectorHelper( d0, d1, d2 ); + vec = new Vec3( d0, d1, d2 ); pos = w.rayTraceBlocks( vec3, vec31, true ); } @@ -1634,11 +1784,11 @@ public class Platform if( target instanceof ISidedInventory ) { - for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS ) + for( EnumFacing dir : EnumFacing.VALUES ) { int offset = 0; - int[] sides = ( (ISidedInventory) target ).getAccessibleSlotsFromSide( dir.ordinal() ); + int[] sides = ( (ISidedInventory) target ).getSlotsForFace( dir ); if( sides == null ) { @@ -1729,17 +1879,17 @@ public class Platform return !gs.hasPermission( playerID, SecurityPermissions.BUILD ); } - public static void configurePlayer( EntityPlayer player, ForgeDirection side, TileEntity tile ) + public static void configurePlayer( EntityPlayer player, AEPartLocation side, TileEntity tile ) { float pitch = 0.0f; float yaw = 0.0f; - player.yOffset = 1.8f; + // player.yOffset = 1.8f; switch( side ) { case DOWN: pitch = 90.0f; - player.yOffset = -1.8f; + // player.getYOffset() = -1.8f; break; case EAST: yaw = -90.0f; @@ -1750,7 +1900,7 @@ public class Platform case SOUTH: yaw = 0.0f; break; - case UNKNOWN: + case INTERNAL: break; case UP: pitch = 90.0f; @@ -1760,9 +1910,9 @@ public class Platform break; } - player.posX = tile.xCoord + 0.5; - player.posY = tile.yCoord + 0.5; - player.posZ = tile.zCoord + 0.5; + player.posX = tile.getPos().getX() + 0.5; + player.posY = tile.getPos().getY() + 0.5; + player.posZ = tile.getPos().getZ() + 0.5; player.rotationPitch = player.prevCameraPitch = player.cameraPitch = pitch; player.rotationYaw = player.prevCameraYaw = player.cameraYaw = yaw; @@ -1909,11 +2059,11 @@ public class Platform return ci; } - public static void notifyBlocksOfNeighbors( World worldObj, int xCoord, int yCoord, int zCoord ) + public static void notifyBlocksOfNeighbors( World worldObj, BlockPos pos ) { if( !worldObj.isRemote ) { - TickHandler.INSTANCE.addCallable( worldObj, new BlockUpdate( worldObj, xCoord, yCoord, zCoord ) ); + TickHandler.INSTANCE.addCallable( worldObj, new BlockUpdate( worldObj, pos ) ); } } @@ -1973,7 +2123,7 @@ public class Platform { try { - WorldServer ws = (WorldServer) c.worldObj; + WorldServer ws = (WorldServer) c.getWorld(); PlayerManager pm = ws.getPlayerManager(); if( getOrCreateChunkWatcher == null ) @@ -2006,26 +2156,26 @@ public class Platform } } - public static AxisAlignedBB getPrimaryBox( ForgeDirection side, int facadeThickness ) + public static AxisAlignedBB getPrimaryBox( AEPartLocation side, int facadeThickness ) { switch( side ) { case DOWN: - return AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, 1.0, ( facadeThickness ) / 16.0, 1.0 ); + return AxisAlignedBB.fromBounds( 0.0, 0.0, 0.0, 1.0, ( facadeThickness ) / 16.0, 1.0 ); case EAST: - return AxisAlignedBB.getBoundingBox( ( 16.0 - facadeThickness ) / 16.0, 0.0, 0.0, 1.0, 1.0, 1.0 ); + return AxisAlignedBB.fromBounds( ( 16.0 - facadeThickness ) / 16.0, 0.0, 0.0, 1.0, 1.0, 1.0 ); case NORTH: - return AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, 1.0, 1.0, ( facadeThickness ) / 16.0 ); + return AxisAlignedBB.fromBounds( 0.0, 0.0, 0.0, 1.0, 1.0, ( facadeThickness ) / 16.0 ); case SOUTH: - return AxisAlignedBB.getBoundingBox( 0.0, 0.0, ( 16.0 - facadeThickness ) / 16.0, 1.0, 1.0, 1.0 ); + return AxisAlignedBB.fromBounds( 0.0, 0.0, ( 16.0 - facadeThickness ) / 16.0, 1.0, 1.0, 1.0 ); case UP: - return AxisAlignedBB.getBoundingBox( 0.0, ( 16.0 - facadeThickness ) / 16.0, 0.0, 1.0, 1.0, 1.0 ); + return AxisAlignedBB.fromBounds( 0.0, ( 16.0 - facadeThickness ) / 16.0, 0.0, 1.0, 1.0, 1.0 ); case WEST: - return AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, ( facadeThickness ) / 16.0, 1.0, 1.0 ); + return AxisAlignedBB.fromBounds( 0.0, 0.0, 0.0, ( facadeThickness ) / 16.0, 1.0, 1.0 ); default: break; } - return AxisAlignedBB.getBoundingBox( 0, 0, 0, 1, 1, 1 ); + return AxisAlignedBB.fromBounds( 0, 0, 0, 1, 1, 1 ); } public static float getEyeOffset( EntityPlayer player ) diff --git a/src/main/java/appeng/util/inv/AdaptorBCPipe.java b/src/main/java/appeng/util/inv/AdaptorBCPipe.java index e78beaf7..55442ad6 100644 --- a/src/main/java/appeng/util/inv/AdaptorBCPipe.java +++ b/src/main/java/appeng/util/inv/AdaptorBCPipe.java @@ -23,9 +23,8 @@ import java.util.Iterator; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.config.FuzzyMode; +import appeng.api.util.ForgeDirection; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; diff --git a/src/main/java/appeng/util/inv/AdaptorIInventory.java b/src/main/java/appeng/util/inv/AdaptorIInventory.java index 309255b1..0a89a240 100644 --- a/src/main/java/appeng/util/inv/AdaptorIInventory.java +++ b/src/main/java/appeng/util/inv/AdaptorIInventory.java @@ -23,7 +23,6 @@ import java.util.Iterator; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; - import appeng.api.config.FuzzyMode; import appeng.util.InventoryAdaptor; import appeng.util.Platform; diff --git a/src/main/java/appeng/util/inv/AdaptorList.java b/src/main/java/appeng/util/inv/AdaptorList.java index ddcf9447..8a7937d7 100644 --- a/src/main/java/appeng/util/inv/AdaptorList.java +++ b/src/main/java/appeng/util/inv/AdaptorList.java @@ -23,7 +23,6 @@ import java.util.Iterator; import java.util.List; import net.minecraft.item.ItemStack; - import appeng.api.config.FuzzyMode; import appeng.util.InventoryAdaptor; import appeng.util.Platform; diff --git a/src/main/java/appeng/util/inv/AdaptorPlayerHand.java b/src/main/java/appeng/util/inv/AdaptorPlayerHand.java index 1cd6c7c6..bd7f1e01 100644 --- a/src/main/java/appeng/util/inv/AdaptorPlayerHand.java +++ b/src/main/java/appeng/util/inv/AdaptorPlayerHand.java @@ -23,7 +23,6 @@ import java.util.Iterator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; - import appeng.api.config.FuzzyMode; import appeng.util.InventoryAdaptor; import appeng.util.Platform; diff --git a/src/main/java/appeng/util/inv/AdaptorPlayerInventory.java b/src/main/java/appeng/util/inv/AdaptorPlayerInventory.java index 57e79a38..828dff16 100644 --- a/src/main/java/appeng/util/inv/AdaptorPlayerInventory.java +++ b/src/main/java/appeng/util/inv/AdaptorPlayerInventory.java @@ -22,6 +22,7 @@ package appeng.util.inv; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.IChatComponent; public class AdaptorPlayerInventory implements IInventory @@ -73,15 +74,15 @@ public class AdaptorPlayerInventory implements IInventory { this.src.setInventorySlotContents( var1 + this.min, var2 ); } - + @Override - public String getInventoryName() + public IChatComponent getDisplayName() { - return this.src.getInventoryName(); + return this.src.getDisplayName(); } - + @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -103,17 +104,19 @@ public class AdaptorPlayerInventory implements IInventory { return this.src.isUseableByPlayer( var1 ); } - + @Override - public void openInventory() + public void openInventory( + EntityPlayer player ) { - this.src.openInventory(); + this.src.openInventory(player); + } - @Override - public void closeInventory() + public void closeInventory( + EntityPlayer player ) { - this.src.closeInventory(); + this.src.closeInventory(player); } @Override @@ -121,4 +124,37 @@ public class AdaptorPlayerInventory implements IInventory { return this.src.isItemValidForSlot( i, itemstack ); } + + @Override + public String getName() + { + return src.getName(); + } + + @Override + public int getField( + int id ) + { + return src.getField( id ); + } + + @Override + public void setField( + int id, + int value ) + { + src.setField( id, value ); + } + + @Override + public int getFieldCount() + { + return src.getFieldCount(); + } + + @Override + public void clear() + { + src.clear(); + } } diff --git a/src/main/java/appeng/util/inv/IMEAdaptor.java b/src/main/java/appeng/util/inv/IMEAdaptor.java index 84c89ed3..7e652615 100644 --- a/src/main/java/appeng/util/inv/IMEAdaptor.java +++ b/src/main/java/appeng/util/inv/IMEAdaptor.java @@ -21,10 +21,7 @@ package appeng.util.inv; import java.util.Iterator; -import com.google.common.collect.ImmutableList; - import net.minecraft.item.ItemStack; - import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.FuzzyMode; @@ -35,6 +32,8 @@ import appeng.api.storage.data.IItemList; import appeng.util.InventoryAdaptor; import appeng.util.item.AEItemStack; +import com.google.common.collect.ImmutableList; + public class IMEAdaptor extends InventoryAdaptor { diff --git a/src/main/java/appeng/util/inv/IMEInventoryDestination.java b/src/main/java/appeng/util/inv/IMEInventoryDestination.java index bd08144d..dd53bc22 100644 --- a/src/main/java/appeng/util/inv/IMEInventoryDestination.java +++ b/src/main/java/appeng/util/inv/IMEInventoryDestination.java @@ -20,7 +20,6 @@ package appeng.util.inv; import net.minecraft.item.ItemStack; - import appeng.api.config.Actionable; import appeng.api.storage.IMEInventory; import appeng.api.storage.data.IAEItemStack; diff --git a/src/main/java/appeng/util/inv/ItemSlot.java b/src/main/java/appeng/util/inv/ItemSlot.java index 5ee62c4d..83534822 100644 --- a/src/main/java/appeng/util/inv/ItemSlot.java +++ b/src/main/java/appeng/util/inv/ItemSlot.java @@ -20,7 +20,6 @@ package appeng.util.inv; import net.minecraft.item.ItemStack; - import appeng.api.storage.data.IAEItemStack; import appeng.util.item.AEItemStack; diff --git a/src/main/java/appeng/util/inv/WrapperBCPipe.java b/src/main/java/appeng/util/inv/WrapperBCPipe.java index fd65eb04..f7b1c0bc 100644 --- a/src/main/java/appeng/util/inv/WrapperBCPipe.java +++ b/src/main/java/appeng/util/inv/WrapperBCPipe.java @@ -23,8 +23,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - +import appeng.api.util.ForgeDirection; import appeng.integration.IntegrationRegistry; import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; diff --git a/src/main/java/appeng/util/inv/WrapperChainedInventory.java b/src/main/java/appeng/util/inv/WrapperChainedInventory.java index fb05bfed..60a682a6 100644 --- a/src/main/java/appeng/util/inv/WrapperChainedInventory.java +++ b/src/main/java/appeng/util/inv/WrapperChainedInventory.java @@ -24,11 +24,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.google.common.collect.ImmutableList; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.IChatComponent; + +import com.google.common.collect.ImmutableList; public class WrapperChainedInventory implements IInventory @@ -167,13 +168,13 @@ public class WrapperChainedInventory implements IInventory } @Override - public String getInventoryName() + public String getName() { return "ChainedInv"; } @Override - public boolean hasCustomInventoryName() + public boolean hasCustomName() { return false; } @@ -205,14 +206,16 @@ public class WrapperChainedInventory implements IInventory { return false; } - + @Override - public void openInventory() + public void openInventory( + EntityPlayer player ) { } - + @Override - public void closeInventory() + public void closeInventory( + EntityPlayer player ) { } @@ -234,4 +237,37 @@ public class WrapperChainedInventory implements IInventory int size; IInventory i; } + + @Override + public IChatComponent getDisplayName() + { + return null; + } + + @Override + public int getField( + int id ) + { + return 0; + } + + @Override + public void setField( + int id, + int value ) + { + + } + + @Override + public int getFieldCount() + { + return 0; + } + + @Override + public void clear() + { + + } } diff --git a/src/main/java/appeng/util/inv/WrapperInvSlot.java b/src/main/java/appeng/util/inv/WrapperInvSlot.java index 3bd37978..e6479590 100644 --- a/src/main/java/appeng/util/inv/WrapperInvSlot.java +++ b/src/main/java/appeng/util/inv/WrapperInvSlot.java @@ -22,6 +22,7 @@ package appeng.util.inv; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.IChatComponent; public class WrapperInvSlot @@ -86,18 +87,6 @@ public class WrapperInvSlot this.inv.setInventorySlotContents( this.slot, itemstack ); } - @Override - public String getInventoryName() - { - return this.inv.getInventoryName(); - } - - @Override - public boolean hasCustomInventoryName() - { - return this.inv.hasCustomInventoryName(); - } - @Override public int getInventoryStackLimit() { @@ -117,21 +106,68 @@ public class WrapperInvSlot } @Override - public void openInventory() + public String getName() { - this.inv.openInventory(); + return this.inv.getName(); } @Override - public void closeInventory() + public boolean hasCustomName() { - this.inv.closeInventory(); + return this.inv.hasCustomName(); } + @Override + public void openInventory( + EntityPlayer player ) + { + this.inv.openInventory(player); + } + + @Override + public void closeInventory( + EntityPlayer player ) + { + this.inv.closeInventory(player); + } + + @Override + public void clear() + { + this.inv.clear(); + } + + @Override + public int getField( + int id ) + { + return inv.getField( id ); + } + + @Override + public int getFieldCount() + { + return this.inv.getFieldCount(); + } + @Override public boolean isItemValidForSlot( int i, ItemStack itemstack ) { return WrapperInvSlot.this.isItemValid( itemstack ) && this.inv.isItemValidForSlot( this.slot, itemstack ); } + + @Override + public IChatComponent getDisplayName() + { + return inv.getDisplayName(); + } + + @Override + public void setField( + int id, + int value ) + { + inv.setField( id, value ); + } } } diff --git a/src/main/java/appeng/util/inv/WrapperInventoryRange.java b/src/main/java/appeng/util/inv/WrapperInventoryRange.java index 6a5140a7..235e2328 100644 --- a/src/main/java/appeng/util/inv/WrapperInventoryRange.java +++ b/src/main/java/appeng/util/inv/WrapperInventoryRange.java @@ -22,6 +22,7 @@ package appeng.util.inv; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; +import net.minecraft.util.IChatComponent; public class WrapperInventoryRange implements IInventory @@ -103,18 +104,6 @@ public class WrapperInventoryRange implements IInventory this.src.setInventorySlotContents( this.slots[var1], var2 ); } - @Override - public String getInventoryName() - { - return this.src.getInventoryName(); - } - - @Override - public boolean hasCustomInventoryName() - { - return false; - } - @Override public int getInventoryStackLimit() { @@ -134,17 +123,63 @@ public class WrapperInventoryRange implements IInventory } @Override - public void openInventory() + public String getName() { - this.src.openInventory(); + return this.src.getName(); } @Override - public void closeInventory() + public boolean hasCustomName() { - this.src.closeInventory(); + return this.src.hasCustomName(); } + @Override + public void openInventory( + EntityPlayer player ) + { + this.src.openInventory(player); + } + + @Override + public void closeInventory( + EntityPlayer player ) + { + this.src.closeInventory(player); + } + + @Override + public void clear() + { + this.src.clear(); + } + + @Override + public int getField( + int id ) + { + return src.getField( id ); + } + + @Override + public int getFieldCount() + { + return this.src.getFieldCount(); + } + + @Override + public IChatComponent getDisplayName() + { + return src.getDisplayName(); + } + + @Override + public void setField( + int id, + int value ) + { + src.setField( id, value ); + } @Override public boolean isItemValidForSlot( int i, ItemStack itemstack ) { diff --git a/src/main/java/appeng/util/inv/WrapperMCISidedInventory.java b/src/main/java/appeng/util/inv/WrapperMCISidedInventory.java index 7e695220..038ac56c 100644 --- a/src/main/java/appeng/util/inv/WrapperMCISidedInventory.java +++ b/src/main/java/appeng/util/inv/WrapperMCISidedInventory.java @@ -21,18 +21,18 @@ package appeng.util.inv; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.EnumFacing; public class WrapperMCISidedInventory extends WrapperInventoryRange implements IInventoryWrapper { final ISidedInventory side; - private final ForgeDirection dir; + private final EnumFacing dir; - public WrapperMCISidedInventory( ISidedInventory a, ForgeDirection d ) + public WrapperMCISidedInventory( ISidedInventory a, EnumFacing d ) { - super( a, a.getAccessibleSlotsFromSide( d.ordinal() ), false ); + super( a, a.getSlotsForFace( d ), false ); this.side = a; this.dir = d; } @@ -58,7 +58,7 @@ public class WrapperMCISidedInventory extends WrapperInventoryRange implements I if( this.side.isItemValidForSlot( this.slots[i], itemstack ) ) { - return this.side.canInsertItem( this.slots[i], itemstack, this.dir.ordinal() ); + return this.side.canInsertItem( this.slots[i], itemstack, this.dir ); } return false; @@ -72,6 +72,6 @@ public class WrapperMCISidedInventory extends WrapperInventoryRange implements I return false; } - return this.side.canExtractItem( this.slots[i], is, this.dir.ordinal() ); + return this.side.canExtractItem( this.slots[i], is, this.dir ); } } diff --git a/src/main/java/appeng/util/inv/WrapperTEPipe.java b/src/main/java/appeng/util/inv/WrapperTEPipe.java index 5436eca7..6a6d546f 100644 --- a/src/main/java/appeng/util/inv/WrapperTEPipe.java +++ b/src/main/java/appeng/util/inv/WrapperTEPipe.java @@ -19,11 +19,11 @@ package appeng.util.inv; +import appeng.api.util.ForgeDirection; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; public class WrapperTEPipe implements IInventory diff --git a/src/main/java/appeng/util/item/AEFluidStack.java b/src/main/java/appeng/util/item/AEFluidStack.java index 8151f21c..8404715f 100644 --- a/src/main/java/appeng/util/item/AEFluidStack.java +++ b/src/main/java/appeng/util/item/AEFluidStack.java @@ -19,6 +19,8 @@ package appeng.util.item; +import io.netty.buffer.ByteBuf; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; @@ -27,15 +29,12 @@ import java.io.IOException; import javax.annotation.Nonnull; -import io.netty.buffer.ByteBuf; - import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; - import appeng.api.config.FuzzyMode; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEFluidStack; diff --git a/src/main/java/appeng/util/item/AEItemDef.java b/src/main/java/appeng/util/item/AEItemDef.java index 619eed74..02ee2fd6 100644 --- a/src/main/java/appeng/util/item/AEItemDef.java +++ b/src/main/java/appeng/util/item/AEItemDef.java @@ -24,11 +24,9 @@ import java.util.List; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; - -import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.common.registry.GameRegistry.UniqueIdentifier; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.util.Platform; diff --git a/src/main/java/appeng/util/item/AEItemStack.java b/src/main/java/appeng/util/item/AEItemStack.java index 62e059f9..08561368 100644 --- a/src/main/java/appeng/util/item/AEItemStack.java +++ b/src/main/java/appeng/util/item/AEItemStack.java @@ -19,6 +19,8 @@ package appeng.util.item; +import io.netty.buffer.ByteBuf; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; @@ -29,18 +31,14 @@ import java.util.List; import javax.annotation.Nullable; -import io.netty.buffer.ByteBuf; - import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; - -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.fml.common.registry.GameRegistry.UniqueIdentifier; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import appeng.api.config.FuzzyMode; import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEItemStack; @@ -95,7 +93,7 @@ public final class AEItemStack extends AEStack implements IAEItemS * Kinda hackery */ this.def.damageValue = this.def.getDamageValueHack( is ); - this.def.displayDamage = is.getItemDamageForDisplay(); + this.def.displayDamage = ( int ) ( is.getItem().getDurabilityForDisplay( is ) * Integer.MAX_VALUE ); this.def.maxDamage = is.getMaxDamage(); NBTTagCompound tagCompound = is.getTagCompound(); @@ -286,12 +284,18 @@ public final class AEItemStack extends AEStack implements IAEItemS } else if( mode == FuzzyMode.PERCENT_99 ) { - return ( a.getItemDamageForDisplay() > 1 ) == ( b.getItemDamageForDisplay() > 1 ); + Item ai = a.getItem(); + Item bi = b.getItem(); + + return ( ai.getDurabilityForDisplay( a ) < 0.001f ) == ( bi.getDurabilityForDisplay( b ) < 0.001f ); } else { - float percentDamageOfA = 1.0f - (float) a.getItemDamageForDisplay() / (float) a.getMaxDamage(); - float percentDamageOfB = 1.0f - (float) b.getItemDamageForDisplay() / (float) b.getMaxDamage(); + Item ai = a.getItem(); + Item bi = b.getItem(); + + float percentDamageOfA = 1.0f - (float) ai.getDurabilityForDisplay(a); + float percentDamageOfB = 1.0f - (float) bi.getDurabilityForDisplay(b); return ( percentDamageOfA > mode.breakPoint ) == ( percentDamageOfB > mode.breakPoint ); } @@ -340,12 +344,18 @@ public final class AEItemStack extends AEStack implements IAEItemS } else if( mode == FuzzyMode.PERCENT_99 ) { - return ( a.getItemDamageForDisplay() > 1 ) == ( o.getItemDamageForDisplay() > 1 ); + Item ai = a.getItem(); + Item bi = o.getItem(); + + return ( ai.getDurabilityForDisplay( a ) < 0.001f ) == ( bi.getDurabilityForDisplay( o ) < 0.001f ); } else { - float percentDamageOfA = 1.0f - (float) a.getItemDamageForDisplay() / (float) a.getMaxDamage(); - float percentDamageOfB = 1.0f - (float) o.getItemDamageForDisplay() / (float) o.getMaxDamage(); + Item ai = a.getItem(); + Item bi = o.getItem(); + + float percentDamageOfA = 1.0f - (float) ai.getDurabilityForDisplay(a); + float percentDamageOfB = 1.0f - (float) bi.getDurabilityForDisplay(o); return ( percentDamageOfA > mode.breakPoint ) == ( percentDamageOfB > mode.breakPoint ); } diff --git a/src/main/java/appeng/util/item/AESharedNBT.java b/src/main/java/appeng/util/item/AESharedNBT.java index 18f07302..e57a0f2b 100644 --- a/src/main/java/appeng/util/item/AESharedNBT.java +++ b/src/main/java/appeng/util/item/AESharedNBT.java @@ -25,7 +25,6 @@ import java.util.WeakHashMap; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; - import appeng.api.AEApi; import appeng.api.features.IItemComparison; import appeng.api.storage.data.IAETagCompound; @@ -130,7 +129,7 @@ public class AESharedNBT extends NBTTagCompound implements IAETagCompound AESharedNBT x = new AESharedNBT( itemID, damageValue ); // c.getTags() - for( Object o : c.func_150296_c() ) + for( Object o : c.getKeySet() ) { String name = (String) o; x.setTag( name, c.getTag( name ).copy() ); diff --git a/src/main/java/appeng/util/item/AEStack.java b/src/main/java/appeng/util/item/AEStack.java index 24ee614c..6427b413 100644 --- a/src/main/java/appeng/util/item/AEStack.java +++ b/src/main/java/appeng/util/item/AEStack.java @@ -19,10 +19,10 @@ package appeng.util.item; -import java.io.IOException; - import io.netty.buffer.ByteBuf; +import java.io.IOException; + import appeng.api.storage.data.IAEStack; diff --git a/src/main/java/appeng/util/item/ItemList.java b/src/main/java/appeng/util/item/ItemList.java index c275e97f..7f98d163 100644 --- a/src/main/java/appeng/util/item/ItemList.java +++ b/src/main/java/appeng/util/item/ItemList.java @@ -27,16 +27,15 @@ import java.util.List; import java.util.NavigableMap; import java.util.concurrent.ConcurrentSkipListMap; -import com.google.common.collect.Lists; - import net.minecraftforge.oredict.OreDictionary; - import appeng.api.config.FuzzyMode; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IItemList; +import com.google.common.collect.Lists; + public final class ItemList implements IItemList { diff --git a/src/main/java/appeng/util/item/OreHelper.java b/src/main/java/appeng/util/item/OreHelper.java index d949094b..d39827de 100644 --- a/src/main/java/appeng/util/item/OreHelper.java +++ b/src/main/java/appeng/util/item/OreHelper.java @@ -26,16 +26,15 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; - import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.storage.data.IAEItemStack; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; + public class OreHelper { diff --git a/src/main/java/appeng/util/item/OreReference.java b/src/main/java/appeng/util/item/OreReference.java index d7c64372..00dfb61c 100644 --- a/src/main/java/appeng/util/item/OreReference.java +++ b/src/main/java/appeng/util/item/OreReference.java @@ -27,7 +27,6 @@ import java.util.List; import java.util.Set; import net.minecraft.item.ItemStack; - import appeng.api.storage.data.IAEItemStack; diff --git a/src/main/java/appeng/util/item/SharedSearchObject.java b/src/main/java/appeng/util/item/SharedSearchObject.java index 2926e3de..c99fa1dd 100644 --- a/src/main/java/appeng/util/item/SharedSearchObject.java +++ b/src/main/java/appeng/util/item/SharedSearchObject.java @@ -21,7 +21,6 @@ package appeng.util.item; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; - import appeng.util.Platform; diff --git a/src/main/java/appeng/util/iterators/ProxyNodeIterator.java b/src/main/java/appeng/util/iterators/ProxyNodeIterator.java index 559ea344..b35b83b9 100644 --- a/src/main/java/appeng/util/iterators/ProxyNodeIterator.java +++ b/src/main/java/appeng/util/iterators/ProxyNodeIterator.java @@ -21,10 +21,9 @@ package appeng.util.iterators; import java.util.Iterator; -import net.minecraftforge.common.util.ForgeDirection; - import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; +import appeng.api.util.AEPartLocation; public final class ProxyNodeIterator implements Iterator @@ -46,7 +45,7 @@ public final class ProxyNodeIterator implements Iterator public IGridNode next() { IGridHost host = this.hosts.next(); - return host.getGridNode( ForgeDirection.UNKNOWN ); + return host.getGridNode( AEPartLocation.INTERNAL ); } @Override diff --git a/src/main/java/appeng/util/iterators/StackToSlotIterator.java b/src/main/java/appeng/util/iterators/StackToSlotIterator.java index 397e483c..2172f5bf 100644 --- a/src/main/java/appeng/util/iterators/StackToSlotIterator.java +++ b/src/main/java/appeng/util/iterators/StackToSlotIterator.java @@ -22,7 +22,6 @@ package appeng.util.iterators; import java.util.Iterator; import net.minecraft.item.ItemStack; - import appeng.util.inv.ItemSlot; diff --git a/src/main/java/appeng/worldgen/MeteoritePlacer.java b/src/main/java/appeng/worldgen/MeteoritePlacer.java index 2beecd44..15c34afe 100644 --- a/src/main/java/appeng/worldgen/MeteoritePlacer.java +++ b/src/main/java/appeng/worldgen/MeteoritePlacer.java @@ -25,6 +25,7 @@ import java.util.LinkedList; import java.util.List; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.init.Blocks; @@ -33,9 +34,9 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; +import net.minecraft.util.BlockPos; +import net.minecraft.util.EnumFacing; import net.minecraftforge.oredict.OreDictionary; - import appeng.api.AEApi; import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlocks; @@ -99,7 +100,13 @@ public final class MeteoritePlacer this.invalidSpawn.add( Blocks.planks ); this.invalidSpawn.add( Blocks.iron_door ); this.invalidSpawn.add( Blocks.iron_bars ); - this.invalidSpawn.add( Blocks.wooden_door ); + this.invalidSpawn.add( Blocks.oak_door ); + this.invalidSpawn.add( Blocks.acacia_door ); + this.invalidSpawn.add( Blocks.birch_door ); + this.invalidSpawn.add( Blocks.dark_oak_door ); + this.invalidSpawn.add( Blocks.iron_door ); + this.invalidSpawn.add( Blocks.jungle_door ); + this.invalidSpawn.add( Blocks.spruce_door ); this.invalidSpawn.add( Blocks.brick_block ); this.invalidSpawn.add( Blocks.clay ); this.invalidSpawn.add( Blocks.water ); @@ -183,7 +190,7 @@ public final class MeteoritePlacer if( j > h + distanceFrom * 0.02 ) { - if( lava && j < y && w.getBlock( x, y - 1, z ).isBlockSolid( w.getWorld(), i, j, k, 0 ) ) + if( lava && j < y && w.getBlock( x, y - 1, z ).isBlockSolid( w.getWorld(), new BlockPos( i, j, k ), EnumFacing.UP ) ) { if( j > h + distanceFrom * 0.02 ) { @@ -199,7 +206,7 @@ public final class MeteoritePlacer } } - for( Object o : w.getWorld().getEntitiesWithinAABB( EntityItem.class, AxisAlignedBB.getBoundingBox( w.minX( x - 30 ), y - 5, w.minZ( z - 30 ), w.maxX( x + 30 ), y + 30, w.maxZ( z + 30 ) ) ) ) + for( Object o : w.getWorld().getEntitiesWithinAABB( EntityItem.class, AxisAlignedBB.fromBounds( w.minX( x - 30 ), y - 5, w.minZ( z - 30 ), w.maxX( x + 30 ), y + 30, w.maxZ( z + 30 ) ) ) ) { Entity e = (Entity) o; e.setDead(); @@ -245,7 +252,7 @@ public final class MeteoritePlacer TileEntity te = w.getTileEntity( x, y, z ); if( te instanceof IInventory ) { - InventoryAdaptor ap = InventoryAdaptor.getAdaptor( te, ForgeDirection.UP ); + InventoryAdaptor ap = InventoryAdaptor.getAdaptor( te, EnumFacing.UP ); int primary = Math.max( 1, (int) ( Math.random() * 4 ) ); @@ -379,17 +386,16 @@ public final class MeteoritePlacer continue; } - if( blk.isReplaceable( w.getWorld(), i, j, k ) ) + if( blk.isReplaceable( w.getWorld(), new BlockPos( i, j, k ) ) ) { blk = Platform.AIR_BLOCK; Block blk_b = w.getBlock( i, j + 1, k ); if( blk_b != blk ) { - int meta_b = w.getBlockMetadata( i, j + 1, k ); + IBlockState meta_b = w.getBlockState( i, j + 1, k ); - w.setBlock( i, j, k, blk_b, meta_b, 3 ); - w.setBlock( i, j + 1, k, blk ); + w.setBlock( i, j, k, meta_b, 3 ); } else if( randomShit < 100 * this.crater ) { @@ -399,7 +405,7 @@ public final class MeteoritePlacer double dist = dx * dx + dy * dy + dz * dz; Block xf = w.getBlock( i, j - 1, k ); - if( !xf.isReplaceable( w.getWorld(), i, j - 1, k ) ) + if( !xf.isReplaceable( w.getWorld(), new BlockPos(i, j - 1, k) ) ) { double extraRange = Math.random() * 0.6; double height = this.crater * ( extraRange + 0.2 ) - Math.abs( dist - this.crater * 1.7 ); @@ -573,7 +579,7 @@ public final class MeteoritePlacer this.settings.setInteger( "skyMode", skyMode ); w.done(); - WorldSettings.getInstance().addNearByMeteorites( w.getWorld().provider.dimensionId, x >> 4, z >> 4, this.settings ); + WorldSettings.getInstance().addNearByMeteorites( w.getWorld().provider.getDimensionId(), x >> 4, z >> 4, this.settings ); return true; } return false; diff --git a/src/main/java/appeng/worldgen/MeteoriteWorldGen.java b/src/main/java/appeng/worldgen/MeteoriteWorldGen.java index 6320c06e..3adca8d8 100644 --- a/src/main/java/appeng/worldgen/MeteoriteWorldGen.java +++ b/src/main/java/appeng/worldgen/MeteoriteWorldGen.java @@ -26,9 +26,7 @@ import java.util.concurrent.Callable; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; - -import cpw.mods.fml.common.IWorldGenerator; - +import net.minecraftforge.fml.common.IWorldGenerator; import appeng.api.features.IWorldGen.WorldGenType; import appeng.core.AEConfig; import appeng.core.WorldSettings; @@ -87,7 +85,7 @@ public final class MeteoriteWorldGen implements IWorldGenerator continue; } - if( WorldSettings.getInstance().hasGenerated( w.provider.dimensionId, cx, cz ) ) + if( WorldSettings.getInstance().hasGenerated( w.provider.getDimensionId(), cx, cz ) ) { MeteoritePlacer mp2 = new MeteoritePlacer(); mp2.spawnMeteorite( new ChunkOnly( w, cx, cz ), mp.getSettings() ); @@ -111,7 +109,7 @@ public final class MeteoriteWorldGen implements IWorldGenerator private Collection getNearByMeteorites( World w, int chunkX, int chunkZ ) { - return WorldSettings.getInstance().getNearByMeteorites( w.provider.dimensionId, chunkX, chunkZ ); + return WorldSettings.getInstance().getNearByMeteorites( w.provider.getDimensionId(), chunkX, chunkZ ); } class MeteoriteSpawn implements Callable @@ -154,7 +152,7 @@ public final class MeteoriteWorldGen implements IWorldGenerator MeteoriteWorldGen.this.tryMeteorite( this.w, this.depth, this.x, this.z ); } - WorldSettings.getInstance().setGenerated( this.w.provider.dimensionId, chunkX, chunkZ ); + WorldSettings.getInstance().setGenerated( this.w.provider.getDimensionId(), chunkX, chunkZ ); WorldSettings.getInstance().getCompass().updateArea( this.w, chunkX, chunkZ ); return null; diff --git a/src/main/java/appeng/worldgen/QuartzWorldGen.java b/src/main/java/appeng/worldgen/QuartzWorldGen.java index d8393d46..b57bfbab 100644 --- a/src/main/java/appeng/worldgen/QuartzWorldGen.java +++ b/src/main/java/appeng/worldgen/QuartzWorldGen.java @@ -22,13 +22,11 @@ package appeng.worldgen; import java.util.Random; import net.minecraft.block.Block; -import net.minecraft.init.Blocks; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; - -import cpw.mods.fml.common.IWorldGenerator; - +import net.minecraftforge.fml.common.IWorldGenerator; import appeng.api.AEApi; import appeng.api.definitions.IBlockDefinition; import appeng.api.definitions.IBlocks; @@ -51,8 +49,8 @@ public final class QuartzWorldGen implements IWorldGenerator final Block ore = oreDefinition.maybeBlock().orNull(); final Block charged = chargedDefinition.maybeBlock().orNull(); - this.oreNormal = new WorldGenMinable( ore, 0, AEConfig.instance.quartzOresPerCluster, Blocks.stone ); - this.oreCharged = new WorldGenMinable( charged, 0, AEConfig.instance.quartzOresPerCluster, Blocks.stone ); + this.oreNormal = new WorldGenMinable( ore.getDefaultState(), AEConfig.instance.quartzOresPerCluster ); + this.oreCharged = new WorldGenMinable( charged.getDefaultState(), AEConfig.instance.quartzOresPerCluster ); } @Override @@ -64,7 +62,7 @@ public final class QuartzWorldGen implements IWorldGenerator { int x = ( chunkX << 4 ) + 8; int z = ( chunkZ << 4 ) + 8; - seaLevel = w.getHeightValue( x, z ); + seaLevel = w.getHorizon( new BlockPos( x, 0, z) ).getY(); } if( this.oreNormal == null || this.oreCharged == null ) @@ -85,7 +83,7 @@ public final class QuartzWorldGen implements IWorldGenerator int cx = chunkX * 16 + r.nextInt( 22 ); int cy = r.nextInt( 40 * seaLevel / 64 ) + r.nextInt( 22 * seaLevel / 64 ) + 12 * seaLevel / 64; int cz = chunkZ * 16 + r.nextInt( 22 ); - whichOre.generate( w, r, cx, cy, cz ); + whichOre.generate( w, r, new BlockPos( cx, cy, cz ) ); } } } diff --git a/src/main/java/appeng/worldgen/meteorite/ChunkOnly.java b/src/main/java/appeng/worldgen/meteorite/ChunkOnly.java index 7ab8a636..71217b70 100644 --- a/src/main/java/appeng/worldgen/meteorite/ChunkOnly.java +++ b/src/main/java/appeng/worldgen/meteorite/ChunkOnly.java @@ -2,9 +2,10 @@ package appeng.worldgen.meteorite; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; - import appeng.util.Platform; @@ -48,22 +49,12 @@ public class ChunkOnly extends StandardWorld return Math.min( in, ( this.cz + 1 ) << 4 ); } - @Override - public int getBlockMetadata( int x, int y, int z ) - { - if( this.range( x, y, z ) ) - { - return this.target.getBlockMetadata( x & 0xF, y, z & 0xF ); - } - return 0; - } - @Override public Block getBlock( int x, int y, int z ) { if( this.range( x, y, z ) ) { - return this.target.getBlock( x & 0xF, y, z & 0xF ); + return this.target.getBlock( x, y, z ); } return Platform.AIR_BLOCK; } @@ -74,17 +65,17 @@ public class ChunkOnly extends StandardWorld if( this.range( x, y, z ) ) { this.verticalBits |= 1 << ( y >> 4 ); - this.w.setBlock( x, y, z, blk, 0, 1 ); + this.w.setBlockState( new BlockPos( x, y, z), blk.getDefaultState() ); } } @Override - public void setBlock( int x, int y, int z, Block block, int meta, int flags ) + public void setBlock( int x, int y, int z, IBlockState state, int flags ) { if( this.range( x, y, z ) ) { this.verticalBits |= 1 << ( y >> 4 ); - this.w.setBlock( x, y, z, block, meta, flags & ( ~2 ) ); + this.w.setBlockState( new BlockPos( x, y, z ), state, flags & ( ~2 ) ); } } diff --git a/src/main/java/appeng/worldgen/meteorite/Fallout.java b/src/main/java/appeng/worldgen/meteorite/Fallout.java index 12fca12d..3db4b782 100644 --- a/src/main/java/appeng/worldgen/meteorite/Fallout.java +++ b/src/main/java/appeng/worldgen/meteorite/Fallout.java @@ -3,7 +3,6 @@ package appeng.worldgen.meteorite; import net.minecraft.block.Block; import net.minecraft.init.Blocks; - import appeng.api.definitions.IBlockDefinition; import appeng.util.Platform; diff --git a/src/main/java/appeng/worldgen/meteorite/FalloutCopy.java b/src/main/java/appeng/worldgen/meteorite/FalloutCopy.java index 3e9e378d..a34a34c4 100644 --- a/src/main/java/appeng/worldgen/meteorite/FalloutCopy.java +++ b/src/main/java/appeng/worldgen/meteorite/FalloutCopy.java @@ -1,8 +1,7 @@ package appeng.worldgen.meteorite; -import net.minecraft.block.Block; - +import net.minecraft.block.state.IBlockState; import appeng.api.definitions.IBlockDefinition; import appeng.util.Platform; @@ -13,16 +12,14 @@ public class FalloutCopy extends Fallout public static final double AIR_BLOCK_THRESHOLD = 0.8; public static final double BLOCK_THRESHOLD_STEP = 0.1; - private final Block block; - private final int meta; + private final IBlockState block; private final MeteoriteBlockPutter putter; public FalloutCopy( IMeteoriteWorld w, int x, int y, int z, MeteoriteBlockPutter putter, IBlockDefinition skyStoneDefinition ) { super( putter, skyStoneDefinition ); this.putter = putter; - this.block = w.getBlock( x, y, z ); - this.meta = w.getBlockMetadata( x, y, z ); + this.block = w.getBlockState( x, y, z ); } @Override @@ -31,7 +28,7 @@ public class FalloutCopy extends Fallout double a = Math.random(); if( a > SPECIFIED_BLOCK_THRESHOLD ) { - this.putter.put( w, x, y, z, this.block, this.meta ); + this.putter.put( w, x, y, z, this.block, 3 ); } else { @@ -50,7 +47,7 @@ public class FalloutCopy extends Fallout double a = Math.random(); if( a > SPECIFIED_BLOCK_THRESHOLD ) { - this.putter.put( w, x, y, z, this.block, this.meta ); + this.putter.put( w, x, y, z, this.block, 3 ); } else if( a > AIR_BLOCK_THRESHOLD ) { diff --git a/src/main/java/appeng/worldgen/meteorite/FalloutSand.java b/src/main/java/appeng/worldgen/meteorite/FalloutSand.java index c9a08877..c8ea8434 100644 --- a/src/main/java/appeng/worldgen/meteorite/FalloutSand.java +++ b/src/main/java/appeng/worldgen/meteorite/FalloutSand.java @@ -2,7 +2,6 @@ package appeng.worldgen.meteorite; import net.minecraft.init.Blocks; - import appeng.api.definitions.IBlockDefinition; diff --git a/src/main/java/appeng/worldgen/meteorite/FalloutSnow.java b/src/main/java/appeng/worldgen/meteorite/FalloutSnow.java index a6e85302..17783fa7 100644 --- a/src/main/java/appeng/worldgen/meteorite/FalloutSnow.java +++ b/src/main/java/appeng/worldgen/meteorite/FalloutSnow.java @@ -2,7 +2,6 @@ package appeng.worldgen.meteorite; import net.minecraft.init.Blocks; - import appeng.api.definitions.IBlockDefinition; diff --git a/src/main/java/appeng/worldgen/meteorite/IMeteoriteWorld.java b/src/main/java/appeng/worldgen/meteorite/IMeteoriteWorld.java index 34eda3de..d513d0a9 100644 --- a/src/main/java/appeng/worldgen/meteorite/IMeteoriteWorld.java +++ b/src/main/java/appeng/worldgen/meteorite/IMeteoriteWorld.java @@ -2,6 +2,7 @@ package appeng.worldgen.meteorite; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -18,8 +19,6 @@ public interface IMeteoriteWorld boolean hasNoSky(); - int getBlockMetadata( int x, int y, int z ); - Block getBlock( int x, int y, int z ); boolean canBlockSeeTheSky( int i, int j, int k ); @@ -30,7 +29,12 @@ public interface IMeteoriteWorld void setBlock( int i, int j, int k, Block blk ); - void setBlock( int i, int j, int k, Block block, int meta, int l ); + void setBlock( int i, int j, int k, IBlockState state, int l ); void done(); + + IBlockState getBlockState( + int x, + int y, + int z ); } \ No newline at end of file diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteBlockPutter.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteBlockPutter.java index 7e3a679e..9b6814ba 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteBlockPutter.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteBlockPutter.java @@ -2,6 +2,7 @@ package appeng.worldgen.meteorite; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.init.Blocks; @@ -20,13 +21,13 @@ public class MeteoriteBlockPutter return true; } - public void put( IMeteoriteWorld w, int i, int j, int k, Block blk, int meta ) + public void put( IMeteoriteWorld w, int i, int j, int k, IBlockState state, int meta ) { if( w.getBlock( i, j, k ) == Blocks.bedrock ) { return; } - w.setBlock( i, j, k, blk, meta, 3 ); + w.setBlock( i, j, k, state, 3 ); } } diff --git a/src/main/java/appeng/worldgen/meteorite/StandardWorld.java b/src/main/java/appeng/worldgen/meteorite/StandardWorld.java index 634942d3..1b2bdb19 100644 --- a/src/main/java/appeng/worldgen/meteorite/StandardWorld.java +++ b/src/main/java/appeng/worldgen/meteorite/StandardWorld.java @@ -2,9 +2,11 @@ package appeng.worldgen.meteorite; import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; +import net.minecraft.init.Blocks; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; import net.minecraft.world.World; - import appeng.util.Platform; @@ -45,17 +47,7 @@ public class StandardWorld implements IMeteoriteWorld @Override public boolean hasNoSky() { - return !this.w.provider.hasNoSky; - } - - @Override - public int getBlockMetadata( int x, int y, int z ) - { - if( this.range( x, y, z ) ) - { - return this.w.getBlockMetadata( x, y, z ); - } - return 0; + return !this.w.provider.getHasNoSky(); } @Override @@ -63,7 +55,7 @@ public class StandardWorld implements IMeteoriteWorld { if( this.range( x, y, z ) ) { - return this.w.getBlock( x, y, z ); + return this.w.getBlockState( new BlockPos( x, y, z ) ).getBlock(); } return Platform.AIR_BLOCK; } @@ -73,7 +65,7 @@ public class StandardWorld implements IMeteoriteWorld { if( this.range( x, y, z ) ) { - return this.w.canBlockSeeTheSky( x, y, z ); + return this.w.canBlockSeeSky( new BlockPos(x,y,z) ); } return false; } @@ -83,7 +75,7 @@ public class StandardWorld implements IMeteoriteWorld { if( this.range( x, y, z ) ) { - return this.w.getTileEntity( x, y, z ); + return this.w.getTileEntity( new BlockPos( x, y, z) ); } return null; } @@ -99,16 +91,7 @@ public class StandardWorld implements IMeteoriteWorld { if( this.range( x, y, z ) ) { - this.w.setBlock( x, y, z, blk ); - } - } - - @Override - public void setBlock( int x, int y, int z, Block block, int meta, int flags ) - { - if( this.range( x, y, z ) ) - { - this.w.setBlock( x, y, z, block, meta, flags ); + this.w.setBlockState( new BlockPos( x, y, z ), blk.getDefaultState() ); } } @@ -122,4 +105,31 @@ public class StandardWorld implements IMeteoriteWorld { return true; } + + @Override + public void setBlock( + int x, + int y, + int z, + IBlockState state, + int l ) + { + if( this.range( x, y, z ) ) + { + this.w.setBlockState( new BlockPos( x, y, z ), state, l ); + } + } + + @Override + public IBlockState getBlockState( + int x, + int y, + int z ) + { + if( this.range( x, y, z ) ) + { + return this.w.getBlockState( new BlockPos(x,y,z) ); + } + return Blocks.air.getDefaultState(); + } } diff --git a/src/main/java/invtweaks/api/container/ChestContainer.java b/src/main/java/invtweaks/api/container/ChestContainer.java new file mode 100644 index 00000000..6898df29 --- /dev/null +++ b/src/main/java/invtweaks/api/container/ChestContainer.java @@ -0,0 +1,6 @@ +package invtweaks.api.container; + +public @interface ChestContainer +{ + +} diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.16k.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.16k.json new file mode 100644 index 00000000..2a8855ae --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.16k.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemBasicStorageCell.16k" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.1k.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.1k.json new file mode 100644 index 00000000..29579882 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.1k.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemBasicStorageCell.1k" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.4k.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.4k.json new file mode 100644 index 00000000..85759b55 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.4k.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemBasicStorageCell.4k" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.64k.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.64k.json new file mode 100644 index 00000000..dc9c1e27 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemBasicStorageCell.64k.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemBasicStorageCell.64k" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCreativeStorageCell.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCreativeStorageCell.json new file mode 100644 index 00000000..f353797b --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCreativeStorageCell.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCreativeStorageCell" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus.json new file mode 100644 index 00000000..4c57cd48 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Certus" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus2.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus2.json new file mode 100644 index 00000000..8e84d2ff --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus2.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Certus2" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus3.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus3.json new file mode 100644 index 00000000..ce5b00fa --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Certus3.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Certus3" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix.json new file mode 100644 index 00000000..e93766bb --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Fluix" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix2.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix2.json new file mode 100644 index 00000000..e8f941fa --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix2.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Fluix2" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix3.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix3.json new file mode 100644 index 00000000..3894c155 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Fluix3.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Fluix3" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether.json new file mode 100644 index 00000000..171f98ea --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Nether" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether2.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether2.json new file mode 100644 index 00000000..a037827b --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether2.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Nether2" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether3.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether3.json new file mode 100644 index 00000000..1707c74a --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemCrystalSeed.Nether3.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemCrystalSeed.Nether3" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemEncodedPattern.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemEncodedPattern.json new file mode 100644 index 00000000..e1de1d36 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemEncodedPattern.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemEncodedPattern" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.AdvCard.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.AdvCard.json new file mode 100644 index 00000000..626c3f35 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.AdvCard.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.AdvCard" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.AnnihilationCore.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.AnnihilationCore.json new file mode 100644 index 00000000..4894024e --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.AnnihilationCore.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.AnnihilationCore" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.BasicCard.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.BasicCard.json new file mode 100644 index 00000000..34afb34c --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.BasicCard.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.BasicCard" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.BlankPattern.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.BlankPattern.json new file mode 100644 index 00000000..fc3e219c --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.BlankPattern.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.BlankPattern" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessor.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessor.json new file mode 100644 index 00000000..58afc0c9 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessor.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CalcProcessor" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessorPress.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessorPress.json new file mode 100644 index 00000000..f5ae3a0a --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessorPress.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CalcProcessorPress" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessorPrint.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessorPrint.json new file mode 100644 index 00000000..cfd027da --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CalcProcessorPrint.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CalcProcessorPrint" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardCapacity.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardCapacity.json new file mode 100644 index 00000000..4ea52b12 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardCapacity.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CardCapacity" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardCrafting.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardCrafting.json new file mode 100644 index 00000000..d6e45088 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardCrafting.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CardCrafting" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardFuzzy.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardFuzzy.json new file mode 100644 index 00000000..3ad9cf8d --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardFuzzy.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CardFuzzy" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardInverter.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardInverter.json new file mode 100644 index 00000000..60e67588 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardInverter.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CardInverter" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardRedstone.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardRedstone.json new file mode 100644 index 00000000..4b90128e --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardRedstone.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CardRedstone" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardSpeed.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardSpeed.json new file mode 100644 index 00000000..fb38c495 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CardSpeed.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CardSpeed" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell128SpatialPart.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell128SpatialPart.json new file mode 100644 index 00000000..cf31611a --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell128SpatialPart.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Cell128SpatialPart" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell16SpatialPart.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell16SpatialPart.json new file mode 100644 index 00000000..152e2ce1 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell16SpatialPart.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Cell16SpatialPart" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell16kPart.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell16kPart.json new file mode 100644 index 00000000..2fa601de --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell16kPart.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Cell16kPart" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell1kPart.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell1kPart.json new file mode 100644 index 00000000..3f9a85cd --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell1kPart.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Cell1kPart" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell2SpatialPart.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell2SpatialPart.json new file mode 100644 index 00000000..cbf99fd9 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell2SpatialPart.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Cell2SpatialPart" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell4kPart.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell4kPart.json new file mode 100644 index 00000000..0e31aa45 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell4kPart.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Cell4kPart" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell64kPart.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell64kPart.json new file mode 100644 index 00000000..aaabc874 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Cell64kPart.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Cell64kPart" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzCrystal.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzCrystal.json new file mode 100644 index 00000000..a2484866 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzCrystal.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CertusQuartzCrystal" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzCrystalCharged.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzCrystalCharged.json new file mode 100644 index 00000000..b3b54343 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzCrystalCharged.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CertusQuartzCrystalCharged" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzDust.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzDust.json new file mode 100644 index 00000000..7fa95856 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.CertusQuartzDust.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.CertusQuartzDust" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EmptyStorageCell.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EmptyStorageCell.json new file mode 100644 index 00000000..90f3c508 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EmptyStorageCell.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.EmptyStorageCell" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EnderDust.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EnderDust.json new file mode 100644 index 00000000..dcd39e9a --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EnderDust.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.EnderDust" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessor.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessor.json new file mode 100644 index 00000000..772b8848 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessor.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.EngProcessor" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessorPress.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessorPress.json new file mode 100644 index 00000000..6899b513 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessorPress.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.EngProcessorPress" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessorPrint.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessorPrint.json new file mode 100644 index 00000000..aab59214 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.EngProcessorPrint.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.EngProcessorPrint" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Flour.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Flour.json new file mode 100644 index 00000000..8c9df6be --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Flour.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Flour" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixCrystal.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixCrystal.json new file mode 100644 index 00000000..589878f9 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixCrystal.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.FluixCrystal" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixDust.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixDust.json new file mode 100644 index 00000000..3188e19d --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixDust.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.FluixDust" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixPearl.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixPearl.json new file mode 100644 index 00000000..318804cc --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FluixPearl.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.FluixPearl" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FormationCore.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FormationCore.json new file mode 100644 index 00000000..3eafe708 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.FormationCore.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.FormationCore" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.GoldDust.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.GoldDust.json new file mode 100644 index 00000000..579aab57 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.GoldDust.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.GoldDust" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.IronDust.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.IronDust.json new file mode 100644 index 00000000..7a1ff038 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.IronDust.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.IronDust" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.IronNugget.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.IronNugget.json new file mode 100644 index 00000000..7c3ba81a --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.IronNugget.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.IronNugget" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessor.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessor.json new file mode 100644 index 00000000..34a37650 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessor.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.LogicProcessor" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessorPress.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessorPress.json new file mode 100644 index 00000000..663eeeeb --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessorPress.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.LogicProcessorPress" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessorPrint.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessorPrint.json new file mode 100644 index 00000000..2640d9ca --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.LogicProcessorPrint.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.LogicProcessorPrint" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.MatterBall.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.MatterBall.json new file mode 100644 index 00000000..52f790c1 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.MatterBall.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.MatterBall" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.NamePress.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.NamePress.json new file mode 100644 index 00000000..09084be7 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.NamePress.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.NamePress" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.NetherQuartzDust.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.NetherQuartzDust.json new file mode 100644 index 00000000..57974464 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.NetherQuartzDust.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.NetherQuartzDust" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedCertusQuartzCrystal.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedCertusQuartzCrystal.json new file mode 100644 index 00000000..e3151a70 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedCertusQuartzCrystal.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.PurifiedCertusQuartzCrystal" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedFluixCrystal.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedFluixCrystal.json new file mode 100644 index 00000000..c3610360 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedFluixCrystal.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.PurifiedFluixCrystal" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedNetherQuartzCrystal.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedNetherQuartzCrystal.json new file mode 100644 index 00000000..ccd88f91 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.PurifiedNetherQuartzCrystal.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.PurifiedNetherQuartzCrystal" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.QESingularity.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.QESingularity.json new file mode 100644 index 00000000..318e3319 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.QESingularity.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.QESingularity" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Silicon.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Silicon.json new file mode 100644 index 00000000..2d48589d --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Silicon.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Silicon" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SiliconPress.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SiliconPress.json new file mode 100644 index 00000000..d3d789a0 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SiliconPress.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.SiliconPress" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SiliconPrint.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SiliconPrint.json new file mode 100644 index 00000000..6b2f9b08 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SiliconPrint.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.SiliconPrint" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Singularity.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Singularity.json new file mode 100644 index 00000000..56c390d0 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Singularity.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Singularity" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SkyDust.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SkyDust.json new file mode 100644 index 00000000..97bc74e7 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.SkyDust.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.SkyDust" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Wireless.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Wireless.json new file mode 100644 index 00000000..a2370b54 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.Wireless.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.Wireless" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WirelessBooster.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WirelessBooster.json new file mode 100644 index 00000000..c087a696 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WirelessBooster.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.WirelessBooster" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WoodenCrank.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WoodenCrank.json new file mode 100644 index 00000000..0e80850d --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WoodenCrank.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.WoodenCrank" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WoodenGear.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WoodenGear.json new file mode 100644 index 00000000..b9e5fba4 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemMaterial.WoodenGear.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemMaterial.WoodenGear" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemPaintBall.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemPaintBall.json new file mode 100644 index 00000000..ce71f9fb --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemPaintBall.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemPaintBall" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemPaintBallShimmer.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemPaintBallShimmer.json new file mode 100644 index 00000000..11c65744 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemPaintBallShimmer.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemPaintBallShimmer" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.128Cubed.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.128Cubed.json new file mode 100644 index 00000000..37b75617 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.128Cubed.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemSpatialStorageCell.128Cubed" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.16Cubed.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.16Cubed.json new file mode 100644 index 00000000..f5692124 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.16Cubed.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemSpatialStorageCell.16Cubed" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.2Cubed.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.2Cubed.json new file mode 100644 index 00000000..0d8a0c9e --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemSpatialStorageCell.2Cubed.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemSpatialStorageCell.2Cubed" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ItemViewCell.json b/src/main/resources/assets/appliedenergistics2/models/item/ItemViewCell.json new file mode 100644 index 00000000..fd11a43f --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ItemViewCell.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ItemViewCell" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolBiometricCard.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolBiometricCard.json new file mode 100644 index 00000000..369c242b --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolBiometricCard.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolBiometricCard" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzAxe.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzAxe.json new file mode 100644 index 00000000..8cc86f2e --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzAxe.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolCertusQuartzAxe" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzCuttingKnife.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzCuttingKnife.json new file mode 100644 index 00000000..981cee5a --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzCuttingKnife.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolCertusQuartzCuttingKnife" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzHoe.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzHoe.json new file mode 100644 index 00000000..3be3836b --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzHoe.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolCertusQuartzHoe" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzPickaxe.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzPickaxe.json new file mode 100644 index 00000000..236c3809 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzPickaxe.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolCertusQuartzPickaxe" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzSpade.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzSpade.json new file mode 100644 index 00000000..30b1edc2 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzSpade.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolCertusQuartzSpade" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzSword.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzSword.json new file mode 100644 index 00000000..c5d3beed --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzSword.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolCertusQuartzSword" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzWrench.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzWrench.json new file mode 100644 index 00000000..699b6ec6 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolCertusQuartzWrench.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolCertusQuartzWrench" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolChargedStaff.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolChargedStaff.json new file mode 100644 index 00000000..5748936e --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolChargedStaff.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolChargedStaff" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicator.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicator.json new file mode 100644 index 00000000..175e0564 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicator.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolColorApplicator" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Dark.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Dark.json new file mode 100644 index 00000000..5e7c5b82 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Dark.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolColorApplicatorTip_Dark" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Light.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Light.json new file mode 100644 index 00000000..0496816b --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Light.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolColorApplicatorTip_Light" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Medium.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Medium.json new file mode 100644 index 00000000..b7162dde --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolColorApplicatorTip_Medium.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolColorApplicatorTip_Medium" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolDebugCard.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolDebugCard.json new file mode 100644 index 00000000..5dfe57fd --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolDebugCard.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolDebugCard" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolEntropyManipulator.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolEntropyManipulator.json new file mode 100644 index 00000000..926a03ad --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolEntropyManipulator.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolEntropyManipulator" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolMassCannon.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolMassCannon.json new file mode 100644 index 00000000..0f45e458 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolMassCannon.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolMassCannon" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolMemoryCard.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolMemoryCard.json new file mode 100644 index 00000000..ba757b28 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolMemoryCard.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolMemoryCard" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzAxe.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzAxe.json new file mode 100644 index 00000000..8ac50a8c --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzAxe.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetherQuartzAxe" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzCuttingKnife.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzCuttingKnife.json new file mode 100644 index 00000000..b66f3e4c --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzCuttingKnife.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetherQuartzCuttingKnife" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzHoe.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzHoe.json new file mode 100644 index 00000000..4ebd48da --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzHoe.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetherQuartzHoe" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzPickaxe.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzPickaxe.json new file mode 100644 index 00000000..7d4c9190 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzPickaxe.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetherQuartzPickaxe" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzSpade.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzSpade.json new file mode 100644 index 00000000..f168aaf6 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzSpade.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetherQuartzSpade" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzSword.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzSword.json new file mode 100644 index 00000000..0e825b39 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzSword.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetherQuartzSword" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzWrench.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzWrench.json new file mode 100644 index 00000000..76d85907 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetherQuartzWrench.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetherQuartzWrench" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolNetworkTool.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetworkTool.json new file mode 100644 index 00000000..3de53399 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolNetworkTool.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolNetworkTool" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolPortableCell.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolPortableCell.json new file mode 100644 index 00000000..c0ed530c --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolPortableCell.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolPortableCell" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolReplicatorCard.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolReplicatorCard.json new file mode 100644 index 00000000..5dc88220 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolReplicatorCard.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolReplicatorCard" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/models/item/ToolWirelessTerminal.json b/src/main/resources/assets/appliedenergistics2/models/item/ToolWirelessTerminal.json new file mode 100644 index 00000000..59e122f7 --- /dev/null +++ b/src/main/resources/assets/appliedenergistics2/models/item/ToolWirelessTerminal.json @@ -0,0 +1,18 @@ +{ + "parent":"builtin/generated", + "textures": { + "layer0":"appliedenergistics2:items/ToolWirelessTerminal" + }, + "display": { + "thirdperson": { + "rotation": [ -90, 0, 0 ], + "translation": [ 0, 1, -3 ], + "scale": [ 0.55, 0.55, 0.55 ] + }, + "firstperson": { + "rotation": [ 0, -135, 25 ], + "translation": [ 0, 4, 2 ], + "scale": [ 1.7, 1.7, 1.7 ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/appliedenergistics2/textures/blocks/BlockSkyStone.png b/src/main/resources/assets/appliedenergistics2/textures/blocks/BlockSkyStone.Stone.png similarity index 100% rename from src/main/resources/assets/appliedenergistics2/textures/blocks/BlockSkyStone.png rename to src/main/resources/assets/appliedenergistics2/textures/blocks/BlockSkyStone.Stone.png diff --git a/src/main/resources/assets/appliedenergistics2/textures/items/ItemPaintBallShimmer.png.mcmeta b/src/main/resources/assets/appliedenergistics2/textures/items/ItemPaintBallShimmer.png.mcmeta index 72f9a5a6..7fd9dc4c 100644 --- a/src/main/resources/assets/appliedenergistics2/textures/items/ItemPaintBallShimmer.png.mcmeta +++ b/src/main/resources/assets/appliedenergistics2/textures/items/ItemPaintBallShimmer.png.mcmeta @@ -15,4 +15,4 @@ 6 ] } -} +} \ No newline at end of file