diff --git a/src/main/java/info/jbcs/minecraft/chisel/Configurations.java b/src/main/java/info/jbcs/minecraft/chisel/Configurations.java index 2918f600..38e8c64b 100644 --- a/src/main/java/info/jbcs/minecraft/chisel/Configurations.java +++ b/src/main/java/info/jbcs/minecraft/chisel/Configurations.java @@ -18,6 +18,7 @@ public class Configurations public static boolean autoChisel; public static boolean fancy; public static boolean enableFMP; + public static boolean animatedVoidstone; public static int factoryBlockAmount; public static int particlesTickrate; @@ -44,6 +45,7 @@ public class Configurations chiselRecipe = config.get("general", "chiselAlternateRecipe", false, "Use alternative crafting recipe for the chisel").getBoolean(false); autoChisel = config.get("general", "autoChisel", true, "Should people be allowed to use the auto chisel").getBoolean(true); enableFMP = config.get("general", "enableFMP", true, "Do you want to enable FMP").getBoolean(true); + animatedVoidstone = config.get("client", "animatedVoidstone", true, "True, you want animated textures. False, nah i'm good.").getBoolean(true); if(config.hasChanged()) { diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstone.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstone.java index 0edfc2bf..c7749ee6 100644 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstone.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstone.java @@ -1,45 +1,12 @@ package info.jbcs.minecraft.chisel.block; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.ICarvable; -import info.jbcs.minecraft.chisel.carving.CarvableHelper; -import info.jbcs.minecraft.chisel.carving.CarvableVariation; -import info.jbcs.minecraft.chisel.client.GeneralChiselClient; -import info.jbcs.minecraft.chisel.utils.General; - -import java.util.Random; - -import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; -public class BlockVoidstone extends Block implements ICarvable{ - public CarvableHelper carverHelper; - public IIcon iconParticle; +public class BlockVoidstone extends BlockMarbleTexturedOre { - public BlockVoidstone() { - super(Material.rock); - carverHelper = new CarvableHelper(); + public BlockVoidstone(String s) { + super(Material.rock, s); setHardness(5.0F); setResistance(10.0F); } - - @Override - public void registerBlockIcons(IIconRegister icon){ - iconParticle = icon.registerIcon(Chisel.MOD_ID + ":voidstone/particles/star"); - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random random) - { - if(General.rand.nextInt(4) == 0 && world.isRemote) - GeneralChiselClient.spawnVoidstoneFX(world, this, x, y, z); - } - - @Override - public CarvableVariation getVariation(int metadata) { - return carverHelper.getVariation(metadata); - } } diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstonePillar.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstonePillar.java index 0cd9ea95..efb96286 100644 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstonePillar.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockVoidstonePillar.java @@ -1,5 +1,6 @@ package info.jbcs.minecraft.chisel.block; +import info.jbcs.minecraft.chisel.Chisel; import info.jbcs.minecraft.chisel.api.ICarvable; import info.jbcs.minecraft.chisel.carving.CarvableHelper; import info.jbcs.minecraft.chisel.carving.CarvableVariation; @@ -13,13 +14,15 @@ public class BlockVoidstonePillar extends Block implements ICarvable{ public static IIcon topBottom, pillarSide; public CarvableHelper carvableHelper; + private boolean isAnimated; - public BlockVoidstonePillar() { + public BlockVoidstonePillar(boolean isAnimated) { super(Material.rock); carvableHelper = new CarvableHelper(); setHardness(5.0F); setResistance(10.0F); setCreativeTab(ModTabs.tabChiselBlocks); + this.isAnimated = isAnimated; } @Override @@ -34,8 +37,12 @@ public class BlockVoidstonePillar extends Block implements ICarvable{ @Override public void registerBlockIcons(IIconRegister icon){ - topBottom = icon.registerIcon("Chisel:voidstone/pillar-top"); - pillarSide = icon.registerIcon("Chisel:voidstone/pillar-side"); + if(this.isAnimated) + topBottom = icon.registerIcon(Chisel.MOD_ID + ":voidstone/animated/pillar-top"); + else + topBottom = icon.registerIcon(Chisel.MOD_ID + ":voidstone/pillar-top"); + + pillarSide = icon.registerIcon(Chisel.MOD_ID + ":voidstone/pillar-side"); } @Override diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java b/src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java index 45ee1528..887ebf2d 100644 --- a/src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java +++ b/src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java @@ -5,16 +5,11 @@ import info.jbcs.minecraft.chisel.block.BlockGrimstone; import info.jbcs.minecraft.chisel.block.BlockHolystone; import info.jbcs.minecraft.chisel.block.BlockLavastone; import info.jbcs.minecraft.chisel.block.BlockSnakestoneObsidian; -import info.jbcs.minecraft.chisel.block.BlockVoidstone; import info.jbcs.minecraft.chisel.entity.fx.EntityBallOMossFX; import info.jbcs.minecraft.chisel.entity.fx.EntityGrimstoneFX; import info.jbcs.minecraft.chisel.entity.fx.EntityHolystoneFX; import info.jbcs.minecraft.chisel.entity.fx.EntitySnakestoneObsidianFX; -import info.jbcs.minecraft.chisel.entity.fx.EntityVoidstoneFX; import info.jbcs.minecraft.chisel.utils.GeneralClient; - -import java.util.Random; - import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.entity.EntityPlayerSP; @@ -24,6 +19,8 @@ import net.minecraft.client.particle.EntityLavaFX; import net.minecraft.entity.Entity; import net.minecraft.world.World; +import java.util.Random; + public class GeneralChiselClient { public static Random rand = new Random(); @@ -164,47 +161,6 @@ public class GeneralChiselClient { } } - public static void spawnVoidstoneFX(World world, BlockVoidstone block, int x, int y, int z) { - if (Configurations.particlesTickrate == 0 || tick++ % Configurations.particlesTickrate == 0) { - float f = 0.15F; - double x1 = x + rand.nextDouble() * (block.getBlockBoundsMaxX() - block.getBlockBoundsMinX() - f * 2.0F) + f + block.getBlockBoundsMinX(); - double y1 = y + rand.nextDouble() * (block.getBlockBoundsMaxY() - block.getBlockBoundsMinY() - f * 2.0F) + f + block.getBlockBoundsMinY(); - double z1 = z + rand.nextDouble() * (block.getBlockBoundsMaxZ() - block.getBlockBoundsMinZ() - f * 2.0F) + f + block.getBlockBoundsMinZ(); - - switch (rand.nextInt(6)) { - case 0: - y1 = y + block.getBlockBoundsMinY() - f; - y--; - break; - case 1: - y1 = y + block.getBlockBoundsMaxY() + f; - y++; - break; - case 2: - z1 = z + block.getBlockBoundsMinZ() - f; - z--; - break; - case 3: - z1 = z + block.getBlockBoundsMaxZ() + f; - z++; - break; - case 4: - x1 = x + block.getBlockBoundsMinX() - f; - x--; - break; - case 5: - x1 = x + block.getBlockBoundsMaxX() + f; - x++; - break; - } - - if (world.getBlock(x, y, z).isOpaqueCube()) return; - - EntityVoidstoneFX res = new EntityVoidstoneFX(world, block, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(res); - } - } - public static void spawnBallOMossFX(World world, double x, double y, double z) { if (Configurations.particlesTickrate == 0 || tick++ % Configurations.particlesTickrate == 0) { EntityBallOMossFX res = new EntityBallOMossFX(world, x, y, z); diff --git a/src/main/java/info/jbcs/minecraft/chisel/entity/fx/EntityVoidstoneFX.java b/src/main/java/info/jbcs/minecraft/chisel/entity/fx/EntityVoidstoneFX.java deleted file mode 100644 index 6d903bfe..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/entity/fx/EntityVoidstoneFX.java +++ /dev/null @@ -1,58 +0,0 @@ -package info.jbcs.minecraft.chisel.entity.fx; - -import info.jbcs.minecraft.chisel.block.BlockVoidstone; -import info.jbcs.minecraft.chisel.utils.General; -import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.World; - -public class EntityVoidstoneFX extends EntityFX { - - static final float fadetime = 20F; - float initialScale; - float angleOffset; - - public EntityVoidstoneFX(World world, BlockVoidstone blockVoidstone, double x, double y, double z) { - super(world, x, y, z, 0, 0, 0); - initialScale = 1.0F + 1.0F * General.rand.nextFloat(); - angleOffset = rand.nextFloat() * 360; - - particleMaxAge = (int) (Math.random() * 10.0D) + 80; - - setPosition(x, y, z); - prevPosX = posX; - prevPosY = posY; - prevPosZ = posZ; - - noClip = true; - - setParticleIcon(blockVoidstone.iconParticle); - } - - @Override - public int getFXLayer() { - return 1; - } - - @Override - public void renderParticle(Tessellator tesselator, float partialTick, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { - particleScale = 0.25F + initialScale * (float) Math.sin(particleAge + angleOffset) / 180.0F; - - if (particleAge < fadetime) { - particleAlpha = particleAge / fadetime; - } else if (particleAge + fadetime >= particleMaxAge) { - particleAlpha = (particleMaxAge - particleAge) / fadetime; - } else { - particleAlpha = 1.0F; - } - - super.renderParticle(tesselator, partialTick, rotX, rotXZ, rotZ, rotYZ, rotXY); - } - - @Override - public void onUpdate() { - if (particleAge++ >= particleMaxAge) { - setDead(); - } - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/init/ModBlocks.java b/src/main/java/info/jbcs/minecraft/chisel/init/ModBlocks.java index 10fdb231..c10b4db5 100644 --- a/src/main/java/info/jbcs/minecraft/chisel/init/ModBlocks.java +++ b/src/main/java/info/jbcs/minecraft/chisel/init/ModBlocks.java @@ -1,40 +1,9 @@ package info.jbcs.minecraft.chisel.init; +import cpw.mods.fml.common.registry.GameRegistry; import info.jbcs.minecraft.chisel.Chisel; import info.jbcs.minecraft.chisel.Configurations; -import info.jbcs.minecraft.chisel.block.BlockAutoChisel; -import info.jbcs.minecraft.chisel.block.BlockBeaconBase; -import info.jbcs.minecraft.chisel.block.BlockCarvable; -import info.jbcs.minecraft.chisel.block.BlockCarvableGlass; -import info.jbcs.minecraft.chisel.block.BlockCarvablePane; -import info.jbcs.minecraft.chisel.block.BlockCarvablePowered; -import info.jbcs.minecraft.chisel.block.BlockCloud; -import info.jbcs.minecraft.chisel.block.BlockConcrete; -import info.jbcs.minecraft.chisel.block.BlockEldritch; -import info.jbcs.minecraft.chisel.block.BlockGrimstone; -import info.jbcs.minecraft.chisel.block.BlockHolystone; -import info.jbcs.minecraft.chisel.block.BlockLavastone; -import info.jbcs.minecraft.chisel.block.BlockLeaf; -import info.jbcs.minecraft.chisel.block.BlockLightstoneCarvable; -import info.jbcs.minecraft.chisel.block.BlockMarbleBookshelf; -import info.jbcs.minecraft.chisel.block.BlockMarbleCarpet; -import info.jbcs.minecraft.chisel.block.BlockMarbleIce; -import info.jbcs.minecraft.chisel.block.BlockMarbleIceStairs; -import info.jbcs.minecraft.chisel.block.BlockMarblePillar; -import info.jbcs.minecraft.chisel.block.BlockMarbleSlab; -import info.jbcs.minecraft.chisel.block.BlockMarbleStairs; -import info.jbcs.minecraft.chisel.block.BlockMarbleStairsMaker; -import info.jbcs.minecraft.chisel.block.BlockMarbleStairsMakerCreator; -import info.jbcs.minecraft.chisel.block.BlockMarbleWall; -import info.jbcs.minecraft.chisel.block.BlockPresent; -import info.jbcs.minecraft.chisel.block.BlockRoadLine; -import info.jbcs.minecraft.chisel.block.BlockSnakestone; -import info.jbcs.minecraft.chisel.block.BlockSnakestoneObsidian; -import info.jbcs.minecraft.chisel.block.BlockSpikes; -import info.jbcs.minecraft.chisel.block.BlockVoidstone; -import info.jbcs.minecraft.chisel.block.BlockVoidstonePillar; -import info.jbcs.minecraft.chisel.block.BlockWaterstone; -import info.jbcs.minecraft.chisel.block.ItemBlockAutoChisel; +import info.jbcs.minecraft.chisel.block.*; import info.jbcs.minecraft.chisel.carving.CarvableHelper; import info.jbcs.minecraft.chisel.carving.CarvableVariation; import info.jbcs.minecraft.chisel.carving.Carving; @@ -46,7 +15,6 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.registry.GameRegistry; public class ModBlocks { public static BlockCarvable marble; @@ -104,7 +72,7 @@ public class ModBlocks { public static BlockCarvable pumpkin; public static BlockCarvable jackOLantern; public static BlockVoidstone voidstone; - public static BlockVoidstonePillar voidstonePillar = new BlockVoidstonePillar(); + public static BlockVoidstonePillar voidstonePillar; public static Block autoChisel; public static BlockPresent present; public static BlockSnakestone snakestone; @@ -1352,22 +1320,37 @@ public class ModBlocks { } if(Configurations.featureEnabled("voidstone")){ - voidstone = (BlockVoidstone) new BlockVoidstone().setStepSound(Block.soundTypeStone).setCreativeTab(ModTabs.tabChiselBlocks); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.0.desc"), 0, "voidstone/metalborder"); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.1.desc"), 1, "voidstone/quarters"); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.2.desc"), 2, "voidstone/smooth"); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.3.desc"), 3, "voidstone/skulls"); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.12.desc"), 12, "voidstone/rune"); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.13.desc"), 13, "voidstone/raw"); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.14.desc"), 14, "voidstone/eye"); - voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.15.desc"), 15, "voidstone/bevel"); + if(Configurations.animatedVoidstone){ + voidstone = (BlockVoidstone) new BlockVoidstone(Chisel.MOD_ID + ":voidstone/animated/void").setStepSound(Block.soundTypeStone).setCreativeTab(ModTabs.tabChiselBlocks); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.0.desc"), 0, "voidstone/animated/metalborder"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.1.desc"), 1, "voidstone/animated/quarters"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.2.desc"), 2, "voidstone/animated/smooth"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.12.desc"), 12, "voidstone/animated/rune"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.13.desc"), 13, "voidstone/animated/raw"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.14.desc"), 14, "voidstone/animated/eye"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.15.desc"), 15, "voidstone/animated/bevel"); + } else { + voidstone = (BlockVoidstone) new BlockVoidstone(null).setStepSound(Block.soundTypeStone).setCreativeTab(ModTabs.tabChiselBlocks); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.0.desc"), 0, "voidstone/metalborder"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.1.desc"), 1, "voidstone/quarters"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.2.desc"), 2, "voidstone/smooth"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.3.desc"), 3, "voidstone/skulls"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.12.desc"), 12, "voidstone/rune"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.13.desc"), 13, "voidstone/raw"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.14.desc"), 14, "voidstone/eye"); + voidstone.carverHelper.addVariation(StatCollector.translateToLocal("tile.voidstone.15.desc"), 15, "voidstone/bevel"); + } voidstone.carverHelper.register(voidstone, "voidstone"); Carving.chisel.registerOre("voidstone", "voidstone"); } if(Configurations.featureEnabled("voidstonePillars")){ - voidstonePillar = (BlockVoidstonePillar) new BlockVoidstonePillar().setStepSound(Block.soundTypeStone); - voidstonePillar.carvableHelper.addVariation(StatCollector.translateToLocal("tile.voidstonePillar.0.desc"), 0, "voidstone/pillar-side"); + voidstonePillar = (BlockVoidstonePillar) new BlockVoidstonePillar(Configurations.animatedVoidstone).setStepSound(Block.soundTypeStone); + if(Configurations.animatedVoidstone){ + voidstonePillar.carvableHelper.addVariation(StatCollector.translateToLocal("tile.voidstonePillar.0.desc"), 0, "voidstone/pillar-side"); + } else { + voidstonePillar.carvableHelper.addVariation(StatCollector.translateToLocal("tile.voidstonePillar.0.desc"), 0, "voidstone/pillar-side"); + } voidstonePillar.carvableHelper.register(voidstonePillar, "voidstonePillar"); Carving.chisel.registerOre("voidstonePillar", "voidstonePillar"); } diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/bevel.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/bevel.png new file mode 100644 index 00000000..ceccd547 Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/bevel.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/eye.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/eye.png new file mode 100644 index 00000000..eee61a24 Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/eye.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/metalborder.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/metalborder.png new file mode 100644 index 00000000..8d77c1df Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/metalborder.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/pillar-top.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/pillar-top.png new file mode 100644 index 00000000..1415a12d Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/pillar-top.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/pillar-top.png.mcmeta b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/pillar-top.png.mcmeta new file mode 100644 index 00000000..895e9201 --- /dev/null +++ b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/pillar-top.png.mcmeta @@ -0,0 +1,18 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 4, + 3, + 2, + 1, + 0, + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/quarters.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/quarters.png new file mode 100644 index 00000000..f61a6c5d Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/quarters.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/raw.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/raw.png new file mode 100644 index 00000000..5ae2c24b Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/raw.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/rune.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/rune.png new file mode 100644 index 00000000..506c54c0 Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/rune.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/smooth.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/smooth.png new file mode 100644 index 00000000..4160cbae Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/smooth.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/void.png b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/void.png new file mode 100644 index 00000000..6ddbcd16 Binary files /dev/null and b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/void.png differ diff --git a/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/void.png.mcmeta b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/void.png.mcmeta new file mode 100644 index 00000000..895e9201 --- /dev/null +++ b/src/main/resources/assets/chisel/textures/blocks/voidstone/animated/void.png.mcmeta @@ -0,0 +1,18 @@ +{ + "animation": { + "frametime": 2, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 4, + 3, + 2, + 1, + 0, + ] + } +} \ No newline at end of file