Voidstone fixed, and now configurable because some people like the animated texture

This commit is contained in:
TheCricket committed 2014-12-14 19:08:11 -05:00
1 parent 1052955560
commit bdaf0f2340
17 files changed
+82 -189

No files matched your search

@@ -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())
{
@@ -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);
}
}
@@ -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
@@ -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);
@@ -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();
}
}
}
@@ -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");
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

@@ -0,0 +1,18 @@
{
"animation": {
"frametime": 2,
"frames": [
0,
1,
2,
3,
4,
5,
4,
3,
2,
1,
0,
]
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 KiB

@@ -0,0 +1,18 @@
{
"animation": {
"frametime": 2,
"frames": [
0,
1,
2,
3,
4,
5,
4,
3,
2,
1,
0,
]
}
}