aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/block
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-02 15:39:02 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2019-04-02 15:39:02 +1000
commitf6a126e4467c5bf7ab72249c7fc55df3bc574d94 (patch)
tree3b6d02bdb62185f56360d4a1ff93ce2cd1bcdbe3 /src/Java/gtPlusPlus/core/block
parente8e899fb8ec40fc2a8094e3a1f65527af23b11e4 (diff)
downloadGT5-Unofficial-f6a126e4467c5bf7ab72249c7fc55df3bc574d94.tar.gz
GT5-Unofficial-f6a126e4467c5bf7ab72249c7fc55df3bc574d94.tar.bz2
GT5-Unofficial-f6a126e4467c5bf7ab72249c7fc55df3bc574d94.zip
+ Added TexturePackages.
$ More work on redstone systems.
Diffstat (limited to 'src/Java/gtPlusPlus/core/block')
-rw-r--r--src/Java/gtPlusPlus/core/block/ModBlocks.java3
-rw-r--r--src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java25
-rw-r--r--src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneDetector.java113
3 files changed, 84 insertions, 57 deletions
diff --git a/src/Java/gtPlusPlus/core/block/ModBlocks.java b/src/Java/gtPlusPlus/core/block/ModBlocks.java
index 2b04356f52..8471c13351 100644
--- a/src/Java/gtPlusPlus/core/block/ModBlocks.java
+++ b/src/Java/gtPlusPlus/core/block/ModBlocks.java
@@ -11,6 +11,7 @@ import gtPlusPlus.core.block.general.LightGlass;
import gtPlusPlus.core.block.general.MiningExplosives;
import gtPlusPlus.core.block.general.PlayerDoors;
import gtPlusPlus.core.block.general.antigrief.BlockWitherProof;
+import gtPlusPlus.core.block.general.redstone.BlockGenericRedstoneDetector;
import gtPlusPlus.core.block.machine.CircuitProgrammer;
import gtPlusPlus.core.block.machine.DecayablesChest;
import gtPlusPlus.core.block.machine.FishTrap;
@@ -140,6 +141,8 @@ public final class ModBlocks {
blockCustomJukebox = new Machine_SuperJukebox();
blockPooCollector = new Machine_PooCollector();
+
+ new BlockGenericRedstoneDetector();
}
diff --git a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java
index 14dac32b63..3197d149c8 100644
--- a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java
+++ b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstone.java
@@ -53,13 +53,18 @@ public abstract class BlockGenericRedstone extends BlockContainer {
* A map of the textures used for this blocks. The key is the meta, then each internal map holds textures tied to each forge direction. Do not use unknown direction.
* @return
*/
- public abstract HashMap<Integer, HashMap<ForgeDirection, IIcon>> getTextureArray();
+ public HashMap<Integer, HashMap<ForgeDirection, IIcon>> getTextureArray() {
+ return mTextures;
+ }
+
+ public abstract void generateTextureArray(final IIconRegister iicon);
@Override
@SideOnly(Side.CLIENT)
- public final void registerBlockIcons(final IIconRegister p_149651_1_) {
- this.blockIcon = p_149651_1_.registerIcon("redstone_block");
+ public final void registerBlockIcons(final IIconRegister iicon) {
+ generateTextureArray(iicon);
+ this.blockIcon = iicon.registerIcon("redstone_block");
}
@@ -305,8 +310,18 @@ public abstract class BlockGenericRedstone extends BlockContainer {
* Ticks the block if it's been scheduled
*/
public void updateTick(World aWorld, int aX, int aY, int aZ, Random p_149674_5_) {
- if (!aWorld.isRemote && !aWorld.isBlockIndirectlyGettingPowered(aX, aY, aZ)) {
- // aWorld.setBlock(aX, aY, aZ, Blocks.redstone_lamp, 0, 2);
+ TileEntityRedstoneHandler aTile = getTileEntity(aWorld, aX, aY, aZ);
+ // Client side handling
+ if (aTile != null) {
+ this.setLightLevel(aTile.getLightBrightness());
+ }
+ // Only continue on server
+ if (aWorld.isRemote) {
+ return;
+ }
+ if (aTile != null) {
+ if (aTile.isGettingIndirectlyPowered()) {
+ }
}
}
diff --git a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneDetector.java b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneDetector.java
index 3e7816f83a..7728b29a7c 100644
--- a/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneDetector.java
+++ b/src/Java/gtPlusPlus/core/block/general/redstone/BlockGenericRedstoneDetector.java
@@ -1,17 +1,21 @@
package gtPlusPlus.core.block.general.redstone;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Random;
+import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.tileentities.general.redstone.TileEntityRedstoneHandler;
-import net.minecraft.block.Block;
+import gtPlusPlus.core.util.minecraft.ItemUtils;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.IBlockAccess;
+import net.minecraft.util.IIcon;
import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
public class BlockGenericRedstoneDetector extends BlockGenericRedstone {
@@ -32,81 +36,86 @@ public class BlockGenericRedstoneDetector extends BlockGenericRedstone {
}
@Override
- public void registerBlockIcons(IIconRegister p_149651_1_) {
- // TODO Auto-generated method stub
- super.registerBlockIcons(p_149651_1_);
- }
-
- @Override
- public int getLightValue() {
- // TODO Auto-generated method stub
- return super.getLightValue();
+ public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List aList) {
+ aList.add(ItemUtils.getSimpleStack(this));
}
- @Override
- public int isProvidingWeakPower(IBlockAccess p_149709_1_, int p_149709_2_, int p_149709_3_, int p_149709_4_,
- int p_149709_5_) {
- return 0;
- }
@Override
- public boolean canProvidePower() {
- return false;
- }
-
- @Override
- public int isProvidingStrongPower(IBlockAccess p_149748_1_, int p_149748_2_, int p_149748_3_, int p_149748_4_,
- int p_149748_5_) {
- return 0;
+ public void updateTick(World aWorld, int aX, int aY, int aZ, Random aRand) {
+ super.updateTick(aWorld, aX, aY, aZ, aRand);
}
@Override
- public void getSubBlocks(Item p_149666_1_, CreativeTabs p_149666_2_, List p_149666_3_) {
+ public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
// TODO Auto-generated method stub
- super.getSubBlocks(p_149666_1_, p_149666_2_, p_149666_3_);
+ return ItemUtils.getSimpleStack(this).getItem();
}
@Override
- public int getLightValue(IBlockAccess world, int x, int y, int z) {
+ public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) {
// TODO Auto-generated method stub
- return super.getLightValue(world, x, y, z);
+ return ItemUtils.getSimpleStack(this).getItem();
}
@Override
- public boolean shouldCheckWeakPower(IBlockAccess world, int x, int y, int z, int side) {
- // TODO Auto-generated method stub
- return super.shouldCheckWeakPower(world, x, y, z, side);
- }
+ protected ItemStack createStackedBlock(int p_149644_1_) {
+ return ItemUtils.simpleMetaStack(this, p_149644_1_, 1);
+ }
+
+ public void generateTextureArray(final IIconRegister iicon) {
+ HashMap<Integer, HashMap<ForgeDirection, IIcon>> aTextures = new HashMap<Integer, HashMap<ForgeDirection, IIcon>>();
- @Override
- public void updateTick(World aWorld, int aX, int aY, int aZ, Random aRand) {
- TileEntity aThisTile = aWorld.getTileEntity(aX, aY, aZ);
- if (aThisTile != null) {
- TileEntityRedstoneHandler aRedstoneTile = (TileEntityRedstoneHandler) aThisTile;
- aRedstoneTile.setCurrentTextureArray(null);
+ //New Block for Each Meta
+ int aMeta = 0;
+ {
+ HashMap<ForgeDirection, IIcon> aTempMap = new HashMap<ForgeDirection, IIcon>();
+ aTempMap.put(ForgeDirection.UP, iicon.registerIcon(CORE.MODID + ":" + "redstone/redstone_meter/" + "top"));
+ aTempMap.put(ForgeDirection.DOWN, iicon.registerIcon(CORE.MODID + ":" + "redstone/redstone_meter/" + "top"));
+ aTempMap.put(ForgeDirection.NORTH, iicon.registerIcon(CORE.MODID + ":" + "redstone/redstone_meter/" + "top"));
+ aTempMap.put(ForgeDirection.SOUTH, iicon.registerIcon(CORE.MODID + ":" + "redstone/redstone_meter/" + "top"));
+ aTempMap.put(ForgeDirection.EAST, iicon.registerIcon(CORE.MODID + ":" + "redstone/redstone_meter/" + "top"));
+ aTempMap.put(ForgeDirection.WEST, iicon.registerIcon(CORE.MODID + ":" + "redstone/redstone_meter/" + "top"));
+ aTextures.put(aMeta++, aTempMap);
}
-
- super.updateTick(aWorld, aX, aY, aZ, aRand);
}
@Override
- public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) {
- // TODO Auto-generated method stub
- return null;
+ public IIcon getIcon(int side, int meta) {
+ HashMap<ForgeDirection, IIcon> aTemp = getTextureArray().get(meta);
+ if (aTemp != null) {
+ IIcon aSide = aTemp.get(ForgeDirection.getOrientation(side));
+ if (aSide != null) {
+ return aSide;
+ }
+ else {
+ //Smart calculate missing sides
+ if (side <= 1) {
+ for (int ss = 0; ss < 2; ss++) {
+ aSide = aTemp.get(ForgeDirection.getOrientation(side));
+ if (aSide != null) {
+ return aSide;
+ }
+ }
+ }
+ for (int ss = 2; ss < 6; ss++) {
+ aSide = aTemp.get(ForgeDirection.getOrientation(side));
+ if (aSide != null) {
+ return aSide;
+ }
+ }
+ }
+ }
+ return blockIcon;
}
@Override
- protected ItemStack createStackedBlock(int p_149644_1_) {
- // TODO Auto-generated method stub
- return null;
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
+ ArrayList<ItemStack> aDrops = new ArrayList<ItemStack>();
+ aDrops.add(ItemUtils.getSimpleStack(this));
+ return aDrops;
}
}