diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 3fefc664..00000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.gradle -build -mods diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 8d58cbbf..00000000 --- a/build.gradle +++ /dev/null @@ -1,53 +0,0 @@ -buildscript { - repositories { - mavenCentral() - maven { - name = "forge" - url = "http://files.minecraftforge.net/maven" - } - maven { - name = "sonatype" - url = "https://oss.sonatype.org/content/repositories/snapshots/" - } - } - dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:1.1-SNAPSHOT' - } -} - -apply plugin: 'forge' - -version = "1.5.3" -group= "info.jbcs.minecraft.chisel" // http://maven.apache.org/guides/mini/guide-naming-conventions.html -archivesBaseName = "chisel" - -repositories { - maven { - name = "shinonome" - url = "http://maven.shinonome.ch/" - } -} - -dependencies { - compile 'pl.asie.lib:AsieLib:0.1.9:deobf' -} - -minecraft { - version = "1.7.2-10.12.0.1047" - assetDir = "eclipse/assets" -} -processResources -{ - // replace stuff in mcmod.info, nothing else - from(sourceSets.main.resources.srcDirs) { - include 'mcmod.info' - - // replace version and mcversion - expand 'version':project.version, 'mcversion':project.minecraft.version - } - - // copy everything else, thats not the mcmod.info - from(sourceSets.main.resources.srcDirs) { - exclude 'mcmod.info' - } -} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 667288ad..00000000 Binary files a/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 55f4524a..00000000 --- a/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Tue Oct 29 18:00:54 CDT 2013 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-bin.zip diff --git a/gradlew b/gradlew deleted file mode 100755 index f09b32b9..00000000 --- a/gradlew +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="-Xmx1536m" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index aec99730..00000000 --- a/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/src/main/java/info/jbcs/minecraft/chisel/CarvableHelper.java b/src/main/java/info/jbcs/minecraft/chisel/CarvableHelper.java deleted file mode 100755 index 105088f6..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/CarvableHelper.java +++ /dev/null @@ -1,394 +0,0 @@ -package info.jbcs.minecraft.chisel; - -import info.jbcs.minecraft.chisel.CarvableVariation.CarvableVariationCTM; -import info.jbcs.minecraft.chisel.block.BlockCarvableGlass; -import info.jbcs.minecraft.chisel.block.BlockMarbleSlab; -import info.jbcs.minecraft.chisel.item.ItemCarvable; -import info.jbcs.minecraft.chisel.render.CTM; -import info.jbcs.minecraft.chisel.render.TextureSubmap; -import info.jbcs.minecraft.utilities.GeneralClient; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockPane; -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.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.LanguageRegistry; - -public class CarvableHelper { - static final String modName = "chisel"; - public static final ArrayList chiselBlocks = new ArrayList(); - - public static final int NORMAL = 0; - public static final int TOPSIDE = 1; - public static final int TOPBOTSIDE = 2; - public static final int CTM3 = 3; - public static final int CTMV = 4; - public static final int CTMH = 5; - public static final int V9 = 6; - public static final int V4 = 7; - public static final int CTMX = 8; - - - public CarvableHelper() { - } - - public ArrayList variations = new ArrayList(); - CarvableVariation[] map = new CarvableVariation[16]; - public boolean forbidChiseling = false; - String blockName; - - public void addVariation(String description, int metadata, Block bb) { - addVariation(description, metadata, null, bb, 0); - } - - public void addVariation(String description, int metadata, Block bb, int blockMeta) { - addVariation(description, metadata, null, bb, blockMeta); - } - - public void addVariation(String description, int metadata, String texture) { - addVariation(description, metadata, texture, null, 0); - } - - public void addVariation(String description, int metadata, String texture, Block block, int blockMeta) { - if (variations.size() >= 16) - return; - - if(blockName==null && block!=null) blockName=block.getLocalizedName(); - else if(blockName==null && description!=null) blockName=description; - - CarvableVariation variation = new CarvableVariation(); - variation.description = description; - variation.metadata = metadata; - variation.blockName = blockName; - - if (texture != null) { - variation.texture = texture; - - String path = "/assets/" + modName + "/textures/blocks/" + variation.texture; - - boolean any = Chisel.class.getResource(path + ".png") != null; - boolean ctm3 = Chisel.class.getResource(path + "-ctm1.png") != null && Chisel.class.getResource(path + "-ctm2.png") != null && Chisel.class.getResource(path + "-ctm3.png") != null; - boolean ctmv = Chisel.class.getResource(path + "-ctmv.png") != null; - boolean ctmh = Chisel.class.getResource(path + "-ctmh.png") != null; - boolean side = Chisel.class.getResource(path + "-side.png") != null; - boolean top = Chisel.class.getResource(path + "-top.png") != null; - boolean bot = Chisel.class.getResource(path + "-bottom.png") != null; - boolean v9 = Chisel.class.getResource(path + "-v9.png") != null; - boolean v4 = Chisel.class.getResource(path + "-v4.png") != null; - boolean ctmx = Chisel.class.getResource(path + "-ctm.png") != null; - - if (ctm3) { - variation.kind = 3; - } else if (ctmh && top) { - variation.kind = 5; - } else if (ctmv && top) { - variation.kind = CTMV; - } else if (bot && top && side) { - variation.kind = 2; - } else if (top && side) { - variation.kind = 1; - } else if (v9) { - variation.kind = V9; - } else if (v4) { - variation.kind = V4; - } else if (any && ctmx && !Chisel.disableCTM) { - variation.kind = CTMX; - } else if (any) { - variation.kind = 0; - } else { - throw new RuntimeException("No valid textures found for chisel block variation '" + description + "' (" + variation.texture + ")"); - } - } else { - variation.block = block; - variation.kind = 2; - variation.blockMeta = blockMeta; - } - - variations.add(variation); - map[metadata] = variation; - } - - public CarvableVariation getVariation(int metadata){ - if (metadata < 0 || metadata > 15) - metadata = 0; - - CarvableVariation variation = map[metadata]; - if (variation == null) - return null; - -// if(variation.kind!=CTMX) -// return null; - - return variation; - } - - public IIcon getIcon(int side, int metadata) { - if (metadata < 0 || metadata > 15) - metadata = 0; - - CarvableVariation variation = map[metadata]; - if (variation == null) - return GeneralClient.getMissingIcon(); - - switch (variation.kind) { - case 0: - return variation.icon; - case 1: - if (side == 0 || side == 1) - return variation.iconTop; - else - return variation.icon; - case 2: - if (side == 1) - return variation.iconTop; - else if (side == 0) - return variation.iconBot; - else - return variation.icon; - case 3: - return variation.ctm.seams[0].icons[0]; - case 4: - if (side < 2) - return variation.iconTop; - else - return variation.seamsCtmVert.icons[0]; - case 5: - if (side < 2) - return variation.iconTop; - else - return variation.seamsCtmVert.icons[0]; - case V9: - return variation.variations9.icons[4]; - case V4: - return variation.variations9.icons[0]; - case CTMX: - return variation.icon; - } - - return GeneralClient.getMissingIcon(); - } - - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) { - int metadata=world.getBlockMetadata(x, y, z); - - if (metadata < 0 || metadata > 15) - metadata = 0; - - CarvableVariation variation = map[metadata]; - if (variation == null) - return GeneralClient.getMissingIcon(); - - switch (variation.kind) { - case 0: - case 1: - case 2: - return getIcon(side,metadata); - case 3: - int tex = CTM.getTexture(world, x, y, z, side); - - int row = tex / 16; - int col = tex % 16; - - return variation.ctm.seams[col / 4].icons[col % 4 + row * 4]; - case 4: { - if(side<2) - return variation.iconTop; - - Block block = world.getBlock(x, y, z); - boolean topConnected= block.equals(world.getBlock(x, y+1, z)) && metadata==world.getBlockMetadata(x, y+1, z); - boolean botConnected= block.equals(world.getBlock(x, y-1, z)) && metadata==world.getBlockMetadata(x, y-1, z); - - if( topConnected && botConnected) return variation.seamsCtmVert.icons[2]; - if( topConnected && !botConnected) return variation.seamsCtmVert.icons[3]; - if(!topConnected && botConnected) return variation.seamsCtmVert.icons[1]; - return variation.seamsCtmVert.icons[0]; } - case 5: - if(side<2) - return variation.iconTop; - - Block block = world.getBlock(x, y, z); - - boolean p; - boolean n; - boolean reverse=side==2||side==4; - - if(side<4){ - p=isSame(world,x-1,y,z,block,metadata); - n=isSame(world,x+1,y,z,block,metadata); - } else{ - p=isSame(world,x,y,z+1,block,metadata); - n=isSame(world,x,y,z-1,block,metadata); - } - - if(p && n) return variation.seamsCtmVert.icons[1]; - else if(p) return variation.seamsCtmVert.icons[reverse?2:3]; - else if(n) return variation.seamsCtmVert.icons[reverse?3:2]; - return variation.seamsCtmVert.icons[0]; - case V9: - case V4: - int index=x+y*606731+z*571163+side*555491; - if(index<0) index=-index; - - return variation.variations9.icons[index%((variation.kind==V9)?9:4)]; - case CTMX: - return variation.icon; - } - - return GeneralClient.getMissingIcon(); - } - - void register(Block block, String name) { - register(block, name, ItemCarvable.class); - } - - void registerBlock(Block block, String name) { - registerBlock(block, name, ItemCarvable.class); - } - - void registerBlock(Block block, String name, Class cl) { - block.setBlockName(name); - GameRegistry.registerBlock(block, cl, "chisel." + name); - chiselBlocks.add(block); - } - - void register(Block block, String name, Class cl) { - registerBlock(block, name, cl); - - if (block instanceof BlockMarbleSlab) { - BlockMarbleSlab slab = (BlockMarbleSlab) block; - } - - for (CarvableVariation variation : variations) { - registerVariation(name, variation, block, variation.metadata); - - if (block instanceof BlockMarbleSlab && ((BlockMarbleSlab) block).isBottom) { - BlockMarbleSlab slab = (BlockMarbleSlab) block; - slab.top.setHarvestLevel("chisel", 0, variation.metadata); - - if(! forbidChiseling){ - Carving.chisel.addVariation(name + ".top", slab.top, variation.metadata, 0); - Carving.chisel.setGroupClass(name + ".top", name); - } - } - } - } - - public void registerVariation(String name, CarvableVariation variation, Block block, int blockMeta) { - LanguageRegistry.addName(new ItemStack(block, 1, blockMeta), - Chisel.blockDescriptions? - variation.blockName: - variation.description - ); - - if(forbidChiseling) return; - - if (variation.block == null) { - Carving.chisel.addVariation(name, block, blockMeta, variation.metadata); - block.setHarvestLevel("chisel", 0, blockMeta); - } else { - Carving.chisel.addVariation(name, variation.block, variation.blockMeta, variation.metadata); - variation.block.setHarvestLevel("chisel", 0, variation.blockMeta); - } - } - - public void registerBlockIcons(String modName, Block block, IIconRegister register) { - for (CarvableVariation variation : variations) { - if (variation.block != null) { - variation.block.registerBlockIcons(register); - - if (variation.block instanceof BlockPane) { - variation.icon = variation.block.getBlockTextureFromSide(2); - variation.iconTop = ((BlockPane) variation.block).getBlockTextureFromSide(0); - variation.iconBot = ((BlockPane) variation.block).getBlockTextureFromSide(0); - } else { - switch (variation.kind) { - case 0: - variation.icon = variation.block.getIcon(2, variation.blockMeta); - break; - case 1: - variation.icon = variation.block.getIcon(2, variation.blockMeta); - variation.iconTop = variation.block.getIcon(0, variation.blockMeta); - break; - case 2: - variation.icon = variation.block.getIcon(2, variation.blockMeta); - variation.iconTop = variation.block.getIcon(1, variation.blockMeta); - variation.iconBot = variation.block.getIcon(0, variation.blockMeta); - break; - } - } - } else { - switch (variation.kind) { - case 0: - variation.icon = register.registerIcon(modName + ":" + variation.texture); - break; - case 1: - variation.icon = register.registerIcon(modName + ":" + variation.texture + "-side"); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); - break; - case 2: - variation.icon = register.registerIcon(modName + ":" + variation.texture + "-side"); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); - variation.iconBot = register.registerIcon(modName + ":" + variation.texture + "-bottom"); - break; - case 3: - CarvableVariationCTM ctm=new CarvableVariationCTM(); - ctm.seams[0]=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-ctm1"),4,4); - ctm.seams[1]=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-ctm2"),4,4); - ctm.seams[2]=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-ctm3"),4,4); - variation.ctm=ctm; - break; - case 4: - variation.seamsCtmVert=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-ctmv"),2,2); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); - break; - case 5: - variation.seamsCtmVert=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-ctmh"),2,2); - variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); - break; - case V9: - variation.variations9=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-v9"),3,3); - break; - case V4: - variation.variations9=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-v4"),2,2); - break; - case CTMX: - variation.icon=register.registerIcon(modName + ":" + variation.texture); - variation.submap=new TextureSubmap(register.registerIcon(modName + ":" + variation.texture+"-ctm"),4,4); - variation.submapSmall=new TextureSubmap(variation.icon,2,2); - break; - } - } - } - } - - public void registerSubBlocks(Block block, CreativeTabs tabs, List list) { - for (CarvableVariation variation : variations) { - list.add(new ItemStack(block, 1, variation.metadata)); - } - } - - private boolean isSame(IBlockAccess world, int x, int y, int z,Block block,int meta) { - return world.getBlock(x,y,z).equals(block) && world.getBlockMetadata(x, y, z) == meta; - } - - public void setBlockName(String name) { - blockName=name; - } - - public static Set getChiselBlockSet() { - HashSet tools = new HashSet(); - tools.addAll(CarvableHelper.chiselBlocks); - return tools; - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/CarvableVariation.java b/src/main/java/info/jbcs/minecraft/chisel/CarvableVariation.java deleted file mode 100755 index 13881ab0..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/CarvableVariation.java +++ /dev/null @@ -1,32 +0,0 @@ -package info.jbcs.minecraft.chisel; - -import info.jbcs.minecraft.chisel.render.TextureSubmap; -import net.minecraft.block.Block; -import net.minecraft.util.IIcon; - -public class CarvableVariation { - public String blockName; - public String description; - public int metadata; - public int kind; - - public Block block; - public int blockMeta; - - public String texture; - - public IIcon icon; - public IIcon iconTop; - public IIcon iconBot; - - public CarvableVariationCTM ctm; - public TextureSubmap seamsCtmVert; - public TextureSubmap variations9; - - public TextureSubmap submap; - public TextureSubmap submapSmall; - - static class CarvableVariationCTM { - TextureSubmap seams[] = new TextureSubmap[3]; - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/Carving.java b/src/main/java/info/jbcs/minecraft/chisel/Carving.java deleted file mode 100755 index 1be18e81..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/Carving.java +++ /dev/null @@ -1,162 +0,0 @@ -package info.jbcs.minecraft.chisel; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public class Carving { - HashMap carvingGroupsByName=new HashMap(); - HashMap carvingGroupsByOre=new HashMap(); - HashMap carvingGroupsByVariation=new HashMap(); - - public static Carving chisel=new Carving(); - public static Carving needle=new Carving(); - - String key(Item item,int metadata){ - return Item.itemRegistry.getNameForObject(item)+"|"+metadata; - } - - String key(Block block, int metadata){ - return Block.blockRegistry.getNameForObject(block)+"|"+metadata; - } - - public boolean isVariationOfSameClass(Block target,int metadata1, Block block2, int metadata2){ - CarvingGroup group1=carvingGroupsByVariation.get(key(target,metadata1)); - if(group1==null) return false; - - CarvingGroup group2=carvingGroupsByVariation.get(key(block2,metadata2)); - if(group2==null) return false; - - if(group1==group2) - return true; - - return group1.className.equals(group2.className) && ! group1.className.isEmpty(); - } - - public CarvingVariation[] getVariations(Block block,int metadata){ - CarvingGroup group=getGroup(block,metadata); - if(group==null) return null; - - CarvingVariation[] res=group.variations.toArray(new CarvingVariation[group.variations.size()]); - return res; - } - - public String getOre(Block block,int metadata){ - CarvingGroup group=getGroup(block,metadata); - if(group==null) return null; - - return group.oreName; - } - - public ArrayList getItems(ItemStack chiseledItem) { - ArrayList items=new ArrayList(); - int damage=chiseledItem.getItemDamage(); - - CarvingGroup group=getGroup(Block.getBlockFromItem(chiseledItem.getItem()),damage); - if(group==null) return items; - - HashMap mapping=new HashMap(); - - if (group.variations != null) { - for (CarvingVariation v: group.variations) { - - String key=Block.getIdFromBlock(v.block)+"|"+v.damage; - if(mapping.containsKey(key)) continue; - mapping.put(key, 1); - - items.add(new ItemStack(v.block, 1, v.damage)); - } - } - - ArrayList ores; - if(group.oreName!=null && ((ores=OreDictionary.getOres(group.oreName))!=null)){ - for(ItemStack stack: ores){ - - String key=Item.getIdFromItem(stack.getItem())+"|"+stack.getItemDamage(); - if(mapping.containsKey(key)) continue; - mapping.put(key, 2); - - items.add(stack); - } - } - - return items; - } - - public CarvingGroup getGroup(Block block,int metadata) { - if(block.equals(Blocks.stone)) block=Blocks.stonebrick; - - // Check name first - CarvingGroup res; - - if((res=carvingGroupsByOre.get(OreDictionary.getOreName(OreDictionary.getOreID(new ItemStack(block,1,metadata)))))!=null) - return res; - - if((res=carvingGroupsByVariation.get(key(block,metadata)))!=null) - return res; - - return null; - } - - CarvingGroup getGroup(String name){ - CarvingGroup group=carvingGroupsByName.get(name); - if(group==null){ - group=new CarvingGroup(name); - group.className=name; - carvingGroupsByName.put(name,group); - } - - return group; - } - - public CarvingVariation addVariation(String name,Block block,int metadata,int order){ - CarvingGroup group=getGroup(name); - - CarvingGroup blockGroup=carvingGroupsByVariation.get(key(block,metadata)); - if(blockGroup!=null || blockGroup==group) return null; - - CarvingVariation variation=new CarvingVariation(block,metadata,order); - group.variations.add(variation); - Collections.sort(group.variations); - carvingGroupsByVariation.put(key(block,metadata), group); - - return variation; - } - - - public void registerOre(String name, String oreName) { - CarvingGroup group=getGroup(name); - - carvingGroupsByOre.put(oreName, group); - - group.oreName=oreName; - } - - public void setGroupClass(String name,String className){ - CarvingGroup group=getGroup(name); - - group.className=className; - } - - public void setVariationSound(String name, String sound) { - CarvingGroup group=getGroup(name); - group.sound=sound; - } - - public String getVariationSound(Block block,int metadata) { - return getVariationSound(Item.getItemFromBlock(block), metadata); - } - public String getVariationSound(Item item,int metadata) { - CarvingGroup blockGroup=carvingGroupsByVariation.get(key(item,metadata)); - if(blockGroup==null || blockGroup.sound==null) return "chisel:chisel"; - - return blockGroup.sound; - } -} - diff --git a/src/main/java/info/jbcs/minecraft/chisel/CarvingGroup.java b/src/main/java/info/jbcs/minecraft/chisel/CarvingGroup.java deleted file mode 100644 index 4cdf543d..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/CarvingGroup.java +++ /dev/null @@ -1,16 +0,0 @@ -package info.jbcs.minecraft.chisel; - -import java.util.ArrayList; - -public class CarvingGroup{ - public CarvingGroup(String n) { - name=n; - } - - String name; - String className; - String sound; - String oreName; - - ArrayList variations=new ArrayList(); -} \ No newline at end of file diff --git a/src/main/java/info/jbcs/minecraft/chisel/CarvingVariation.java b/src/main/java/info/jbcs/minecraft/chisel/CarvingVariation.java deleted file mode 100755 index 30b757fa..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/CarvingVariation.java +++ /dev/null @@ -1,22 +0,0 @@ -package info.jbcs.minecraft.chisel; - -import net.minecraft.block.Block; - -public class CarvingVariation implements Comparable { - public CarvingVariation(Block block, int metadata, int ord) { - this.order=ord; - this.block=block; - this.meta=metadata; - this.damage=metadata; - } - - @Override - public int compareTo(Object a) { - return order-((CarvingVariation)a).order; - } - - public int order; - public Block block; - public int meta; - public int damage; -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/Chisel.java b/src/main/java/info/jbcs/minecraft/chisel/Chisel.java old mode 100755 new mode 100644 index 9221727e..181456a6 --- a/src/main/java/info/jbcs/minecraft/chisel/Chisel.java +++ b/src/main/java/info/jbcs/minecraft/chisel/Chisel.java @@ -1,281 +1,187 @@ -package info.jbcs.minecraft.chisel; - -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.BlockCarvableGlass; -import info.jbcs.minecraft.chisel.block.BlockHolystone; -import info.jbcs.minecraft.chisel.block.BlockLavastone; -import info.jbcs.minecraft.chisel.block.BlockLightstoneCarvable; -import info.jbcs.minecraft.chisel.block.BlockCarvable; -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.BlockCarvablePane; -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.BlockCarvablePowered; -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.entity.EntityBallOMoss; -import info.jbcs.minecraft.chisel.entity.EntityCloudInABottle; -import info.jbcs.minecraft.chisel.inventory.ContainerChisel; -import info.jbcs.minecraft.chisel.inventory.GuiChisel; -import info.jbcs.minecraft.chisel.inventory.InventoryChiselSelection; -import info.jbcs.minecraft.chisel.item.ItemBallOMoss; -import info.jbcs.minecraft.chisel.item.ItemCarvable; -import info.jbcs.minecraft.chisel.item.ItemChisel; -import info.jbcs.minecraft.chisel.item.ItemCloudInABottle; -import info.jbcs.minecraft.chisel.item.ItemMarbleSlab; -import info.jbcs.minecraft.utilities.General; - -import java.io.File; -import java.util.ArrayList; - -import pl.asie.lib.network.PacketHandler; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.world.World; -import net.minecraftforge.common.config.Configuration; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.Mod.EventHandler; -import cpw.mods.fml.common.Mod.Instance; -import cpw.mods.fml.common.SidedProxy; -import cpw.mods.fml.common.event.FMLInitializationEvent; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; -import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent.Action; -import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.network.IGuiHandler; -import cpw.mods.fml.common.network.NetworkRegistry; -import cpw.mods.fml.common.registry.EntityRegistry; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.LanguageRegistry; -import cpw.mods.fml.common.registry.GameRegistry.Type; - - -@Mod(modid = "chisel", name = "Chisel", version = "1.5.3", dependencies = "required-after:asielib") -public class Chisel { - public static ItemChisel chisel; -// public static ItemChisel needle; - public static Item itemIceshard; - public static ItemCloudInABottle itemCloudInABottle; - public static ItemBallOMoss itemBallOMoss; - - public static CreativeTabs tabChisel; - - public static boolean configExists; - public static boolean dropIceShards; - public static boolean oldPillars; - public static boolean disableCTM; - public static double concreteVelocity; - public static int particlesTickrate; - public static boolean blockDescriptions; - - public static final StepSoundEx soundHolystoneFootstep = new StepSoundEx("chisel:holystone", "chisel:holystone", "chisel:holystone",1.0f); - public static final StepSoundEx soundTempleFootstep = new StepSoundEx("dig.stone", "chisel:temple-footstep", "dig.stone",1.0f); - public static final StepSoundEx soundMetalFootstep = new StepSoundEx("chisel:metal", "chisel:metal", "chisel:metal",1.0f); - - static Configuration config; - - public static int RenderEldritchId; - public static int RenderCTMId; - public static int RenderCarpetId; - - @Instance("chisel") - public static Chisel instance; - - @SidedProxy(clientSide = "info.jbcs.minecraft.chisel.ProxyClient", serverSide = "info.jbcs.minecraft.chisel.Proxy") - public static Proxy proxy; - - public static PacketHandler packet; - public static boolean chiselStoneToCobbleBricks; - public static boolean enableChiseling; - - public void walk(File root,ArrayList fl) { - File[] list = root.listFiles(); - if (list == null) return; - - for (File f : list) { - if (f.isDirectory()) { - walk(f,fl); - } else { - fl.add(f); - } - } - } - - public static boolean featureEnabled(String feature) { - return Chisel.config.get("features", feature, true).getBoolean(true); - } - - @EventHandler - public void missingMapping(FMLMissingMappingsEvent event) { - for(MissingMapping m: event.get()) { - // This bug was introduced along with Chisel 1.5.2, and was fixed in 1.5.3. - // Ice Stairs were called null.0-7 instead of other names, and Marble/Limestone stairs did not exist. - // This fixes the bug. - if(m.name.startsWith("null.") && m.name.length() == 6 && m.type == Type.BLOCK) { - m.setAction(Action.WARN); - } - } - } - - @EventHandler - public void preInit(FMLPreInitializationEvent event) { - File configFile=event.getSuggestedConfigurationFile(); - configExists=configFile.exists(); - config = new Configuration(configFile); - config.load(); - - chisel = (ItemChisel) new ItemChisel(Carving.chisel).setTextureName("chisel:chisel").setUnlocalizedName("chisel").setCreativeTab(CreativeTabs.tabTools); - LanguageRegistry.addName(chisel, "Chisel"); - GameRegistry.registerItem(chisel, "chisel.chisel"); - -// needle = (ItemChisel) new ItemChisel(config.getItem("needle",7816).getInt(),Carving.needle).setTextureName("chisel:needle").setUnlocalizedName("needle").setCreativeTab(CreativeTabs.tabTools); -// LanguageRegistry.addName(needle, "Needle"); - - if(featureEnabled("cloud")) { - itemCloudInABottle=(ItemCloudInABottle) new ItemCloudInABottle().setUnlocalizedName("Chisel:cloudinabottle").setTextureName("Chisel:cloudinabottle").setCreativeTab(CreativeTabs.tabTools); - LanguageRegistry.addName(itemCloudInABottle, "Cloud in a bottle"); - EntityRegistry.registerModEntity(EntityCloudInABottle.class, "CloudInABottle", 1, this, 40, 1, true); - GameRegistry.registerItem(itemCloudInABottle, "chisel.cloudinabottle"); - } - - if(featureEnabled("ballOfMoss")) { - itemBallOMoss=(ItemBallOMoss) new ItemBallOMoss().setUnlocalizedName("Chisel:ballomoss").setTextureName("Chisel:ballomoss").setCreativeTab(CreativeTabs.tabTools); - LanguageRegistry.addName(itemBallOMoss, "Ball O' Moss"); - EntityRegistry.registerModEntity(EntityBallOMoss.class, "BallOMoss", 2, this, 40, 1, true); - GameRegistry.registerItem(itemBallOMoss, "chisel.ballomoss"); - } - - concreteVelocity=config.get("general", "concreteVelocity",0.45,"Traversing concrete roads, players will acceleration to this velocity. For reference, normal running speed is about 0.28. Set to 0 to disable acceleration.").getDouble(0.45); - particlesTickrate=config.get("client", "particleTickrate",1,"Particle tick rate. Greater value = less particles.").getInt(1); - oldPillars=config.get("client", "pillarOldGraphics",false,"Use old pillar textures").getBoolean(false); - disableCTM=!config.get("client", "connectedTextures",true,"Enable connected textures").getBoolean(true); - blockDescriptions=config.get("client", "tooltipsUseBlockDescriptions",true,"Make variations of blocks have the same name, and use the description in tooltip to distinguish them.").getBoolean(true); - chiselStoneToCobbleBricks=config.get("general", "chiselStoneToCobbleBricks",true,"Chisel stone to cobblestone and bricks by left-click.").getBoolean(true); - enableChiseling=config.get("general", "enableChiseling",true,"Change blocks to another block using the Chisel and left-click.").getBoolean(true); - - /* if(dropIceShards){ - itemIceshard=new Item().setCreativeTab(CreativeTabs.tabMaterials).setUnlocalizedName("Chisel:iceshard").setTextureName("Chisel:iceshard"); -// itemIceshard=new Item(2582).setCreativeTab(CreativeTabs.tabMaterials).setUnlocalizedName("Chisel:iceshard").func_111206_d("Chisel:iceshard"); - LanguageRegistry.addName(itemIceshard, "Ice shard"); - GameRegistry.registerItem(itemIceshard, "chisel.iceshard"); - - CraftingManager.getInstance().addRecipe(new ItemStack(Blocks.ice, 1), new Object[] { "**", "**", '*', itemIceshard, }); - } */ - - if(config.get("client", "customCreativeTab", true, "Add a new tab in creative mode and put all blocks that work with chisel there.").getBoolean(true)){ - tabChisel = new CreativeTabs("tabChisel") { - @Override - public Item getTabIconItem() { - return chisel; - } - }; - - LanguageRegistry.instance().addStringLocalization("itemGroup.tabChisel", "en_US", "Chisel blocks"); - } else{ - tabChisel = CreativeTabs.tabBlock; - } - - ChiselBlocks.load(); - - proxy.preInit(); - } - - @EventHandler - public void init(FMLInitializationEvent event) { - packet = new PacketHandler("chisel", new Packets(), new Packets()); - - - Block concreteRecipeBlock = Block.getBlockFromName(config.get("tweaks", "concrete recipe block","gravel","Unlocalized name of the block that, when burned, will produce concrete (examples: lightgem, stone)").getString()); - if(concreteRecipeBlock == null) concreteRecipeBlock = Blocks.gravel; - - FurnaceRecipes.smelting().func_151393_a(concreteRecipeBlock, new ItemStack(ChiselBlocks.blockConcrete), 0.1F); - - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockSandstoneScribbles, 1), new Object[] { "X", 'X', new ItemStack(ChiselBlocks.blockSandstone, 1, 8), }); - for(int meta=0;meta<16;meta++){ - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarbleSlab, 6, 0), new Object[] { "***", '*', new ItemStack(ChiselBlocks.blockMarble, 1, meta)}); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockLimestoneSlab, 6, 0), new Object[] {"***", '*', new ItemStack(ChiselBlocks.blockLimestone, 1, meta)}); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarblePillarSlab, 6, 0), new Object[] {"***", '*', new ItemStack(ChiselBlocks.blockMarblePillar, 1, meta)}); - - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarblePillar, 6), new Object[] { "XX", "XX", "XX", 'X', new ItemStack(ChiselBlocks.blockMarble, 1, meta), }); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarble, 4), new Object[] { "XX", "XX", 'X', new ItemStack(ChiselBlocks.blockMarblePillar, 1, meta), }); - - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockIcePillar, 6), new Object[] { "XX", "XX", "XX", 'X', new ItemStack(ChiselBlocks.blockIce, 1, meta), }); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockIce, 4), new Object[] { "XX", "XX", 'X', new ItemStack(ChiselBlocks.blockIcePillar, 1, meta), }); - - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockSandstone, 1), new Object[] { "X", 'X', new ItemStack(ChiselBlocks.blockSandstoneScribbles, 1, meta), }); - - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockCarpet, 8, meta), new Object[] { "YYY", "YXY", "YYY", 'X', new ItemStack(Items.string, 1), 'Y', new ItemStack(Blocks.wool, 1, meta), }); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockCarpetFloor, 3, meta), new Object[] { "XX", 'X', new ItemStack(ChiselBlocks.blockCarpet, 1, meta), }); - } - - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockHolystone, 8, 0), new Object[] { "***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.feather, 1)}); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockLavastone, 8, 0), new Object[] { "***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.lava_bucket, 1)}); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockFft, 8, 0), new Object[] { "***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.gold_nugget, 1)}); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockTyrian, 8, 0), new Object[] { "***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.iron_ingot, 1)}); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockTemple, 8, 0), new Object[] { "***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.dye, 1, 4)}); - CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockFactory,32,0), new Object[] { "*X*", "X X", "*X*", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.iron_ingot, 1)}); - - - if(config.get("general", "chiselAlternateRecipe", false, "Use alternative crafting recipe for the chisel").getBoolean(false)){ - CraftingManager.getInstance().addRecipe(new ItemStack(chisel, 1), new Object[] { " YY", " YY", "X ", 'X', Items.stick, 'Y', Items.iron_ingot }); - } else{ - CraftingManager.getInstance().addRecipe(new ItemStack(chisel, 1), new Object[] { " Y", "X ", 'X', Items.stick, 'Y', Items.iron_ingot }); - } - - CraftingManager.getInstance().addRecipe(new ItemStack(itemBallOMoss, 1), new Object[] { "XYX","YXY","XYX", 'X', Blocks.vine, 'Y', Items.stick }); - CraftingManager.getInstance().addRecipe(new ItemStack(itemCloudInABottle, 1), new Object[] { "X X","XYX"," X ", 'X', Blocks.glass, 'Y', Items.quartz }); - - - NetworkRegistry.INSTANCE.registerGuiHandler(this, new IGuiHandler(){ - @Override - public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerChisel(player.inventory, new InventoryChiselSelection(null)); - } - - @Override - public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GuiChisel(player.inventory, new InventoryChiselSelection(null)); - } - }); - - - - GameRegistry.registerWorldGenerator(new MarbleWorldGenerator(ChiselBlocks.blockMarble, 32, config.get("worldgen", "marbleAmount", 8, "Amount of marble to generate in the world; use 0 for none").getInt(8)), 1000); - GameRegistry.registerWorldGenerator(new MarbleWorldGenerator(ChiselBlocks.blockLimestone, 32, config.get("worldgen", "limestoneAmount", 4, "Amount of limestone to generate in the world; use 0 for none").getInt(4)), 1000); - - proxy.init(); - - config.save(); - - MinecraftForge.EVENT_BUS.register(this); - } - - @EventHandler - public void postInit(FMLPostInitializationEvent event) { - new ChiselModCompatibility().postInit(event); - } -} +package info.jbcs.minecraft.chisel; + +import info.jbcs.minecraft.chisel.carving.Carving; +import info.jbcs.minecraft.chisel.entity.EntityBallOMoss; +import info.jbcs.minecraft.chisel.entity.EntityCloudInABottle; +import info.jbcs.minecraft.chisel.inventory.ContainerChisel; +import info.jbcs.minecraft.chisel.client.gui.GuiChisel; +import info.jbcs.minecraft.chisel.inventory.InventoryChiselSelection; +import info.jbcs.minecraft.chisel.item.ItemBallOMoss; +import info.jbcs.minecraft.chisel.item.ItemChisel; +import info.jbcs.minecraft.chisel.item.ItemCloudInABottle; + +import java.io.File; + +import net.minecraft.block.Block; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.world.World; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.MinecraftForge; +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.Action; +import cpw.mods.fml.common.event.FMLMissingMappingsEvent.MissingMapping; +import cpw.mods.fml.common.network.IGuiHandler; +import cpw.mods.fml.common.network.NetworkRegistry; +import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.GameRegistry.Type; + + +@Mod(modid = "chisel", name = "Chisel", version = "1.5.4") +public class Chisel +{ + public static ItemChisel chisel; + // public static ItemChisel needle; + public static Item itemIceshard; + public static ItemCloudInABottle itemCloudInABottle; + public static ItemBallOMoss itemBallOMoss; + + public static CreativeTabs tabChisel; + + public static boolean configExists; + public static boolean dropIceShards; + public static boolean oldPillars; + public static boolean disableCTM; + public static double concreteVelocity; + public static int particlesTickrate; + public static boolean blockDescriptions; + public static boolean ghostCloud; + + public static final StepSoundEx soundHolystoneFootstep = new StepSoundEx("chisel:holystone", "chisel:holystone", "chisel:holystone", 1.0f); + public static final StepSoundEx soundTempleFootstep = new StepSoundEx("dig.stone", "chisel:temple-footstep", "dig.stone", 1.0f); + public static final StepSoundEx soundMetalFootstep = new StepSoundEx("chisel:metal", "chisel:metal", "chisel:metal", 1.0f); + + static Configuration config; + + public static int RenderEldritchId; + public static int RenderCTMId; + public static int RenderCarpetId; + + @Instance("chisel") + public static Chisel instance; + + @SidedProxy(clientSide = "info.jbcs.minecraft.chisel.ClientProxy", serverSide = "info.jbcs.minecraft.chisel.CommonProxy") + public static CommonProxy proxy; + + public static boolean chiselStoneToCobbleBricks; + public static boolean enableChiseling; + + public static boolean featureEnabled(String feature) + { + return Chisel.config.get("features", feature, true).getBoolean(true); + } + + @EventHandler + public void missingMapping(FMLMissingMappingsEvent event) + { + for(MissingMapping m : event.get()) + { + // This bug was introduced along with Chisel 1.5.2, and was fixed in 1.5.3. + // Ice Stairs were called null.0-7 instead of other names, and Marble/Limestone stairs did not exist. + // This fixes the bug. + if(m.name.startsWith("null.") && m.name.length() == 6 && m.type == Type.BLOCK) + { + m.setAction(Action.WARN); + } + } + } + + @EventHandler + public void preInit(FMLPreInitializationEvent event) + { + File configFile = event.getSuggestedConfigurationFile(); + configExists = configFile.exists(); + config = new Configuration(configFile); + config.load(); + + chisel = (ItemChisel) new ItemChisel(Carving.chisel).setTextureName("chisel:chisel").setCreativeTab(CreativeTabs.tabTools); + GameRegistry.registerItem(chisel, "chisel"); + + if(featureEnabled("cloud")) + { + itemCloudInABottle = (ItemCloudInABottle) new ItemCloudInABottle().setTextureName("Chisel:cloudinabottle").setCreativeTab(CreativeTabs.tabTools); + EntityRegistry.registerModEntity(EntityCloudInABottle.class, "CloudInABottle", 1, this, 40, 1, true); + GameRegistry.registerItem(itemCloudInABottle, "chisel.cloudinabottle"); + } + + if(featureEnabled("ballOfMoss")) + { + itemBallOMoss = (ItemBallOMoss) new ItemBallOMoss().setTextureName("Chisel:ballomoss").setCreativeTab(CreativeTabs.tabTools); + EntityRegistry.registerModEntity(EntityBallOMoss.class, "BallOMoss", 2, this, 40, 1, true); + GameRegistry.registerItem(itemBallOMoss, "ballomoss"); + } + + concreteVelocity = config.get("general", "concreteVelocity", 0.45, "Traversing concrete roads, players will acceleration to this velocity. For reference, normal running speed is about 0.28. Set to 0 to disable acceleration.").getDouble(0.45); + particlesTickrate = config.get("client", "particleTickrate", 1, "Particle tick rate. Greater value = less particles.").getInt(1); + oldPillars = config.get("client", "pillarOldGraphics", false, "Use old pillar textures").getBoolean(false); + disableCTM = !config.get("client", "connectedTextures", true, "Enable connected textures").getBoolean(true); + blockDescriptions = config.get("client", "tooltipsUseBlockDescriptions", true, "Make variations of blocks have the same name, and use the description in tooltip to distinguish them.").getBoolean(true); + chiselStoneToCobbleBricks = config.get("general", "chiselStoneToCobbleBricks", true, "Chisel stone to cobblestone and bricks by left-click.").getBoolean(true); + enableChiseling = config.get("general", "enableChiselingLeftClicking", false, "Change blocks to another block using the Chisel and left-click.").getBoolean(false); + ghostCloud = config.get("general", "doesCloudRenderLikeGhost", true).getBoolean(true); + + tabChisel = new CreativeTabs("tabChisel") + { + @Override + public Item getTabIconItem() + { + return chisel; + } + }; + + ChiselBlocks.load(); + + proxy.preInit(); + } + + @EventHandler + public void init(FMLInitializationEvent event) + { + Crafting.init(); + + NetworkRegistry.INSTANCE.registerGuiHandler(this, new IGuiHandler() + { + @Override + public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) + { + return new ContainerChisel(player.inventory, new InventoryChiselSelection(null)); + } + + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) + { + return new GuiChisel(player.inventory, new InventoryChiselSelection(null)); + } + }); + + + GameRegistry.registerWorldGenerator(new MarbleWorldGenerator(ChiselBlocks.blockMarble, 32, config.get("worldgen", "marbleAmount", 8, "Amount of marble to generate in the world; use 0 for none").getInt(8)), 1000); + GameRegistry.registerWorldGenerator(new MarbleWorldGenerator(ChiselBlocks.blockLimestone, 32, config.get("worldgen", "limestoneAmount", 4, "Amount of limestone to generate in the world; use 0 for none").getInt(4)), 1000); + + proxy.init(); + + config.save(); + + MinecraftForge.EVENT_BUS.register(this); + } + + @EventHandler + public void postInit(FMLPostInitializationEvent event) + { + new ChiselModCompatibility().postInit(event); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/ChiselBlocks.java b/src/main/java/info/jbcs/minecraft/chisel/ChiselBlocks.java index 6bb19b28..982aeb21 100644 --- a/src/main/java/info/jbcs/minecraft/chisel/ChiselBlocks.java +++ b/src/main/java/info/jbcs/minecraft/chisel/ChiselBlocks.java @@ -24,6 +24,9 @@ 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.carving.CarvableHelper; +import info.jbcs.minecraft.chisel.carving.CarvableVariation; +import info.jbcs.minecraft.chisel.carving.Carving; import info.jbcs.minecraft.chisel.item.ItemCarvable; import info.jbcs.minecraft.chisel.item.ItemMarbleSlab; import net.minecraft.block.Block; @@ -34,1104 +37,1164 @@ import net.minecraftforge.oredict.OreDictionary; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; -public class ChiselBlocks { - public static BlockCarvable blockMarble; - public static BlockCarvable blockMarblePillar; - public static BlockCarvable blockLimestone; - public static BlockMarbleSlab blockMarbleSlab; - public static BlockMarbleSlab blockLimestoneSlab; - public static BlockMarbleSlab blockMarblePillarSlab; - public static BlockCarvable blockCobblestone; - public static BlockMarbleWall cobblestoneWall; - public static BlockCarvableGlass blockGlass; - public static BlockCarvablePane blockPaneGlass; - public static BlockCarvable blockSandstone; - public static BlockCarvable blockSandstoneScribbles; - public static BlockConcrete blockConcrete; - public static BlockRoadLine blockRoadLine; - public static BlockCarvable blockIron; - public static BlockCarvable blockGold; - public static BlockCarvable blockDiamond; - public static BlockLightstoneCarvable blockLightstone; - public static BlockCarvable blockLapis; - public static BlockCarvable blockEmerald; - public static BlockCarvable blockNetherBrick; - public static BlockCarvable blockNetherrack; - public static BlockCarvable blockCobblestoneMossy; - public static BlockCarvable stoneBrick; - public static BlockMarbleStairs blockMarbleStairs; - public static BlockMarbleStairs blockLimestoneStairs; - public static BlockCarvablePane blockPaneIron; - public static BlockMarbleIce blockIce; - public static BlockMarbleIce blockIcePillar; - public static BlockMarbleIceStairs blockIceStairs; - public static BlockCarvable[] blockPlanks=new BlockCarvable[6]; - public static BlockCarvable blockObsidian; - public static BlockCarvablePowered blockRedstone; - public static BlockHolystone blockHolystone; - public static BlockLavastone blockLavastone; - public static BlockCarvable blockFft; - public static BlockCarvable blockCarpet; - public static BlockMarbleCarpet blockCarpetFloor; - public static BlockCarvable blockBookshelf; - public static BlockCarvable blockTyrian; - public static BlockCarvable blockDirt; - public static BlockCloud blockCloud; - public static BlockCarvable blockTemple; - public static BlockCarvable blockTempleMossy; - public static BlockCarvable blockFactory; - - public static BlockSnakestone blockSnakestone; - public static BlockSnakestone blockSandSnakestone; - public static BlockSnakestoneObsidian blockObsidianSnakestone; - - public static BlockSpikes blockSpiketrap; - - // 1.7 - public static BlockCarvableGlass[] blockStainedGlass = new BlockCarvableGlass[4]; - public static BlockCarvablePane[] blockStainedGlassPane = new BlockCarvablePane[8]; - - public static void load() { - if(Chisel.featureEnabled("marble")) { - blockMarble = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); - blockMarble.carverHelper.setBlockName("Marble"); - blockMarble.carverHelper.addVariation("Raw marble", 0, "marble"); - blockMarble.carverHelper.addVariation("Marble brick", 1, "marble/a1-stoneornamental-marblebrick"); - blockMarble.carverHelper.addVariation("Classic marble panel", 2, "marble/a1-stoneornamental-marbleclassicpanel"); - blockMarble.carverHelper.addVariation("Ornate marble panel", 3, "marble/a1-stoneornamental-marbleornate"); - blockMarble.carverHelper.addVariation("Marble panel", 4, "marble/panel"); - blockMarble.carverHelper.addVariation("Marble block", 5, "marble/block"); - blockMarble.carverHelper.addVariation("Dark creeper marble", 6, "marble/terrain-pistonback-marblecreeperdark"); - blockMarble.carverHelper.addVariation("Light creeper marble", 7, "marble/terrain-pistonback-marblecreeperlight"); - blockMarble.carverHelper.addVariation("Carved marble", 8, "marble/a1-stoneornamental-marblecarved"); - blockMarble.carverHelper.addVariation("Radial carved marble", 9, "marble/a1-stoneornamental-marblecarvedradial"); - blockMarble.carverHelper.addVariation("Marble with dent", 10, "marble/terrain-pistonback-marbledent"); - blockMarble.carverHelper.addVariation("Marble with large dent", 11, "marble/terrain-pistonback-marbledent-small"); - blockMarble.carverHelper.addVariation("Marble tiles", 12, "marble/marble-bricks"); - blockMarble.carverHelper.addVariation("Arranged marble tiles", 13, "marble/marble-arranged-bricks"); - blockMarble.carverHelper.addVariation("Fancy marble tiles", 14, "marble/marble-fancy-bricks"); - blockMarble.carverHelper.addVariation("Marble blocks", 15, "marble/marble-blocks"); - blockMarble.carverHelper.register(blockMarble, "marble"); - OreDictionary.registerOre("blockMarble", blockMarble); - Carving.chisel.registerOre("marble","blockMarble"); - - blockMarbleSlab = (BlockMarbleSlab) new BlockMarbleSlab(blockMarble).setHardness(2.0F).setResistance(10F); - blockMarbleSlab.carverHelper.setBlockName("Marble Slab"); - blockMarbleSlab.carverHelper.addVariation("Raw marble slab", 0, "marble"); - blockMarbleSlab.carverHelper.addVariation("Marble brick slab", 1, "marbleslab/a1-stoneornamental-marblebrick"); - blockMarbleSlab.carverHelper.addVariation("Classic marble panel slab", 2, "marbleslab/a1-stoneornamental-marbleclassicpanel"); - blockMarbleSlab.carverHelper.addVariation("Ornate marble panel slab", 3, "marbleslab/a1-stoneornamental-marbleornate"); - blockMarbleSlab.carverHelper.addVariation("Marble panel slab", 4, "marbleslab/a1-stoneornamental-marblepanel"); - blockMarbleSlab.carverHelper.addVariation("Marble block slab", 5, "marbleslab/terrain-pistonback-marble"); - blockMarbleSlab.carverHelper.addVariation("Dark creeper marble slab", 6, "marbleslab/terrain-pistonback-marblecreeperdark"); - blockMarbleSlab.carverHelper.addVariation("Light creeper marble slab", 7, "marbleslab/terrain-pistonback-marblecreeperlight"); - blockMarbleSlab.carverHelper.addVariation("Carved marble slab", 8, "marbleslab/a1-stoneornamental-marblecarved"); - blockMarbleSlab.carverHelper.addVariation("Radial carved marble slab", 9, "marbleslab/a1-stoneornamental-marblecarvedradial"); - blockMarbleSlab.carverHelper.addVariation("Marble slab with dent", 10, "marbleslab/terrain-pistonback-marbledent"); - blockMarbleSlab.carverHelper.addVariation("Marble slab with large dent ", 11, "marbleslab/terrain-pistonback-marbledent-small"); - blockMarbleSlab.carverHelper.addVariation("Marble tiles slab", 12, "marbleslab/marble-bricks"); - blockMarbleSlab.carverHelper.addVariation("Arranged marble tiles slab", 13, "marbleslab/marble-arranged-bricks"); - blockMarbleSlab.carverHelper.addVariation("Fancy marble tiles slab", 14, "marbleslab/marble-fancy-bricks"); - blockMarbleSlab.carverHelper.addVariation("Marble blocks slab", 15, "marbleslab/marble-blocks"); - blockMarbleSlab.carverHelper.register(blockMarbleSlab, "marbleSlab", ItemMarbleSlab.class); - - if(Chisel.featureEnabled("marblePillar")) { - if(Chisel.oldPillars){ - blockMarblePillar = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); - blockMarblePillar.carverHelper.setBlockName("Marble Pillar"); - blockMarblePillar.carverHelper.addVariation("Marble pillar", 0, "marblepillarold/column"); - blockMarblePillar.carverHelper.addVariation("Marble pillar capstone", 1, "marblepillarold/capstone"); - blockMarblePillar.carverHelper.addVariation("Marble pillar base", 2, "marblepillarold/base"); - blockMarblePillar.carverHelper.addVariation("Small marble pillar", 3, "marblepillarold/small"); - blockMarblePillar.carverHelper.addVariation("Carved marble pillar", 4, "marblepillarold/pillar-carved"); - blockMarblePillar.carverHelper.addVariation("Ornamental marble pillar", 5, "marblepillarold/a1-stoneornamental-marblegreek"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar", 6, "marblepillarold/a1-stonepillar-greek"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar", 7, "marblepillarold/a1-stonepillar-plain"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar capstone", 8, "marblepillarold/a1-stonepillar-greektopplain"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar capstone", 9, "marblepillarold/a1-stonepillar-plaintopplain"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar base", 10, "marblepillarold/a1-stonepillar-greekbottomplain"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar base", 11, "marblepillarold/a1-stonepillar-plainbottomplain"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar ornate capstone", 12, "marblepillarold/a1-stonepillar-greektopgreek"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar ornate capstone", 13, "marblepillarold/a1-stonepillar-plaintopgreek"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar ornate base", 14, "marblepillarold/a1-stonepillar-greekbottomgreek"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar ornate base", 15, "marblepillarold/a1-stonepillar-plainbottomgreek"); - } else{ - blockMarblePillar = (BlockCarvable) new BlockMarblePillar(Material.rock).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); - blockMarblePillar.carverHelper.setBlockName("Marble Pillar"); - blockMarblePillar.carverHelper.addVariation("Marble pillar", 0, "marblepillar/pillar"); - blockMarblePillar.carverHelper.addVariation("Original marble pillar", 1, "marblepillar/default"); - blockMarblePillar.carverHelper.addVariation("Simplistic marble pillar", 2, "marblepillar/simple"); - blockMarblePillar.carverHelper.addVariation("Convex marble pillar", 3, "marblepillar/convex"); - blockMarblePillar.carverHelper.addVariation("Rough marble pillar", 4, "marblepillar/rough"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar with ornate capstone", 5, "marblepillar/greekdecor"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar", 6, "marblepillar/greekgreek"); - blockMarblePillar.carverHelper.addVariation("Greek marble pillar with plain capstone", 7, "marblepillar/greekplain"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar with ornate capstone", 8, "marblepillar/plaindecor"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar with Greek capstone", 9, "marblepillar/plaingreek"); - blockMarblePillar.carverHelper.addVariation("Plain marble pillar", 10, "marblepillar/plainplain"); - blockMarblePillar.carverHelper.addVariation("Wide marble pillar with ornate capstone", 11, "marblepillar/widedecor"); - blockMarblePillar.carverHelper.addVariation("Wide marble pillar with Greek capstone", 12, "marblepillar/widegreek"); - blockMarblePillar.carverHelper.addVariation("Wide marble pillar with plain capstone", 13, "marblepillar/wideplain"); - blockMarblePillar.carverHelper.addVariation("Carved pillar capstone", 14, "marblepillar/carved"); - blockMarblePillar.carverHelper.addVariation("Ornamental pillar capstone", 15, "marblepillar/ornamental"); - } - blockMarblePillar.carverHelper.register(blockMarblePillar, "marblePillar"); - Carving.chisel.setGroupClass("marblePillar", "marble"); - - blockMarblePillarSlab = (BlockMarbleSlab) new BlockMarbleSlab(blockMarblePillar).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); - blockMarblePillarSlab.carverHelper.setBlockName("Marble Pillar Slab"); - if(Chisel.oldPillars){ - blockMarblePillarSlab.carverHelper.addVariation("Marble pillar slab", 0, "marblepillarslabold/column"); - blockMarblePillarSlab.carverHelper.addVariation("Marble pillar capstone slab", 1, "marblepillarslabold/capstone"); - blockMarblePillarSlab.carverHelper.addVariation("Marble pillar base slab", 2, "marblepillarslabold/base"); - blockMarblePillarSlab.carverHelper.addVariation("Small marble pillar slab", 3, "marblepillarslabold/small"); - blockMarblePillarSlab.carverHelper.addVariation("Carved marble pillar slab", 4, "marblepillarslabold/pillar-carved"); - blockMarblePillarSlab.carverHelper.addVariation("Ornamental marble pillar slab", 5, "marblepillarslabold/a1-stoneornamental-marblegreek"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab", 6, "marblepillarslabold/a1-stonepillar-greek"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab", 7, "marblepillarslabold/a1-stonepillar-plain"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar capstone slab", 8, "marblepillarslabold/a1-stonepillar-greektopplain"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar capstone slab", 9, "marblepillarslabold/a1-stonepillar-plaintopplain"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar base slab", 10, "marblepillarslabold/a1-stonepillar-greekbottomplain"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar base slab", 11, "marblepillarslabold/a1-stonepillar-plainbottomplain"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar ornate capstone slab", 12, "marblepillarslabold/a1-stonepillar-greektopgreek"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar ornate capstone slab", 13, "marblepillarslabold/a1-stonepillar-plaintopgreek"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar ornate base slab", 14, "marblepillarslabold/a1-stonepillar-greekbottomgreek"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar ornate base slab", 15, "marblepillarslabold/a1-stonepillar-plainbottomgreek"); - } else{ - blockMarblePillarSlab.carverHelper.addVariation("Marble pillar slab", 0, "marblepillarslab/pillar"); - blockMarblePillarSlab.carverHelper.addVariation("Original marble pillar slab", 1, "marblepillarslab/default"); - blockMarblePillarSlab.carverHelper.addVariation("Simplistic marble pillar slab", 2, "marblepillarslab/simple"); - blockMarblePillarSlab.carverHelper.addVariation("Convex marble pillar slab", 3, "marblepillarslab/convex"); - blockMarblePillarSlab.carverHelper.addVariation("Rough marble pillar slab", 4, "marblepillarslab/rough"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab with ornate capstone", 5, "marblepillarslab/greekdecor"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab", 6, "marblepillarslab/greekgreek"); - blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab with plain capstone", 7, "marblepillarslab/greekplain"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab with ornate capstone", 8, "marblepillarslab/plaindecor"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab with Greek capstone", 9, "marblepillarslab/plaingreek"); - blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab", 10, "marblepillarslab/plainplain"); - blockMarblePillarSlab.carverHelper.addVariation("Wide marble pillar slab with ornate capstone", 11, "marblepillarslab/widedecor"); - blockMarblePillarSlab.carverHelper.addVariation("Wide marble pillar slab with Greek capstone", 12, "marblepillarslab/widegreek"); - blockMarblePillarSlab.carverHelper.addVariation("Wide marble pillar slab with plain capstone", 13, "marblepillarslab/wideplain"); - blockMarblePillarSlab.carverHelper.addVariation("Carved pillar capstone slab", 14, "marblepillarslab/carved"); - blockMarblePillarSlab.carverHelper.addVariation("Ornamental pillar capstone slab", 15, "marblepillarslab/ornamental"); - } - blockMarblePillarSlab.carverHelper.register(blockMarblePillarSlab, "marblePillarSlab", ItemMarbleSlab.class); - } - - BlockMarbleStairsMaker makerMarbleStairs=new BlockMarbleStairsMaker(blockMarble); - makerMarbleStairs.carverHelper.setBlockName("Marble Stairs"); - makerMarbleStairs.carverHelper.addVariation("Raw marble stairs", 0, "marble"); - makerMarbleStairs.carverHelper.addVariation("Marble brick stairs", 1, "marbleslab/a1-stoneornamental-marblebrick"); - makerMarbleStairs.carverHelper.addVariation("Classic marble panel stairs", 2, "marbleslab/a1-stoneornamental-marbleclassicpanel"); - makerMarbleStairs.carverHelper.addVariation("Ornate marble panel stairs", 3, "marbleslab/a1-stoneornamental-marbleornate"); - makerMarbleStairs.carverHelper.addVariation("Marble panel stairs", 4, "marbleslab/a1-stoneornamental-marblepanel"); - makerMarbleStairs.carverHelper.addVariation("Marble block stairs", 5, "marbleslab/terrain-pistonback-marble"); - makerMarbleStairs.carverHelper.addVariation("Dark creeper marble stairs", 6, "marbleslab/terrain-pistonback-marblecreeperdark"); - makerMarbleStairs.carverHelper.addVariation("Light creeper marble stairs", 7, "marbleslab/terrain-pistonback-marblecreeperlight"); - makerMarbleStairs.carverHelper.addVariation("Carved marble stairs", 8, "marbleslab/a1-stoneornamental-marblecarved"); - makerMarbleStairs.carverHelper.addVariation("Radial carved marble stairs", 9, "marbleslab/a1-stoneornamental-marblecarvedradial"); - makerMarbleStairs.carverHelper.addVariation("Marble stairs with dent", 10, "marbleslab/terrain-pistonback-marbledent"); - makerMarbleStairs.carverHelper.addVariation("Marble stairs with large dent ", 11, "marbleslab/terrain-pistonback-marbledent-small"); - makerMarbleStairs.carverHelper.addVariation("Marble tiles stairs", 12, "marbleslab/marble-bricks"); - makerMarbleStairs.carverHelper.addVariation("Arranged marble tiles stairs", 13, "marbleslab/marble-arranged-bricks"); - makerMarbleStairs.carverHelper.addVariation("Fancy marble tiles stairs", 14, "marbleslab/marble-fancy-bricks"); - makerMarbleStairs.carverHelper.addVariation("Marble blocks stairs", 15, "marbleslab/marble-blocks"); - makerMarbleStairs.create("chisel.marbleStairs"); - } - - if(Chisel.featureEnabled("limestone")) { - blockLimestone = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); - blockLimestone.carverHelper.setBlockName("Limestone"); - blockLimestone.carverHelper.addVariation("Limestone", 0, "limestone"); - blockLimestone.carverHelper.addVariation("Small limestone tiles", 1, "limestone/terrain-cobbsmalltilelight"); - blockLimestone.carverHelper.addVariation("French limestone tiles", 2, "limestone/terrain-cob-frenchlight"); - blockLimestone.carverHelper.addVariation("French limestone tiles", 3, "limestone/terrain-cob-french2light"); - blockLimestone.carverHelper.addVariation("Creeper limestone tiles", 4, "limestone/terrain-cobmoss-creepdungeonlight"); - blockLimestone.carverHelper.addVariation("Small limestone bricks", 5, "limestone/terrain-cob-smallbricklight"); - blockLimestone.carverHelper.addVariation("Damaged limestone tiles", 6, "limestone/terrain-mossysmalltilelight"); - blockLimestone.carverHelper.addVariation("Smooth limestone", 7, "limestone/terrain-pistonback-dungeon"); - blockLimestone.carverHelper.addVariation("Limestone with ornate panel", 8, "limestone/terrain-pistonback-dungeonornate"); - blockLimestone.carverHelper.addVariation("Limestone with ornate panel", 9, "limestone/terrain-pistonback-dungeonvent"); - blockLimestone.carverHelper.addVariation("Limestone with creeper panel", 10, "limestone/terrain-pistonback-lightcreeper"); - blockLimestone.carverHelper.addVariation("Limestone with dent", 11, "limestone/terrain-pistonback-lightdent"); - blockLimestone.carverHelper.addVariation("Limestone with panel", 12, "limestone/terrain-pistonback-lightemboss"); - blockLimestone.carverHelper.addVariation("Large limestone tiles", 13, "limestone/terrain-pistonback-lightfour"); - blockLimestone.carverHelper.addVariation("Limestone with light panel", 14, "limestone/terrain-pistonback-lightmarker"); - blockLimestone.carverHelper.addVariation("Limestone with dark panel", 15, "limestone/terrain-pistonback-lightpanel"); - blockLimestone.carverHelper.register(blockLimestone, "limestone"); - OreDictionary.registerOre("blockLimestone", blockLimestone); - Carving.chisel.registerOre("limestone","blockLimestone"); - - blockLimestoneSlab = (BlockMarbleSlab) new BlockMarbleSlab(blockLimestone).setHardness(2.0F).setResistance(10F); - blockLimestoneSlab.carverHelper.setBlockName("Limestone Slab"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab", 0, "limestone"); - blockLimestoneSlab.carverHelper.addVariation("Small limestone tiles slab", 1, "limestone/terrain-cobbsmalltilelight"); - blockLimestoneSlab.carverHelper.addVariation("French limestone tiles slab", 2, "limestone/terrain-cob-frenchlight"); - blockLimestoneSlab.carverHelper.addVariation("French limestone tiles slab", 3, "limestone/terrain-cob-french2light"); - blockLimestoneSlab.carverHelper.addVariation("Creeper limestone tiles slab", 4, "limestone/terrain-cobmoss-creepdungeonlight"); - blockLimestoneSlab.carverHelper.addVariation("Small limestone bricks slab", 5, "limestone/terrain-cob-smallbricklight"); - blockLimestoneSlab.carverHelper.addVariation("Damaged limestone tiles slab", 6, "limestone/terrain-mossysmalltilelight"); - blockLimestoneSlab.carverHelper.addVariation("Smooth limestone slab", 7, "limestone/terrain-pistonback-dungeon"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab with ornate panel", 8, "limestone/terrain-pistonback-dungeonornate"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab with ornate panel", 9, "limestone/terrain-pistonback-dungeonvent"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab with creeper panel", 10, "limestone/terrain-pistonback-lightcreeper"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab with dent", 11, "limestone/terrain-pistonback-lightdent"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab with panel", 12, "limestone/terrain-pistonback-lightemboss"); - blockLimestoneSlab.carverHelper.addVariation("Large limestone tiles slab", 13, "limestone/terrain-pistonback-lightfour"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab with light panel", 14, "limestone/terrain-pistonback-lightmarker"); - blockLimestoneSlab.carverHelper.addVariation("Limestone slab with dark panel", 15, "limestone/terrain-pistonback-lightpanel"); - blockLimestoneSlab.carverHelper.register(blockLimestoneSlab, "limestoneSlab", ItemMarbleSlab.class); - - BlockMarbleStairsMaker makerLimestoneStairs=new BlockMarbleStairsMaker(blockLimestone); - makerLimestoneStairs.carverHelper.setBlockName("Limestone Stairs"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs", 0, "limestone"); - makerLimestoneStairs.carverHelper.addVariation("Small limestone tiles stairs", 1, "limestone/terrain-cobbsmalltilelight"); - makerLimestoneStairs.carverHelper.addVariation("French limestone tiles stairs", 2, "limestone/terrain-cob-frenchlight"); - makerLimestoneStairs.carverHelper.addVariation("French limestone tiles stairs", 3, "limestone/terrain-cob-french2light"); - makerLimestoneStairs.carverHelper.addVariation("Creeper limestone tiles stairs", 4, "limestone/terrain-cobmoss-creepdungeonlight"); - makerLimestoneStairs.carverHelper.addVariation("Small limestone bricks stairs", 5, "limestone/terrain-cob-smallbricklight"); - makerLimestoneStairs.carverHelper.addVariation("Damaged limestone tiles stairs", 6, "limestone/terrain-mossysmalltilelight"); - makerLimestoneStairs.carverHelper.addVariation("Smooth limestone stairs", 7, "limestone/terrain-pistonback-dungeon"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with ornate panel", 8, "limestone/terrain-pistonback-dungeonornate"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with ornate panel", 9, "limestone/terrain-pistonback-dungeonvent"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with creeper panel", 10, "limestone/terrain-pistonback-lightcreeper"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with dent", 11, "limestone/terrain-pistonback-lightdent"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with panel", 12, "limestone/terrain-pistonback-lightemboss"); - makerLimestoneStairs.carverHelper.addVariation("Large limestone tiles stairs", 13, "limestone/terrain-pistonback-lightfour"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with light panel", 14, "limestone/terrain-pistonback-lightmarker"); - makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with dark panel", 15, "limestone/terrain-pistonback-lightpanel"); - makerLimestoneStairs.create("chisel.limestoneStairs"); - } - - if(Chisel.featureEnabled("cobblestone")) { - blockCobblestone = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); - Carving.chisel.addVariation("cobblestone", Blocks.cobblestone, 0, 0); - blockCobblestone.carverHelper.addVariation("Aligned cobblestone bricks", 1, "cobblestone/terrain-cobb-brickaligned"); - blockCobblestone.carverHelper.addVariation("Detailed cobblestone bricks", 2, "cobblestone/terrain-cob-detailedbrick"); - blockCobblestone.carverHelper.addVariation("Small cobblestone bricks", 3, "cobblestone/terrain-cob-smallbrick"); - blockCobblestone.carverHelper.addVariation("Large cobblestone tiles", 4, "cobblestone/terrain-cobblargetiledark"); - blockCobblestone.carverHelper.addVariation("Small cobblestone tiles", 5, "cobblestone/terrain-cobbsmalltile"); - blockCobblestone.carverHelper.addVariation("French cobblestone tiles", 6, "cobblestone/terrain-cob-french"); - blockCobblestone.carverHelper.addVariation("French cobblestone tiles", 7, "cobblestone/terrain-cob-french2"); - blockCobblestone.carverHelper.addVariation("Creeper cobblestone tiles", 8, "cobblestone/terrain-cobmoss-creepdungeon"); - blockCobblestone.carverHelper.addVariation("Damaged cobblestone tiles", 9, "cobblestone/terrain-mossysmalltiledark"); - blockCobblestone.carverHelper.addVariation("Huge cobblestone tiles", 10, "cobblestone/terrain-pistonback-dungeontile"); - blockCobblestone.carverHelper.addVariation("Cobblestone with creeper panel", 11, "cobblestone/terrain-pistonback-darkcreeper"); - blockCobblestone.carverHelper.addVariation("Cobblestone with dent", 12, "cobblestone/terrain-pistonback-darkdent"); - blockCobblestone.carverHelper.addVariation("Cobblestone with panel", 13, "cobblestone/terrain-pistonback-darkemboss"); - blockCobblestone.carverHelper.addVariation("Cobblestone with light panel", 14, "cobblestone/terrain-pistonback-darkmarker"); - blockCobblestone.carverHelper.addVariation("Cobblestone with dark panel", 15, "cobblestone/terrain-pistonback-darkpanel"); - blockCobblestone.carverHelper.register(blockCobblestone, "cobblestone"); - Carving.chisel.registerOre("cobblestone","blockCobble"); - } - - if(Chisel.featureEnabled("glass")) { - blockGlass = (BlockCarvableGlass) new BlockCarvableGlass().setHardness(0.3F).setStepSound(Block.soundTypeGlass); - Carving.chisel.addVariation("glass", Blocks.glass, 0, 0); - blockGlass.carverHelper.addVariation("Bubble glass", 1, "glass/terrain-glassbubble"); - blockGlass.carverHelper.addVariation("Chinese glass", 2, "glass/terrain-glass-chinese"); - blockGlass.carverHelper.addVariation("Japanese(?) glass", 3, "glass/japanese"); - blockGlass.carverHelper.addVariation("Dungeon glass", 4, "glass/terrain-glassdungeon"); - blockGlass.carverHelper.addVariation("Light glass", 5, "glass/terrain-glasslight"); - blockGlass.carverHelper.addVariation("Borderless glass", 6, "glass/terrain-glassnoborder"); - blockGlass.carverHelper.addVariation("Ornate steel glass", 7, "glass/terrain-glass-ornatesteel"); - blockGlass.carverHelper.addVariation("Screen", 8, "glass/terrain-glass-screen"); - blockGlass.carverHelper.addVariation("Shale glass", 9, "glass/terrain-glassshale"); - blockGlass.carverHelper.addVariation("Steel frame glass", 10, "glass/terrain-glass-steelframe"); - blockGlass.carverHelper.addVariation("Stone frame glass", 11, "glass/terrain-glassstone"); - blockGlass.carverHelper.addVariation("Streak glass", 12, "glass/terrain-glassstreak"); - blockGlass.carverHelper.addVariation("Thick grid glass", 13, "glass/terrain-glass-thickgrid"); - blockGlass.carverHelper.addVariation("Thin grid glass", 14, "glass/terrain-glass-thingrid"); - blockGlass.carverHelper.addVariation("Modern Iron Fence", 15, "glass/a1-glasswindow-ironfencemodern"); - blockGlass.carverHelper.register(blockGlass, "glass"); - Carving.chisel.registerOre("glass","blockGlass"); - } - - if(Chisel.featureEnabled("sandstone")) { - blockSandstone = (BlockCarvable) new BlockCarvable().setStepSound(Block.soundTypeStone).setHardness(0.8F); - Carving.chisel.addVariation("sandstone", Blocks.sandstone, 0, 0); - blockSandstone.carverHelper.addVariation("Chiseled Sandstone", 1, Blocks.sandstone, 1); - blockSandstone.carverHelper.addVariation("Smooth Sandstone", 2, Blocks.sandstone, 2); - blockSandstone.carverHelper.addVariation("Faded sandstone", 3, "sandstone/faded"); - blockSandstone.carverHelper.addVariation("Sandstone pillar", 4, "sandstone/column"); - blockSandstone.carverHelper.addVariation("Sandstone pillar capstone", 5, "sandstone/capstone"); - blockSandstone.carverHelper.addVariation("Small sandstone pillar ", 6, "sandstone/small"); - blockSandstone.carverHelper.addVariation("Sandstone pillar base", 7, "sandstone/base"); - blockSandstone.carverHelper.addVariation("Smooth & flat sandstone", 8, "sandstone/smooth"); - blockSandstone.carverHelper.addVariation("Smooth sandstone pillar capstone", 9, "sandstone/smooth-cap"); - blockSandstone.carverHelper.addVariation("Small smooth sandstone pillar", 10, "sandstone/smooth-small"); - blockSandstone.carverHelper.addVariation("Smooth sandstone pillar base", 11, "sandstone/smooth-base"); - blockSandstone.carverHelper.addVariation("Sandstone block", 12, "sandstone/block"); - blockSandstone.carverHelper.addVariation("Small sandstone blocks", 13, "sandstone/blocks"); - blockSandstone.carverHelper.addVariation("Sandstone mosaic", 14, "sandstone/mosaic"); - blockSandstone.carverHelper.addVariation("Stacked sandstone tiles", 15, "sandstone/horizontal-tiles"); - blockSandstone.carverHelper.register(blockSandstone, "sandstone"); - Carving.chisel.registerOre("sandstone","blockSandstone"); - - if(Chisel.featureEnabled("snakeSandstone")) { - blockSandSnakestone=(BlockSnakestone) new BlockSnakestone("Chisel:snakestone/sandsnake/").setBlockName("sandSnakestone"); - GameRegistry.registerBlock(blockSandSnakestone, ItemCarvable.class, blockSandSnakestone.getUnlocalizedName()); - LanguageRegistry.addName(new ItemStack(blockSandSnakestone, 1, 1), "Sandstone snake block head"); - LanguageRegistry.addName(new ItemStack(blockSandSnakestone, 1, 13), "Sandstone snake block body"); - Carving.chisel.addVariation("sandstone", blockSandSnakestone, 1, 16); - Carving.chisel.addVariation("sandstone", blockSandSnakestone, 13, 17); - } - } - - if(Chisel.featureEnabled("sandstoneScribbles")) { - blockSandstoneScribbles = (BlockCarvable) new BlockCarvable().setStepSound(Block.soundTypeStone).setHardness(0.8F); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 0, "sandstone-scribbles/scribbles-0"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 1, "sandstone-scribbles/scribbles-1"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 2, "sandstone-scribbles/scribbles-2"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 3, "sandstone-scribbles/scribbles-3"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 4, "sandstone-scribbles/scribbles-4"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 5, "sandstone-scribbles/scribbles-5"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 6, "sandstone-scribbles/scribbles-6"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 7, "sandstone-scribbles/scribbles-7"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 8, "sandstone-scribbles/scribbles-8"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 9, "sandstone-scribbles/scribbles-9"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 10, "sandstone-scribbles/scribbles-10"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 11, "sandstone-scribbles/scribbles-11"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 12, "sandstone-scribbles/scribbles-12"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 13, "sandstone-scribbles/scribbles-13"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 14, "sandstone-scribbles/scribbles-14"); - blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 15, "sandstone-scribbles/scribbles-15"); - blockSandstoneScribbles.carverHelper.register(blockSandstoneScribbles, "sandstoneScribbles"); - } +public class ChiselBlocks +{ + public static BlockCarvable blockMarble; + public static BlockCarvable blockMarblePillar; + public static BlockCarvable blockLimestone; + public static BlockMarbleSlab blockMarbleSlab; + public static BlockMarbleSlab blockLimestoneSlab; + public static BlockMarbleSlab blockMarblePillarSlab; + public static BlockCarvable blockCobblestone; + public static BlockMarbleWall cobblestoneWall; + public static BlockCarvableGlass blockGlass; + public static BlockCarvablePane blockPaneGlass; + public static BlockCarvable blockSandstone; + public static BlockCarvable blockSandstoneScribbles; + public static BlockConcrete blockConcrete; + public static BlockRoadLine blockRoadLine; + public static BlockCarvable blockIron; + public static BlockCarvable blockGold; + public static BlockCarvable blockDiamond; + public static BlockLightstoneCarvable blockLightstone; + public static BlockCarvable blockLapis; + public static BlockCarvable blockEmerald; + public static BlockCarvable blockNetherBrick; + public static BlockCarvable blockNetherrack; + public static BlockCarvable blockCobblestoneMossy; + public static BlockCarvable stoneBrick; + public static BlockMarbleStairs blockMarbleStairs; + public static BlockMarbleStairs blockLimestoneStairs; + public static BlockCarvablePane blockPaneIron; + public static BlockMarbleIce blockIce; + public static BlockMarbleIce blockIcePillar; + public static BlockMarbleIceStairs blockIceStairs; + public static BlockCarvable[] blockPlanks = new BlockCarvable[6]; + public static BlockCarvable blockObsidian; + public static BlockCarvablePowered blockRedstone; + public static BlockHolystone blockHolystone; + public static BlockLavastone blockLavastone; + public static BlockCarvable blockFft; + public static BlockCarvable blockCarpet; + public static BlockMarbleCarpet blockCarpetFloor; + public static BlockCarvable blockBookshelf; + public static BlockCarvable blockTyrian; + public static BlockCarvable blockDirt; + public static BlockCloud blockCloud; + public static BlockCarvable blockTemple; + public static BlockCarvable blockTempleMossy; + public static BlockCarvable blockFactory; - if(Chisel.featureEnabled("concrete")) { - blockConcrete = (BlockConcrete) new BlockConcrete().setStepSound(Block.soundTypeStone).setHardness(0.5F); - blockConcrete.carverHelper.addVariation("Concrete", 0, "concrete/default"); - blockConcrete.carverHelper.addVariation("Concrete block", 1, "concrete/block"); - blockConcrete.carverHelper.addVariation("Concrete double slab", 2, "concrete/doubleslab"); - blockConcrete.carverHelper.addVariation("Small concrete blocks", 3, "concrete/blocks"); - blockConcrete.carverHelper.addVariation("Weathered concrete", 4, "concrete/weathered"); - blockConcrete.carverHelper.addVariation("Weathered concrete block", 5, "concrete/weathered-block"); - blockConcrete.carverHelper.addVariation("Weathered concrete double slab", 6, "concrete/weathered-doubleslab"); - blockConcrete.carverHelper.addVariation("Small weathered blocks", 7, "concrete/weathered-blocks"); - blockConcrete.carverHelper.addVariation("Partly weathered concrete", 8, "concrete/weathered-half"); - blockConcrete.carverHelper.addVariation("Partly weathered concrete block", 9, "concrete/weathered-block-half"); - blockConcrete.carverHelper.addVariation("Asphalt", 10, "concrete/asphalt"); - blockConcrete.carverHelper.register(blockConcrete, "concrete"); - OreDictionary.registerOre("blockConcrete", blockConcrete); - Carving.chisel.registerOre("concrete","blockConcrete"); - } - - if(Chisel.featureEnabled("roadLine")) { - blockRoadLine = (BlockRoadLine) new BlockRoadLine().setStepSound(Block.soundTypeStone).setHardness(0.01F).setBlockName("roadLine"); - GameRegistry.registerBlock(blockRoadLine, ItemCarvable.class, "roadLine"); - LanguageRegistry.addName(new ItemStack(blockRoadLine, 1, 0), "Road lines"); - } - - if(Chisel.featureEnabled("ironBlock")) { - blockIron = (BlockCarvable) new BlockCarvable().setHardness(5F).setResistance(10F).setStepSound(Block.soundTypeMetal); - Carving.chisel.addVariation("iron", Blocks.iron_block, 0, 0); - blockIron.carverHelper.addVariation("Large iron ingots", 1, "iron/terrain-iron-largeingot"); - blockIron.carverHelper.addVariation("Small iron ingots", 2, "iron/terrain-iron-smallingot"); - blockIron.carverHelper.addVariation("Iron gears", 3, "iron/terrain-iron-gears"); - blockIron.carverHelper.addVariation("Iron bricks", 4, "iron/terrain-iron-brick"); - blockIron.carverHelper.addVariation("Iron plates", 5, "iron/terrain-iron-plates"); - blockIron.carverHelper.addVariation("Iron plates with rivets", 6, "iron/terrain-iron-rivets"); - blockIron.carverHelper.addVariation("Iron coin stack heads up", 7, "iron/terrain-iron-coin-heads"); - blockIron.carverHelper.addVariation("Iron coin stack heads down", 8, "iron/terrain-iron-coin-tails"); - blockIron.carverHelper.addVariation("Dark iron crate", 9, "iron/terrain-iron-crate-dark"); - blockIron.carverHelper.addVariation("Light iron crate", 10, "iron/terrain-iron-crate-light"); - blockIron.carverHelper.addVariation("Iron block with moon decoration", 11, "iron/terrain-iron-moon"); - blockIron.carverHelper.addVariation("Iron moon in purple obsidian", 12, "iron/terrain-iron-space"); - blockIron.carverHelper.addVariation("Iron moon in obsidian", 13, "iron/terrain-iron-spaceblack"); - blockIron.carverHelper.addVariation("Iron vents", 14, "iron/terrain-iron-vents"); - blockIron.carverHelper.addVariation("Iron block simple", 15, "iron/terrain-iron-simple"); - blockIron.carverHelper.register(blockIron, "iron"); - Carving.chisel.registerOre("iron","blockIron"); - } - - if(Chisel.featureEnabled("goldBlock")) { - blockGold = (BlockCarvable) new BlockCarvable().setHardness(3F).setResistance(10F).setStepSound(Block.soundTypeMetal); - Carving.chisel.addVariation("gold", Blocks.gold_block, 0, 0); - blockGold.carverHelper.addVariation("Large golden ingots", 1, "gold/terrain-gold-largeingot"); - blockGold.carverHelper.addVariation("Small golden ingots", 2, "gold/terrain-gold-smallingot"); - blockGold.carverHelper.addVariation("Golden bricks", 3, "gold/terrain-gold-brick"); - blockGold.carverHelper.addVariation("Gold cart", 4, "gold/terrain-gold-cart"); - blockGold.carverHelper.addVariation("Golden coin stack heads up", 5, "gold/terrain-gold-coin-heads"); - blockGold.carverHelper.addVariation("Golden coin stack heads down", 6, "gold/terrain-gold-coin-tails"); - blockGold.carverHelper.addVariation("Dark gold crate", 7, "gold/terrain-gold-crate-dark"); - blockGold.carverHelper.addVariation("Light gold crate", 8, "gold/terrain-gold-crate-light"); - blockGold.carverHelper.addVariation("Golden plates", 9, "gold/terrain-gold-plates"); - blockGold.carverHelper.addVariation("Iron plates with rivets", 10, "gold/terrain-gold-rivets"); - blockGold.carverHelper.addVariation("Gold block with star decoration", 11, "gold/terrain-gold-star"); - blockGold.carverHelper.addVariation("Golden star in purple obsidian", 12, "gold/terrain-gold-space"); - blockGold.carverHelper.addVariation("Golden star in obsidian", 13, "gold/terrain-gold-spaceblack"); - blockGold.carverHelper.addVariation("Gold block simple", 14, "gold/terrain-gold-simple"); - blockGold.carverHelper.register(blockGold, "gold"); - Carving.chisel.registerOre("gold","blockGold"); - } - - if(Chisel.featureEnabled("diamondBlock")) { - blockDiamond = (BlockCarvable) new BlockCarvable().setHardness(5F).setResistance(10F).setStepSound(Block.soundTypeMetal); - Carving.chisel.addVariation("diamond", Blocks.diamond_block, 0, 0); - blockDiamond.carverHelper.addVariation("Embossed diamond block", 1, "diamond/terrain-diamond-embossed"); - blockDiamond.carverHelper.addVariation("Diamond block with panel", 2, "diamond/terrain-diamond-gem"); - blockDiamond.carverHelper.addVariation("Diamond cells", 3, "diamond/terrain-diamond-cells"); - blockDiamond.carverHelper.addVariation("Diamonds in purple obsidian", 4, "diamond/terrain-diamond-space"); - blockDiamond.carverHelper.addVariation("Diamonds in obsidian", 5, "diamond/terrain-diamond-spaceblack"); - blockDiamond.carverHelper.addVariation("Diamond block simple", 6, "diamond/terrain-diamond-simple"); - blockDiamond.carverHelper.addVariation("Bismuth", 7, "diamond/a1-blockdiamond-bismuth"); - blockDiamond.carverHelper.addVariation("Crushed diamond", 8, "diamond/a1-blockdiamond-crushed"); - blockDiamond.carverHelper.addVariation("Small diamond blocks", 9, "diamond/a1-blockdiamond-four"); - blockDiamond.carverHelper.addVariation("Small ornate diamond blocks", 10, "diamond/a1-blockdiamond-fourornate"); - blockDiamond.carverHelper.addVariation("Zelda diamond block", 11, "diamond/a1-blockdiamond-zelda"); - blockDiamond.carverHelper.addVariation("Diamond block with ornate layer", 12, "diamond/a1-blockdiamond-ornatelayer"); - blockDiamond.carverHelper.register(blockDiamond, "diamond"); - Carving.chisel.registerOre("diamond","blockDiamond"); - } - - if(Chisel.featureEnabled("glowstone")) { - blockLightstone = (BlockLightstoneCarvable) new BlockLightstoneCarvable().setHardness(0.3F).setLightLevel(1.0F).setStepSound(Block.soundTypeGlass); - Carving.chisel.addVariation("lightstone", Blocks.glowstone, 0, 0); - blockLightstone.carverHelper.addVariation("Cobble glowstone block", 1, "lightstone/terrain-sulphur-cobble"); - blockLightstone.carverHelper.addVariation("Corroded glowstone blocks", 2, "lightstone/terrain-sulphur-corroded"); - blockLightstone.carverHelper.addVariation("Glowstone blocks with glass", 3, "lightstone/terrain-sulphur-glass"); - blockLightstone.carverHelper.addVariation("Neon glowstone", 4, "lightstone/terrain-sulphur-neon"); - blockLightstone.carverHelper.addVariation("Ornate glowstone blocks", 5, "lightstone/terrain-sulphur-ornate"); - blockLightstone.carverHelper.addVariation("Rocky glowstone", 6, "lightstone/terrain-sulphur-rocky"); - blockLightstone.carverHelper.addVariation("Shale-shaped glowstone", 7, "lightstone/terrain-sulphur-shale"); - blockLightstone.carverHelper.addVariation("Glowstone tiles", 8, "lightstone/terrain-sulphur-tile"); - blockLightstone.carverHelper.addVariation("Fancy glowstone latern", 9, "lightstone/terrain-sulphur-weavelanternlight"); - blockLightstone.carverHelper.addVariation("Crumbling glowstone block", 10, "lightstone/a1-glowstone-cobble"); - blockLightstone.carverHelper.addVariation("Organic glowstone growth block", 11, "lightstone/a1-glowstone-growth"); - blockLightstone.carverHelper.addVariation("Glowstone layers", 12, "lightstone/a1-glowstone-layers"); - blockLightstone.carverHelper.addVariation("Corroded glowstone tiles", 13, "lightstone/a1-glowstone-tilecorroded"); - blockLightstone.carverHelper.addVariation("Glowstone bismuth", 14, "lightstone/glowstone-bismuth"); - blockLightstone.carverHelper.addVariation("Glowstone bismuth panel", 15, "lightstone/glowstone-bismuth-panel"); - blockLightstone.carverHelper.register(blockLightstone, "lightstone"); - Carving.chisel.registerOre("lightstone","blockGlowstone"); - } - - if(Chisel.featureEnabled("lapisBlock")) { - blockLapis = (BlockCarvable) new BlockCarvable().setHardness(3F).setResistance(5F).setStepSound(Block.soundTypeStone); - Carving.chisel.addVariation("lapis", Blocks.lapis_block, 0, 0); - blockLapis.carverHelper.addVariation("Chunky lapis block", 1, "lapis/terrain-lapisblock-chunky"); - blockLapis.carverHelper.addVariation("Dark lapis block", 2, "lapis/terrain-lapisblock-panel"); - blockLapis.carverHelper.addVariation("Zelda lapis block", 3, "lapis/terrain-lapisblock-zelda"); - blockLapis.carverHelper.addVariation("Ornate lapis block", 4, "lapis/terrain-lapisornate"); - blockLapis.carverHelper.addVariation("Lapis tile", 5, "lapis/terrain-lapistile"); - blockLapis.carverHelper.addVariation("Lapis panel", 6, "lapis/a1-blocklapis-panel"); - blockLapis.carverHelper.addVariation("Smooth lapis", 7, "lapis/a1-blocklapis-smooth"); - blockLapis.carverHelper.addVariation("Lapis with ornate layer", 8, "lapis/a1-blocklapis-ornatelayer"); - blockLapis.carverHelper.register(blockLapis, "lapis"); - Carving.chisel.registerOre("lapis","blockLapis"); - } - - if(Chisel.featureEnabled("emeraldBlock")) { - blockEmerald = (BlockCarvable) new BlockCarvable().setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundTypeMetal); - Carving.chisel.addVariation("emerald", Blocks.emerald_block, 0, 0); - blockEmerald.carverHelper.addVariation("Emerald panel", 1, "emerald/a1-blockemerald-emeraldpanel"); - blockEmerald.carverHelper.addVariation("Classic emerald panel", 2, "emerald/a1-blockemerald-emeraldpanelclassic"); - blockEmerald.carverHelper.addVariation("Smooth emerald", 3, "emerald/a1-blockemerald-emeraldsmooth"); - blockEmerald.carverHelper.addVariation("Emerald chunk", 4, "emerald/a1-blockemerald-emeraldchunk"); - blockEmerald.carverHelper.addVariation("Emerald with ornate layer", 5, "emerald/a1-blockemerald-emeraldornatelayer"); - blockEmerald.carverHelper.addVariation("Zelda emerald block", 6, "emerald/a1-blockemerald-emeraldzelda"); - blockEmerald.carverHelper.addVariation("Emerald cell", 7, "emerald/a1-blockquartz-cell"); - blockEmerald.carverHelper.addVariation("Emerald bismuth", 8, "emerald/a1-blockquartz-cellbismuth"); - blockEmerald.carverHelper.addVariation("Small emerald blocks", 9, "emerald/a1-blockquartz-four"); - blockEmerald.carverHelper.addVariation("Small ornate emerald blocks", 10, "emerald/a1-blockquartz-fourornate"); - blockEmerald.carverHelper.addVariation("Ornate emerald block", 11, "emerald/a1-blockquartz-ornate"); - blockEmerald.carverHelper.register(blockEmerald, "emerald"); - Carving.chisel.registerOre("emerald","blockEmerald"); - } - - if(Chisel.featureEnabled("netherBrick")) { - blockNetherBrick = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10.0F).setStepSound(Block.soundTypeStone); - //blockNetherBrick.carverHelper.addVariation("Nether brick", 0, Blocks.nether_brick); - blockNetherBrick.carverHelper.addVariation("Blue nether brick", 1, "netherbrick/a1-netherbrick-brinstar"); - blockNetherBrick.carverHelper.addVariation("Spattered nether brick", 2, "netherbrick/a1-netherbrick-classicspatter"); - blockNetherBrick.carverHelper.addVariation("Nether brick made of guts", 3, "netherbrick/a1-netherbrick-guts"); - blockNetherBrick.carverHelper.addVariation("Dark nether brick made of guts", 4, "netherbrick/a1-netherbrick-gutsdark"); - blockNetherBrick.carverHelper.addVariation("Small nether brick made of guts", 5, "netherbrick/a1-netherbrick-gutssmall"); - blockNetherBrick.carverHelper.addVariation("Blue nether brick with lava", 6, "netherbrick/a1-netherbrick-lavabrinstar"); - blockNetherBrick.carverHelper.addVariation("Brown nether brick", 7, "netherbrick/a1-netherbrick-lavabrown"); - blockNetherBrick.carverHelper.addVariation("Obsidian nether brick", 8, "netherbrick/a1-netherbrick-lavaobsidian"); - blockNetherBrick.carverHelper.addVariation("Stone nether brick", 9, "netherbrick/a1-netherbrick-lavastonedark"); - blockNetherBrick.carverHelper.addVariation("Nether brick made of meat", 10, "netherbrick/a1-netherbrick-meat"); - blockNetherBrick.carverHelper.addVariation("Red nether brick made of meat", 11, "netherbrick/a1-netherbrick-meatred"); - blockNetherBrick.carverHelper.addVariation("Small nether brick made of meat", 12, "netherbrick/a1-netherbrick-meatredsmall"); - blockNetherBrick.carverHelper.addVariation("Small red nether brick made of meat", 13, "netherbrick/a1-netherbrick-meatsmall"); - blockNetherBrick.carverHelper.addVariation("Red nether brick", 14, "netherbrick/a1-netherbrick-red"); - blockNetherBrick.carverHelper.addVariation("Small red nether brick", 15, "netherbrick/a1-netherbrick-redsmall"); - blockNetherBrick.carverHelper.register(blockNetherBrick, "netherBrick"); - Carving.chisel.registerOre("netherBrick","netherBrick"); - } - - if(Chisel.featureEnabled("netherRack")) { - blockNetherrack = (BlockCarvable) new BlockCarvable().setHardness(0.4F).setStepSound(Block.soundTypeStone); - Carving.chisel.addVariation("hellrock", Blocks.netherrack, 0, 0); - blockNetherrack.carverHelper.addVariation("Nethegravel with blood", 1, "netherrack/a1-netherrack-bloodgravel"); - blockNetherrack.carverHelper.addVariation("Netherrack with blood", 2, "netherrack/a1-netherrack-bloodrock"); - blockNetherrack.carverHelper.addVariation("Darker netherrack with blood", 3, "netherrack/a1-netherrack-bloodrockgrey"); - blockNetherrack.carverHelper.addVariation("Blue netherrack", 4, "netherrack/a1-netherrack-brinstar"); - blockNetherrack.carverHelper.addVariation("Shale blue netherrack", 5, "netherrack/a1-netherrack-brinstarshale"); - blockNetherrack.carverHelper.addVariation("Classic netherrack", 6, "netherrack/a1-netherrack-classic"); - blockNetherrack.carverHelper.addVariation("Spattered netherrack", 7, "netherrack/a1-netherrack-classicspatter"); - blockNetherrack.carverHelper.addVariation("Netherrack made of guts", 8, "netherrack/a1-netherrack-guts"); - blockNetherrack.carverHelper.addVariation("Dark netherrack made of guts", 9, "netherrack/a1-netherrack-gutsdark"); - blockNetherrack.carverHelper.addVariation("Netherrack made of meat", 10, "netherrack/a1-netherrack-meat"); - blockNetherrack.carverHelper.addVariation("Red netherrack made of meat", 11, "netherrack/a1-netherrack-meatred"); - blockNetherrack.carverHelper.addVariation("Netherrack made of smaller meat chunks", 12, "netherrack/a1-netherrack-meatrock"); - blockNetherrack.carverHelper.addVariation("Dark red netherrack", 13, "netherrack/a1-netherrack-red"); - blockNetherrack.carverHelper.addVariation("Netherrack with lava flowing", 14, "netherrack/a1-netherrack-wells"); - blockNetherrack.carverHelper.register(blockNetherrack, "hellrock"); - Carving.chisel.registerOre("hellrock","blockNetherrack"); - } - - if(Chisel.featureEnabled("cobblestoneMossy")) { - blockCobblestoneMossy = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10.0F).setStepSound(Block.soundTypeStone); - Carving.chisel.addVariation("stoneMoss", Blocks.mossy_cobblestone, 0, 0); - blockCobblestoneMossy.carverHelper.addVariation("Aligned mossy cobblestone bricks", 1, "cobblestonemossy/terrain-cobb-brickaligned"); - blockCobblestoneMossy.carverHelper.addVariation("Detailed mossy cobblestone bricks", 2, "cobblestonemossy/terrain-cob-detailedbrick"); - blockCobblestoneMossy.carverHelper.addVariation("Small mossy cobblestone bricks", 3, "cobblestonemossy/terrain-cob-smallbrick"); - blockCobblestoneMossy.carverHelper.addVariation("Large mossy cobblestone tiles", 4, "cobblestonemossy/terrain-cobblargetiledark"); - blockCobblestoneMossy.carverHelper.addVariation("Small mossy cobblestone tiles", 5, "cobblestonemossy/terrain-cobbsmalltile"); - blockCobblestoneMossy.carverHelper.addVariation("French mossy cobblestone tiles", 6, "cobblestonemossy/terrain-cob-french"); - blockCobblestoneMossy.carverHelper.addVariation("French mossy cobblestone tiles", 7, "cobblestonemossy/terrain-cob-french2"); - blockCobblestoneMossy.carverHelper.addVariation("Creeper mossy cobblestone tiles", 8, "cobblestonemossy/terrain-cobmoss-creepdungeon"); - blockCobblestoneMossy.carverHelper.addVariation("Damaged mossy cobblestone tiles", 9, "cobblestonemossy/terrain-mossysmalltiledark"); - blockCobblestoneMossy.carverHelper.addVariation("Huge mossy cobblestone tiles", 10, "cobblestonemossy/terrain-pistonback-dungeontile"); - blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with creeper panel", 11, "cobblestonemossy/terrain-pistonback-darkcreeper"); - blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with dent", 12, "cobblestonemossy/terrain-pistonback-darkdent"); - blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with panel", 13, "cobblestonemossy/terrain-pistonback-darkemboss"); - blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with light panel", 14, "cobblestonemossy/terrain-pistonback-darkmarker"); - blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with dark panel", 15, "cobblestonemossy/terrain-pistonback-darkpanel"); - blockCobblestoneMossy.carverHelper.register(blockCobblestoneMossy, "stoneMoss"); - Carving.chisel.registerOre("stoneMoss","blockCobblestoneMossy"); - } - - if(Chisel.featureEnabled("stoneBrick")) { - stoneBrick = (BlockCarvable) new BlockCarvable().setHardness(1.5F).setResistance(10.0F).setStepSound(Block.soundTypeStone); - for(int i = 0; i < 4; i++) - Carving.chisel.addVariation("stoneBrick", Blocks.stonebrick, i, i); - stoneBrick.carverHelper.addVariation("Small stone bricks", 4, "stonebrick/smallbricks"); - stoneBrick.carverHelper.addVariation("Wide stone bricks", 5, "stonebrick/largebricks"); - stoneBrick.carverHelper.addVariation("Small disordered stone bricks", 6, "stonebrick/smallchaotic"); - stoneBrick.carverHelper.addVariation("Disordered stone bricks", 7, "stonebrick/chaoticbricks"); - stoneBrick.carverHelper.addVariation("Disordered stone panels", 8, "stonebrick/chaotic"); - stoneBrick.carverHelper.addVariation("Stone bricks in a fancy arrangement", 9, "stonebrick/fancy"); - stoneBrick.carverHelper.addVariation("Ornate stone brick tiles", 10, "stonebrick/ornate"); - stoneBrick.carverHelper.addVariation("Large ornate stone brick tiles", 11, "stonebrick/largeornate"); - stoneBrick.carverHelper.addVariation("Stone panel", 12, "stonebrick/panel-hard"); - stoneBrick.carverHelper.addVariation("Sunken stone panel", 13, "stonebrick/sunken"); - stoneBrick.carverHelper.addVariation("Ornate stone panel", 14, "stonebrick/ornatepanel"); - stoneBrick.carverHelper.addVariation("Poison stone brick", 15, "stonebrick/poison"); - stoneBrick.carverHelper.register(stoneBrick, "stoneBrick"); - Carving.chisel.registerOre("stoneBrick","blockStoneBrick"); - } - - if(Chisel.featureEnabled("snakestone")) { - blockSnakestone=(BlockSnakestone) new BlockSnakestone("Chisel:snakestone/snake/").setBlockName("snakestone"); - GameRegistry.registerBlock(blockSnakestone, ItemCarvable.class, blockSnakestone.getUnlocalizedName()); - LanguageRegistry.addName(new ItemStack(blockSnakestone, 1, 1), "Stone snake block head"); - LanguageRegistry.addName(new ItemStack(blockSnakestone, 1, 13), "Stone snake block body"); - Carving.chisel.addVariation("stoneBrick", blockSnakestone, 1, 16); - Carving.chisel.addVariation("stoneBrick", blockSnakestone, 13, 17); - } - - if(Chisel.featureEnabled("ice")) { - blockIce = (BlockMarbleIce) new BlockMarbleIce().setHardness(0.5F).setLightOpacity(3).setStepSound(Block.soundTypeGlass); - Carving.chisel.addVariation("ice", Blocks.ice, 0, 0); - blockIce.carverHelper.addVariation("Rough ice block", 1, "ice/a1-ice-light"); - blockIce.carverHelper.addVariation("Cobbleice", 2, "ice/a1-stonecobble-icecobble"); - blockIce.carverHelper.addVariation("Large rough ice bricks", 3, "ice/a1-netherbrick-ice"); - blockIce.carverHelper.addVariation("Large ice bricks", 4, "ice/a1-stonecobble-icebrick"); - blockIce.carverHelper.addVariation("Small ice bricks", 5, "ice/a1-stonecobble-icebricksmall"); - blockIce.carverHelper.addVariation("Fancy glass wall", 6, "ice/a1-stonecobble-icedungeon"); - blockIce.carverHelper.addVariation("Large ice tiles", 7, "ice/a1-stonecobble-icefour"); - blockIce.carverHelper.addVariation("Fancy ice tiles", 8, "ice/a1-stonecobble-icefrench"); - blockIce.carverHelper.addVariation("Sunken ice tiles", 9, "ice/sunkentiles"); - blockIce.carverHelper.addVariation("Disordered ice tiles", 10, "ice/tiles"); - blockIce.carverHelper.addVariation("Ice panel", 11, "ice/a1-stonecobble-icepanel"); - blockIce.carverHelper.addVariation("Ice double slab", 12, "ice/a1-stoneslab-ice"); - blockIce.carverHelper.addVariation("Ice Zelda block", 13, "ice/zelda"); - blockIce.carverHelper.addVariation("Ice Bismuth block", 14, "ice/bismuth"); - blockIce.carverHelper.addVariation("Ice Poison block", 15, "ice/poison"); - blockIce.carverHelper.register(blockIce, "ice"); - Carving.chisel.registerOre("ice","blockIce"); - - if(Chisel.featureEnabled("icePillar")) { - blockIcePillar = (BlockMarbleIce) new BlockMarbleIce().setHardness(0.5F).setLightOpacity(3).setStepSound(Block.soundTypeGlass); - blockIcePillar.carverHelper.setBlockName("Ice Pillar"); - blockIcePillar.carverHelper.addVariation("Ice pillar", 0, "icepillar/column"); - blockIcePillar.carverHelper.addVariation("Ice pillar capstone", 1, "icepillar/capstone"); - blockIcePillar.carverHelper.addVariation("Ice pillar base", 2, "icepillar/base"); - blockIcePillar.carverHelper.addVariation("Small ice pillar", 3, "icepillar/small"); - blockIcePillar.carverHelper.addVariation("Carved ice pillar", 4, "icepillar/pillar-carved"); - blockIcePillar.carverHelper.addVariation("Ornamental ice pillar", 5, "icepillar/a1-stoneornamental-marblegreek"); - blockIcePillar.carverHelper.addVariation("Greek ice pillar", 6, "icepillar/a1-stonepillar-greek"); - blockIcePillar.carverHelper.addVariation("Plain ice pillar", 7, "icepillar/a1-stonepillar-plain"); - blockIcePillar.carverHelper.addVariation("Greek ice pillar capstone", 8, "icepillar/a1-stonepillar-greektopplain"); - blockIcePillar.carverHelper.addVariation("Plain ice pillar capstone", 9, "icepillar/a1-stonepillar-plaintopplain"); - blockIcePillar.carverHelper.addVariation("Greek ice pillar base", 10, "icepillar/a1-stonepillar-greekbottomplain"); - blockIcePillar.carverHelper.addVariation("Plain ice pillar base", 11, "icepillar/a1-stonepillar-plainbottomplain"); - blockIcePillar.carverHelper.addVariation("Greek ice pillar ornate capstone", 12, "icepillar/a1-stonepillar-greektopgreek"); - blockIcePillar.carverHelper.addVariation("Plain ice pillar ornate capstone", 13, "icepillar/a1-stonepillar-plaintopgreek"); - blockIcePillar.carverHelper.addVariation("Greek ice pillar ornate base", 14, "icepillar/a1-stonepillar-greekbottomgreek"); - blockIcePillar.carverHelper.addVariation("Plain ice pillar ornate base", 15, "icepillar/a1-stonepillar-plainbottomgreek"); - blockIcePillar.carverHelper.register(blockIcePillar, "icePillar"); - Carving.chisel.setGroupClass("icePillar", "ice"); - } - - if(Chisel.featureEnabled("iceStairs")) { - BlockMarbleStairsMaker makerIceStairs=new BlockMarbleStairsMaker(Blocks.ice); - makerIceStairs.carverHelper.setBlockName("Ice Stairs"); - makerIceStairs.carverHelper.addVariation("Ice stairs", 0, Blocks.ice); - makerIceStairs.carverHelper.addVariation("Rough ice stairs", 1, "ice/a1-ice-light"); - makerIceStairs.carverHelper.addVariation("Cobbleice stairs", 2, "ice/a1-stonecobble-icecobble"); - makerIceStairs.carverHelper.addVariation("Large rough ice brick stairs", 3, "ice/a1-netherbrick-ice"); - makerIceStairs.carverHelper.addVariation("Large ice brick stairs", 4, "ice/a1-stonecobble-icebrick"); - makerIceStairs.carverHelper.addVariation("Small ice brick stairs", 5, "ice/a1-stonecobble-icebricksmall"); - makerIceStairs.carverHelper.addVariation("Fancy ice wall stairs", 6, "ice/a1-stonecobble-icedungeon"); - makerIceStairs.carverHelper.addVariation("Large ice tile stairs", 7, "ice/a1-stonecobble-icefour"); - makerIceStairs.carverHelper.addVariation("Fancy ice tile stairs", 8, "ice/a1-stonecobble-icefrench"); - makerIceStairs.carverHelper.addVariation("Sunken ice tile stairs", 9, "ice/sunkentiles"); - makerIceStairs.carverHelper.addVariation("Disordered ice tile stairs", 10, "ice/tiles"); - makerIceStairs.carverHelper.addVariation("Ice panel stairs", 11, "ice/a1-stonecobble-icepanel"); - makerIceStairs.carverHelper.addVariation("Ice double slab stairs", 12, "ice/a1-stoneslab-ice"); - makerIceStairs.carverHelper.addVariation("Ice Zelda stairs", 13, "ice/zelda"); - makerIceStairs.carverHelper.addVariation("Ice bismuth stairs", 14, "ice/bismuth"); - makerIceStairs.carverHelper.addVariation("Ice poison stairs", 15, "ice/poison"); - makerIceStairs.create(new BlockMarbleStairsMakerCreator(){ - @Override public BlockMarbleStairs create(Block block, int meta, CarvableHelper helper) { - return new BlockMarbleIceStairs(block,meta,helper); - } - }, "chisel.iceStairs"); - } - } - - if(Chisel.featureEnabled("wood")) { - String[] plank_names={"oak", "spruce", "birch", "jungle", "acacia", "dark-oak"}; - String[] plank_ucnames={"Oak", "Spruce", "Birch", "Jungle", "Acacia", "Dark Oak"}; - for(int i=0;i<6;i++){ - String n=plank_names[i]; - String u=plank_ucnames[i]; - - blockPlanks[i] = (BlockCarvable) (new BlockCarvable()).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundTypeWood); - blockPlanks[i].carverHelper.setBlockName(u+" Wood Planks"); - blockPlanks[i].carverHelper.addVariation("Smooth "+n+" wood planks", 1, "planks-"+n+"/clean"); - blockPlanks[i].carverHelper.addVariation("Short "+n+" wood planks", 2, "planks-"+n+"/short"); - blockPlanks[i].carverHelper.addVariation("Fancy "+n+" wood plank arrangement", 6, "planks-"+n+"/fancy"); - blockPlanks[i].carverHelper.addVariation(u+" wood panel", 8, "planks-"+n+"/panel-nails"); - blockPlanks[i].carverHelper.addVariation(u+" wood double slab", 9, "planks-"+n+"/double"); - blockPlanks[i].carverHelper.addVariation(u+" wood crate", 10, "planks-"+n+"/crate"); - blockPlanks[i].carverHelper.addVariation("Fancy "+n+" wood crate", 11, "planks-"+n+"/crate-fancy"); - blockPlanks[i].carverHelper.addVariation("Large long "+n+" wood planks", 13, "planks-"+n+"/large"); - if(i < 4) { // TODO: We lack textures for these! - blockPlanks[i].carverHelper.addVariation("Vertical "+n+" wood planks", 3, "planks-"+n+"/vertical"); - blockPlanks[i].carverHelper.addVariation("Vertical uneven "+n+" wood planks", 4, "planks-"+n+"/vertical-uneven"); - blockPlanks[i].carverHelper.addVariation(u+" wood parquet", 5, "planks-"+n+"/parquet"); - blockPlanks[i].carverHelper.addVariation(u+" wood plank blinds", 7, "planks-"+n+"/blinds"); - blockPlanks[i].carverHelper.addVariation(u+" wood scaffold", 12, "planks-"+n+"/crateex"); - blockPlanks[i].carverHelper.addVariation(u+" wood planks in disarray", 14, "planks-"+n+"/chaotic-hor"); - blockPlanks[i].carverHelper.addVariation("Vertical "+n+" wood planks in disarray", 15, "planks-"+n+"/chaotic"); - } - blockPlanks[i].carverHelper.register(blockPlanks[i], "wood-"+n); - Carving.chisel.addVariation("wood-"+n, Blocks.planks, i, 0); - Blocks.planks.setHarvestLevel("chisel", 0, i); - blockPlanks[i].setHarvestLevel("axe", 0); - - Carving.chisel.setVariationSound("wood-"+n, "chisel:chisel-wood"); - } - } - - if(Chisel.featureEnabled("obsidian")) { - blockObsidian = (BlockCarvable) new BlockCarvable().setHardness(50.0F).setResistance(2000.0F).setStepSound(Block.soundTypeStone); - Carving.chisel.addVariation("obsidian", Blocks.obsidian, 0, 0); - blockObsidian.carverHelper.addVariation("Large obsidian pillar", 1, "obsidian/pillar"); - blockObsidian.carverHelper.addVariation("Obsidian pillar", 2, "obsidian/pillar-quartz"); - blockObsidian.carverHelper.addVariation("Chiseled obsidian", 3, "obsidian/chiseled"); - blockObsidian.carverHelper.addVariation("Shiny obsidian panel", 4, "obsidian/panel-shiny"); - blockObsidian.carverHelper.addVariation("Obsidian panel", 5, "obsidian/panel"); - blockObsidian.carverHelper.addVariation("Organic-looking obsidian chunks", 6, "obsidian/chunks"); - blockObsidian.carverHelper.addVariation("Organic-looking obsidian growth", 7, "obsidian/growth"); - blockObsidian.carverHelper.addVariation("Obsidian crystal", 8, "obsidian/crystal"); - blockObsidian.carverHelper.addVariation("Obsidian panel with an ancient map on it", 9, "obsidian/map-a"); - blockObsidian.carverHelper.addVariation("Obsidian panel with a map of some weird region on it", 10, "obsidian/map-b"); - blockObsidian.carverHelper.addVariation("Bright obsidian panel", 11, "obsidian/panel-light"); - blockObsidian.carverHelper.addVariation("Obsidian blocks", 12, "obsidian/blocks"); - blockObsidian.carverHelper.addVariation("Obsidian tiles", 13, "obsidian/tiles"); - blockObsidian.carverHelper.addVariation("Light obsidian blocks with Greek decor", 14, "obsidian/greek"); - blockObsidian.carverHelper.addVariation("Small obsidian blocks inside an oak wood crate", 15, "obsidian/crate"); - blockObsidian.carverHelper.register(blockObsidian, "obsidian"); - Carving.chisel.registerOre("obsidian","blockObsidian"); - } - - if(Chisel.featureEnabled("snakestoneObsidian")) { - blockObsidianSnakestone=(BlockSnakestoneObsidian) new BlockSnakestoneObsidian("Chisel:snakestone/obsidian/").setBlockName("obsidianSnakestone").setHardness(50.0F).setResistance(2000.0F); - GameRegistry.registerBlock(blockObsidianSnakestone, ItemCarvable.class, blockObsidianSnakestone.getUnlocalizedName()); - LanguageRegistry.addName(new ItemStack(blockObsidianSnakestone, 1, 1), "Obsidian snakestone head"); - LanguageRegistry.addName(new ItemStack(blockObsidianSnakestone, 1, 13), "Obsidian snakestone body"); - Carving.chisel.addVariation("obsidian", blockObsidianSnakestone, 1, 16); - Carving.chisel.addVariation("obsidian", blockObsidianSnakestone, 13, 17); - } - - if(Chisel.featureEnabled("ironBars")) { - blockPaneIron = (BlockCarvablePane) new BlockCarvablePane(Material.iron, true).setHardness(0.3F).setStepSound(Block.soundTypeMetal); - Carving.chisel.addVariation("fenceIron", Blocks.iron_bars, 0, 0); - blockPaneIron.carverHelper.addVariation("Iron bars without frame", 1, "ironpane/fenceIron"); - blockPaneIron.carverHelper.addVariation("Menacing iron bars", 2, "ironpane/barbedwire"); - blockPaneIron.carverHelper.addVariation("Iron cage bars", 3, "ironpane/cage"); - blockPaneIron.carverHelper.addVariation("Menacing iron spikes", 4, "ironpane/fenceIronTop"); - blockPaneIron.carverHelper.addVariation("Thick iron grid", 5, "ironpane/terrain-glass-thickgrid"); - blockPaneIron.carverHelper.addVariation("Thin iron grid", 6, "ironpane/terrain-glass-thingrid"); - blockPaneIron.carverHelper.addVariation("Ornate iron pane fence", 7, "ironpane/terrain-glass-ornatesteel"); - blockPaneIron.carverHelper.addVariation("Vertical iron bars", 8, "ironpane/bars"); - blockPaneIron.carverHelper.addVariation("Iron spikes", 9, "ironpane/spikes"); - blockPaneIron.carverHelper.register(blockPaneIron, "fenceIron"); - } - - if(Chisel.featureEnabled("glassPane")) { - blockPaneGlass = (BlockCarvablePane) new BlockCarvablePane(Material.glass, false).setHardness(0.3F).setStepSound(Block.soundTypeGlass); - Carving.chisel.addVariation("glassPane", Blocks.glass_pane, 0, 0); - blockPaneGlass.carverHelper.addVariation("Bubble glass pane", 1, "glasspane/terrain-glassbubble"); - blockPaneGlass.carverHelper.addVariation("Borderless glass pane", 2, "glasspane/terrain-glassnoborder"); - blockPaneGlass.carverHelper.addVariation("Screen pane", 3, "glasspane/terrain-glass-screen"); - blockPaneGlass.carverHelper.addVariation("Streak glass pane", 4, "glasspane/terrain-glassstreak"); - blockPaneGlass.carverHelper.addVariation("Chinese glass pane", 12, "glasspane/chinese"); - blockPaneGlass.carverHelper.addVariation("Chinese glass pane with golden frame", 13, "glasspane/chinese2"); - blockPaneGlass.carverHelper.addVariation("Japanese glass pane", 14, "glasspane/japanese"); - blockPaneGlass.carverHelper.addVariation("Ornate japanese glass pane", 15, "glasspane/japanese2"); - blockPaneGlass.carverHelper.register(blockPaneGlass, "glassPane"); - } - - if(Chisel.featureEnabled("redstoneBlock")) { - blockRedstone = (BlockCarvablePowered) (new BlockCarvablePowered(Material.iron)).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundTypeMetal); - Carving.chisel.addVariation("blockRedstone", Blocks.redstone_block, 0, 0); - blockRedstone.carverHelper.addVariation("Smooth redstone", 1, "redstone/smooth"); - blockRedstone.carverHelper.addVariation("Large redstone block", 2, "redstone/block"); - blockRedstone.carverHelper.addVariation("Small redstone blocks", 3, "redstone/blocks"); - blockRedstone.carverHelper.addVariation("Redstone bricks", 4, "redstone/bricks"); - blockRedstone.carverHelper.addVariation("Small redstone bricks", 5, "redstone/smallbricks"); - blockRedstone.carverHelper.addVariation("Chaotic redstone bricks", 6, "redstone/smallchaotic"); - blockRedstone.carverHelper.addVariation("Chiseled redstone", 7, "redstone/chiseled"); - blockRedstone.carverHelper.addVariation("Redstone Greek decoration", 8, "redstone/ere"); - blockRedstone.carverHelper.addVariation("Ornate redstone tiles", 9, "redstone/ornate-tiles"); - blockRedstone.carverHelper.addVariation("Redstone pillar", 10, "redstone/pillar"); - blockRedstone.carverHelper.addVariation("Redstone tiles", 11, "redstone/tiles"); - blockRedstone.carverHelper.addVariation("Redstone circuit", 12, "redstone/circuit"); - blockRedstone.carverHelper.addVariation("Redstone supaplex circuit", 13, "redstone/supaplex"); - blockRedstone.carverHelper.addVariation("Redstone skulls", 14, "redstone/a1-blockredstone-skullred"); - blockRedstone.carverHelper.addVariation("Redstone Zelda block", 15, "redstone/a1-blockredstone-redstonezelda"); - blockRedstone.carverHelper.register(blockRedstone, "blockRedstone"); - Carving.chisel.registerOre("blockRedstone","blockRedstone"); - } - - if(Chisel.featureEnabled("holystone")) { - blockHolystone = (BlockHolystone) new BlockHolystone(Material.rock).setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundHolystoneFootstep); - blockHolystone.carverHelper.addVariation("Holystone", 0, "holystone/holystone"); - blockHolystone.carverHelper.addVariation("Smooth holystone", 1, "holystone/smooth"); - blockHolystone.carverHelper.addVariation("Mysterious holystone symbol", 2, "holystone/love"); - blockHolystone.carverHelper.addVariation("Chiseled holystone", 3, "holystone/chiseled"); - blockHolystone.carverHelper.addVariation("Holystone blocks", 4, "holystone/blocks"); - blockHolystone.carverHelper.addVariation("Rough holystone blocks", 5, "holystone/blocks-rough"); - blockHolystone.carverHelper.addVariation("Holystone bricks", 6, "holystone/brick"); - blockHolystone.carverHelper.addVariation("Large holystone bricks", 7, "holystone/largebricks"); - blockHolystone.carverHelper.addVariation("Holystone platform", 8, "holystone/platform"); - blockHolystone.carverHelper.addVariation("Holystone platform tiles", 9, "holystone/platform-tiles"); - blockHolystone.carverHelper.addVariation("Fancy holystone construction", 10, "holystone/construction"); - blockHolystone.carverHelper.addVariation("Fancy holystone tiles", 11, "holystone/fancy-tiles"); - blockHolystone.carverHelper.addVariation("Smooth holystone plate", 12, "holystone/plate"); - blockHolystone.carverHelper.addVariation("Holystone plate", 13, "holystone/plate-rough"); - blockHolystone.carverHelper.register(blockHolystone, "blockHolystone"); - OreDictionary.registerOre("blockHolystone", blockHolystone); - Carving.chisel.registerOre("blockHolystone","blockHolystone"); - } - - if(Chisel.featureEnabled("lavastone")) { - blockLavastone=(BlockLavastone) new BlockLavastone(Material.rock, "lava_flow").setHardness(2.0F).setResistance(10F); - blockLavastone.carverHelper.addVariation("Lavastone", 0, "lavastone/cobble"); - blockLavastone.carverHelper.addVariation("Black lavastone", 1, "lavastone/black"); - blockLavastone.carverHelper.addVariation("Lavastone tiles", 2, "lavastone/tiles"); - blockLavastone.carverHelper.addVariation("Chaotic lavastone bricks", 3, "lavastone/chaotic"); - blockLavastone.carverHelper.addVariation("Lava creeper in tiles", 4, "lavastone/creeper"); - blockLavastone.carverHelper.addVariation("Lava panel", 5, "lavastone/panel"); - blockLavastone.carverHelper.addVariation("Ornate lava panel", 6, "lavastone/panel-ornate"); - blockLavastone.carverHelper.register(blockLavastone, "blockLavastone"); - OreDictionary.registerOre("blockLavastone", blockLavastone); - Carving.chisel.registerOre("blockLavastone","blockLavastone"); - } - - if(Chisel.featureEnabled("fantasy")) { - blockFft=(BlockCarvable) new BlockCarvable(Material.rock).setHardness(2.0F).setResistance(10F); - blockFft.carverHelper.setBlockName("Fantasy Block"); - blockFft.carverHelper.addVariation("Fantasy brick", 0, "fft/brick"); - blockFft.carverHelper.addVariation("Faded fantasy brick", 1, "fft/brick-faded"); - blockFft.carverHelper.addVariation("Weared fantasy brick", 2, "fft/brick-wear"); - blockFft.carverHelper.addVariation("Damaged fantasy bricks", 3, "fft/bricks"); - blockFft.carverHelper.addVariation("Fantasy decoration", 4, "fft/decor"); - blockFft.carverHelper.addVariation("Fantasy decoration block", 5, "fft/decor-block"); - blockFft.carverHelper.addVariation("Fantasy pillar", 6, "fft/pillar"); - blockFft.carverHelper.addVariation("Fantasy pillar decoration", 7, "fft/pillar-decorated"); - blockFft.carverHelper.addVariation("Fantasy gold snake decoration", 8, "fft/gold-decor-1"); - blockFft.carverHelper.addVariation("Fantasy gold noise decoration", 9, "fft/gold-decor-2"); - blockFft.carverHelper.addVariation("Fantasy gold engravings decoration", 10, "fft/gold-decor-3"); - blockFft.carverHelper.addVariation("Fantasy gold chains decoration", 11, "fft/gold-decor-4"); - blockFft.carverHelper.addVariation("Fantasy plate decoration", 12, "fft/plate"); - blockFft.carverHelper.addVariation("Fantasy block", 13, "fft/block"); - blockFft.carverHelper.addVariation("Fantasy bricks in disarray", 14, "fft/bricks-chaotic"); - blockFft.carverHelper.addVariation("Weared fantasy bricks", 15, "fft/bricks-wear"); - blockFft.carverHelper.register(blockFft, "blockFft"); - OreDictionary.registerOre("blockFft", blockFft); - Carving.chisel.registerOre("blockFft","blockFft"); - } - - if(Chisel.featureEnabled("carpet")) { - blockCarpet=(BlockCarvable) new BlockCarvable(Material.cloth).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeCloth); - blockCarpet.carverHelper.setBlockName("Carpet Block"); - blockCarpet.carverHelper.addVariation("White carpet block", 0, "carpet/white"); - blockCarpet.carverHelper.addVariation("Orange carpet block", 1, "carpet/orange"); - blockCarpet.carverHelper.addVariation("Magenta carpet block", 2, "carpet/lily"); - blockCarpet.carverHelper.addVariation("Light blue carpet block", 3, "carpet/lightblue"); - blockCarpet.carverHelper.addVariation("Yellow carpet block", 4, "carpet/yellow"); - blockCarpet.carverHelper.addVariation("Light green carpet block", 5, "carpet/lightgreen"); - blockCarpet.carverHelper.addVariation("Pink carpet block", 6, "carpet/pink"); - blockCarpet.carverHelper.addVariation("Dark grey carpet block", 7, "carpet/darkgrey"); - blockCarpet.carverHelper.addVariation("Grey carpet block", 8, "carpet/grey"); - blockCarpet.carverHelper.addVariation("Teal carpet block", 9, "carpet/teal"); - blockCarpet.carverHelper.addVariation("Purple carpet block", 10, "carpet/purple"); - blockCarpet.carverHelper.addVariation("Dark blue carpet block", 11, "carpet/darkblue"); - blockCarpet.carverHelper.addVariation("Brown carpet block", 12, "carpet/brown"); - blockCarpet.carverHelper.addVariation("Green carpet block", 13, "carpet/green"); - blockCarpet.carverHelper.addVariation("Red carpet block", 14, "carpet/red"); - blockCarpet.carverHelper.addVariation("Black carpet block", 15, "carpet/black"); - blockCarpet.carverHelper.forbidChiseling=true; - blockCarpet.carverHelper.register(blockCarpet, "blockCarpet"); - OreDictionary.registerOre("blockCarpet", blockCarpet); - Carving.chisel.registerOre("blockCarpet","blockCarpet"); - } - - if(Chisel.featureEnabled("carpetFloor")) { - blockCarpetFloor=(BlockMarbleCarpet) new BlockMarbleCarpet(Material.cloth).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeCloth); - blockCarpetFloor.carverHelper.setBlockName("Carpet"); - blockCarpetFloor.carverHelper.addVariation("White carpet", 0, "carpet/white"); - blockCarpetFloor.carverHelper.addVariation("Orange carpet", 1, "carpet/orange"); - blockCarpetFloor.carverHelper.addVariation("Magenta carpet", 2, "carpet/lily"); - blockCarpetFloor.carverHelper.addVariation("Light blue carpet", 3, "carpet/lightblue"); - blockCarpetFloor.carverHelper.addVariation("Yellow carpet", 4, "carpet/yellow"); - blockCarpetFloor.carverHelper.addVariation("Light green carpet", 5, "carpet/lightgreen"); - blockCarpetFloor.carverHelper.addVariation("Pink carpet", 6, "carpet/pink"); - blockCarpetFloor.carverHelper.addVariation("Dark grey carpet", 7, "carpet/darkgrey"); - blockCarpetFloor.carverHelper.addVariation("Grey carpet", 8, "carpet/grey"); - blockCarpetFloor.carverHelper.addVariation("Teal carpet", 9, "carpet/teal"); - blockCarpetFloor.carverHelper.addVariation("Purple carpet", 10, "carpet/purple"); - blockCarpetFloor.carverHelper.addVariation("Dark blue carpet", 11, "carpet/darkblue"); - blockCarpetFloor.carverHelper.addVariation("Brown carpet", 12, "carpet/brown"); - blockCarpetFloor.carverHelper.addVariation("Green carpet", 13, "carpet/green"); - blockCarpetFloor.carverHelper.addVariation("Red carpet", 14, "carpet/red"); - blockCarpetFloor.carverHelper.addVariation("Black carpet", 15, "carpet/black"); - blockCarpetFloor.carverHelper.forbidChiseling=true; - blockCarpetFloor.carverHelper.register(blockCarpetFloor, "blockCarpetFloor"); - - for(int i=0;i<16;i++){ - String group="carpet."+i; - - Carving.needle.addVariation(group, Blocks.carpet, i, 0); - Carving.needle.addVariation(group, blockCarpetFloor, i, 2); - Carving.needle.addVariation(group, blockCarpet, i, 1); - } - } - - if(Chisel.featureEnabled("bookshelf")) { - blockBookshelf=(BlockCarvable) new BlockMarbleBookshelf().setHardness(1.5F).setStepSound(Block.soundTypeWood); - Carving.chisel.addVariation("blockBookshelf", Blocks.bookshelf, 0, 0); - blockBookshelf.carverHelper.addVariation("Bookshelf with rainbow colored books", 1, "bookshelf/rainbow"); - blockBookshelf.carverHelper.addVariation("Necromancer novice's bookshelf", 2, "bookshelf/necromancer-novice"); - blockBookshelf.carverHelper.addVariation("Necromancer's bookshelf", 3, "bookshelf/necromancer"); - blockBookshelf.carverHelper.addVariation("Bookshelf with red tomes", 4, "bookshelf/redtomes"); - blockBookshelf.carverHelper.addVariation("Abandoned bookshelf", 5, "bookshelf/abandoned"); - blockBookshelf.carverHelper.addVariation("Hoarder's bookshelf", 6, "bookshelf/hoarder"); - blockBookshelf.carverHelper.addVariation("Bookshelf filled to brim with boring pastel books", 7, "bookshelf/brim"); - blockBookshelf.carverHelper.addVariation("Historician's bookshelf", 8, "bookshelf/historician"); - blockBookshelf.carverHelper.register(blockBookshelf, "blockBookshelf"); - blockBookshelf.setHarvestLevel("axe", 0); - Carving.chisel.registerOre("blockBookshelf","blockBookshelf"); - } - - if(Chisel.featureEnabled("futuristicArmorPlating")) { - blockTyrian=(BlockCarvable) new BlockCarvable(Material.iron).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundTypeMetal); - blockTyrian.carverHelper.setBlockName("Futuristic Armor Plating Block"); - blockTyrian.carverHelper.addVariation("Futuristic armor plating block", 0, "tyrian/shining"); - blockTyrian.carverHelper.addVariation("Bleak futuristic armor plating block", 1, "tyrian/tyrian"); - blockTyrian.carverHelper.addVariation("Purple futuristic armor plating block", 2, "tyrian/chaotic"); - blockTyrian.carverHelper.addVariation("Faded purple futuristic armor plating block", 3, "tyrian/softplate"); - blockTyrian.carverHelper.addVariation("Rusted futuristic armor plating block", 4, "tyrian/rust"); - blockTyrian.carverHelper.addVariation("Elaborate futuristic armor plating block", 5, "tyrian/elaborate"); - blockTyrian.carverHelper.addVariation("Futuristic armor plating block with many seams", 6, "tyrian/routes"); - blockTyrian.carverHelper.addVariation("Futuristic platform block", 7, "tyrian/platform"); - blockTyrian.carverHelper.addVariation("Futuristic armor plating tiles", 8, "tyrian/platetiles"); - blockTyrian.carverHelper.addVariation("Diagonal futuristic armor plating block", 9, "tyrian/diagonal"); - blockTyrian.carverHelper.addVariation("Futuristic armor plating block with dent", 10, "tyrian/dent"); - blockTyrian.carverHelper.addVariation("Blue futuristic armor plating block", 11, "tyrian/blueplating"); - blockTyrian.carverHelper.addVariation("Black futuristic armor plating block", 12, "tyrian/black"); - blockTyrian.carverHelper.addVariation("Black futuristic armor plating tiles", 13, "tyrian/black2"); - blockTyrian.carverHelper.addVariation("Black futuristic armor plating block with an opening", 14, "tyrian/opening"); - blockTyrian.carverHelper.addVariation("Futuristic armor plating with shining metal bits", 15, "tyrian/plate"); - blockTyrian.carverHelper.register(blockTyrian, "blockTyrian"); - OreDictionary.registerOre("blockTyrian", blockTyrian); - Carving.chisel.registerOre("blockTyrian","blockTyrian"); - } - - if(Chisel.featureEnabled("dirt")) { - blockDirt = (BlockCarvable) new BlockCarvable(Material.ground).setHardness(0.5F).setStepSound(Block.soundTypeGravel).setBlockName("dirt.default"); - blockDirt.carverHelper.setBlockName("Dirt"); - //blockDirt.carverHelper.addVariation("Dirt", 0, Blocks.dirt); - blockDirt.carverHelper.addVariation("Dirt bricks in disarray", 1, "dirt/bricks"); - blockDirt.carverHelper.addVariation("Dirt bricks imitating nether brick design", 2, "dirt/netherbricks"); - blockDirt.carverHelper.addVariation("Dirt bricks", 3, "dirt/bricks3"); - blockDirt.carverHelper.addVariation("Cobbledirt", 4, "dirt/cobble"); - blockDirt.carverHelper.addVariation("Reinforced cobbledirt", 5, "dirt/reinforced"); - blockDirt.carverHelper.addVariation("Reinforced dirt", 6, "dirt/dirt-reinforced"); - blockDirt.carverHelper.addVariation("Happy dirt", 7, "dirt/happy"); - blockDirt.carverHelper.addVariation("Large dirt bricks", 8, "dirt/bricks2"); - blockDirt.carverHelper.addVariation("Large dirt bricks on top of dirt", 9, "dirt/bricks+dirt2"); - blockDirt.carverHelper.addVariation("Horizontal dirt", 10, "dirt/hor"); - blockDirt.carverHelper.addVariation("Vertical dirt", 11, "dirt/vert"); - blockDirt.carverHelper.addVariation("Dirt layers", 12, "dirt/layers"); - blockDirt.carverHelper.addVariation("Crumbling dirt", 13, "dirt/vertical"); - blockDirt.carverHelper.register(blockDirt, "blockDirt"); - blockDirt.setHarvestLevel("shovel", 0); - OreDictionary.registerOre("blockDirt", blockDirt); - Carving.chisel.registerOre("blockDirt","blockDirt"); - } - - if(Chisel.featureEnabled("templeBlock")) { - blockTemple = (BlockCarvable) new BlockEldritch().setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundTempleFootstep); - blockTemple.carverHelper.setBlockName("Temple Block"); - blockTemple.carverHelper.addVariation("Temple cobblestone", 0, "temple/cobble"); - blockTemple.carverHelper.addVariation("Orante temple block", 1, "temple/ornate"); - blockTemple.carverHelper.addVariation("Temple plate", 2, "temple/plate"); - blockTemple.carverHelper.addVariation("Cracked temple plate", 3, "temple/plate-cracked"); - blockTemple.carverHelper.addVariation("Temple bricks", 4, "temple/bricks"); - blockTemple.carverHelper.addVariation("Large temple bricks", 5, "temple/bricks-large"); - blockTemple.carverHelper.addVariation("Weared temple bricks", 6, "temple/bricks-weared"); - blockTemple.carverHelper.addVariation("Temple bricks in disarray", 7, "temple/bricks-disarray"); - blockTemple.carverHelper.addVariation("Temple column", 8, "temple/column"); - blockTemple.carverHelper.addVariation("Temple stand", 9, "temple/stand"); - blockTemple.carverHelper.addVariation("Temple mosaic stand", 10, "temple/stand-mosaic"); - blockTemple.carverHelper.addVariation("Temple creeper stand", 11, "temple/stand-creeper"); - blockTemple.carverHelper.addVariation("Temple tiles", 12, "temple/tiles"); - blockTemple.carverHelper.addVariation("Small temple tiles", 13, "temple/smalltiles"); - blockTemple.carverHelper.addVariation("Light temple tiles", 14, "temple/tiles-light"); - blockTemple.carverHelper.addVariation("Small light temple tiles", 15, "temple/smalltiles-light"); - blockTemple.carverHelper.register(blockTemple, "blockTemple"); - - if(Chisel.featureEnabled("templeBlockMossy")) { - blockTempleMossy=(BlockCarvable) new BlockEldritch().setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundTempleFootstep); - blockTempleMossy.carverHelper.setBlockName("Mossy Temple Block"); - blockTempleMossy.carverHelper.addVariation("Mossy temple cobblestone", 0, "templemossy/cobble"); - blockTempleMossy.carverHelper.addVariation("Orante mossy temple block", 1, "templemossy/ornate"); - blockTempleMossy.carverHelper.addVariation("Mossy temple plate", 2, "templemossy/plate"); - blockTempleMossy.carverHelper.addVariation("Cracked mossy temple plate", 3, "templemossy/plate-cracked"); - blockTempleMossy.carverHelper.addVariation("Mossy temple bricks", 4, "templemossy/bricks"); - blockTempleMossy.carverHelper.addVariation("Large mossy temple bricks", 5, "templemossy/bricks-large"); - blockTempleMossy.carverHelper.addVariation("Weared mossy temple bricks", 6, "templemossy/bricks-weared"); - blockTempleMossy.carverHelper.addVariation("Mossy temple bricks in disarray", 7, "templemossy/bricks-disarray"); - blockTempleMossy.carverHelper.addVariation("Mossy temple column", 8, "templemossy/column"); - blockTempleMossy.carverHelper.addVariation("Mossy temple stand", 9, "templemossy/stand"); - blockTempleMossy.carverHelper.addVariation("Mossy temple mosaic stand", 10, "templemossy/stand-mosaic"); - blockTempleMossy.carverHelper.addVariation("Mossy temple creeper stand", 11, "templemossy/stand-creeper"); - blockTempleMossy.carverHelper.addVariation("Mossy temple tiles", 12, "templemossy/tiles"); - blockTempleMossy.carverHelper.addVariation("Small mossy temple tiles", 13, "templemossy/smalltiles"); - blockTempleMossy.carverHelper.addVariation("Light mossy temple tiles", 14, "templemossy/tiles-light"); - blockTempleMossy.carverHelper.addVariation("Small light mossy temple tiles", 15, "templemossy/smalltiles-light"); - blockTempleMossy.carverHelper.register(blockTempleMossy, "blockTempleMossy"); - } - } - - if(Chisel.featureEnabled("cloud")) { - blockCloud=(BlockCloud) new BlockCloud().setHardness(0.2F).setLightOpacity(3).setStepSound(Block.soundTypeCloth); - blockCloud.carverHelper.addVariation("Cloud block", 0, "cloud/cloud"); - blockCloud.carverHelper.register(blockCloud, "blockCloud"); - OreDictionary.registerOre("blockCloud", blockCloud); - Carving.chisel.registerOre("blockCloud","blockCloud"); - } - - if(Chisel.featureEnabled("factory")) { - blockFactory=(BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundMetalFootstep); - blockFactory.carverHelper.setBlockName("Factory Block"); - blockFactory.carverHelper.addVariation("Rusty metal plate with dot pattern", 0, "factory/dots"); - blockFactory.carverHelper.addVariation("Rusty metal plate", 1, "factory/rust2"); - blockFactory.carverHelper.addVariation("Very rusty metal plate", 2, "factory/rust"); - blockFactory.carverHelper.addVariation("A metal plate with almost no rust on it", 3, "factory/platex"); - blockFactory.carverHelper.addVariation("Wireframe", 4, "factory/wireframewhite"); - blockFactory.carverHelper.addVariation("Wireframe in a shade of purple", 5, "factory/wireframe"); - blockFactory.carverHelper.addVariation("Yellow-black hazard block", 6, "factory/hazard"); - blockFactory.carverHelper.addVariation("Orange-white hazard block", 7, "factory/hazardorange"); - blockFactory.carverHelper.addVariation("Fancy circuit block", 8, "factory/circuit"); - blockFactory.carverHelper.addVariation("Fancy metal box", 9, "factory/metalbox"); - blockFactory.carverHelper.addVariation("Fancy circuit block with gold plating", 10, "factory/goldplate"); - blockFactory.carverHelper.addVariation("Rusty purple block with gold plating", 11, "factory/goldplating"); - blockFactory.carverHelper.addVariation("Shiny metal construction", 12, "factory/grinder"); - blockFactory.carverHelper.addVariation("Weared metal wall with openings for ventilation", 13, "factory/plating"); - blockFactory.carverHelper.addVariation("Rusty metal plates", 14, "factory/rustplates"); - blockFactory.carverHelper.addVariation("Weared metal column", 15, "factory/column"); - blockFactory.carverHelper.register(blockFactory, "blockFactory"); - } - - // 1.7! Let's go! Let's go-go! + public static BlockSnakestone blockSnakestone; + public static BlockSnakestone blockSandSnakestone; + public static BlockSnakestoneObsidian blockObsidianSnakestone; - String[] sGNames = new String[]{ - "White", "Orange", "Magenta", "Light Blue", - "Yellow", "Lime", "Pink", "Gray", - "Light Gray", "Cyan", "Purple", "Blue", - "Brown", "Green", "Red", "Black" - }; - - if(Chisel.featureEnabled("glassStained")) for(int i = 0; i < 16; i++) { - String blockName = "chisel.stainedGlass" + sGNames[i].replaceAll(" ", ""); - String oreName = "stainedGlass" + sGNames[i].replaceAll(" ", ""); - String texName = "glassdyed/" + sGNames[i].toLowerCase().replaceAll(" ", "") + "-"; - int glassPrefix = (i & 3) << 2; - int glassId = i >> 2; - if(glassPrefix == 0) { - blockStainedGlass[glassId] = (BlockCarvableGlass) new BlockCarvableGlass().setStained(true).setHardness(0.3F).setStepSound(Block.soundTypeGlass).setBlockName("Stained Glass"); - blockStainedGlass[glassId].carverHelper.registerBlock(blockStainedGlass[glassId], blockName); - blockStainedGlass[glassId].carverHelper.blockName = "Stained Glass"; - } - blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " bubble glass", glassPrefix + 0, texName + "bubble"); - blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " glass panel", glassPrefix + 1, texName + "panel"); - blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " fancy glass panel", glassPrefix + 2, texName + "panel-fancy"); - blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " borderless glass", glassPrefix + 3, texName + "transparent"); - OreDictionary.registerOre(oreName, new ItemStack(Blocks.stained_glass, 1, i)); - Carving.chisel.registerOre(blockName, oreName); - for(CarvableVariation cv: blockStainedGlass[glassId].carverHelper.variations) { - if(cv.metadata < glassPrefix || cv.metadata >= glassPrefix+4) continue; - blockStainedGlass[glassId].carverHelper.registerVariation(blockName, cv, blockStainedGlass[glassId], cv.metadata); - } - } - - if(Chisel.featureEnabled("glassStainedPane")) for(int i = 0; i < 16; i++) { - String blockName = "chisel.stainedGlassPane" + sGNames[i].replaceAll(" ", ""); - String oreName = "stainedGlassPane" + sGNames[i].replaceAll(" ", ""); - String texName = "glasspanedyed/" + sGNames[i].toLowerCase().replaceAll(" ", "") + "-"; - int glassPrefix = (i & 1) << 3; - int glassId = i >> 1; - if(glassPrefix == 0) { - blockStainedGlassPane[glassId] = (BlockCarvablePane) new BlockCarvablePane(Material.glass, false).setStained(true).setHardness(0.3F).setStepSound(Block.soundTypeGlass).setBlockName("Stained Glass Pane"); - blockStainedGlassPane[glassId].carverHelper.registerBlock(blockStainedGlassPane[glassId], blockName); - blockStainedGlassPane[glassId].carverHelper.blockName = "Stained Glass Pane"; - } - blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " bubble glass", glassPrefix + 0, texName + "bubble"); - blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " glass panel", glassPrefix + 1, texName + "panel"); - blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " fancy glass panel", glassPrefix + 2, texName + "panel-fancy"); - blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " borderless glass", glassPrefix + 3, texName + "transparent"); - blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " quadrant glass", glassPrefix + 4, texName + "quad"); - blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " fancy quadrant glass", glassPrefix + 5, texName + "quad-fancy"); - OreDictionary.registerOre(oreName, new ItemStack(Blocks.stained_glass_pane, 1, i)); - Carving.chisel.registerOre(blockName, oreName); - for(CarvableVariation cv: blockStainedGlassPane[glassId].carverHelper.variations) { - if(cv.metadata < glassPrefix || cv.metadata >= glassPrefix+8) continue; - blockStainedGlassPane[glassId].carverHelper.registerVariation(blockName, cv, blockStainedGlassPane[glassId], cv.metadata); - } - } - - Blocks.stone.setHarvestLevel("chisel", 0, 0); - } + public static BlockSpikes blockSpiketrap; + + // 1.7 + public static BlockCarvableGlass[] blockStainedGlass = new BlockCarvableGlass[4]; + public static BlockCarvablePane[] blockStainedGlassPane = new BlockCarvablePane[8]; + + public static void load() + { + if(Chisel.featureEnabled("marble")) + { + blockMarble = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); + blockMarble.carverHelper.setBlockName("Marble"); + blockMarble.carverHelper.addVariation("Raw marble", 0, "marble"); + blockMarble.carverHelper.addVariation("Marble brick", 1, "marble/a1-stoneornamental-marblebrick"); + blockMarble.carverHelper.addVariation("Classic marble panel", 2, "marble/a1-stoneornamental-marbleclassicpanel"); + blockMarble.carverHelper.addVariation("Ornate marble panel", 3, "marble/a1-stoneornamental-marbleornate"); + blockMarble.carverHelper.addVariation("Marble panel", 4, "marble/panel"); + blockMarble.carverHelper.addVariation("Marble block", 5, "marble/block"); + blockMarble.carverHelper.addVariation("Dark creeper marble", 6, "marble/terrain-pistonback-marblecreeperdark"); + blockMarble.carverHelper.addVariation("Light creeper marble", 7, "marble/terrain-pistonback-marblecreeperlight"); + blockMarble.carverHelper.addVariation("Carved marble", 8, "marble/a1-stoneornamental-marblecarved"); + blockMarble.carverHelper.addVariation("Radial carved marble", 9, "marble/a1-stoneornamental-marblecarvedradial"); + blockMarble.carverHelper.addVariation("Marble with dent", 10, "marble/terrain-pistonback-marbledent"); + blockMarble.carverHelper.addVariation("Marble with large dent", 11, "marble/terrain-pistonback-marbledent-small"); + blockMarble.carverHelper.addVariation("Marble tiles", 12, "marble/marble-bricks"); + blockMarble.carverHelper.addVariation("Arranged marble tiles", 13, "marble/marble-arranged-bricks"); + blockMarble.carverHelper.addVariation("Fancy marble tiles", 14, "marble/marble-fancy-bricks"); + blockMarble.carverHelper.addVariation("Marble blocks", 15, "marble/marble-blocks"); + blockMarble.carverHelper.register(blockMarble, "marble"); + OreDictionary.registerOre("blockMarble", blockMarble); + Carving.chisel.registerOre("marble", "blockMarble"); + + blockMarbleSlab = (BlockMarbleSlab) new BlockMarbleSlab(blockMarble).setHardness(2.0F).setResistance(10F); + blockMarbleSlab.carverHelper.setBlockName("Marble Slab"); + blockMarbleSlab.carverHelper.addVariation("Raw marble slab", 0, "marble"); + blockMarbleSlab.carverHelper.addVariation("Marble brick slab", 1, "marbleslab/a1-stoneornamental-marblebrick"); + blockMarbleSlab.carverHelper.addVariation("Classic marble panel slab", 2, "marbleslab/a1-stoneornamental-marbleclassicpanel"); + blockMarbleSlab.carverHelper.addVariation("Ornate marble panel slab", 3, "marbleslab/a1-stoneornamental-marbleornate"); + blockMarbleSlab.carverHelper.addVariation("Marble panel slab", 4, "marbleslab/a1-stoneornamental-marblepanel"); + blockMarbleSlab.carverHelper.addVariation("Marble block slab", 5, "marbleslab/terrain-pistonback-marble"); + blockMarbleSlab.carverHelper.addVariation("Dark creeper marble slab", 6, "marbleslab/terrain-pistonback-marblecreeperdark"); + blockMarbleSlab.carverHelper.addVariation("Light creeper marble slab", 7, "marbleslab/terrain-pistonback-marblecreeperlight"); + blockMarbleSlab.carverHelper.addVariation("Carved marble slab", 8, "marbleslab/a1-stoneornamental-marblecarved"); + blockMarbleSlab.carverHelper.addVariation("Radial carved marble slab", 9, "marbleslab/a1-stoneornamental-marblecarvedradial"); + blockMarbleSlab.carverHelper.addVariation("Marble slab with dent", 10, "marbleslab/terrain-pistonback-marbledent"); + blockMarbleSlab.carverHelper.addVariation("Marble slab with large dent ", 11, "marbleslab/terrain-pistonback-marbledent-small"); + blockMarbleSlab.carverHelper.addVariation("Marble tiles slab", 12, "marbleslab/marble-bricks"); + blockMarbleSlab.carverHelper.addVariation("Arranged marble tiles slab", 13, "marbleslab/marble-arranged-bricks"); + blockMarbleSlab.carverHelper.addVariation("Fancy marble tiles slab", 14, "marbleslab/marble-fancy-bricks"); + blockMarbleSlab.carverHelper.addVariation("Marble blocks slab", 15, "marbleslab/marble-blocks"); + blockMarbleSlab.carverHelper.register(blockMarbleSlab, "marbleSlab", ItemMarbleSlab.class); + + if(Chisel.featureEnabled("marblePillar")) + { + if(Chisel.oldPillars) + { + blockMarblePillar = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); + blockMarblePillar.carverHelper.setBlockName("Marble Pillar"); + blockMarblePillar.carverHelper.addVariation("Marble pillar", 0, "marblepillarold/column"); + blockMarblePillar.carverHelper.addVariation("Marble pillar capstone", 1, "marblepillarold/capstone"); + blockMarblePillar.carverHelper.addVariation("Marble pillar base", 2, "marblepillarold/base"); + blockMarblePillar.carverHelper.addVariation("Small marble pillar", 3, "marblepillarold/small"); + blockMarblePillar.carverHelper.addVariation("Carved marble pillar", 4, "marblepillarold/pillar-carved"); + blockMarblePillar.carverHelper.addVariation("Ornamental marble pillar", 5, "marblepillarold/a1-stoneornamental-marblegreek"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar", 6, "marblepillarold/a1-stonepillar-greek"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar", 7, "marblepillarold/a1-stonepillar-plain"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar capstone", 8, "marblepillarold/a1-stonepillar-greektopplain"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar capstone", 9, "marblepillarold/a1-stonepillar-plaintopplain"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar base", 10, "marblepillarold/a1-stonepillar-greekbottomplain"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar base", 11, "marblepillarold/a1-stonepillar-plainbottomplain"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar ornate capstone", 12, "marblepillarold/a1-stonepillar-greektopgreek"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar ornate capstone", 13, "marblepillarold/a1-stonepillar-plaintopgreek"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar ornate base", 14, "marblepillarold/a1-stonepillar-greekbottomgreek"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar ornate base", 15, "marblepillarold/a1-stonepillar-plainbottomgreek"); + } else + { + blockMarblePillar = (BlockCarvable) new BlockMarblePillar(Material.rock).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); + blockMarblePillar.carverHelper.setBlockName("Marble Pillar"); + blockMarblePillar.carverHelper.addVariation("Marble pillar", 0, "marblepillar/pillar"); + blockMarblePillar.carverHelper.addVariation("Original marble pillar", 1, "marblepillar/default"); + blockMarblePillar.carverHelper.addVariation("Simplistic marble pillar", 2, "marblepillar/simple"); + blockMarblePillar.carverHelper.addVariation("Convex marble pillar", 3, "marblepillar/convex"); + blockMarblePillar.carverHelper.addVariation("Rough marble pillar", 4, "marblepillar/rough"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar with ornate capstone", 5, "marblepillar/greekdecor"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar", 6, "marblepillar/greekgreek"); + blockMarblePillar.carverHelper.addVariation("Greek marble pillar with plain capstone", 7, "marblepillar/greekplain"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar with ornate capstone", 8, "marblepillar/plaindecor"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar with Greek capstone", 9, "marblepillar/plaingreek"); + blockMarblePillar.carverHelper.addVariation("Plain marble pillar", 10, "marblepillar/plainplain"); + blockMarblePillar.carverHelper.addVariation("Wide marble pillar with ornate capstone", 11, "marblepillar/widedecor"); + blockMarblePillar.carverHelper.addVariation("Wide marble pillar with Greek capstone", 12, "marblepillar/widegreek"); + blockMarblePillar.carverHelper.addVariation("Wide marble pillar with plain capstone", 13, "marblepillar/wideplain"); + blockMarblePillar.carverHelper.addVariation("Carved pillar capstone", 14, "marblepillar/carved"); + blockMarblePillar.carverHelper.addVariation("Ornamental pillar capstone", 15, "marblepillar/ornamental"); + } + blockMarblePillar.carverHelper.register(blockMarblePillar, "marblePillar"); + Carving.chisel.setGroupClass("marblePillar", "marble"); + + blockMarblePillarSlab = (BlockMarbleSlab) new BlockMarbleSlab(blockMarblePillar).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); + blockMarblePillarSlab.carverHelper.setBlockName("Marble Pillar Slab"); + if(Chisel.oldPillars) + { + blockMarblePillarSlab.carverHelper.addVariation("Marble pillar slab", 0, "marblepillarslabold/column"); + blockMarblePillarSlab.carverHelper.addVariation("Marble pillar capstone slab", 1, "marblepillarslabold/capstone"); + blockMarblePillarSlab.carverHelper.addVariation("Marble pillar base slab", 2, "marblepillarslabold/base"); + blockMarblePillarSlab.carverHelper.addVariation("Small marble pillar slab", 3, "marblepillarslabold/small"); + blockMarblePillarSlab.carverHelper.addVariation("Carved marble pillar slab", 4, "marblepillarslabold/pillar-carved"); + blockMarblePillarSlab.carverHelper.addVariation("Ornamental marble pillar slab", 5, "marblepillarslabold/a1-stoneornamental-marblegreek"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab", 6, "marblepillarslabold/a1-stonepillar-greek"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab", 7, "marblepillarslabold/a1-stonepillar-plain"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar capstone slab", 8, "marblepillarslabold/a1-stonepillar-greektopplain"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar capstone slab", 9, "marblepillarslabold/a1-stonepillar-plaintopplain"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar base slab", 10, "marblepillarslabold/a1-stonepillar-greekbottomplain"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar base slab", 11, "marblepillarslabold/a1-stonepillar-plainbottomplain"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar ornate capstone slab", 12, "marblepillarslabold/a1-stonepillar-greektopgreek"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar ornate capstone slab", 13, "marblepillarslabold/a1-stonepillar-plaintopgreek"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar ornate base slab", 14, "marblepillarslabold/a1-stonepillar-greekbottomgreek"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar ornate base slab", 15, "marblepillarslabold/a1-stonepillar-plainbottomgreek"); + } else + { + blockMarblePillarSlab.carverHelper.addVariation("Marble pillar slab", 0, "marblepillarslab/pillar"); + blockMarblePillarSlab.carverHelper.addVariation("Original marble pillar slab", 1, "marblepillarslab/default"); + blockMarblePillarSlab.carverHelper.addVariation("Simplistic marble pillar slab", 2, "marblepillarslab/simple"); + blockMarblePillarSlab.carverHelper.addVariation("Convex marble pillar slab", 3, "marblepillarslab/convex"); + blockMarblePillarSlab.carverHelper.addVariation("Rough marble pillar slab", 4, "marblepillarslab/rough"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab with ornate capstone", 5, "marblepillarslab/greekdecor"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab", 6, "marblepillarslab/greekgreek"); + blockMarblePillarSlab.carverHelper.addVariation("Greek marble pillar slab with plain capstone", 7, "marblepillarslab/greekplain"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab with ornate capstone", 8, "marblepillarslab/plaindecor"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab with Greek capstone", 9, "marblepillarslab/plaingreek"); + blockMarblePillarSlab.carverHelper.addVariation("Plain marble pillar slab", 10, "marblepillarslab/plainplain"); + blockMarblePillarSlab.carverHelper.addVariation("Wide marble pillar slab with ornate capstone", 11, "marblepillarslab/widedecor"); + blockMarblePillarSlab.carverHelper.addVariation("Wide marble pillar slab with Greek capstone", 12, "marblepillarslab/widegreek"); + blockMarblePillarSlab.carverHelper.addVariation("Wide marble pillar slab with plain capstone", 13, "marblepillarslab/wideplain"); + blockMarblePillarSlab.carverHelper.addVariation("Carved pillar capstone slab", 14, "marblepillarslab/carved"); + blockMarblePillarSlab.carverHelper.addVariation("Ornamental pillar capstone slab", 15, "marblepillarslab/ornamental"); + } + blockMarblePillarSlab.carverHelper.register(blockMarblePillarSlab, "marblePillarSlab", ItemMarbleSlab.class); + } + + BlockMarbleStairsMaker makerMarbleStairs = new BlockMarbleStairsMaker(blockMarble); + makerMarbleStairs.carverHelper.setBlockName("Marble Stairs"); + makerMarbleStairs.carverHelper.addVariation("Raw marble stairs", 0, "marble"); + makerMarbleStairs.carverHelper.addVariation("Marble brick stairs", 1, "marbleslab/a1-stoneornamental-marblebrick"); + makerMarbleStairs.carverHelper.addVariation("Classic marble panel stairs", 2, "marbleslab/a1-stoneornamental-marbleclassicpanel"); + makerMarbleStairs.carverHelper.addVariation("Ornate marble panel stairs", 3, "marbleslab/a1-stoneornamental-marbleornate"); + makerMarbleStairs.carverHelper.addVariation("Marble panel stairs", 4, "marbleslab/a1-stoneornamental-marblepanel"); + makerMarbleStairs.carverHelper.addVariation("Marble block stairs", 5, "marbleslab/terrain-pistonback-marble"); + makerMarbleStairs.carverHelper.addVariation("Dark creeper marble stairs", 6, "marbleslab/terrain-pistonback-marblecreeperdark"); + makerMarbleStairs.carverHelper.addVariation("Light creeper marble stairs", 7, "marbleslab/terrain-pistonback-marblecreeperlight"); + makerMarbleStairs.carverHelper.addVariation("Carved marble stairs", 8, "marbleslab/a1-stoneornamental-marblecarved"); + makerMarbleStairs.carverHelper.addVariation("Radial carved marble stairs", 9, "marbleslab/a1-stoneornamental-marblecarvedradial"); + makerMarbleStairs.carverHelper.addVariation("Marble stairs with dent", 10, "marbleslab/terrain-pistonback-marbledent"); + makerMarbleStairs.carverHelper.addVariation("Marble stairs with large dent ", 11, "marbleslab/terrain-pistonback-marbledent-small"); + makerMarbleStairs.carverHelper.addVariation("Marble tiles stairs", 12, "marbleslab/marble-bricks"); + makerMarbleStairs.carverHelper.addVariation("Arranged marble tiles stairs", 13, "marbleslab/marble-arranged-bricks"); + makerMarbleStairs.carverHelper.addVariation("Fancy marble tiles stairs", 14, "marbleslab/marble-fancy-bricks"); + makerMarbleStairs.carverHelper.addVariation("Marble blocks stairs", 15, "marbleslab/marble-blocks"); + makerMarbleStairs.create("chisel.marbleStairs"); + } + + if(Chisel.featureEnabled("limestone")) + { + blockLimestone = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); + blockLimestone.carverHelper.setBlockName("Limestone"); + blockLimestone.carverHelper.addVariation("Limestone", 0, "limestone"); + blockLimestone.carverHelper.addVariation("Small limestone tiles", 1, "limestone/terrain-cobbsmalltilelight"); + blockLimestone.carverHelper.addVariation("French limestone tiles", 2, "limestone/terrain-cob-frenchlight"); + blockLimestone.carverHelper.addVariation("French limestone tiles", 3, "limestone/terrain-cob-french2light"); + blockLimestone.carverHelper.addVariation("Creeper limestone tiles", 4, "limestone/terrain-cobmoss-creepdungeonlight"); + blockLimestone.carverHelper.addVariation("Small limestone bricks", 5, "limestone/terrain-cob-smallbricklight"); + blockLimestone.carverHelper.addVariation("Damaged limestone tiles", 6, "limestone/terrain-mossysmalltilelight"); + blockLimestone.carverHelper.addVariation("Smooth limestone", 7, "limestone/terrain-pistonback-dungeon"); + blockLimestone.carverHelper.addVariation("Limestone with ornate panel", 8, "limestone/terrain-pistonback-dungeonornate"); + blockLimestone.carverHelper.addVariation("Limestone with ornate panel", 9, "limestone/terrain-pistonback-dungeonvent"); + blockLimestone.carverHelper.addVariation("Limestone with creeper panel", 10, "limestone/terrain-pistonback-lightcreeper"); + blockLimestone.carverHelper.addVariation("Limestone with dent", 11, "limestone/terrain-pistonback-lightdent"); + blockLimestone.carverHelper.addVariation("Limestone with panel", 12, "limestone/terrain-pistonback-lightemboss"); + blockLimestone.carverHelper.addVariation("Large limestone tiles", 13, "limestone/terrain-pistonback-lightfour"); + blockLimestone.carverHelper.addVariation("Limestone with light panel", 14, "limestone/terrain-pistonback-lightmarker"); + blockLimestone.carverHelper.addVariation("Limestone with dark panel", 15, "limestone/terrain-pistonback-lightpanel"); + blockLimestone.carverHelper.register(blockLimestone, "limestone"); + OreDictionary.registerOre("blockLimestone", blockLimestone); + Carving.chisel.registerOre("limestone", "blockLimestone"); + + blockLimestoneSlab = (BlockMarbleSlab) new BlockMarbleSlab(blockLimestone).setHardness(2.0F).setResistance(10F); + blockLimestoneSlab.carverHelper.setBlockName("Limestone Slab"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab", 0, "limestone"); + blockLimestoneSlab.carverHelper.addVariation("Small limestone tiles slab", 1, "limestone/terrain-cobbsmalltilelight"); + blockLimestoneSlab.carverHelper.addVariation("French limestone tiles slab", 2, "limestone/terrain-cob-frenchlight"); + blockLimestoneSlab.carverHelper.addVariation("French limestone tiles slab", 3, "limestone/terrain-cob-french2light"); + blockLimestoneSlab.carverHelper.addVariation("Creeper limestone tiles slab", 4, "limestone/terrain-cobmoss-creepdungeonlight"); + blockLimestoneSlab.carverHelper.addVariation("Small limestone bricks slab", 5, "limestone/terrain-cob-smallbricklight"); + blockLimestoneSlab.carverHelper.addVariation("Damaged limestone tiles slab", 6, "limestone/terrain-mossysmalltilelight"); + blockLimestoneSlab.carverHelper.addVariation("Smooth limestone slab", 7, "limestone/terrain-pistonback-dungeon"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab with ornate panel", 8, "limestone/terrain-pistonback-dungeonornate"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab with ornate panel", 9, "limestone/terrain-pistonback-dungeonvent"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab with creeper panel", 10, "limestone/terrain-pistonback-lightcreeper"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab with dent", 11, "limestone/terrain-pistonback-lightdent"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab with panel", 12, "limestone/terrain-pistonback-lightemboss"); + blockLimestoneSlab.carverHelper.addVariation("Large limestone tiles slab", 13, "limestone/terrain-pistonback-lightfour"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab with light panel", 14, "limestone/terrain-pistonback-lightmarker"); + blockLimestoneSlab.carverHelper.addVariation("Limestone slab with dark panel", 15, "limestone/terrain-pistonback-lightpanel"); + blockLimestoneSlab.carverHelper.register(blockLimestoneSlab, "limestoneSlab", ItemMarbleSlab.class); + + BlockMarbleStairsMaker makerLimestoneStairs = new BlockMarbleStairsMaker(blockLimestone); + makerLimestoneStairs.carverHelper.setBlockName("Limestone Stairs"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs", 0, "limestone"); + makerLimestoneStairs.carverHelper.addVariation("Small limestone tiles stairs", 1, "limestone/terrain-cobbsmalltilelight"); + makerLimestoneStairs.carverHelper.addVariation("French limestone tiles stairs", 2, "limestone/terrain-cob-frenchlight"); + makerLimestoneStairs.carverHelper.addVariation("French limestone tiles stairs", 3, "limestone/terrain-cob-french2light"); + makerLimestoneStairs.carverHelper.addVariation("Creeper limestone tiles stairs", 4, "limestone/terrain-cobmoss-creepdungeonlight"); + makerLimestoneStairs.carverHelper.addVariation("Small limestone bricks stairs", 5, "limestone/terrain-cob-smallbricklight"); + makerLimestoneStairs.carverHelper.addVariation("Damaged limestone tiles stairs", 6, "limestone/terrain-mossysmalltilelight"); + makerLimestoneStairs.carverHelper.addVariation("Smooth limestone stairs", 7, "limestone/terrain-pistonback-dungeon"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with ornate panel", 8, "limestone/terrain-pistonback-dungeonornate"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with ornate panel", 9, "limestone/terrain-pistonback-dungeonvent"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with creeper panel", 10, "limestone/terrain-pistonback-lightcreeper"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with dent", 11, "limestone/terrain-pistonback-lightdent"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with panel", 12, "limestone/terrain-pistonback-lightemboss"); + makerLimestoneStairs.carverHelper.addVariation("Large limestone tiles stairs", 13, "limestone/terrain-pistonback-lightfour"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with light panel", 14, "limestone/terrain-pistonback-lightmarker"); + makerLimestoneStairs.carverHelper.addVariation("Limestone stairs with dark panel", 15, "limestone/terrain-pistonback-lightpanel"); + makerLimestoneStairs.create("chisel.limestoneStairs"); + } + + if(Chisel.featureEnabled("cobblestone")) + { + blockCobblestone = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeStone); + Carving.chisel.addVariation("cobblestone", Blocks.cobblestone, 0, 0); + blockCobblestone.carverHelper.addVariation("Aligned cobblestone bricks", 1, "cobblestone/terrain-cobb-brickaligned"); + blockCobblestone.carverHelper.addVariation("Detailed cobblestone bricks", 2, "cobblestone/terrain-cob-detailedbrick"); + blockCobblestone.carverHelper.addVariation("Small cobblestone bricks", 3, "cobblestone/terrain-cob-smallbrick"); + blockCobblestone.carverHelper.addVariation("Large cobblestone tiles", 4, "cobblestone/terrain-cobblargetiledark"); + blockCobblestone.carverHelper.addVariation("Small cobblestone tiles", 5, "cobblestone/terrain-cobbsmalltile"); + blockCobblestone.carverHelper.addVariation("French cobblestone tiles", 6, "cobblestone/terrain-cob-french"); + blockCobblestone.carverHelper.addVariation("French cobblestone tiles", 7, "cobblestone/terrain-cob-french2"); + blockCobblestone.carverHelper.addVariation("Creeper cobblestone tiles", 8, "cobblestone/terrain-cobmoss-creepdungeon"); + blockCobblestone.carverHelper.addVariation("Damaged cobblestone tiles", 9, "cobblestone/terrain-mossysmalltiledark"); + blockCobblestone.carverHelper.addVariation("Huge cobblestone tiles", 10, "cobblestone/terrain-pistonback-dungeontile"); + blockCobblestone.carverHelper.addVariation("Cobblestone with creeper panel", 11, "cobblestone/terrain-pistonback-darkcreeper"); + blockCobblestone.carverHelper.addVariation("Cobblestone with dent", 12, "cobblestone/terrain-pistonback-darkdent"); + blockCobblestone.carverHelper.addVariation("Cobblestone with panel", 13, "cobblestone/terrain-pistonback-darkemboss"); + blockCobblestone.carverHelper.addVariation("Cobblestone with light panel", 14, "cobblestone/terrain-pistonback-darkmarker"); + blockCobblestone.carverHelper.addVariation("Cobblestone with dark panel", 15, "cobblestone/terrain-pistonback-darkpanel"); + blockCobblestone.carverHelper.register(blockCobblestone, "cobblestone"); + Carving.chisel.registerOre("cobblestone", "blockCobble"); + } + + if(Chisel.featureEnabled("glass")) + { + blockGlass = (BlockCarvableGlass) new BlockCarvableGlass().setHardness(0.3F).setStepSound(Block.soundTypeGlass); + Carving.chisel.addVariation("glass", Blocks.glass, 0, 0); + blockGlass.carverHelper.addVariation("Bubble glass", 1, "glass/terrain-glassbubble"); + blockGlass.carverHelper.addVariation("Chinese glass", 2, "glass/terrain-glass-chinese"); + blockGlass.carverHelper.addVariation("Japanese(?) glass", 3, "glass/japanese"); + blockGlass.carverHelper.addVariation("Dungeon glass", 4, "glass/terrain-glassdungeon"); + blockGlass.carverHelper.addVariation("Light glass", 5, "glass/terrain-glasslight"); + blockGlass.carverHelper.addVariation("Borderless glass", 6, "glass/terrain-glassnoborder"); + blockGlass.carverHelper.addVariation("Ornate steel glass", 7, "glass/terrain-glass-ornatesteel"); + blockGlass.carverHelper.addVariation("Screen", 8, "glass/terrain-glass-screen"); + blockGlass.carverHelper.addVariation("Shale glass", 9, "glass/terrain-glassshale"); + blockGlass.carverHelper.addVariation("Steel frame glass", 10, "glass/terrain-glass-steelframe"); + blockGlass.carverHelper.addVariation("Stone frame glass", 11, "glass/terrain-glassstone"); + blockGlass.carverHelper.addVariation("Streak glass", 12, "glass/terrain-glassstreak"); + blockGlass.carverHelper.addVariation("Thick grid glass", 13, "glass/terrain-glass-thickgrid"); + blockGlass.carverHelper.addVariation("Thin grid glass", 14, "glass/terrain-glass-thingrid"); + blockGlass.carverHelper.addVariation("Modern Iron Fence", 15, "glass/a1-glasswindow-ironfencemodern"); + blockGlass.carverHelper.register(blockGlass, "glass"); + Carving.chisel.registerOre("glass", "blockGlass"); + } + + if(Chisel.featureEnabled("sandstone")) + { + blockSandstone = (BlockCarvable) new BlockCarvable().setStepSound(Block.soundTypeStone).setHardness(0.8F); + Carving.chisel.addVariation("sandstone", Blocks.sandstone, 0, 0); + blockSandstone.carverHelper.addVariation("Chiseled Sandstone", 1, Blocks.sandstone, 1); + blockSandstone.carverHelper.addVariation("Smooth Sandstone", 2, Blocks.sandstone, 2); + blockSandstone.carverHelper.addVariation("Faded sandstone", 3, "sandstone/faded"); + blockSandstone.carverHelper.addVariation("Sandstone pillar", 4, "sandstone/column"); + blockSandstone.carverHelper.addVariation("Sandstone pillar capstone", 5, "sandstone/capstone"); + blockSandstone.carverHelper.addVariation("Small sandstone pillar ", 6, "sandstone/small"); + blockSandstone.carverHelper.addVariation("Sandstone pillar base", 7, "sandstone/base"); + blockSandstone.carverHelper.addVariation("Smooth & flat sandstone", 8, "sandstone/smooth"); + blockSandstone.carverHelper.addVariation("Smooth sandstone pillar capstone", 9, "sandstone/smooth-cap"); + blockSandstone.carverHelper.addVariation("Small smooth sandstone pillar", 10, "sandstone/smooth-small"); + blockSandstone.carverHelper.addVariation("Smooth sandstone pillar base", 11, "sandstone/smooth-base"); + blockSandstone.carverHelper.addVariation("Sandstone block", 12, "sandstone/block"); + blockSandstone.carverHelper.addVariation("Small sandstone blocks", 13, "sandstone/blocks"); + blockSandstone.carverHelper.addVariation("Sandstone mosaic", 14, "sandstone/mosaic"); + blockSandstone.carverHelper.addVariation("Stacked sandstone tiles", 15, "sandstone/horizontal-tiles"); + blockSandstone.carverHelper.register(blockSandstone, "sandstone"); + Carving.chisel.registerOre("sandstone", "blockSandstone"); + + if(Chisel.featureEnabled("snakeSandstone")) + { + blockSandSnakestone = (BlockSnakestone) new BlockSnakestone("Chisel:snakestone/sandsnake/").setBlockName("sandSnakestone"); + GameRegistry.registerBlock(blockSandSnakestone, ItemCarvable.class, blockSandSnakestone.getUnlocalizedName()); + LanguageRegistry.addName(new ItemStack(blockSandSnakestone, 1, 1), "Sandstone snake block head"); + LanguageRegistry.addName(new ItemStack(blockSandSnakestone, 1, 13), "Sandstone snake block body"); + Carving.chisel.addVariation("sandstone", blockSandSnakestone, 1, 16); + Carving.chisel.addVariation("sandstone", blockSandSnakestone, 13, 17); + } + } + + if(Chisel.featureEnabled("sandstoneScribbles")) + { + blockSandstoneScribbles = (BlockCarvable) new BlockCarvable().setStepSound(Block.soundTypeStone).setHardness(0.8F); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 0, "sandstone-scribbles/scribbles-0"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 1, "sandstone-scribbles/scribbles-1"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 2, "sandstone-scribbles/scribbles-2"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 3, "sandstone-scribbles/scribbles-3"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 4, "sandstone-scribbles/scribbles-4"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 5, "sandstone-scribbles/scribbles-5"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 6, "sandstone-scribbles/scribbles-6"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 7, "sandstone-scribbles/scribbles-7"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 8, "sandstone-scribbles/scribbles-8"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 9, "sandstone-scribbles/scribbles-9"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 10, "sandstone-scribbles/scribbles-10"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 11, "sandstone-scribbles/scribbles-11"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 12, "sandstone-scribbles/scribbles-12"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 13, "sandstone-scribbles/scribbles-13"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 14, "sandstone-scribbles/scribbles-14"); + blockSandstoneScribbles.carverHelper.addVariation("Sandstone scribbles", 15, "sandstone-scribbles/scribbles-15"); + blockSandstoneScribbles.carverHelper.register(blockSandstoneScribbles, "sandstoneScribbles"); + } + + if(Chisel.featureEnabled("concrete")) + { + blockConcrete = (BlockConcrete) new BlockConcrete().setStepSound(Block.soundTypeStone).setHardness(0.5F); + blockConcrete.carverHelper.addVariation("Concrete", 0, "concrete/default"); + blockConcrete.carverHelper.addVariation("Concrete block", 1, "concrete/block"); + blockConcrete.carverHelper.addVariation("Concrete double slab", 2, "concrete/doubleslab"); + blockConcrete.carverHelper.addVariation("Small concrete blocks", 3, "concrete/blocks"); + blockConcrete.carverHelper.addVariation("Weathered concrete", 4, "concrete/weathered"); + blockConcrete.carverHelper.addVariation("Weathered concrete block", 5, "concrete/weathered-block"); + blockConcrete.carverHelper.addVariation("Weathered concrete double slab", 6, "concrete/weathered-doubleslab"); + blockConcrete.carverHelper.addVariation("Small weathered blocks", 7, "concrete/weathered-blocks"); + blockConcrete.carverHelper.addVariation("Partly weathered concrete", 8, "concrete/weathered-half"); + blockConcrete.carverHelper.addVariation("Partly weathered concrete block", 9, "concrete/weathered-block-half"); + blockConcrete.carverHelper.addVariation("Asphalt", 10, "concrete/asphalt"); + blockConcrete.carverHelper.register(blockConcrete, "concrete"); + OreDictionary.registerOre("blockConcrete", blockConcrete); + Carving.chisel.registerOre("concrete", "blockConcrete"); + } + + if(Chisel.featureEnabled("roadLine")) + { + blockRoadLine = (BlockRoadLine) new BlockRoadLine().setStepSound(Block.soundTypeStone).setHardness(0.01F).setBlockName("roadLine"); + GameRegistry.registerBlock(blockRoadLine, ItemCarvable.class, "roadLine"); + LanguageRegistry.addName(new ItemStack(blockRoadLine, 1, 0), "Road lines"); + } + + if(Chisel.featureEnabled("ironBlock")) + { + blockIron = (BlockCarvable) new BlockCarvable().setHardness(5F).setResistance(10F).setStepSound(Block.soundTypeMetal); + Carving.chisel.addVariation("iron", Blocks.iron_block, 0, 0); + blockIron.carverHelper.addVariation("Large iron ingots", 1, "iron/terrain-iron-largeingot"); + blockIron.carverHelper.addVariation("Small iron ingots", 2, "iron/terrain-iron-smallingot"); + blockIron.carverHelper.addVariation("Iron gears", 3, "iron/terrain-iron-gears"); + blockIron.carverHelper.addVariation("Iron bricks", 4, "iron/terrain-iron-brick"); + blockIron.carverHelper.addVariation("Iron plates", 5, "iron/terrain-iron-plates"); + blockIron.carverHelper.addVariation("Iron plates with rivets", 6, "iron/terrain-iron-rivets"); + blockIron.carverHelper.addVariation("Iron coin stack heads up", 7, "iron/terrain-iron-coin-heads"); + blockIron.carverHelper.addVariation("Iron coin stack heads down", 8, "iron/terrain-iron-coin-tails"); + blockIron.carverHelper.addVariation("Dark iron crate", 9, "iron/terrain-iron-crate-dark"); + blockIron.carverHelper.addVariation("Light iron crate", 10, "iron/terrain-iron-crate-light"); + blockIron.carverHelper.addVariation("Iron block with moon decoration", 11, "iron/terrain-iron-moon"); + blockIron.carverHelper.addVariation("Iron moon in purple obsidian", 12, "iron/terrain-iron-space"); + blockIron.carverHelper.addVariation("Iron moon in obsidian", 13, "iron/terrain-iron-spaceblack"); + blockIron.carverHelper.addVariation("Iron vents", 14, "iron/terrain-iron-vents"); + blockIron.carverHelper.addVariation("Iron block simple", 15, "iron/terrain-iron-simple"); + blockIron.carverHelper.register(blockIron, "iron"); + Carving.chisel.registerOre("iron", "blockIron"); + } + + if(Chisel.featureEnabled("goldBlock")) + { + blockGold = (BlockCarvable) new BlockCarvable().setHardness(3F).setResistance(10F).setStepSound(Block.soundTypeMetal); + Carving.chisel.addVariation("gold", Blocks.gold_block, 0, 0); + blockGold.carverHelper.addVariation("Large golden ingots", 1, "gold/terrain-gold-largeingot"); + blockGold.carverHelper.addVariation("Small golden ingots", 2, "gold/terrain-gold-smallingot"); + blockGold.carverHelper.addVariation("Golden bricks", 3, "gold/terrain-gold-brick"); + blockGold.carverHelper.addVariation("Gold cart", 4, "gold/terrain-gold-cart"); + blockGold.carverHelper.addVariation("Golden coin stack heads up", 5, "gold/terrain-gold-coin-heads"); + blockGold.carverHelper.addVariation("Golden coin stack heads down", 6, "gold/terrain-gold-coin-tails"); + blockGold.carverHelper.addVariation("Dark gold crate", 7, "gold/terrain-gold-crate-dark"); + blockGold.carverHelper.addVariation("Light gold crate", 8, "gold/terrain-gold-crate-light"); + blockGold.carverHelper.addVariation("Golden plates", 9, "gold/terrain-gold-plates"); + blockGold.carverHelper.addVariation("Iron plates with rivets", 10, "gold/terrain-gold-rivets"); + blockGold.carverHelper.addVariation("Gold block with star decoration", 11, "gold/terrain-gold-star"); + blockGold.carverHelper.addVariation("Golden star in purple obsidian", 12, "gold/terrain-gold-space"); + blockGold.carverHelper.addVariation("Golden star in obsidian", 13, "gold/terrain-gold-spaceblack"); + blockGold.carverHelper.addVariation("Gold block simple", 14, "gold/terrain-gold-simple"); + blockGold.carverHelper.register(blockGold, "gold"); + Carving.chisel.registerOre("gold", "blockGold"); + } + + if(Chisel.featureEnabled("diamondBlock")) + { + blockDiamond = (BlockCarvable) new BlockCarvable().setHardness(5F).setResistance(10F).setStepSound(Block.soundTypeMetal); + Carving.chisel.addVariation("diamond", Blocks.diamond_block, 0, 0); + blockDiamond.carverHelper.addVariation("Embossed diamond block", 1, "diamond/terrain-diamond-embossed"); + blockDiamond.carverHelper.addVariation("Diamond block with panel", 2, "diamond/terrain-diamond-gem"); + blockDiamond.carverHelper.addVariation("Diamond cells", 3, "diamond/terrain-diamond-cells"); + blockDiamond.carverHelper.addVariation("Diamonds in purple obsidian", 4, "diamond/terrain-diamond-space"); + blockDiamond.carverHelper.addVariation("Diamonds in obsidian", 5, "diamond/terrain-diamond-spaceblack"); + blockDiamond.carverHelper.addVariation("Diamond block simple", 6, "diamond/terrain-diamond-simple"); + blockDiamond.carverHelper.addVariation("Bismuth", 7, "diamond/a1-blockdiamond-bismuth"); + blockDiamond.carverHelper.addVariation("Crushed diamond", 8, "diamond/a1-blockdiamond-crushed"); + blockDiamond.carverHelper.addVariation("Small diamond blocks", 9, "diamond/a1-blockdiamond-four"); + blockDiamond.carverHelper.addVariation("Small ornate diamond blocks", 10, "diamond/a1-blockdiamond-fourornate"); + blockDiamond.carverHelper.addVariation("Zelda diamond block", 11, "diamond/a1-blockdiamond-zelda"); + blockDiamond.carverHelper.addVariation("Diamond block with ornate layer", 12, "diamond/a1-blockdiamond-ornatelayer"); + blockDiamond.carverHelper.register(blockDiamond, "diamond"); + Carving.chisel.registerOre("diamond", "blockDiamond"); + } + + if(Chisel.featureEnabled("glowstone")) + { + blockLightstone = (BlockLightstoneCarvable) new BlockLightstoneCarvable().setHardness(0.3F).setLightLevel(1.0F).setStepSound(Block.soundTypeGlass); + Carving.chisel.addVariation("lightstone", Blocks.glowstone, 0, 0); + blockLightstone.carverHelper.addVariation("Cobble glowstone block", 1, "lightstone/terrain-sulphur-cobble"); + blockLightstone.carverHelper.addVariation("Corroded glowstone blocks", 2, "lightstone/terrain-sulphur-corroded"); + blockLightstone.carverHelper.addVariation("Glowstone blocks with glass", 3, "lightstone/terrain-sulphur-glass"); + blockLightstone.carverHelper.addVariation("Neon glowstone", 4, "lightstone/terrain-sulphur-neon"); + blockLightstone.carverHelper.addVariation("Ornate glowstone blocks", 5, "lightstone/terrain-sulphur-ornate"); + blockLightstone.carverHelper.addVariation("Rocky glowstone", 6, "lightstone/terrain-sulphur-rocky"); + blockLightstone.carverHelper.addVariation("Shale-shaped glowstone", 7, "lightstone/terrain-sulphur-shale"); + blockLightstone.carverHelper.addVariation("Glowstone tiles", 8, "lightstone/terrain-sulphur-tile"); + blockLightstone.carverHelper.addVariation("Fancy glowstone latern", 9, "lightstone/terrain-sulphur-weavelanternlight"); + blockLightstone.carverHelper.addVariation("Crumbling glowstone block", 10, "lightstone/a1-glowstone-cobble"); + blockLightstone.carverHelper.addVariation("Organic glowstone growth block", 11, "lightstone/a1-glowstone-growth"); + blockLightstone.carverHelper.addVariation("Glowstone layers", 12, "lightstone/a1-glowstone-layers"); + blockLightstone.carverHelper.addVariation("Corroded glowstone tiles", 13, "lightstone/a1-glowstone-tilecorroded"); + blockLightstone.carverHelper.addVariation("Glowstone bismuth", 14, "lightstone/glowstone-bismuth"); + blockLightstone.carverHelper.addVariation("Glowstone bismuth panel", 15, "lightstone/glowstone-bismuth-panel"); + blockLightstone.carverHelper.register(blockLightstone, "lightstone"); + Carving.chisel.registerOre("lightstone", "blockGlowstone"); + } + + if(Chisel.featureEnabled("lapisBlock")) + { + blockLapis = (BlockCarvable) new BlockCarvable().setHardness(3F).setResistance(5F).setStepSound(Block.soundTypeStone); + Carving.chisel.addVariation("lapis", Blocks.lapis_block, 0, 0); + blockLapis.carverHelper.addVariation("Chunky lapis block", 1, "lapis/terrain-lapisblock-chunky"); + blockLapis.carverHelper.addVariation("Dark lapis block", 2, "lapis/terrain-lapisblock-panel"); + blockLapis.carverHelper.addVariation("Zelda lapis block", 3, "lapis/terrain-lapisblock-zelda"); + blockLapis.carverHelper.addVariation("Ornate lapis block", 4, "lapis/terrain-lapisornate"); + blockLapis.carverHelper.addVariation("Lapis tile", 5, "lapis/terrain-lapistile"); + blockLapis.carverHelper.addVariation("Lapis panel", 6, "lapis/a1-blocklapis-panel"); + blockLapis.carverHelper.addVariation("Smooth lapis", 7, "lapis/a1-blocklapis-smooth"); + blockLapis.carverHelper.addVariation("Lapis with ornate layer", 8, "lapis/a1-blocklapis-ornatelayer"); + blockLapis.carverHelper.register(blockLapis, "lapis"); + Carving.chisel.registerOre("lapis", "blockLapis"); + } + + if(Chisel.featureEnabled("emeraldBlock")) + { + blockEmerald = (BlockCarvable) new BlockCarvable().setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundTypeMetal); + Carving.chisel.addVariation("emerald", Blocks.emerald_block, 0, 0); + blockEmerald.carverHelper.addVariation("Emerald panel", 1, "emerald/a1-blockemerald-emeraldpanel"); + blockEmerald.carverHelper.addVariation("Classic emerald panel", 2, "emerald/a1-blockemerald-emeraldpanelclassic"); + blockEmerald.carverHelper.addVariation("Smooth emerald", 3, "emerald/a1-blockemerald-emeraldsmooth"); + blockEmerald.carverHelper.addVariation("Emerald chunk", 4, "emerald/a1-blockemerald-emeraldchunk"); + blockEmerald.carverHelper.addVariation("Emerald with ornate layer", 5, "emerald/a1-blockemerald-emeraldornatelayer"); + blockEmerald.carverHelper.addVariation("Zelda emerald block", 6, "emerald/a1-blockemerald-emeraldzelda"); + blockEmerald.carverHelper.addVariation("Emerald cell", 7, "emerald/a1-blockquartz-cell"); + blockEmerald.carverHelper.addVariation("Emerald bismuth", 8, "emerald/a1-blockquartz-cellbismuth"); + blockEmerald.carverHelper.addVariation("Small emerald blocks", 9, "emerald/a1-blockquartz-four"); + blockEmerald.carverHelper.addVariation("Small ornate emerald blocks", 10, "emerald/a1-blockquartz-fourornate"); + blockEmerald.carverHelper.addVariation("Ornate emerald block", 11, "emerald/a1-blockquartz-ornate"); + blockEmerald.carverHelper.register(blockEmerald, "emerald"); + Carving.chisel.registerOre("emerald", "blockEmerald"); + } + + if(Chisel.featureEnabled("netherBrick")) + { + blockNetherBrick = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10.0F).setStepSound(Block.soundTypeStone); + //blockNetherBrick.carverHelper.addVariation("Nether brick", 0, Blocks.nether_brick); + blockNetherBrick.carverHelper.addVariation("Blue nether brick", 1, "netherbrick/a1-netherbrick-brinstar"); + blockNetherBrick.carverHelper.addVariation("Spattered nether brick", 2, "netherbrick/a1-netherbrick-classicspatter"); + blockNetherBrick.carverHelper.addVariation("Nether brick made of guts", 3, "netherbrick/a1-netherbrick-guts"); + blockNetherBrick.carverHelper.addVariation("Dark nether brick made of guts", 4, "netherbrick/a1-netherbrick-gutsdark"); + blockNetherBrick.carverHelper.addVariation("Small nether brick made of guts", 5, "netherbrick/a1-netherbrick-gutssmall"); + blockNetherBrick.carverHelper.addVariation("Blue nether brick with lava", 6, "netherbrick/a1-netherbrick-lavabrinstar"); + blockNetherBrick.carverHelper.addVariation("Brown nether brick", 7, "netherbrick/a1-netherbrick-lavabrown"); + blockNetherBrick.carverHelper.addVariation("Obsidian nether brick", 8, "netherbrick/a1-netherbrick-lavaobsidian"); + blockNetherBrick.carverHelper.addVariation("Stone nether brick", 9, "netherbrick/a1-netherbrick-lavastonedark"); + blockNetherBrick.carverHelper.addVariation("Nether brick made of meat", 10, "netherbrick/a1-netherbrick-meat"); + blockNetherBrick.carverHelper.addVariation("Red nether brick made of meat", 11, "netherbrick/a1-netherbrick-meatred"); + blockNetherBrick.carverHelper.addVariation("Small nether brick made of meat", 12, "netherbrick/a1-netherbrick-meatredsmall"); + blockNetherBrick.carverHelper.addVariation("Small red nether brick made of meat", 13, "netherbrick/a1-netherbrick-meatsmall"); + blockNetherBrick.carverHelper.addVariation("Red nether brick", 14, "netherbrick/a1-netherbrick-red"); + blockNetherBrick.carverHelper.addVariation("Small red nether brick", 15, "netherbrick/a1-netherbrick-redsmall"); + blockNetherBrick.carverHelper.register(blockNetherBrick, "netherBrick"); + Carving.chisel.registerOre("netherBrick", "netherBrick"); + } + + if(Chisel.featureEnabled("netherRack")) + { + blockNetherrack = (BlockCarvable) new BlockCarvable().setHardness(0.4F).setStepSound(Block.soundTypeStone); + Carving.chisel.addVariation("hellrock", Blocks.netherrack, 0, 0); + blockNetherrack.carverHelper.addVariation("Nethegravel with blood", 1, "netherrack/a1-netherrack-bloodgravel"); + blockNetherrack.carverHelper.addVariation("Netherrack with blood", 2, "netherrack/a1-netherrack-bloodrock"); + blockNetherrack.carverHelper.addVariation("Darker netherrack with blood", 3, "netherrack/a1-netherrack-bloodrockgrey"); + blockNetherrack.carverHelper.addVariation("Blue netherrack", 4, "netherrack/a1-netherrack-brinstar"); + blockNetherrack.carverHelper.addVariation("Shale blue netherrack", 5, "netherrack/a1-netherrack-brinstarshale"); + blockNetherrack.carverHelper.addVariation("Classic netherrack", 6, "netherrack/a1-netherrack-classic"); + blockNetherrack.carverHelper.addVariation("Spattered netherrack", 7, "netherrack/a1-netherrack-classicspatter"); + blockNetherrack.carverHelper.addVariation("Netherrack made of guts", 8, "netherrack/a1-netherrack-guts"); + blockNetherrack.carverHelper.addVariation("Dark netherrack made of guts", 9, "netherrack/a1-netherrack-gutsdark"); + blockNetherrack.carverHelper.addVariation("Netherrack made of meat", 10, "netherrack/a1-netherrack-meat"); + blockNetherrack.carverHelper.addVariation("Red netherrack made of meat", 11, "netherrack/a1-netherrack-meatred"); + blockNetherrack.carverHelper.addVariation("Netherrack made of smaller meat chunks", 12, "netherrack/a1-netherrack-meatrock"); + blockNetherrack.carverHelper.addVariation("Dark red netherrack", 13, "netherrack/a1-netherrack-red"); + blockNetherrack.carverHelper.addVariation("Netherrack with lava flowing", 14, "netherrack/a1-netherrack-wells"); + blockNetherrack.carverHelper.register(blockNetherrack, "hellrock"); + Carving.chisel.registerOre("hellrock", "blockNetherrack"); + } + + if(Chisel.featureEnabled("cobblestoneMossy")) + { + blockCobblestoneMossy = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10.0F).setStepSound(Block.soundTypeStone); + Carving.chisel.addVariation("stoneMoss", Blocks.mossy_cobblestone, 0, 0); + blockCobblestoneMossy.carverHelper.addVariation("Aligned mossy cobblestone bricks", 1, "cobblestonemossy/terrain-cobb-brickaligned"); + blockCobblestoneMossy.carverHelper.addVariation("Detailed mossy cobblestone bricks", 2, "cobblestonemossy/terrain-cob-detailedbrick"); + blockCobblestoneMossy.carverHelper.addVariation("Small mossy cobblestone bricks", 3, "cobblestonemossy/terrain-cob-smallbrick"); + blockCobblestoneMossy.carverHelper.addVariation("Large mossy cobblestone tiles", 4, "cobblestonemossy/terrain-cobblargetiledark"); + blockCobblestoneMossy.carverHelper.addVariation("Small mossy cobblestone tiles", 5, "cobblestonemossy/terrain-cobbsmalltile"); + blockCobblestoneMossy.carverHelper.addVariation("French mossy cobblestone tiles", 6, "cobblestonemossy/terrain-cob-french"); + blockCobblestoneMossy.carverHelper.addVariation("French mossy cobblestone tiles", 7, "cobblestonemossy/terrain-cob-french2"); + blockCobblestoneMossy.carverHelper.addVariation("Creeper mossy cobblestone tiles", 8, "cobblestonemossy/terrain-cobmoss-creepdungeon"); + blockCobblestoneMossy.carverHelper.addVariation("Damaged mossy cobblestone tiles", 9, "cobblestonemossy/terrain-mossysmalltiledark"); + blockCobblestoneMossy.carverHelper.addVariation("Huge mossy cobblestone tiles", 10, "cobblestonemossy/terrain-pistonback-dungeontile"); + blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with creeper panel", 11, "cobblestonemossy/terrain-pistonback-darkcreeper"); + blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with dent", 12, "cobblestonemossy/terrain-pistonback-darkdent"); + blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with panel", 13, "cobblestonemossy/terrain-pistonback-darkemboss"); + blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with light panel", 14, "cobblestonemossy/terrain-pistonback-darkmarker"); + blockCobblestoneMossy.carverHelper.addVariation("Mossy cobblestone with dark panel", 15, "cobblestonemossy/terrain-pistonback-darkpanel"); + blockCobblestoneMossy.carverHelper.register(blockCobblestoneMossy, "stoneMoss"); + Carving.chisel.registerOre("stoneMoss", "blockCobblestoneMossy"); + } + + if(Chisel.featureEnabled("stoneBrick")) + { + stoneBrick = (BlockCarvable) new BlockCarvable().setHardness(1.5F).setResistance(10.0F).setStepSound(Block.soundTypeStone); + for(int i = 0; i < 4; i++) + Carving.chisel.addVariation("stoneBrick", Blocks.stonebrick, i, i); + stoneBrick.carverHelper.addVariation("Small stone bricks", 4, "stonebrick/smallbricks"); + stoneBrick.carverHelper.addVariation("Wide stone bricks", 5, "stonebrick/largebricks"); + stoneBrick.carverHelper.addVariation("Small disordered stone bricks", 6, "stonebrick/smallchaotic"); + stoneBrick.carverHelper.addVariation("Disordered stone bricks", 7, "stonebrick/chaoticbricks"); + stoneBrick.carverHelper.addVariation("Disordered stone panels", 8, "stonebrick/chaotic"); + stoneBrick.carverHelper.addVariation("Stone bricks in a fancy arrangement", 9, "stonebrick/fancy"); + stoneBrick.carverHelper.addVariation("Ornate stone brick tiles", 10, "stonebrick/ornate"); + stoneBrick.carverHelper.addVariation("Large ornate stone brick tiles", 11, "stonebrick/largeornate"); + stoneBrick.carverHelper.addVariation("Stone panel", 12, "stonebrick/panel-hard"); + stoneBrick.carverHelper.addVariation("Sunken stone panel", 13, "stonebrick/sunken"); + stoneBrick.carverHelper.addVariation("Ornate stone panel", 14, "stonebrick/ornatepanel"); + stoneBrick.carverHelper.addVariation("Poison stone brick", 15, "stonebrick/poison"); + stoneBrick.carverHelper.register(stoneBrick, "stoneBrick"); + Carving.chisel.registerOre("stoneBrick", "blockStoneBrick"); + } + + if(Chisel.featureEnabled("snakestone")) + { + blockSnakestone = (BlockSnakestone) new BlockSnakestone("Chisel:snakestone/snake/").setBlockName("snakestone"); + GameRegistry.registerBlock(blockSnakestone, ItemCarvable.class, blockSnakestone.getUnlocalizedName()); + LanguageRegistry.addName(new ItemStack(blockSnakestone, 1, 1), "Stone snake block head"); + LanguageRegistry.addName(new ItemStack(blockSnakestone, 1, 13), "Stone snake block body"); + Carving.chisel.addVariation("stoneBrick", blockSnakestone, 1, 16); + Carving.chisel.addVariation("stoneBrick", blockSnakestone, 13, 17); + } + + if(Chisel.featureEnabled("ice")) + { + blockIce = (BlockMarbleIce) new BlockMarbleIce().setHardness(0.5F).setLightOpacity(3).setStepSound(Block.soundTypeGlass); + Carving.chisel.addVariation("ice", Blocks.ice, 0, 0); + blockIce.carverHelper.addVariation("Rough ice block", 1, "ice/a1-ice-light"); + blockIce.carverHelper.addVariation("Cobbleice", 2, "ice/a1-stonecobble-icecobble"); + blockIce.carverHelper.addVariation("Large rough ice bricks", 3, "ice/a1-netherbrick-ice"); + blockIce.carverHelper.addVariation("Large ice bricks", 4, "ice/a1-stonecobble-icebrick"); + blockIce.carverHelper.addVariation("Small ice bricks", 5, "ice/a1-stonecobble-icebricksmall"); + blockIce.carverHelper.addVariation("Fancy glass wall", 6, "ice/a1-stonecobble-icedungeon"); + blockIce.carverHelper.addVariation("Large ice tiles", 7, "ice/a1-stonecobble-icefour"); + blockIce.carverHelper.addVariation("Fancy ice tiles", 8, "ice/a1-stonecobble-icefrench"); + blockIce.carverHelper.addVariation("Sunken ice tiles", 9, "ice/sunkentiles"); + blockIce.carverHelper.addVariation("Disordered ice tiles", 10, "ice/tiles"); + blockIce.carverHelper.addVariation("Ice panel", 11, "ice/a1-stonecobble-icepanel"); + blockIce.carverHelper.addVariation("Ice double slab", 12, "ice/a1-stoneslab-ice"); + blockIce.carverHelper.addVariation("Ice Zelda block", 13, "ice/zelda"); + blockIce.carverHelper.addVariation("Ice Bismuth block", 14, "ice/bismuth"); + blockIce.carverHelper.addVariation("Ice Poison block", 15, "ice/poison"); + blockIce.carverHelper.register(blockIce, "ice"); + Carving.chisel.registerOre("ice", "blockIce"); + + if(Chisel.featureEnabled("icePillar")) + { + blockIcePillar = (BlockMarbleIce) new BlockMarbleIce().setHardness(0.5F).setLightOpacity(3).setStepSound(Block.soundTypeGlass); + blockIcePillar.carverHelper.setBlockName("Ice Pillar"); + blockIcePillar.carverHelper.addVariation("Ice pillar", 0, "icepillar/column"); + blockIcePillar.carverHelper.addVariation("Ice pillar capstone", 1, "icepillar/capstone"); + blockIcePillar.carverHelper.addVariation("Ice pillar base", 2, "icepillar/base"); + blockIcePillar.carverHelper.addVariation("Small ice pillar", 3, "icepillar/small"); + blockIcePillar.carverHelper.addVariation("Carved ice pillar", 4, "icepillar/pillar-carved"); + blockIcePillar.carverHelper.addVariation("Ornamental ice pillar", 5, "icepillar/a1-stoneornamental-marblegreek"); + blockIcePillar.carverHelper.addVariation("Greek ice pillar", 6, "icepillar/a1-stonepillar-greek"); + blockIcePillar.carverHelper.addVariation("Plain ice pillar", 7, "icepillar/a1-stonepillar-plain"); + blockIcePillar.carverHelper.addVariation("Greek ice pillar capstone", 8, "icepillar/a1-stonepillar-greektopplain"); + blockIcePillar.carverHelper.addVariation("Plain ice pillar capstone", 9, "icepillar/a1-stonepillar-plaintopplain"); + blockIcePillar.carverHelper.addVariation("Greek ice pillar base", 10, "icepillar/a1-stonepillar-greekbottomplain"); + blockIcePillar.carverHelper.addVariation("Plain ice pillar base", 11, "icepillar/a1-stonepillar-plainbottomplain"); + blockIcePillar.carverHelper.addVariation("Greek ice pillar ornate capstone", 12, "icepillar/a1-stonepillar-greektopgreek"); + blockIcePillar.carverHelper.addVariation("Plain ice pillar ornate capstone", 13, "icepillar/a1-stonepillar-plaintopgreek"); + blockIcePillar.carverHelper.addVariation("Greek ice pillar ornate base", 14, "icepillar/a1-stonepillar-greekbottomgreek"); + blockIcePillar.carverHelper.addVariation("Plain ice pillar ornate base", 15, "icepillar/a1-stonepillar-plainbottomgreek"); + blockIcePillar.carverHelper.register(blockIcePillar, "icePillar"); + Carving.chisel.setGroupClass("icePillar", "ice"); + } + + if(Chisel.featureEnabled("iceStairs")) + { + BlockMarbleStairsMaker makerIceStairs = new BlockMarbleStairsMaker(Blocks.ice); + makerIceStairs.carverHelper.setBlockName("Ice Stairs"); + makerIceStairs.carverHelper.addVariation("Ice stairs", 0, Blocks.ice); + makerIceStairs.carverHelper.addVariation("Rough ice stairs", 1, "ice/a1-ice-light"); + makerIceStairs.carverHelper.addVariation("Cobbleice stairs", 2, "ice/a1-stonecobble-icecobble"); + makerIceStairs.carverHelper.addVariation("Large rough ice brick stairs", 3, "ice/a1-netherbrick-ice"); + makerIceStairs.carverHelper.addVariation("Large ice brick stairs", 4, "ice/a1-stonecobble-icebrick"); + makerIceStairs.carverHelper.addVariation("Small ice brick stairs", 5, "ice/a1-stonecobble-icebricksmall"); + makerIceStairs.carverHelper.addVariation("Fancy ice wall stairs", 6, "ice/a1-stonecobble-icedungeon"); + makerIceStairs.carverHelper.addVariation("Large ice tile stairs", 7, "ice/a1-stonecobble-icefour"); + makerIceStairs.carverHelper.addVariation("Fancy ice tile stairs", 8, "ice/a1-stonecobble-icefrench"); + makerIceStairs.carverHelper.addVariation("Sunken ice tile stairs", 9, "ice/sunkentiles"); + makerIceStairs.carverHelper.addVariation("Disordered ice tile stairs", 10, "ice/tiles"); + makerIceStairs.carverHelper.addVariation("Ice panel stairs", 11, "ice/a1-stonecobble-icepanel"); + makerIceStairs.carverHelper.addVariation("Ice double slab stairs", 12, "ice/a1-stoneslab-ice"); + makerIceStairs.carverHelper.addVariation("Ice Zelda stairs", 13, "ice/zelda"); + makerIceStairs.carverHelper.addVariation("Ice bismuth stairs", 14, "ice/bismuth"); + makerIceStairs.carverHelper.addVariation("Ice poison stairs", 15, "ice/poison"); + makerIceStairs.create(new BlockMarbleStairsMakerCreator() + { + @Override + public BlockMarbleStairs create(Block block, int meta, CarvableHelper helper) + { + return new BlockMarbleIceStairs(block, meta, helper); + } + }, "chisel.iceStairs"); + } + } + + if(Chisel.featureEnabled("wood")) + { + String[] plank_names = {"oak", "spruce", "birch", "jungle", "acacia", "dark-oak"}; + String[] plank_ucnames = {"Oak", "Spruce", "Birch", "Jungle", "Acacia", "Dark Oak"}; + for(int i = 0; i < 6; i++) + { + String n = plank_names[i]; + String u = plank_ucnames[i]; + + blockPlanks[i] = (BlockCarvable) (new BlockCarvable()).setHardness(2.0F).setResistance(5.0F).setStepSound(Block.soundTypeWood); + blockPlanks[i].carverHelper.setBlockName(u + " Wood Planks"); + blockPlanks[i].carverHelper.addVariation("Smooth " + n + " wood planks", 1, "planks-" + n + "/clean"); + blockPlanks[i].carverHelper.addVariation("Short " + n + " wood planks", 2, "planks-" + n + "/short"); + blockPlanks[i].carverHelper.addVariation("Fancy " + n + " wood plank arrangement", 6, "planks-" + n + "/fancy"); + blockPlanks[i].carverHelper.addVariation(u + " wood panel", 8, "planks-" + n + "/panel-nails"); + blockPlanks[i].carverHelper.addVariation(u + " wood double slab", 9, "planks-" + n + "/double"); + blockPlanks[i].carverHelper.addVariation(u + " wood crate", 10, "planks-" + n + "/crate"); + blockPlanks[i].carverHelper.addVariation("Fancy " + n + " wood crate", 11, "planks-" + n + "/crate-fancy"); + blockPlanks[i].carverHelper.addVariation("Large long " + n + " wood planks", 13, "planks-" + n + "/large"); + if(i < 4) + { // TODO: We lack textures for these! + blockPlanks[i].carverHelper.addVariation("Vertical " + n + " wood planks", 3, "planks-" + n + "/vertical"); + blockPlanks[i].carverHelper.addVariation("Vertical uneven " + n + " wood planks", 4, "planks-" + n + "/vertical-uneven"); + blockPlanks[i].carverHelper.addVariation(u + " wood parquet", 5, "planks-" + n + "/parquet"); + blockPlanks[i].carverHelper.addVariation(u + " wood plank blinds", 7, "planks-" + n + "/blinds"); + blockPlanks[i].carverHelper.addVariation(u + " wood scaffold", 12, "planks-" + n + "/crateex"); + blockPlanks[i].carverHelper.addVariation(u + " wood planks in disarray", 14, "planks-" + n + "/chaotic-hor"); + blockPlanks[i].carverHelper.addVariation("Vertical " + n + " wood planks in disarray", 15, "planks-" + n + "/chaotic"); + } + blockPlanks[i].carverHelper.register(blockPlanks[i], "wood-" + n); + Carving.chisel.addVariation("wood-" + n, Blocks.planks, i, 0); + Blocks.planks.setHarvestLevel("chisel", 0, i); + blockPlanks[i].setHarvestLevel("axe", 0); + + Carving.chisel.setVariationSound("wood-" + n, "chisel:chisel-wood"); + } + } + + if(Chisel.featureEnabled("obsidian")) + { + blockObsidian = (BlockCarvable) new BlockCarvable().setHardness(50.0F).setResistance(2000.0F).setStepSound(Block.soundTypeStone); + Carving.chisel.addVariation("obsidian", Blocks.obsidian, 0, 0); + blockObsidian.carverHelper.addVariation("Large obsidian pillar", 1, "obsidian/pillar"); + blockObsidian.carverHelper.addVariation("Obsidian pillar", 2, "obsidian/pillar-quartz"); + blockObsidian.carverHelper.addVariation("Chiseled obsidian", 3, "obsidian/chiseled"); + blockObsidian.carverHelper.addVariation("Shiny obsidian panel", 4, "obsidian/panel-shiny"); + blockObsidian.carverHelper.addVariation("Obsidian panel", 5, "obsidian/panel"); + blockObsidian.carverHelper.addVariation("Organic-looking obsidian chunks", 6, "obsidian/chunks"); + blockObsidian.carverHelper.addVariation("Organic-looking obsidian growth", 7, "obsidian/growth"); + blockObsidian.carverHelper.addVariation("Obsidian crystal", 8, "obsidian/crystal"); + blockObsidian.carverHelper.addVariation("Obsidian panel with an ancient map on it", 9, "obsidian/map-a"); + blockObsidian.carverHelper.addVariation("Obsidian panel with a map of some weird region on it", 10, "obsidian/map-b"); + blockObsidian.carverHelper.addVariation("Bright obsidian panel", 11, "obsidian/panel-light"); + blockObsidian.carverHelper.addVariation("Obsidian blocks", 12, "obsidian/blocks"); + blockObsidian.carverHelper.addVariation("Obsidian tiles", 13, "obsidian/tiles"); + blockObsidian.carverHelper.addVariation("Light obsidian blocks with Greek decor", 14, "obsidian/greek"); + blockObsidian.carverHelper.addVariation("Small obsidian blocks inside an oak wood crate", 15, "obsidian/crate"); + blockObsidian.carverHelper.register(blockObsidian, "obsidian"); + Carving.chisel.registerOre("obsidian", "blockObsidian"); + } + + if(Chisel.featureEnabled("snakestoneObsidian")) + { + blockObsidianSnakestone = (BlockSnakestoneObsidian) new BlockSnakestoneObsidian("Chisel:snakestone/obsidian/").setBlockName("obsidianSnakestone").setHardness(50.0F).setResistance(2000.0F); + GameRegistry.registerBlock(blockObsidianSnakestone, ItemCarvable.class, blockObsidianSnakestone.getUnlocalizedName()); + LanguageRegistry.addName(new ItemStack(blockObsidianSnakestone, 1, 1), "Obsidian snakestone head"); + LanguageRegistry.addName(new ItemStack(blockObsidianSnakestone, 1, 13), "Obsidian snakestone body"); + Carving.chisel.addVariation("obsidian", blockObsidianSnakestone, 1, 16); + Carving.chisel.addVariation("obsidian", blockObsidianSnakestone, 13, 17); + } + + if(Chisel.featureEnabled("ironBars")) + { + blockPaneIron = (BlockCarvablePane) new BlockCarvablePane(Material.iron, true).setHardness(0.3F).setStepSound(Block.soundTypeMetal); + Carving.chisel.addVariation("fenceIron", Blocks.iron_bars, 0, 0); + blockPaneIron.carverHelper.addVariation("Iron bars without frame", 1, "ironpane/fenceIron"); + blockPaneIron.carverHelper.addVariation("Menacing iron bars", 2, "ironpane/barbedwire"); + blockPaneIron.carverHelper.addVariation("Iron cage bars", 3, "ironpane/cage"); + blockPaneIron.carverHelper.addVariation("Menacing iron spikes", 4, "ironpane/fenceIronTop"); + blockPaneIron.carverHelper.addVariation("Thick iron grid", 5, "ironpane/terrain-glass-thickgrid"); + blockPaneIron.carverHelper.addVariation("Thin iron grid", 6, "ironpane/terrain-glass-thingrid"); + blockPaneIron.carverHelper.addVariation("Ornate iron pane fence", 7, "ironpane/terrain-glass-ornatesteel"); + blockPaneIron.carverHelper.addVariation("Vertical iron bars", 8, "ironpane/bars"); + blockPaneIron.carverHelper.addVariation("Iron spikes", 9, "ironpane/spikes"); + blockPaneIron.carverHelper.register(blockPaneIron, "fenceIron"); + } + + if(Chisel.featureEnabled("glassPane")) + { + blockPaneGlass = (BlockCarvablePane) new BlockCarvablePane(Material.glass, false).setHardness(0.3F).setStepSound(Block.soundTypeGlass); + Carving.chisel.addVariation("glassPane", Blocks.glass_pane, 0, 0); + blockPaneGlass.carverHelper.addVariation("Bubble glass pane", 1, "glasspane/terrain-glassbubble"); + blockPaneGlass.carverHelper.addVariation("Borderless glass pane", 2, "glasspane/terrain-glassnoborder"); + blockPaneGlass.carverHelper.addVariation("Screen pane", 3, "glasspane/terrain-glass-screen"); + blockPaneGlass.carverHelper.addVariation("Streak glass pane", 4, "glasspane/terrain-glassstreak"); + blockPaneGlass.carverHelper.addVariation("Chinese glass pane", 12, "glasspane/chinese"); + blockPaneGlass.carverHelper.addVariation("Chinese glass pane with golden frame", 13, "glasspane/chinese2"); + blockPaneGlass.carverHelper.addVariation("Japanese glass pane", 14, "glasspane/japanese"); + blockPaneGlass.carverHelper.addVariation("Ornate japanese glass pane", 15, "glasspane/japanese2"); + blockPaneGlass.carverHelper.register(blockPaneGlass, "glassPane"); + } + + if(Chisel.featureEnabled("redstoneBlock")) + { + blockRedstone = (BlockCarvablePowered) (new BlockCarvablePowered(Material.iron)).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundTypeMetal); + Carving.chisel.addVariation("blockRedstone", Blocks.redstone_block, 0, 0); + blockRedstone.carverHelper.addVariation("Smooth redstone", 1, "redstone/smooth"); + blockRedstone.carverHelper.addVariation("Large redstone block", 2, "redstone/block"); + blockRedstone.carverHelper.addVariation("Small redstone blocks", 3, "redstone/blocks"); + blockRedstone.carverHelper.addVariation("Redstone bricks", 4, "redstone/bricks"); + blockRedstone.carverHelper.addVariation("Small redstone bricks", 5, "redstone/smallbricks"); + blockRedstone.carverHelper.addVariation("Chaotic redstone bricks", 6, "redstone/smallchaotic"); + blockRedstone.carverHelper.addVariation("Chiseled redstone", 7, "redstone/chiseled"); + blockRedstone.carverHelper.addVariation("Redstone Greek decoration", 8, "redstone/ere"); + blockRedstone.carverHelper.addVariation("Ornate redstone tiles", 9, "redstone/ornate-tiles"); + blockRedstone.carverHelper.addVariation("Redstone pillar", 10, "redstone/pillar"); + blockRedstone.carverHelper.addVariation("Redstone tiles", 11, "redstone/tiles"); + blockRedstone.carverHelper.addVariation("Redstone circuit", 12, "redstone/circuit"); + blockRedstone.carverHelper.addVariation("Redstone supaplex circuit", 13, "redstone/supaplex"); + blockRedstone.carverHelper.addVariation("Redstone skulls", 14, "redstone/a1-blockredstone-skullred"); + blockRedstone.carverHelper.addVariation("Redstone Zelda block", 15, "redstone/a1-blockredstone-redstonezelda"); + blockRedstone.carverHelper.register(blockRedstone, "blockRedstone"); + Carving.chisel.registerOre("blockRedstone", "blockRedstone"); + } + + if(Chisel.featureEnabled("holystone")) + { + blockHolystone = (BlockHolystone) new BlockHolystone(Material.rock).setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundHolystoneFootstep); + blockHolystone.carverHelper.addVariation("Holystone", 0, "holystone/holystone"); + blockHolystone.carverHelper.addVariation("Smooth holystone", 1, "holystone/smooth"); + blockHolystone.carverHelper.addVariation("Mysterious holystone symbol", 2, "holystone/love"); + blockHolystone.carverHelper.addVariation("Chiseled holystone", 3, "holystone/chiseled"); + blockHolystone.carverHelper.addVariation("Holystone blocks", 4, "holystone/blocks"); + blockHolystone.carverHelper.addVariation("Rough holystone blocks", 5, "holystone/blocks-rough"); + blockHolystone.carverHelper.addVariation("Holystone bricks", 6, "holystone/brick"); + blockHolystone.carverHelper.addVariation("Large holystone bricks", 7, "holystone/largebricks"); + blockHolystone.carverHelper.addVariation("Holystone platform", 8, "holystone/platform"); + blockHolystone.carverHelper.addVariation("Holystone platform tiles", 9, "holystone/platform-tiles"); + blockHolystone.carverHelper.addVariation("Fancy holystone construction", 10, "holystone/construction"); + blockHolystone.carverHelper.addVariation("Fancy holystone tiles", 11, "holystone/fancy-tiles"); + blockHolystone.carverHelper.addVariation("Smooth holystone plate", 12, "holystone/plate"); + blockHolystone.carverHelper.addVariation("Holystone plate", 13, "holystone/plate-rough"); + blockHolystone.carverHelper.register(blockHolystone, "blockHolystone"); + OreDictionary.registerOre("blockHolystone", blockHolystone); + Carving.chisel.registerOre("blockHolystone", "blockHolystone"); + } + + if(Chisel.featureEnabled("lavastone")) + { + blockLavastone = (BlockLavastone) new BlockLavastone(Material.rock, "lava_flow").setHardness(2.0F).setResistance(10F); + blockLavastone.carverHelper.addVariation("Lavastone", 0, "lavastone/cobble"); + blockLavastone.carverHelper.addVariation("Black lavastone", 1, "lavastone/black"); + blockLavastone.carverHelper.addVariation("Lavastone tiles", 2, "lavastone/tiles"); + blockLavastone.carverHelper.addVariation("Chaotic lavastone bricks", 3, "lavastone/chaotic"); + blockLavastone.carverHelper.addVariation("Lava creeper in tiles", 4, "lavastone/creeper"); + blockLavastone.carverHelper.addVariation("Lava panel", 5, "lavastone/panel"); + blockLavastone.carverHelper.addVariation("Ornate lava panel", 6, "lavastone/panel-ornate"); + blockLavastone.carverHelper.register(blockLavastone, "blockLavastone"); + OreDictionary.registerOre("blockLavastone", blockLavastone); + Carving.chisel.registerOre("blockLavastone", "blockLavastone"); + } + + if(Chisel.featureEnabled("fantasy")) + { + blockFft = (BlockCarvable) new BlockCarvable(Material.rock).setHardness(2.0F).setResistance(10F); + blockFft.carverHelper.setBlockName("Fantasy Block"); + blockFft.carverHelper.addVariation("Fantasy brick", 0, "fft/brick"); + blockFft.carverHelper.addVariation("Faded fantasy brick", 1, "fft/brick-faded"); + blockFft.carverHelper.addVariation("Weared fantasy brick", 2, "fft/brick-wear"); + blockFft.carverHelper.addVariation("Damaged fantasy bricks", 3, "fft/bricks"); + blockFft.carverHelper.addVariation("Fantasy decoration", 4, "fft/decor"); + blockFft.carverHelper.addVariation("Fantasy decoration block", 5, "fft/decor-block"); + blockFft.carverHelper.addVariation("Fantasy pillar", 6, "fft/pillar"); + blockFft.carverHelper.addVariation("Fantasy pillar decoration", 7, "fft/pillar-decorated"); + blockFft.carverHelper.addVariation("Fantasy gold snake decoration", 8, "fft/gold-decor-1"); + blockFft.carverHelper.addVariation("Fantasy gold noise decoration", 9, "fft/gold-decor-2"); + blockFft.carverHelper.addVariation("Fantasy gold engravings decoration", 10, "fft/gold-decor-3"); + blockFft.carverHelper.addVariation("Fantasy gold chains decoration", 11, "fft/gold-decor-4"); + blockFft.carverHelper.addVariation("Fantasy plate decoration", 12, "fft/plate"); + blockFft.carverHelper.addVariation("Fantasy block", 13, "fft/block"); + blockFft.carverHelper.addVariation("Fantasy bricks in disarray", 14, "fft/bricks-chaotic"); + blockFft.carverHelper.addVariation("Weared fantasy bricks", 15, "fft/bricks-wear"); + blockFft.carverHelper.register(blockFft, "blockFft"); + OreDictionary.registerOre("blockFft", blockFft); + Carving.chisel.registerOre("blockFft", "blockFft"); + } + + if(Chisel.featureEnabled("carpet")) + { + blockCarpet = (BlockCarvable) new BlockCarvable(Material.cloth).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeCloth); + blockCarpet.carverHelper.setBlockName("Carpet Block"); + blockCarpet.carverHelper.addVariation("White carpet block", 0, "carpet/white"); + blockCarpet.carverHelper.addVariation("Orange carpet block", 1, "carpet/orange"); + blockCarpet.carverHelper.addVariation("Magenta carpet block", 2, "carpet/lily"); + blockCarpet.carverHelper.addVariation("Light blue carpet block", 3, "carpet/lightblue"); + blockCarpet.carverHelper.addVariation("Yellow carpet block", 4, "carpet/yellow"); + blockCarpet.carverHelper.addVariation("Light green carpet block", 5, "carpet/lightgreen"); + blockCarpet.carverHelper.addVariation("Pink carpet block", 6, "carpet/pink"); + blockCarpet.carverHelper.addVariation("Dark grey carpet block", 7, "carpet/darkgrey"); + blockCarpet.carverHelper.addVariation("Grey carpet block", 8, "carpet/grey"); + blockCarpet.carverHelper.addVariation("Teal carpet block", 9, "carpet/teal"); + blockCarpet.carverHelper.addVariation("Purple carpet block", 10, "carpet/purple"); + blockCarpet.carverHelper.addVariation("Dark blue carpet block", 11, "carpet/darkblue"); + blockCarpet.carverHelper.addVariation("Brown carpet block", 12, "carpet/brown"); + blockCarpet.carverHelper.addVariation("Green carpet block", 13, "carpet/green"); + blockCarpet.carverHelper.addVariation("Red carpet block", 14, "carpet/red"); + blockCarpet.carverHelper.addVariation("Black carpet block", 15, "carpet/black"); + blockCarpet.carverHelper.forbidChiseling = true; + blockCarpet.carverHelper.register(blockCarpet, "blockCarpet"); + OreDictionary.registerOre("blockCarpet", blockCarpet); + Carving.chisel.registerOre("blockCarpet", "blockCarpet"); + } + + if(Chisel.featureEnabled("carpetFloor")) + { + blockCarpetFloor = (BlockMarbleCarpet) new BlockMarbleCarpet(Material.cloth).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundTypeCloth); + blockCarpetFloor.carverHelper.setBlockName("Carpet"); + blockCarpetFloor.carverHelper.addVariation("White carpet", 0, "carpet/white"); + blockCarpetFloor.carverHelper.addVariation("Orange carpet", 1, "carpet/orange"); + blockCarpetFloor.carverHelper.addVariation("Magenta carpet", 2, "carpet/lily"); + blockCarpetFloor.carverHelper.addVariation("Light blue carpet", 3, "carpet/lightblue"); + blockCarpetFloor.carverHelper.addVariation("Yellow carpet", 4, "carpet/yellow"); + blockCarpetFloor.carverHelper.addVariation("Light green carpet", 5, "carpet/lightgreen"); + blockCarpetFloor.carverHelper.addVariation("Pink carpet", 6, "carpet/pink"); + blockCarpetFloor.carverHelper.addVariation("Dark grey carpet", 7, "carpet/darkgrey"); + blockCarpetFloor.carverHelper.addVariation("Grey carpet", 8, "carpet/grey"); + blockCarpetFloor.carverHelper.addVariation("Teal carpet", 9, "carpet/teal"); + blockCarpetFloor.carverHelper.addVariation("Purple carpet", 10, "carpet/purple"); + blockCarpetFloor.carverHelper.addVariation("Dark blue carpet", 11, "carpet/darkblue"); + blockCarpetFloor.carverHelper.addVariation("Brown carpet", 12, "carpet/brown"); + blockCarpetFloor.carverHelper.addVariation("Green carpet", 13, "carpet/green"); + blockCarpetFloor.carverHelper.addVariation("Red carpet", 14, "carpet/red"); + blockCarpetFloor.carverHelper.addVariation("Black carpet", 15, "carpet/black"); + blockCarpetFloor.carverHelper.forbidChiseling = true; + blockCarpetFloor.carverHelper.register(blockCarpetFloor, "blockCarpetFloor"); + + for(int i = 0; i < 16; i++) + { + String group = "carpet." + i; + + Carving.needle.addVariation(group, Blocks.carpet, i, 0); + Carving.needle.addVariation(group, blockCarpetFloor, i, 2); + Carving.needle.addVariation(group, blockCarpet, i, 1); + } + } + + if(Chisel.featureEnabled("bookshelf")) + { + blockBookshelf = (BlockCarvable) new BlockMarbleBookshelf().setHardness(1.5F).setStepSound(Block.soundTypeWood); + Carving.chisel.addVariation("blockBookshelf", Blocks.bookshelf, 0, 0); + blockBookshelf.carverHelper.addVariation("Bookshelf with rainbow colored books", 1, "bookshelf/rainbow"); + blockBookshelf.carverHelper.addVariation("Necromancer novice's bookshelf", 2, "bookshelf/necromancer-novice"); + blockBookshelf.carverHelper.addVariation("Necromancer's bookshelf", 3, "bookshelf/necromancer"); + blockBookshelf.carverHelper.addVariation("Bookshelf with red tomes", 4, "bookshelf/redtomes"); + blockBookshelf.carverHelper.addVariation("Abandoned bookshelf", 5, "bookshelf/abandoned"); + blockBookshelf.carverHelper.addVariation("Hoarder's bookshelf", 6, "bookshelf/hoarder"); + blockBookshelf.carverHelper.addVariation("Bookshelf filled to brim with boring pastel books", 7, "bookshelf/brim"); + blockBookshelf.carverHelper.addVariation("Historician's bookshelf", 8, "bookshelf/historician"); + blockBookshelf.carverHelper.register(blockBookshelf, "blockBookshelf"); + blockBookshelf.setHarvestLevel("axe", 0); + Carving.chisel.registerOre("blockBookshelf", "blockBookshelf"); + } + + if(Chisel.featureEnabled("futuristicArmorPlating")) + { + blockTyrian = (BlockCarvable) new BlockCarvable(Material.iron).setHardness(5.0F).setResistance(10.0F).setStepSound(Block.soundTypeMetal); + blockTyrian.carverHelper.setBlockName("Futuristic Armor Plating Block"); + blockTyrian.carverHelper.addVariation("Futuristic armor plating block", 0, "tyrian/shining"); + blockTyrian.carverHelper.addVariation("Bleak futuristic armor plating block", 1, "tyrian/tyrian"); + blockTyrian.carverHelper.addVariation("Purple futuristic armor plating block", 2, "tyrian/chaotic"); + blockTyrian.carverHelper.addVariation("Faded purple futuristic armor plating block", 3, "tyrian/softplate"); + blockTyrian.carverHelper.addVariation("Rusted futuristic armor plating block", 4, "tyrian/rust"); + blockTyrian.carverHelper.addVariation("Elaborate futuristic armor plating block", 5, "tyrian/elaborate"); + blockTyrian.carverHelper.addVariation("Futuristic armor plating block with many seams", 6, "tyrian/routes"); + blockTyrian.carverHelper.addVariation("Futuristic platform block", 7, "tyrian/platform"); + blockTyrian.carverHelper.addVariation("Futuristic armor plating tiles", 8, "tyrian/platetiles"); + blockTyrian.carverHelper.addVariation("Diagonal futuristic armor plating block", 9, "tyrian/diagonal"); + blockTyrian.carverHelper.addVariation("Futuristic armor plating block with dent", 10, "tyrian/dent"); + blockTyrian.carverHelper.addVariation("Blue futuristic armor plating block", 11, "tyrian/blueplating"); + blockTyrian.carverHelper.addVariation("Black futuristic armor plating block", 12, "tyrian/black"); + blockTyrian.carverHelper.addVariation("Black futuristic armor plating tiles", 13, "tyrian/black2"); + blockTyrian.carverHelper.addVariation("Black futuristic armor plating block with an opening", 14, "tyrian/opening"); + blockTyrian.carverHelper.addVariation("Futuristic armor plating with shining metal bits", 15, "tyrian/plate"); + blockTyrian.carverHelper.register(blockTyrian, "blockTyrian"); + OreDictionary.registerOre("blockTyrian", blockTyrian); + Carving.chisel.registerOre("blockTyrian", "blockTyrian"); + } + + if(Chisel.featureEnabled("dirt")) + { + blockDirt = (BlockCarvable) new BlockCarvable(Material.ground).setHardness(0.5F).setStepSound(Block.soundTypeGravel).setBlockName("dirt.default"); + blockDirt.carverHelper.setBlockName("Dirt"); + //blockDirt.carverHelper.addVariation("Dirt", 0, Blocks.dirt); + blockDirt.carverHelper.addVariation("Dirt bricks in disarray", 1, "dirt/bricks"); + blockDirt.carverHelper.addVariation("Dirt bricks imitating nether brick design", 2, "dirt/netherbricks"); + blockDirt.carverHelper.addVariation("Dirt bricks", 3, "dirt/bricks3"); + blockDirt.carverHelper.addVariation("Cobbledirt", 4, "dirt/cobble"); + blockDirt.carverHelper.addVariation("Reinforced cobbledirt", 5, "dirt/reinforced"); + blockDirt.carverHelper.addVariation("Reinforced dirt", 6, "dirt/dirt-reinforced"); + blockDirt.carverHelper.addVariation("Happy dirt", 7, "dirt/happy"); + blockDirt.carverHelper.addVariation("Large dirt bricks", 8, "dirt/bricks2"); + blockDirt.carverHelper.addVariation("Large dirt bricks on top of dirt", 9, "dirt/bricks+dirt2"); + blockDirt.carverHelper.addVariation("Horizontal dirt", 10, "dirt/hor"); + blockDirt.carverHelper.addVariation("Vertical dirt", 11, "dirt/vert"); + blockDirt.carverHelper.addVariation("Dirt layers", 12, "dirt/layers"); + blockDirt.carverHelper.addVariation("Crumbling dirt", 13, "dirt/vertical"); + blockDirt.carverHelper.register(blockDirt, "blockDirt"); + blockDirt.setHarvestLevel("shovel", 0); + OreDictionary.registerOre("blockDirt", blockDirt); + Carving.chisel.registerOre("blockDirt", "blockDirt"); + } + + if(Chisel.featureEnabled("templeBlock")) + { + blockTemple = (BlockCarvable) new BlockEldritch().setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundTempleFootstep); + blockTemple.carverHelper.setBlockName("Temple Block"); + blockTemple.carverHelper.addVariation("Temple cobblestone", 0, "temple/cobble"); + blockTemple.carverHelper.addVariation("Orante temple block", 1, "temple/ornate"); + blockTemple.carverHelper.addVariation("Temple plate", 2, "temple/plate"); + blockTemple.carverHelper.addVariation("Cracked temple plate", 3, "temple/plate-cracked"); + blockTemple.carverHelper.addVariation("Temple bricks", 4, "temple/bricks"); + blockTemple.carverHelper.addVariation("Large temple bricks", 5, "temple/bricks-large"); + blockTemple.carverHelper.addVariation("Weared temple bricks", 6, "temple/bricks-weared"); + blockTemple.carverHelper.addVariation("Temple bricks in disarray", 7, "temple/bricks-disarray"); + blockTemple.carverHelper.addVariation("Temple column", 8, "temple/column"); + blockTemple.carverHelper.addVariation("Temple stand", 9, "temple/stand"); + blockTemple.carverHelper.addVariation("Temple mosaic stand", 10, "temple/stand-mosaic"); + blockTemple.carverHelper.addVariation("Temple creeper stand", 11, "temple/stand-creeper"); + blockTemple.carverHelper.addVariation("Temple tiles", 12, "temple/tiles"); + blockTemple.carverHelper.addVariation("Small temple tiles", 13, "temple/smalltiles"); + blockTemple.carverHelper.addVariation("Light temple tiles", 14, "temple/tiles-light"); + blockTemple.carverHelper.addVariation("Small light temple tiles", 15, "temple/smalltiles-light"); + blockTemple.carverHelper.register(blockTemple, "blockTemple"); + + if(Chisel.featureEnabled("templeBlockMossy")) + { + blockTempleMossy = (BlockCarvable) new BlockEldritch().setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundTempleFootstep); + blockTempleMossy.carverHelper.setBlockName("Mossy Temple Block"); + blockTempleMossy.carverHelper.addVariation("Mossy temple cobblestone", 0, "templemossy/cobble"); + blockTempleMossy.carverHelper.addVariation("Orante mossy temple block", 1, "templemossy/ornate"); + blockTempleMossy.carverHelper.addVariation("Mossy temple plate", 2, "templemossy/plate"); + blockTempleMossy.carverHelper.addVariation("Cracked mossy temple plate", 3, "templemossy/plate-cracked"); + blockTempleMossy.carverHelper.addVariation("Mossy temple bricks", 4, "templemossy/bricks"); + blockTempleMossy.carverHelper.addVariation("Large mossy temple bricks", 5, "templemossy/bricks-large"); + blockTempleMossy.carverHelper.addVariation("Weared mossy temple bricks", 6, "templemossy/bricks-weared"); + blockTempleMossy.carverHelper.addVariation("Mossy temple bricks in disarray", 7, "templemossy/bricks-disarray"); + blockTempleMossy.carverHelper.addVariation("Mossy temple column", 8, "templemossy/column"); + blockTempleMossy.carverHelper.addVariation("Mossy temple stand", 9, "templemossy/stand"); + blockTempleMossy.carverHelper.addVariation("Mossy temple mosaic stand", 10, "templemossy/stand-mosaic"); + blockTempleMossy.carverHelper.addVariation("Mossy temple creeper stand", 11, "templemossy/stand-creeper"); + blockTempleMossy.carverHelper.addVariation("Mossy temple tiles", 12, "templemossy/tiles"); + blockTempleMossy.carverHelper.addVariation("Small mossy temple tiles", 13, "templemossy/smalltiles"); + blockTempleMossy.carverHelper.addVariation("Light mossy temple tiles", 14, "templemossy/tiles-light"); + blockTempleMossy.carverHelper.addVariation("Small light mossy temple tiles", 15, "templemossy/smalltiles-light"); + blockTempleMossy.carverHelper.register(blockTempleMossy, "blockTempleMossy"); + } + } + + if(Chisel.featureEnabled("cloud")) + { + blockCloud = (BlockCloud) new BlockCloud().setHardness(0.2F).setLightOpacity(3).setStepSound(Block.soundTypeCloth); + blockCloud.carverHelper.addVariation("Cloud block", 0, "cloud/cloud"); + blockCloud.carverHelper.register(blockCloud, "blockCloud"); + OreDictionary.registerOre("blockCloud", blockCloud); + Carving.chisel.registerOre("blockCloud", "blockCloud"); + } + + if(Chisel.featureEnabled("factory")) + { + blockFactory = (BlockCarvable) new BlockCarvable().setHardness(2.0F).setResistance(10F).setStepSound(Chisel.soundMetalFootstep); + blockFactory.carverHelper.setBlockName("Factory Block"); + blockFactory.carverHelper.addVariation("Rusty metal plate with dot pattern", 0, "factory/dots"); + blockFactory.carverHelper.addVariation("Rusty metal plate", 1, "factory/rust2"); + blockFactory.carverHelper.addVariation("Very rusty metal plate", 2, "factory/rust"); + blockFactory.carverHelper.addVariation("A metal plate with almost no rust on it", 3, "factory/platex"); + blockFactory.carverHelper.addVariation("Wireframe", 4, "factory/wireframewhite"); + blockFactory.carverHelper.addVariation("Wireframe in a shade of purple", 5, "factory/wireframe"); + blockFactory.carverHelper.addVariation("Yellow-black hazard block", 6, "factory/hazard"); + blockFactory.carverHelper.addVariation("Orange-white hazard block", 7, "factory/hazardorange"); + blockFactory.carverHelper.addVariation("Fancy circuit block", 8, "factory/circuit"); + blockFactory.carverHelper.addVariation("Fancy metal box", 9, "factory/metalbox"); + blockFactory.carverHelper.addVariation("Fancy circuit block with gold plating", 10, "factory/goldplate"); + blockFactory.carverHelper.addVariation("Rusty purple block with gold plating", 11, "factory/goldplating"); + blockFactory.carverHelper.addVariation("Shiny metal construction", 12, "factory/grinder"); + blockFactory.carverHelper.addVariation("Weared metal wall with openings for ventilation", 13, "factory/plating"); + blockFactory.carverHelper.addVariation("Rusty metal plates", 14, "factory/rustplates"); + blockFactory.carverHelper.addVariation("Weared metal column", 15, "factory/column"); + blockFactory.carverHelper.register(blockFactory, "blockFactory"); + } + + // 1.7! Let's go! Let's go-go! + + String[] sGNames = new String[]{ + "White", "Orange", "Magenta", "Light Blue", + "Yellow", "Lime", "Pink", "Gray", + "Light Gray", "Cyan", "Purple", "Blue", + "Brown", "Green", "Red", "Black" + }; + + if(Chisel.featureEnabled("glassStained")) for(int i = 0; i < 16; i++) + { + String blockName = "chisel.stainedGlass" + sGNames[i].replaceAll(" ", ""); + String oreName = "stainedGlass" + sGNames[i].replaceAll(" ", ""); + String texName = "glassdyed/" + sGNames[i].toLowerCase().replaceAll(" ", "") + "-"; + int glassPrefix = (i & 3) << 2; + int glassId = i >> 2; + if(glassPrefix == 0) + { + blockStainedGlass[glassId] = (BlockCarvableGlass) new BlockCarvableGlass().setStained(true).setHardness(0.3F).setStepSound(Block.soundTypeGlass).setBlockName("Stained Glass"); + blockStainedGlass[glassId].carverHelper.registerBlock(blockStainedGlass[glassId], blockName); + blockStainedGlass[glassId].carverHelper.blockName = "Stained Glass"; + } + blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " bubble glass", glassPrefix + 0, texName + "bubble"); + blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " glass panel", glassPrefix + 1, texName + "panel"); + blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " fancy glass panel", glassPrefix + 2, texName + "panel-fancy"); + blockStainedGlass[glassId].carverHelper.addVariation(sGNames[i] + " borderless glass", glassPrefix + 3, texName + "transparent"); + OreDictionary.registerOre(oreName, new ItemStack(Blocks.stained_glass, 1, i)); + Carving.chisel.registerOre(blockName, oreName); + for(CarvableVariation cv : blockStainedGlass[glassId].carverHelper.variations) + { + if(cv.metadata < glassPrefix || cv.metadata >= glassPrefix + 4) continue; + blockStainedGlass[glassId].carverHelper.registerVariation(blockName, cv, blockStainedGlass[glassId], cv.metadata); + } + } + + if(Chisel.featureEnabled("glassStainedPane")) for(int i = 0; i < 16; i++) + { + String blockName = "chisel.stainedGlassPane" + sGNames[i].replaceAll(" ", ""); + String oreName = "stainedGlassPane" + sGNames[i].replaceAll(" ", ""); + String texName = "glasspanedyed/" + sGNames[i].toLowerCase().replaceAll(" ", "") + "-"; + int glassPrefix = (i & 1) << 3; + int glassId = i >> 1; + if(glassPrefix == 0) + { + blockStainedGlassPane[glassId] = (BlockCarvablePane) new BlockCarvablePane(Material.glass, false).setStained(true).setHardness(0.3F).setStepSound(Block.soundTypeGlass).setBlockName("Stained Glass Pane"); + blockStainedGlassPane[glassId].carverHelper.registerBlock(blockStainedGlassPane[glassId], blockName); + blockStainedGlassPane[glassId].carverHelper.blockName = "Stained Glass Pane"; + } + blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " bubble glass", glassPrefix + 0, texName + "bubble"); + blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " glass panel", glassPrefix + 1, texName + "panel"); + blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " fancy glass panel", glassPrefix + 2, texName + "panel-fancy"); + blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " borderless glass", glassPrefix + 3, texName + "transparent"); + blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " quadrant glass", glassPrefix + 4, texName + "quad"); + blockStainedGlassPane[glassId].carverHelper.addVariation(sGNames[i] + " fancy quadrant glass", glassPrefix + 5, texName + "quad-fancy"); + OreDictionary.registerOre(oreName, new ItemStack(Blocks.stained_glass_pane, 1, i)); + Carving.chisel.registerOre(blockName, oreName); + for(CarvableVariation cv : blockStainedGlassPane[glassId].carverHelper.variations) + { + if(cv.metadata < glassPrefix || cv.metadata >= glassPrefix + 8) continue; + blockStainedGlassPane[glassId].carverHelper.registerVariation(blockName, cv, blockStainedGlassPane[glassId], cv.metadata); + } + } + + Blocks.stone.setHarvestLevel("chisel", 0, 0); + } } diff --git a/src/main/java/info/jbcs/minecraft/chisel/ChiselModCompatibility.java b/src/main/java/info/jbcs/minecraft/chisel/ChiselModCompatibility.java old mode 100755 new mode 100644 index 62cd8892..fe97a8e4 --- a/src/main/java/info/jbcs/minecraft/chisel/ChiselModCompatibility.java +++ b/src/main/java/info/jbcs/minecraft/chisel/ChiselModCompatibility.java @@ -1,118 +1,163 @@ -package info.jbcs.minecraft.chisel; - -import net.minecraft.block.Block; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.common.event.FMLPostInitializationEvent; - -public class ChiselModCompatibility { - - - abstract class ClassCompat{ - Class cl; - - public ClassCompat(String name){ - try { - if((cl = Class.forName(name))!=null) - action(); - } catch (ClassNotFoundException e) { - } catch (IllegalArgumentException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - } - - abstract void action() throws Exception; - - abstract class BlockCompat{ - Block block; - - public BlockCompat(String variableName) throws Exception{ - block=(Block) ClassCompat.this.cl.getField(variableName).get(null); - - if(block!=null) - action(); - } - - abstract void action() throws Exception; - }; - }; - - abstract class ClassBlockCompat{ - Block block; - - ClassBlockCompat(final String className,final String blockName){ - new ClassCompat(className){ - @Override void action() throws Exception { - new BlockCompat(blockName){ - @Override void action() throws Exception { - ClassBlockCompat.this.doAction(block); - } - }; - } - }; - } - - void doAction(Block b){ - block=b; - - action(); - } - - abstract void action(); - } - - - public void postInit(FMLPostInitializationEvent event) { - new ClassBlockCompat("shukaro.artifice.ArtificeBlocks","blockMarble"){ - @Override void action(){ - Carving.chisel.addVariation("marble",block,0,99); - block.setHarvestLevel("chisel", 0, 0); - } - }; - new ClassBlockCompat("num.numirp.block.ModBlocks","blockDecor"){ - @Override void action(){ - Carving.chisel.addVariation("marble",block,0,99); - block.setHarvestLevel("chisel", 0, 0); - } - }; - new ClassBlockCompat("mrtjp.projectred.ProjectRedExploration","blockStones"){ - @Override void action(){ - Carving.chisel.addVariation("marble",block,0,99); - block.setHarvestLevel("chisel", 0, 0); - } - }; - - new ClassBlockCompat("mariculture.core.Core","oreBlocks"){ - @Override void action(){ - Carving.chisel.addVariation("limestone",block,3,99); - block.setHarvestLevel("chisel", 0, 3); - } - }; - new ClassBlockCompat("emasher.core.EmasherCore","limestone"){ - @Override void action(){ - Carving.chisel.addVariation("limestone",block,0,99); - block.setHarvestLevel("chisel", 0, 0); - } - }; - - new ClassCompat("Reika.GeoStrata.GeoStrata"){ - @Override void action() throws Exception { - Block[] blocks=(Block[]) cl.getField("blocks").get(null); - - Carving.chisel.addVariation("marble",blocks[0],2,99); - blocks[0].setHarvestLevel("chisel",0,2); - - Carving.chisel.addVariation("limestone",blocks[0],3,99); - blocks[0].setHarvestLevel("chisel",0,3); - } - }; - } - -} +package info.jbcs.minecraft.chisel; + +import info.jbcs.minecraft.chisel.carving.Carving; +import net.minecraft.block.Block; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; + +public class ChiselModCompatibility +{ + + + abstract class ClassCompat + { + Class cl; + + public ClassCompat(String name) + { + try + { + if((cl = Class.forName(name)) != null) + action(); + } catch(ClassNotFoundException e) + { + e.printStackTrace(); + } catch(IllegalArgumentException e) + { + e.printStackTrace(); + } catch(IllegalAccessException e) + { + e.printStackTrace(); + } catch(NoSuchFieldException e) + { + e.printStackTrace(); + } catch(SecurityException e) + { + e.printStackTrace(); + } catch(Exception e) + { + e.printStackTrace(); + } + } + + abstract void action() throws Exception; + + abstract class BlockCompat + { + Block block; + + public BlockCompat(String variableName) throws Exception + { + block = (Block) ClassCompat.this.cl.getField(variableName).get(null); + + if(block != null) + action(); + } + + abstract void action() throws Exception; + } + + ; + } + + ; + + abstract class ClassBlockCompat + { + Block block; + + ClassBlockCompat(final String className, final String blockName) + { + new ClassCompat(className) + { + @Override + void action() throws Exception + { + new BlockCompat(blockName) + { + @Override + void action() throws Exception + { + ClassBlockCompat.this.doAction(block); + } + }; + } + }; + } + + void doAction(Block b) + { + block = b; + + action(); + } + + abstract void action(); + } + + + public void postInit(FMLPostInitializationEvent event) + { + new ClassBlockCompat("shukaro.artifice.ArtificeBlocks", "blockMarble") + { + @Override + void action() + { + Carving.chisel.addVariation("marble", block, 0, 99); + block.setHarvestLevel("chisel", 0, 0); + } + }; + new ClassBlockCompat("num.numirp.block.ModBlocks", "blockDecor") + { + @Override + void action() + { + Carving.chisel.addVariation("marble", block, 0, 99); + block.setHarvestLevel("chisel", 0, 0); + } + }; + new ClassBlockCompat("mrtjp.projectred.ProjectRedExploration", "blockStones") + { + @Override + void action() + { + Carving.chisel.addVariation("marble", block, 0, 99); + block.setHarvestLevel("chisel", 0, 0); + } + }; + + new ClassBlockCompat("mariculture.core.Core", "oreBlocks") + { + @Override + void action() + { + Carving.chisel.addVariation("limestone", block, 3, 99); + block.setHarvestLevel("chisel", 0, 3); + } + }; + new ClassBlockCompat("emasher.core.EmasherCore", "limestone") + { + @Override + void action() + { + Carving.chisel.addVariation("limestone", block, 0, 99); + block.setHarvestLevel("chisel", 0, 0); + } + }; + + new ClassCompat("Reika.GeoStrata.GeoStrata") + { + @Override + void action() throws Exception + { + Block[] blocks = (Block[]) cl.getField("blocks").get(null); + + Carving.chisel.addVariation("marble", blocks[0], 2, 99); + blocks[0].setHarvestLevel("chisel", 0, 2); + + Carving.chisel.addVariation("limestone", blocks[0], 3, 99); + blocks[0].setHarvestLevel("chisel", 0, 3); + } + }; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/ClientProxy.java b/src/main/java/info/jbcs/minecraft/chisel/ClientProxy.java new file mode 100644 index 00000000..79d47bf7 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/ClientProxy.java @@ -0,0 +1,52 @@ +package info.jbcs.minecraft.chisel; + +import info.jbcs.minecraft.chisel.entity.EntityBallOMoss; +import info.jbcs.minecraft.chisel.entity.EntityCloudInABottle; +import info.jbcs.minecraft.chisel.client.render.BlockAdvancedMarbleRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockCarpetRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockEldritchRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockMarblePaneRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockMarblePillarRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockMarbleStairsRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockNoCTMRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockRoadLineRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockSnakeStoneRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockSpikesRenderer; +import info.jbcs.minecraft.chisel.client.render.BlockTexturedOreRenderer; +import info.jbcs.minecraft.chisel.client.render.ItemChiselRenderer; +import net.minecraft.client.renderer.entity.RenderSnowball; +import net.minecraftforge.client.MinecraftForgeClient; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class ClientProxy extends CommonProxy +{ + ItemChiselRenderer renderer = new ItemChiselRenderer(); + + @Override + public void preInit() + { + } + + @Override + public void init() + { + RenderingRegistry.registerBlockHandler(new BlockMarbleStairsRenderer()); + RenderingRegistry.registerBlockHandler(new BlockMarblePaneRenderer()); + RenderingRegistry.registerBlockHandler(new BlockRoadLineRenderer()); + RenderingRegistry.registerBlockHandler(new BlockSnakeStoneRenderer()); + RenderingRegistry.registerBlockHandler(new BlockNoCTMRenderer()); + RenderingRegistry.registerBlockHandler(new BlockSpikesRenderer()); + RenderingRegistry.registerBlockHandler(new BlockMarblePillarRenderer()); + RenderingRegistry.registerBlockHandler(new BlockEldritchRenderer()); + RenderingRegistry.registerBlockHandler(new BlockAdvancedMarbleRenderer()); + RenderingRegistry.registerBlockHandler(new BlockCarpetRenderer()); + + RenderingRegistry.registerBlockHandler(new BlockTexturedOreRenderer()); + + RenderingRegistry.registerEntityRenderingHandler(EntityCloudInABottle.class, new RenderSnowball(Chisel.itemCloudInABottle)); + RenderingRegistry.registerEntityRenderingHandler(EntityBallOMoss.class, new RenderSnowball(Chisel.itemBallOMoss)); + + + MinecraftForgeClient.registerItemRenderer(Chisel.chisel, renderer); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/CommonProxy.java b/src/main/java/info/jbcs/minecraft/chisel/CommonProxy.java new file mode 100644 index 00000000..a2e38f0f --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/CommonProxy.java @@ -0,0 +1,12 @@ +package info.jbcs.minecraft.chisel; + +public class CommonProxy +{ + public void preInit() + { + } + + public void init() + { + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/Crafting.java b/src/main/java/info/jbcs/minecraft/chisel/Crafting.java new file mode 100644 index 00000000..aa14a974 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/Crafting.java @@ -0,0 +1,65 @@ +package info.jbcs.minecraft.chisel; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.CraftingManager; +import net.minecraft.item.crafting.FurnaceRecipes; + +/** + * Created by Pokefenn. + * Licensed under MIT (If this is one of my Mods) + */ +public class Crafting +{ + + + public static void init() + { + Block concreteRecipeBlock = Block.getBlockFromName(Chisel.config.get("tweaks", "concrete recipe block", "gravel", "Unlocalized name of the block that, when burned, will produce concrete (examples: lightgem, stone)").getString()); + if(concreteRecipeBlock == null) concreteRecipeBlock = Blocks.gravel; + + FurnaceRecipes.smelting().func_151393_a(concreteRecipeBlock, new ItemStack(ChiselBlocks.blockConcrete), 0.1F); + + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockSandstoneScribbles, 1), new Object[]{"X", 'X', new ItemStack(ChiselBlocks.blockSandstone, 1, 8),}); + for(int meta = 0; meta < 16; meta++) + { + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarbleSlab, 6, 0), new Object[]{"***", '*', new ItemStack(ChiselBlocks.blockMarble, 1, meta)}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockLimestoneSlab, 6, 0), new Object[]{"***", '*', new ItemStack(ChiselBlocks.blockLimestone, 1, meta)}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarblePillarSlab, 6, 0), new Object[]{"***", '*', new ItemStack(ChiselBlocks.blockMarblePillar, 1, meta)}); + + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarblePillar, 6), new Object[]{"XX", "XX", "XX", 'X', new ItemStack(ChiselBlocks.blockMarble, 1, meta),}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockMarble, 4), new Object[]{"XX", "XX", 'X', new ItemStack(ChiselBlocks.blockMarblePillar, 1, meta),}); + + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockIcePillar, 6), new Object[]{"XX", "XX", "XX", 'X', new ItemStack(ChiselBlocks.blockIce, 1, meta),}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockIce, 4), new Object[]{"XX", "XX", 'X', new ItemStack(ChiselBlocks.blockIcePillar, 1, meta),}); + + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockSandstone, 1), new Object[]{"X", 'X', new ItemStack(ChiselBlocks.blockSandstoneScribbles, 1, meta),}); + + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockCarpet, 8, meta), new Object[]{"YYY", "YXY", "YYY", 'X', new ItemStack(Items.string, 1), 'Y', new ItemStack(Blocks.wool, 1, meta),}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockCarpetFloor, 3, meta), new Object[]{"XX", 'X', new ItemStack(ChiselBlocks.blockCarpet, 1, meta),}); + } + + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockHolystone, 8, 0), new Object[]{"***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.feather, 1)}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockLavastone, 8, 0), new Object[]{"***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.lava_bucket, 1)}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockFft, 8, 0), new Object[]{"***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.gold_nugget, 1)}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockTyrian, 8, 0), new Object[]{"***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.iron_ingot, 1)}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockTemple, 8, 0), new Object[]{"***", "*X*", "***", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.dye, 1, 4)}); + CraftingManager.getInstance().addRecipe(new ItemStack(ChiselBlocks.blockFactory, 32, 0), new Object[]{"*X*", "X X", "*X*", '*', new ItemStack(Blocks.stone, 1), 'X', new ItemStack(Items.iron_ingot, 1)}); + + + if(Chisel.config.get("general", "chiselAlternateRecipe", false, "Use alternative crafting recipe for the chisel").getBoolean(false)) + { + CraftingManager.getInstance().addRecipe(new ItemStack(Chisel.chisel, 1), new Object[]{" YY", " YY", "X ", 'X', Items.stick, 'Y', Items.iron_ingot}); + } else + { + CraftingManager.getInstance().addRecipe(new ItemStack(Chisel.chisel, 1), new Object[]{" Y", "X ", 'X', Items.stick, 'Y', Items.iron_ingot}); + } + + CraftingManager.getInstance().addRecipe(new ItemStack(Chisel.itemBallOMoss, 1), new Object[]{"XYX", "YXY", "XYX", 'X', Blocks.vine, 'Y', Items.stick}); + CraftingManager.getInstance().addRecipe(new ItemStack(Chisel.itemCloudInABottle, 1), new Object[]{"X X", "XYX", " X ", 'X', Blocks.glass, 'Y', Items.quartz}); + + + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/GeneralChiselClient.java b/src/main/java/info/jbcs/minecraft/chisel/GeneralChiselClient.java deleted file mode 100755 index 68737152..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/GeneralChiselClient.java +++ /dev/null @@ -1,206 +0,0 @@ -package info.jbcs.minecraft.chisel; - -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.entity.EntityBallOMossFX; -import info.jbcs.minecraft.chisel.entity.EntityHolystoneFX; -import info.jbcs.minecraft.chisel.entity.EntitySnakestoneObsidianFX; -import info.jbcs.minecraft.utilities.GeneralClient; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.EntityPlayerSP; -import net.minecraft.client.particle.EffectRenderer; -import net.minecraft.client.particle.EntityDiggingFX; -import net.minecraft.client.particle.EntityLavaFX; -import net.minecraft.entity.Entity; -import net.minecraft.world.World; - - -public class GeneralChiselClient { - public static Random rand = new Random(); - public static int tick=0; - - public static void spawnLavastoneFX(World world, BlockLavastone block, int x, int y, int z) { - if(Chisel.particlesTickrate!=0 && tick++%Chisel.particlesTickrate!=0) return; - - 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; - - EntityLavaFX res = new EntityLavaFX(world, x1, y1, z1); -// res.motionX=x1-x-0.5; -// res.motionY=y1-y-0.5; -// res.motionZ=z1-z-0.5; - double multiplier=0.45; - res.motionX=-multiplier*(x1-x-0.5); - res.motionY=multiplier*(y1-y-0.5); - res.motionZ=-multiplier*(z1-z-0.5); - - Minecraft.getMinecraft().effectRenderer.addEffect(res); - } - - public static void spawnHolystoneFX(World world, BlockHolystone block, int x, int y, int z) { - if(Chisel.particlesTickrate!=0 && tick++%Chisel.particlesTickrate!=0) return; - - 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; - - EntityHolystoneFX res = new EntityHolystoneFX(world, block, x1, y1, z1); - Minecraft.getMinecraft().effectRenderer.addEffect(res); - } - - public static void spawnSnakestoneObsidianFX(World world, BlockSnakestoneObsidian block, int x, int y, int z) { - if(Chisel.particlesTickrate==0 || tick++%Chisel.particlesTickrate==0){ - EntitySnakestoneObsidianFX res = new EntitySnakestoneObsidianFX(world, block, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(res); - } - } - - public static void spawnBallOMossFX(World world, double x, double y, double z) { - if(Chisel.particlesTickrate==0 || tick++%Chisel.particlesTickrate==0){ - EntityBallOMossFX res = new EntityBallOMossFX(world, x, y, z); - Minecraft.getMinecraft().effectRenderer.addEffect(res); - } - } - - - public static EntityDiggingFX addBlockHitEffects(World world, int x, int y, int z, int side) { - Block block = world.getBlock(x, y, z); - if (block.isAir(world, x, y, z)) - return null; - - EffectRenderer renderer = Minecraft.getMinecraft().effectRenderer; - - float f = 0.1F; - double d0 = x + rand.nextDouble() * (block.getBlockBoundsMaxX() - block.getBlockBoundsMinX() - f * 2.0F) + f + block.getBlockBoundsMinX(); - double d1 = y + rand.nextDouble() * (block.getBlockBoundsMaxY() - block.getBlockBoundsMinY() - f * 2.0F) + f + block.getBlockBoundsMinY(); - double d2 = z + rand.nextDouble() * (block.getBlockBoundsMaxZ() - block.getBlockBoundsMinZ() - f * 2.0F) + f + block.getBlockBoundsMinZ(); - - switch (side) { - case 0: - d1 = y + block.getBlockBoundsMinY() - f; - break; - case 1: - d1 = y + block.getBlockBoundsMaxY() + f; - break; - case 2: - d2 = z + block.getBlockBoundsMinZ() - f; - break; - case 3: - d2 = z + block.getBlockBoundsMaxZ() + f; - break; - case 4: - d0 = x + block.getBlockBoundsMinX() - f; - break; - case 5: - d0 = x + block.getBlockBoundsMaxX() + f; - break; - } - - EntityDiggingFX res = new EntityDiggingFX(world, d0, d1, d2, 0.0D, 0.0D, 0.0D, block, world.getBlockMetadata(x, y, z), side); -// res.func_70596_a(x, y, z); - res.motionX = d0 - (x + 0.5); - res.motionY = d1 - (y + 0.5); - res.motionZ = d2 - (z + 0.5); - - renderer.addEffect(res); - - return res; - } - - public static void spawnChiselEffect(int x, int y, int z, String sound) { - World world = Minecraft.getMinecraft().theWorld; - for (int side = 0; side < 6; side++) { - for (int j = 0; j < 16; j++) { - EntityDiggingFX fx = addBlockHitEffects(Minecraft.getMinecraft().theWorld, x, y, z, side); - if(fx==null) return; - - fx.multipleParticleScaleBy(0.25f + 0.5f * rand.nextFloat()); - fx.multiplyVelocity(0.3f * rand.nextFloat()); - } - } - - GeneralClient.playChiselSound(world, x, y, z, sound); - } - - public static void speedupPlayer(World world, Entity entity, double concreteVelocity) { - double velocity=Math.sqrt(entity.motionX*entity.motionX+entity.motionZ*entity.motionZ); - - if(! (entity instanceof EntityPlayerSP)) return; - if(velocity==0) return; - if(velocity>=Chisel.concreteVelocity) return; - - EntityPlayerSP player=(EntityPlayerSP) entity; - - if(Math.abs(player.movementInput.moveForward) < 0.75f && Math.abs(player.movementInput.moveStrafe) < 0.75f) return; - - entity.motionX = Chisel.concreteVelocity * entity.motionX / velocity; - entity.motionZ = Chisel.concreteVelocity * entity.motionZ / velocity; - } - -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/MarbleWorldGenerator.java b/src/main/java/info/jbcs/minecraft/chisel/MarbleWorldGenerator.java old mode 100755 new mode 100644 index ae5e0b89..4869dc27 --- a/src/main/java/info/jbcs/minecraft/chisel/MarbleWorldGenerator.java +++ b/src/main/java/info/jbcs/minecraft/chisel/MarbleWorldGenerator.java @@ -1,37 +1,39 @@ -package info.jbcs.minecraft.chisel; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.world.World; -import net.minecraft.world.chunk.IChunkProvider; -import net.minecraft.world.gen.feature.WorldGenMinable; -import cpw.mods.fml.common.IWorldGenerator; - -public class MarbleWorldGenerator implements IWorldGenerator { - WorldGenMinable gen; - int amount; - - public MarbleWorldGenerator(Block id, int count, int am) { - gen = new WorldGenMinable(id, count); - amount = am; - } - - /** - * Standard ore generation helper. Generates most ores. - */ - protected void genStandardOre1(World world, Random random, int x, int z, int bot, int top) { - for (int l = 0; l < amount; ++l) { - int i1 = x + random.nextInt(16); - int j1 = bot + random.nextInt(top - bot); - int k1 = z + random.nextInt(16); - gen.generate(world, random, i1, j1, k1); - } - } - - @Override - public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { - genStandardOre1(world, random, chunkX*16, chunkZ*16, 40, 128); - } -} - +package info.jbcs.minecraft.chisel; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.feature.WorldGenMinable; +import cpw.mods.fml.common.IWorldGenerator; + +public class MarbleWorldGenerator implements IWorldGenerator +{ + WorldGenMinable gen; + int amount; + + public MarbleWorldGenerator(Block id, int count, int am) + { + gen = new WorldGenMinable(id, count); + amount = am; + } + + protected void genStandardOre1(World world, Random random, int x, int z, int bot, int top) + { + for(int l = 0; l < amount; ++l) + { + int i1 = x + random.nextInt(16); + int j1 = bot + random.nextInt(top - bot); + int k1 = z + random.nextInt(16); + gen.generate(world, random, i1, j1, k1); + } + } + + @Override + public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) + { + genStandardOre1(world, random, chunkX * 16, chunkZ * 16, 40, 128); + } +} + diff --git a/src/main/java/info/jbcs/minecraft/chisel/Packets.java b/src/main/java/info/jbcs/minecraft/chisel/Packets.java old mode 100755 new mode 100644 index b29c7c75..25c18077 --- a/src/main/java/info/jbcs/minecraft/chisel/Packets.java +++ b/src/main/java/info/jbcs/minecraft/chisel/Packets.java @@ -1,52 +1,56 @@ -package info.jbcs.minecraft.chisel; - -import java.io.IOException; - -import info.jbcs.minecraft.utilities.General; -import pl.asie.lib.network.MessageHandlerBase; -import pl.asie.lib.network.Packet; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.network.INetHandler; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.ServerConfigurationManager; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; - -public class Packets extends MessageHandlerBase { - public static final int CHISELED = 1; - - public void onChiseled(Packet stream, EntityPlayer player) throws IOException { - final int x=stream.readInt(); - final int y=stream.readInt(); - final int z=stream.readInt(); - - switch(FMLCommonHandler.instance().getEffectiveSide()){ - case SERVER: - Packet packet = Chisel.packet.create(CHISELED).writeInt(x).writeInt(y).writeInt(z); - Chisel.packet.sendToAllAround(packet, new TargetPoint(player.dimension, x, y, z, 30.0f)); - break; - case CLIENT: - Block block =player.worldObj.getBlock(x,y,z); - int blockMeta=player.worldObj.getBlockMetadata(x,y,z); - GeneralChiselClient.spawnChiselEffect(x, y, z, Carving.chisel.getVariationSound(block, blockMeta)); - - break; - default: - break; - } - - } - - @Override - public void onMessage(Packet packet, INetHandler handler, - EntityPlayer player, int command) throws IOException { - switch(command) { - case CHISELED: - onChiseled(packet, player); - return; - } - } - -} +package info.jbcs.minecraft.chisel; + +import java.io.IOException; + +import info.jbcs.minecraft.chisel.carving.Carving; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.network.INetHandler; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; + +public class Packets// extends MessageHandlerBase +{ + + //TODO packet + public static final int CHISELED = 1; + /* + + public void onChiseled(Packet stream, EntityPlayer player) throws IOException + { + final int x = stream.readInt(); + final int y = stream.readInt(); + final int z = stream.readInt(); + + switch(FMLCommonHandler.instance().getEffectiveSide()) + { + case SERVER: + Packet packet = Chisel.packet.create(CHISELED).writeInt(x).writeInt(y).writeInt(z); + Chisel.packet.sendToAllAround(packet, new TargetPoint(player.dimension, x, y, z, 30.0f)); + break; + case CLIENT: + Block block = player.worldObj.getBlock(x, y, z); + int blockMeta = player.worldObj.getBlockMetadata(x, y, z); + GeneralChiselClient.spawnChiselEffect(x, y, z, Carving.chisel.getVariationSound(block, blockMeta)); + + break; + default: + break; + } + + } + + @Override + public void onMessage(Packet packet, INetHandler handler, + EntityPlayer player, int command) throws IOException + { + switch(command) + { + case CHISELED: + onChiseled(packet, player); + return; + } + } + +*/ +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/Proxy.java b/src/main/java/info/jbcs/minecraft/chisel/Proxy.java deleted file mode 100755 index bafc08d8..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/Proxy.java +++ /dev/null @@ -1,8 +0,0 @@ -package info.jbcs.minecraft.chisel; - -public class Proxy { - public void preInit() { - } - public void init() { - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/ProxyClient.java b/src/main/java/info/jbcs/minecraft/chisel/ProxyClient.java deleted file mode 100755 index a5fd26ee..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/ProxyClient.java +++ /dev/null @@ -1,53 +0,0 @@ -package info.jbcs.minecraft.chisel; - -import info.jbcs.minecraft.chisel.entity.EntityBallOMoss; -import info.jbcs.minecraft.chisel.entity.EntityCloudInABottle; -import info.jbcs.minecraft.chisel.render.BlockAdvancedMarbleRenderer; -import info.jbcs.minecraft.chisel.render.BlockCarpetRenderer; -import info.jbcs.minecraft.chisel.render.BlockEldritchRenderer; -import info.jbcs.minecraft.chisel.render.BlockMarblePaneRenderer; -import info.jbcs.minecraft.chisel.render.BlockMarblePillarRenderer; -import info.jbcs.minecraft.chisel.render.BlockMarbleStairsRenderer; -import info.jbcs.minecraft.chisel.render.BlockNoCTMRenderer; -import info.jbcs.minecraft.chisel.render.BlockRoadLineRenderer; -import info.jbcs.minecraft.chisel.render.BlockSnakeStoneRenderer; -import info.jbcs.minecraft.chisel.render.BlockSpikesRenderer; -import info.jbcs.minecraft.chisel.render.BlockTexturedOreRenderer; -import info.jbcs.minecraft.chisel.render.ItemChiselRenderer; -import net.minecraft.client.renderer.entity.RenderSnowball; -import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class ProxyClient extends Proxy { - ItemChiselRenderer renderer = new ItemChiselRenderer(); - - @Override - public void preInit() { - } - - @Override - public void init() { - RenderingRegistry.registerBlockHandler(new BlockMarbleStairsRenderer()); - RenderingRegistry.registerBlockHandler(new BlockMarblePaneRenderer()); - RenderingRegistry.registerBlockHandler(new BlockRoadLineRenderer()); - RenderingRegistry.registerBlockHandler(new BlockSnakeStoneRenderer()); - RenderingRegistry.registerBlockHandler(new BlockNoCTMRenderer()); - RenderingRegistry.registerBlockHandler(new BlockSpikesRenderer()); - RenderingRegistry.registerBlockHandler(new BlockMarblePillarRenderer()); - RenderingRegistry.registerBlockHandler(new BlockEldritchRenderer()); - RenderingRegistry.registerBlockHandler(new BlockAdvancedMarbleRenderer()); - RenderingRegistry.registerBlockHandler(new BlockCarpetRenderer()); - - - RenderingRegistry.registerBlockHandler(new BlockTexturedOreRenderer()); - - RenderingRegistry.registerEntityRenderingHandler(EntityCloudInABottle.class, new RenderSnowball(Chisel.itemCloudInABottle)); - RenderingRegistry.registerEntityRenderingHandler(EntityBallOMoss.class, new RenderSnowball(Chisel.itemBallOMoss)); - - - MinecraftForgeClient.registerItemRenderer(Chisel.chisel, renderer); -// MinecraftForgeClient.registerItemRenderer(Chisel.needle.itemID, renderer); - - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/StepSoundEx.java b/src/main/java/info/jbcs/minecraft/chisel/StepSoundEx.java old mode 100755 new mode 100644 index 0b76c154..71294592 --- a/src/main/java/info/jbcs/minecraft/chisel/StepSoundEx.java +++ b/src/main/java/info/jbcs/minecraft/chisel/StepSoundEx.java @@ -1,31 +1,34 @@ -package info.jbcs.minecraft.chisel; - -import net.minecraft.block.Block.SoundType; - -public class StepSoundEx extends SoundType { - String stepName; - String placeName; - - public StepSoundEx(String name,String stepName,String placeName,float volume) { - super(name, volume, 1.0f); - - this.stepName=stepName; - this.placeName=placeName; - } - - @Override - public String getBreakSound() { - return this.soundName; - } -/* - @Override - public String getStepSound() { - return stepName; - } - - @Override - public String getPlaceSound() { - return placeName; - } -*/ -} +package info.jbcs.minecraft.chisel; + +import net.minecraft.block.Block.SoundType; + +public class StepSoundEx extends SoundType +{ + String stepName; + String placeName; + + public StepSoundEx(String name, String stepName, String placeName, float volume) + { + super(name, volume, 1.0f); + + this.stepName = stepName; + this.placeName = placeName; + } + + @Override + public String getBreakSound() + { + return this.soundName; + } +/* + @Override + public String getStepSound() { + return stepName; + } + + @Override + public String getPlaceSound() { + return placeName; + } +*/ +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/api/Carvable.java b/src/main/java/info/jbcs/minecraft/chisel/api/Carvable.java deleted file mode 100755 index ca087821..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/api/Carvable.java +++ /dev/null @@ -1,7 +0,0 @@ -package info.jbcs.minecraft.chisel.api; - -import info.jbcs.minecraft.chisel.CarvableVariation; - -public interface Carvable { - public CarvableVariation getVariation(int metadata); -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/api/ICarvable.java b/src/main/java/info/jbcs/minecraft/chisel/api/ICarvable.java new file mode 100644 index 00000000..9f42de61 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/api/ICarvable.java @@ -0,0 +1,8 @@ +package info.jbcs.minecraft.chisel.api; + +import info.jbcs.minecraft.chisel.carving.CarvableVariation; + +public interface ICarvable +{ + public CarvableVariation getVariation(int metadata); +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvable.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvable.java old mode 100755 new mode 100644 index 858b4885..d7de72f1 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvable.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvable.java @@ -1,83 +1,94 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -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.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; - -public class BlockCarvable extends Block implements Carvable { - public CarvableHelper carverHelper; - private boolean isAlpha; - - public BlockCarvable() { - this(Material.rock); - } - - public BlockCarvable(Material m) { - super(m); - - carverHelper = new CarvableHelper(); - - setCreativeTab(Chisel.tabChisel); - } - - public BlockCarvable setStained(boolean a) { - this.isAlpha = a; - return this; - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() - { - return isAlpha ? 1 : 0; - } - - @Override - public IIcon getIcon(int side, int metadata) { - return carverHelper.getIcon(side, metadata); - } - - @Override - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ - return carverHelper.getIcon(world, x, y, z, side); - } - - @Override - public int damageDropped(int i) { - return i; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - carverHelper.registerBlockIcons("Chisel",this,register); - } - - @Override - public void getSubBlocks(Item item, CreativeTabs tabs, List list){ - carverHelper.registerSubBlocks(this,tabs,list); - } - - @Override - public int getRenderType() { - return Chisel.RenderCTMId; - } - - @Override - public CarvableVariation getVariation(int metadata) { - return carverHelper.getVariation(metadata); - } - -} +package info.jbcs.minecraft.chisel.block; + +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.Chisel; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.item.Item; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockCarvable extends Block implements ICarvable +{ + public CarvableHelper carverHelper; + private boolean isAlpha; + + public BlockCarvable() + { + this(Material.rock); + } + + public BlockCarvable(Material m) + { + super(m); + + carverHelper = new CarvableHelper(); + + setCreativeTab(Chisel.tabChisel); + } + + public BlockCarvable setStained(boolean a) + { + this.isAlpha = a; + return this; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() + { + return isAlpha ? 1 : 0; + } + + @Override + public IIcon getIcon(int side, int metadata) + { + return carverHelper.getIcon(side, metadata); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) + { + return carverHelper.getIcon(world, x, y, z, side); + } + + @Override + public int damageDropped(int i) + { + return i; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + carverHelper.registerBlockIcons("Chisel", this, register); + } + + @Override + public void getSubBlocks(Item item, CreativeTabs tabs, List list) + { + carverHelper.registerSubBlocks(this, tabs, list); + } + + @Override + public int getRenderType() + { + return Chisel.RenderCTMId; + } + + @Override + public CarvableVariation getVariation(int metadata) + { + return carverHelper.getVariation(metadata); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvableGlass.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvableGlass.java old mode 100755 new mode 100644 index ac316896..7e082cd1 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvableGlass.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvableGlass.java @@ -1,77 +1,87 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.BlockGlass; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; - -public class BlockCarvableGlass extends BlockGlass implements Carvable { - public CarvableHelper carverHelper; - private boolean isAlpha = false; - - public BlockCarvableGlass() { - super(Material.glass, false); - - carverHelper = new CarvableHelper(); - - setCreativeTab(Chisel.tabChisel); - } - - public BlockCarvableGlass setStained(boolean a) { - this.isAlpha = a; - return this; - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - public int getRenderType() { - return Chisel.RenderCTMId; - } - - @Override - public IIcon getIcon(int side, int metadata) { - return carverHelper.getIcon(side, metadata); - } - - @Override - public int damageDropped(int i) { - return i; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - carverHelper.registerBlockIcons("Chisel",this,register); - } - - @Override - public void getSubBlocks(Item item, CreativeTabs tabs, List list){ - carverHelper.registerSubBlocks(this,tabs,list); - } - - @Override - public CarvableVariation getVariation(int metadata) { - return carverHelper.getVariation(metadata); - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() - { - return isAlpha ? 1 : 0; - } -} +package info.jbcs.minecraft.chisel.block; + +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.Chisel; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockGlass; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; + +public class BlockCarvableGlass extends BlockGlass implements ICarvable +{ + public CarvableHelper carverHelper; + private boolean isAlpha = false; + + public BlockCarvableGlass() + { + super(Material.glass, false); + + carverHelper = new CarvableHelper(); + + setCreativeTab(Chisel.tabChisel); + } + + public BlockCarvableGlass setStained(boolean a) + { + this.isAlpha = a; + return this; + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + + @Override + public int getRenderType() + { + return Chisel.RenderCTMId; + } + + @Override + public IIcon getIcon(int side, int metadata) + { + return carverHelper.getIcon(side, metadata); + } + + @Override + public int damageDropped(int i) + { + return i; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + carverHelper.registerBlockIcons("Chisel", this, register); + } + + @Override + public void getSubBlocks(Item item, CreativeTabs tabs, List list) + { + carverHelper.registerSubBlocks(this, tabs, list); + } + + @Override + public CarvableVariation getVariation(int metadata) + { + return carverHelper.getVariation(metadata); + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() + { + return isAlpha ? 1 : 0; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePane.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePane.java old mode 100755 new mode 100644 index 99339c95..ffda7f39 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePane.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePane.java @@ -1,74 +1,82 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; -import info.jbcs.minecraft.chisel.render.BlockMarblePaneRenderer; - -import java.util.List; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockPane; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; - -public class BlockCarvablePane extends BlockPane implements Carvable { - public CarvableHelper carverHelper; - private boolean isAlpha; - - public BlockCarvablePane(Material material, boolean drops) { - super("", "", material, drops); - - carverHelper = new CarvableHelper(); - - setCreativeTab(Chisel.tabChisel); - } - - public BlockCarvablePane setStained(boolean a) { - this.isAlpha = a; - return this; - } - - @Override - @SideOnly(Side.CLIENT) - public int getRenderBlockPass() - { - return isAlpha ? 1 : 0; - } - - @Override - public int getRenderType() { - return BlockMarblePaneRenderer.id; - } - - @Override - public IIcon getIcon(int side, int metadata) { - return carverHelper.getIcon(side, metadata); - } - - @Override - public int damageDropped(int i) { - return i; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - carverHelper.registerBlockIcons("Chisel",this,register); - } - - @Override - public void getSubBlocks(Item item, CreativeTabs tabs, List list){ - carverHelper.registerSubBlocks(this,tabs,list); - } - - @Override - public CarvableVariation getVariation(int metadata) { - return carverHelper.getVariation(metadata); - } -} +package info.jbcs.minecraft.chisel.block; + +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.Chisel; +import info.jbcs.minecraft.chisel.client.render.BlockMarblePaneRenderer; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockPane; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; + +public class BlockCarvablePane extends BlockPane implements ICarvable +{ + public CarvableHelper carverHelper; + public boolean isAlpha; + + public BlockCarvablePane(Material material, boolean drops) + { + super("", "", material, drops); + + carverHelper = new CarvableHelper(); + + setCreativeTab(Chisel.tabChisel); + } + + public BlockCarvablePane setStained(boolean a) + { + this.isAlpha = a; + return this; + } + + @Override + @SideOnly(Side.CLIENT) + public int getRenderBlockPass() + { + return isAlpha ? 1 : 0; + } + + @Override + public int getRenderType() + { + return BlockMarblePaneRenderer.id; + } + + @Override + public IIcon getIcon(int side, int metadata) + { + return carverHelper.getIcon(side, metadata); + } + + @Override + public int damageDropped(int i) + { + return i; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + carverHelper.registerBlockIcons("Chisel", this, register); + } + + @Override + public void getSubBlocks(Item item, CreativeTabs tabs, List list) + { + carverHelper.registerSubBlocks(this, tabs, list); + } + + @Override + public CarvableVariation getVariation(int metadata) + { + return carverHelper.getVariation(metadata); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePowered.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePowered.java old mode 100755 new mode 100644 index ba125fe9..8d175c49 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePowered.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePowered.java @@ -1,32 +1,36 @@ -package info.jbcs.minecraft.chisel.block; - -import net.minecraft.block.material.Material; -import net.minecraft.world.IBlockAccess; - -public class BlockCarvablePowered extends BlockCarvable { - public BlockCarvablePowered(Material m) { - super(m); - } - - /** - * Can this block provide power. Only wire currently seems to have this - * change based on its state. - */ - @Override - public boolean canProvidePower() { - return true; - } - - /** - * Returns true if the block is emitting indirect/weak redstone power on the - * specified side. If isBlockNormalCube returns true, standard redstone - * propagation rules will apply instead and this will not be called. Args: - * World, X, Y, Z, side. Note that the side is reversed - eg it is 1 (up) - * when checking the bottom of the block. - */ - @Override - public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) { - return 15; - } - -} +package info.jbcs.minecraft.chisel.block; + +import net.minecraft.block.material.Material; +import net.minecraft.world.IBlockAccess; + +public class BlockCarvablePowered extends BlockCarvable +{ + public BlockCarvablePowered(Material m) + { + super(m); + } + + /** + * Can this block provide power. Only wire currently seems to have this + * change based on its state. + */ + @Override + public boolean canProvidePower() + { + return true; + } + + /** + * Returns true if the block is emitting indirect/weak redstone power on the + * specified side. If isBlockNormalCube returns true, standard redstone + * propagation rules will apply instead and this will not be called. Args: + * World, X, Y, Z, side. Note that the side is reversed - eg it is 1 (up) + * when checking the bottom of the block. + */ + @Override + public int isProvidingWeakPower(IBlockAccess par1IBlockAccess, int par2, int par3, int par4, int par5) + { + return 15; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCloud.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCloud.java old mode 100755 new mode 100644 index 88d88016..12afd455 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockCloud.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockCloud.java @@ -1,67 +1,81 @@ -package info.jbcs.minecraft.chisel.block; - - -import java.util.Random; - -import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.item.Item; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; - -public class BlockCloud extends BlockCarvable { - - public BlockCloud() { - super(Material.ice); - - useNeighborBrightness = true; - } - - @Override - public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) { - entity.fallDistance = 0.0F; - - if (entity.motionY < 0.0D) { - entity.motionY *= 0.0050000000000000001D; - } else if(entity.motionY>0){ - entity.motionY+=0.0285; - } - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public int getRenderBlockPass() { - return 1; - } - - - @Override - public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l) { - return super.shouldSideBeRendered(iblockaccess, i, j, k, 1 - l); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k) { - return AxisAlignedBB.getBoundingBox(i+0.2, j, k+0.2, i+0.8, j+0.2, k+0.8); - } - - @Override - public Item getItemDropped(int par1, Random rand, int par3) { - return Item.getItemFromBlock(this); - } - - @Override - public int quantityDropped(Random rand) { - return 0; - } - - @Override - public int damageDropped(int meta) { - return 0; - } -} +package info.jbcs.minecraft.chisel.block; + + +import java.util.Random; + +import info.jbcs.minecraft.chisel.Chisel; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockCloud extends BlockCarvable +{ + + public BlockCloud() + { + super(Material.ice); + + useNeighborBrightness = true; + } + + @Override + public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity) + { + entity.fallDistance = 0.0F; + + if(entity.motionY < 0.0D) + { + entity.motionY *= 0.0050000000000000001D; + } else if(entity.motionY > 0) + { + entity.motionY += 0.0285; + } + } + + @Override + public boolean isOpaqueCube() + { + return false; + } + + + @Override + public int getRenderBlockPass() + { + return Chisel.ghostCloud ? 1 : 0; + } + + + @Override + public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l) + { + return super.shouldSideBeRendered(iblockaccess, i, j, k, 1 - l); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int i, int j, int k) + { + return AxisAlignedBB.getBoundingBox(i + 0.2, j, k + 0.2, i + 0.8, j + 0.2, k + 0.8); + } + + @Override + public Item getItemDropped(int par1, Random rand, int par3) + { + return Item.getItemFromBlock(this); + } + + @Override + public int quantityDropped(Random rand) + { + return 0; + } + + @Override + public int damageDropped(int meta) + { + return 0; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockConcrete.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockConcrete.java old mode 100755 new mode 100644 index 6d671d70..126385aa --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockConcrete.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockConcrete.java @@ -1,33 +1,37 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.GeneralChiselClient; -import net.minecraft.entity.Entity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.world.World; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.relauncher.Side; - -public class BlockConcrete extends BlockCarvable { - - public BlockConcrete() { - super(); - } - - @Override - public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) { - float f = 0.125F; - return AxisAlignedBB.getAABBPool().getAABB(par2, par3, par4, (par2 + 1), ((par3 + 1) - f), (par4 + 1)); - } - - @Override - public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { - if (FMLCommonHandler.instance().getEffectiveSide() != Side.CLIENT) - return; - if(Chisel.concreteVelocity==0) - return; - - GeneralChiselClient.speedupPlayer(world,entity,Chisel.concreteVelocity); - } - -} +package info.jbcs.minecraft.chisel.block; + +import info.jbcs.minecraft.chisel.Chisel; +import info.jbcs.minecraft.chisel.client.GeneralChiselClient; +import net.minecraft.entity.Entity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.relauncher.Side; + +public class BlockConcrete extends BlockCarvable +{ + + public BlockConcrete() + { + super(); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) + { + float f = 0.125F; + return AxisAlignedBB.getAABBPool().getAABB(par2, par3, par4, (par2 + 1), ((par3 + 1) - f), (par4 + 1)); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) + { + if(FMLCommonHandler.instance().getEffectiveSide() != Side.CLIENT) + return; + if(Chisel.concreteVelocity == 0) + return; + + GeneralChiselClient.speedupPlayer(world, entity, Chisel.concreteVelocity); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockEldritch.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockEldritch.java old mode 100755 new mode 100644 index 09a4c666..32d47a1f --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockEldritch.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockEldritch.java @@ -1,17 +1,20 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.Chisel; - - -public class BlockEldritch extends BlockCarvable { - - public BlockEldritch() { - super(); - } - - @Override - public int getRenderType() { - return Chisel.RenderEldritchId; - } - -} +package info.jbcs.minecraft.chisel.block; + +import info.jbcs.minecraft.chisel.Chisel; + + +public class BlockEldritch extends BlockCarvable +{ + + public BlockEldritch() + { + super(); + } + + @Override + public int getRenderType() + { + return Chisel.RenderEldritchId; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockHolystone.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockHolystone.java old mode 100755 new mode 100644 index e7f2aef6..8aaf77fe --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockHolystone.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockHolystone.java @@ -1,35 +1,39 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.GeneralChiselClient; -import info.jbcs.minecraft.utilities.General; - -import java.util.Random; - -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 BlockHolystone extends BlockCarvable{ - public IIcon iconStar; - - public BlockHolystone(Material m) { - super(m); - - this.setLightLevel(0.25F); - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random random) { - if(General.rand.nextInt(4)==0) - GeneralChiselClient.spawnHolystoneFX(world,this,x,y,z); - } - - @Override - public void registerBlockIcons(IIconRegister register) { - super.registerBlockIcons(register); - - iconStar=register.registerIcon("Chisel:holystone/particles/star"); - } - -} +package info.jbcs.minecraft.chisel.block; + +import info.jbcs.minecraft.chisel.client.GeneralChiselClient; +import info.jbcs.minecraft.utilities.General; + +import java.util.Random; + +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 BlockHolystone extends BlockCarvable +{ + public IIcon iconStar; + + public BlockHolystone(Material m) + { + super(m); + + this.setLightLevel(0.25F); + } + + @Override + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + if(General.rand.nextInt(4) == 0) + GeneralChiselClient.spawnHolystoneFX(world, this, x, y, z); + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + super.registerBlockIcons(register); + + iconStar = register.registerIcon("Chisel:holystone/particles/star"); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockLavastone.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockLavastone.java old mode 100755 new mode 100644 index a4d6f9d7..2e68e39e --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockLavastone.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockLavastone.java @@ -1,22 +1,25 @@ -package info.jbcs.minecraft.chisel.block; - - -import info.jbcs.minecraft.chisel.GeneralChiselClient; - -import java.util.Random; - -import net.minecraft.block.material.Material; -import net.minecraft.world.World; - -public class BlockLavastone extends BlockMarbleTexturedOre { - public BlockLavastone(Material mat, String baseIcon) { - super(mat, baseIcon); - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random random) { - if(random.nextInt(8)==0) - GeneralChiselClient.spawnLavastoneFX(world,this,x,y,z); - } - -} +package info.jbcs.minecraft.chisel.block; + + +import info.jbcs.minecraft.chisel.client.GeneralChiselClient; + +import java.util.Random; + +import net.minecraft.block.material.Material; +import net.minecraft.world.World; + +public class BlockLavastone extends BlockMarbleTexturedOre +{ + public BlockLavastone(Material mat, String baseIcon) + { + super(mat, baseIcon); + } + + @Override + public void randomDisplayTick(World world, int x, int y, int z, Random random) + { + if(random.nextInt(8) == 0) + GeneralChiselClient.spawnLavastoneFX(world, this, x, y, z); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockLightstoneCarvable.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockLightstoneCarvable.java old mode 100755 new mode 100644 index 82e15dd4..4576936f --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockLightstoneCarvable.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockLightstoneCarvable.java @@ -1,27 +1,35 @@ -package info.jbcs.minecraft.chisel.block; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; - -public class BlockLightstoneCarvable extends BlockCarvable { - public BlockLightstoneCarvable() { - super(Material.glass); - } - - @Override public int quantityDropped(Random random) { - return Blocks.glowstone.quantityDropped(random); - } - - @Override public Item getItemDropped(int i,Random random,int a) { - return Items.glowstone_dust; - } - - @Override public int damageDropped(int i) { - return i; - } -} +package info.jbcs.minecraft.chisel.block; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; + +public class BlockLightstoneCarvable extends BlockCarvable +{ + public BlockLightstoneCarvable() + { + super(Material.glass); + } + + @Override + public int quantityDropped(Random random) + { + return Blocks.glowstone.quantityDropped(random); + } + + @Override + public Item getItemDropped(int i, Random random, int a) + { + return Items.glowstone_dust; + } + + @Override + public int damageDropped(int i) + { + return i; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleBookshelf.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleBookshelf.java old mode 100755 new mode 100644 index b34c8fe6..d9ab0698 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleBookshelf.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleBookshelf.java @@ -1,51 +1,58 @@ -package info.jbcs.minecraft.chisel.block; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockMarbleBookshelf extends BlockCarvable { - - public BlockMarbleBookshelf() { - super(); - } - - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - if(side<2) - return Blocks.planks.getBlockTextureFromSide(side); - return super.getIcon(side, metadata); - } - - @Override - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ - if(side<2) - return Blocks.planks.getBlockTextureFromSide(side); - return super.getIcon(world, x, y, z, side); - } - - @Override - public int quantityDropped(Random par1Random) { - return 3; - } - - @Override - public Item getItemDropped(int par1, Random par2Random, int par3) { - return Items.book; - } - - @Override - public float getEnchantPowerBonus(World world, int x, int y, int z) { - return 1; - } -} +package info.jbcs.minecraft.chisel.block; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockMarbleBookshelf extends BlockCarvable +{ + + public BlockMarbleBookshelf() + { + super(); + } + + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) + { + if(side < 2) + return Blocks.planks.getBlockTextureFromSide(side); + return super.getIcon(side, metadata); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) + { + if(side < 2) + return Blocks.planks.getBlockTextureFromSide(side); + return super.getIcon(world, x, y, z, side); + } + + @Override + public int quantityDropped(Random par1Random) + { + return 3; + } + + @Override + public Item getItemDropped(int par1, Random par2Random, int par3) + { + return Items.book; + } + + @Override + public float getEnchantPowerBonus(World world, int x, int y, int z) + { + return 1; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleCarpet.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleCarpet.java old mode 100755 new mode 100644 index 005e2acc..84a211bc --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleCarpet.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleCarpet.java @@ -1,63 +1,72 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; - -import java.util.List; - -import net.minecraft.block.BlockCarpet; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; - -public class BlockMarbleCarpet extends BlockCarpet implements Carvable { - public CarvableHelper carverHelper; - - public BlockMarbleCarpet(Material m) { - carverHelper = new CarvableHelper(); - - setCreativeTab(Chisel.tabChisel); - } - - - @Override - public IIcon getIcon(int side, int metadata) { - return carverHelper.getIcon(side, metadata); - } - - @Override - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ - return carverHelper.getIcon(world, x, y, z, side); - } - - @Override - public int damageDropped(int i) { - return i; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - carverHelper.registerBlockIcons("Chisel",this,register); - } - - @Override - public void getSubBlocks(Item item, CreativeTabs tabs, List list){ - carverHelper.registerSubBlocks(this,tabs,list); - } - - @Override - public int getRenderType() { - return Chisel.RenderCarpetId; - } - - @Override - public CarvableVariation getVariation(int metadata) { - return carverHelper.getVariation(metadata); - } - -} +package info.jbcs.minecraft.chisel.block; + +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.Chisel; + +import java.util.List; + +import net.minecraft.block.BlockCarpet; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockMarbleCarpet extends BlockCarpet implements ICarvable +{ + public CarvableHelper carverHelper; + + public BlockMarbleCarpet(Material m) + { + carverHelper = new CarvableHelper(); + + setCreativeTab(Chisel.tabChisel); + } + + + @Override + public IIcon getIcon(int side, int metadata) + { + return carverHelper.getIcon(side, metadata); + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) + { + return carverHelper.getIcon(world, x, y, z, side); + } + + @Override + public int damageDropped(int i) + { + return i; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + carverHelper.registerBlockIcons("Chisel", this, register); + } + + @Override + public void getSubBlocks(Item item, CreativeTabs tabs, List list) + { + carverHelper.registerSubBlocks(this, tabs, list); + } + + @Override + public int getRenderType() + { + return Chisel.RenderCarpetId; + } + + @Override + public CarvableVariation getVariation(int metadata) + { + return carverHelper.getVariation(metadata); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIce.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIce.java old mode 100755 new mode 100644 index 5f6ed846..58c03d4e --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIce.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIce.java @@ -1,99 +1,113 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; - -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockIce; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.enchantment.EnchantmentHelper; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.stats.StatList; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class BlockMarbleIce extends BlockIce implements Carvable { - public CarvableHelper carverHelper; - - public BlockMarbleIce() { - super(); - - carverHelper = new CarvableHelper(); - - setCreativeTab(Chisel.tabChisel); - } - - @Override - public IIcon getIcon(int side, int metadata) { - return carverHelper.getIcon(side, metadata); - } - - @Override - public int damageDropped(int i) { - return 0; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - carverHelper.registerBlockIcons("Chisel", this, register); - } - - @Override - public void getSubBlocks(Item item, CreativeTabs tabs, List list) { - carverHelper.registerSubBlocks(this, tabs, list); - } - - /** - * Called when the player destroys a block with an item that can harvest it. - * (i, j, k) are the coordinates of the block and l is the block's - * subtype/damage. - */ - @Override - public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) { - if (!Chisel.dropIceShards){ - super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); - return; - } - - par2EntityPlayer.addStat(StatList.mineBlockStatArray[Block.getIdFromBlock(this)], 1); - par2EntityPlayer.addExhaustion(0.025F); - - if(par1World.isRemote) - return; - - if (this.canSilkHarvest(par1World, par2EntityPlayer, par3, par4, par5, par6) && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer)) { - ItemStack itemstack = this.createStackedBlock(par6); - - if (itemstack != null) { - this.dropBlockAsItem(par1World, par3, par4, par5, itemstack); - } - } else { - int i1 = EnchantmentHelper.getFortuneModifier(par2EntityPlayer); - this.dropBlockAsItem(par1World, par3, par4, par5, par6, i1); - } - } - - @Override - public Item getItemDropped(int par1, Random par2Random, int par3) { - return Chisel.dropIceShards ? Chisel.itemIceshard : null; - } - - @Override - public int quantityDropped(Random par1Random) { - return Chisel.dropIceShards ? 1 + par1Random.nextInt(5) : 0; - } - - @Override - public CarvableVariation getVariation(int metadata) { - return carverHelper.getVariation(metadata); - } - -} +package info.jbcs.minecraft.chisel.block; + +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.Chisel; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockIce; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.StatList; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class BlockMarbleIce extends BlockIce implements ICarvable +{ + public CarvableHelper carverHelper; + + public BlockMarbleIce() + { + super(); + + carverHelper = new CarvableHelper(); + + setCreativeTab(Chisel.tabChisel); + } + + @Override + public IIcon getIcon(int side, int metadata) + { + return carverHelper.getIcon(side, metadata); + } + + @Override + public int damageDropped(int i) + { + return 0; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + carverHelper.registerBlockIcons("Chisel", this, register); + } + + @Override + public void getSubBlocks(Item item, CreativeTabs tabs, List list) + { + carverHelper.registerSubBlocks(this, tabs, list); + } + + /** + * Called when the player destroys a block with an item that can harvest it. + * (i, j, k) are the coordinates of the block and l is the block's + * subtype/damage. + */ + @Override + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + if(!Chisel.dropIceShards) + { + super.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + return; + } + + par2EntityPlayer.addStat(StatList.mineBlockStatArray[Block.getIdFromBlock(this)], 1); + par2EntityPlayer.addExhaustion(0.025F); + + if(par1World.isRemote) + return; + + if(this.canSilkHarvest(par1World, par2EntityPlayer, par3, par4, par5, par6) && EnchantmentHelper.getSilkTouchModifier(par2EntityPlayer)) + { + ItemStack itemstack = this.createStackedBlock(par6); + + if(itemstack != null) + { + this.dropBlockAsItem(par1World, par3, par4, par5, itemstack); + } + } else + { + int i1 = EnchantmentHelper.getFortuneModifier(par2EntityPlayer); + this.dropBlockAsItem(par1World, par3, par4, par5, par6, i1); + } + } + + @Override + public Item getItemDropped(int par1, Random par2Random, int par3) + { + return Chisel.dropIceShards ? Chisel.itemIceshard : null; + } + + @Override + public int quantityDropped(Random par1Random) + { + return Chisel.dropIceShards ? 1 + par1Random.nextInt(5) : 0; + } + + @Override + public CarvableVariation getVariation(int metadata) + { + return carverHelper.getVariation(metadata); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIceStairs.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIceStairs.java old mode 100755 new mode 100644 index 859e6055..d3a63da7 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIceStairs.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIceStairs.java @@ -1,44 +1,51 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.ChiselBlocks; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class BlockMarbleIceStairs extends BlockMarbleStairs { - public BlockMarbleIceStairs(Block block,int meta, CarvableHelper helper) { - super(block,meta,helper); - - slipperiness = 0.98F; - setTickRandomly(true); - } - - @Override - public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) { - ChiselBlocks.blockIce.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); - } - - @Override - public int quantityDropped(Random par1Random) { - return ChiselBlocks.blockIce.quantityDropped(par1Random); - } - @Override - public int damageDropped(int i) { - return 0; - } - - @Override - public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) { - ChiselBlocks.blockIce.updateTick(par1World, par2, par3, par4, par5Random); - } - - @Override - public int getMobilityFlag() { - return 0; - } -} +package info.jbcs.minecraft.chisel.block; + +import info.jbcs.minecraft.chisel.carving.CarvableHelper; +import info.jbcs.minecraft.chisel.ChiselBlocks; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class BlockMarbleIceStairs extends BlockMarbleStairs +{ + public BlockMarbleIceStairs(Block block, int meta, CarvableHelper helper) + { + super(block, meta, helper); + + slipperiness = 0.98F; + setTickRandomly(true); + } + + @Override + public void harvestBlock(World par1World, EntityPlayer par2EntityPlayer, int par3, int par4, int par5, int par6) + { + ChiselBlocks.blockIce.harvestBlock(par1World, par2EntityPlayer, par3, par4, par5, par6); + } + + @Override + public int quantityDropped(Random par1Random) + { + return ChiselBlocks.blockIce.quantityDropped(par1Random); + } + + @Override + public int damageDropped(int i) + { + return 0; + } + + @Override + public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random) + { + ChiselBlocks.blockIce.updateTick(par1World, par2, par3, par4, par5Random); + } + + @Override + public int getMobilityFlag() + { + return 0; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleLamp.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleLamp.java old mode 100755 new mode 100644 index a395cdda..bce4ecb3 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleLamp.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleLamp.java @@ -1,85 +1,95 @@ -package info.jbcs.minecraft.chisel.block; - -import java.util.Random; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class BlockMarbleLamp extends BlockCarvable { - BlockMarbleLamp blockUnpowered; - BlockMarbleLamp blockPowered; - boolean powered; - - public BlockMarbleLamp() { - super(Material.redstoneLight); - - powered=false; - blockUnpowered=this; - blockPowered=new BlockMarbleLamp(this); - - setHardness(0.3F); - } - - public BlockMarbleLamp(BlockMarbleLamp unpoweredVersion) { - super(Material.redstoneLight); - - carverHelper=unpoweredVersion.carverHelper; - - powered=true; - blockUnpowered=unpoweredVersion; - blockPowered=this; - - setLightLevel(1.0F); - setHardness(0.3F); - } - - - public void checkPower(World world, int x, int y, int z){ - if (world.isRemote) return; - - boolean isGettingPower=world.isBlockIndirectlyGettingPowered(x, y, z); - int meta=world.getBlockMetadata(x, y, z); - - if (powered && !isGettingPower) { - world.setBlock(x, y, z, blockUnpowered, meta, 2); - } else if (!powered && isGettingPower) { - world.setBlock(x, y, z, blockPowered, meta, 2); - } - } - - @Override - public void onBlockAdded(World world, int x, int y, int z){ - checkPower(world,x,y,z); - } - - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block block){ - checkPower(world,x,y,z); - } - -/* - @Override - public void updateTick(World world, int x, int y, int z, Random rand){ - if (world.isRemote) return; - - if(powered && !world.isBlockIndirectlyGettingPowered(x, y, z)){ - int meta=world.getBlockMetadata(x, y, z); - world.setBlock(x, y, z, Block.redstoneLampIdle.blockID, meta, 2); - } - }*/ - - @Override - public Item getItemDropped(int par1, Random par2Random, int par3){ - return Item.getItemFromBlock(blockUnpowered); - } - - @Override - public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z){ - return new ItemStack(blockUnpowered, 1, world.getBlockMetadata(x, y, z)); - } - -} +package info.jbcs.minecraft.chisel.block; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class BlockMarbleLamp extends BlockCarvable +{ + BlockMarbleLamp blockUnpowered; + BlockMarbleLamp blockPowered; + boolean powered; + + public BlockMarbleLamp() + { + super(Material.redstoneLight); + + powered = false; + blockUnpowered = this; + blockPowered = new BlockMarbleLamp(this); + + setHardness(0.3F); + } + + public BlockMarbleLamp(BlockMarbleLamp unpoweredVersion) + { + super(Material.redstoneLight); + + carverHelper = unpoweredVersion.carverHelper; + + powered = true; + blockUnpowered = unpoweredVersion; + blockPowered = this; + + setLightLevel(1.0F); + setHardness(0.3F); + } + + + public void checkPower(World world, int x, int y, int z) + { + if(world.isRemote) return; + + boolean isGettingPower = world.isBlockIndirectlyGettingPowered(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + if(powered && !isGettingPower) + { + world.setBlock(x, y, z, blockUnpowered, meta, 2); + } else if(!powered && isGettingPower) + { + world.setBlock(x, y, z, blockPowered, meta, 2); + } + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) + { + checkPower(world, x, y, z); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) + { + checkPower(world, x, y, z); + } + +/* + @Override + public void updateTick(World world, int x, int y, int z, Random rand){ + if (world.isRemote) return; + + if(powered && !world.isBlockIndirectlyGettingPowered(x, y, z)){ + int meta=world.getBlockMetadata(x, y, z); + world.setBlock(x, y, z, Block.redstoneLampIdle.blockID, meta, 2); + } + }*/ + + @Override + public Item getItemDropped(int par1, Random par2Random, int par3) + { + return Item.getItemFromBlock(blockUnpowered); + } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) + { + return new ItemStack(blockUnpowered, 1, world.getBlockMetadata(x, y, z)); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarblePillar.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarblePillar.java old mode 100755 new mode 100644 index 9b80d392..acae5ab2 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarblePillar.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarblePillar.java @@ -1,39 +1,45 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.render.BlockMarblePillarRenderer; -import net.minecraft.block.material.Material; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; - -public class BlockMarblePillar extends BlockCarvable{ - public IIcon sides[]=new IIcon[6]; - - public BlockMarblePillar(Material m) { - super(m); - } - - @Override - public int getRenderType() { - return BlockMarblePillarRenderer.id; - } - - @Override - public IIcon getIcon(int side, int metadata) { - return sides[side]; - } - - @Override - public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side){ - return sides[side]; - } - - public IIcon getCtmIcon(int index, int metadata){ - CarvableVariation var=carverHelper.variations.get(metadata); - - if(index>=4) return var.iconTop; - if(var.seamsCtmVert==null) return var.icon; - return var.seamsCtmVert.icons[index]; - } - -} +package info.jbcs.minecraft.chisel.block; + +import info.jbcs.minecraft.chisel.carving.CarvableVariation; +import info.jbcs.minecraft.chisel.client.render.BlockMarblePillarRenderer; +import net.minecraft.block.material.Material; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class BlockMarblePillar extends BlockCarvable +{ + public IIcon sides[] = new IIcon[6]; + + public BlockMarblePillar(Material m) + { + super(m); + } + + @Override + public int getRenderType() + { + return BlockMarblePillarRenderer.id; + } + + @Override + public IIcon getIcon(int side, int metadata) + { + return sides[side]; + } + + @Override + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) + { + return sides[side]; + } + + public IIcon getCtmIcon(int index, int metadata) + { + CarvableVariation var = carverHelper.variations.get(metadata); + + if(index >= 4) return var.iconTop; + if(var.seamsCtmVert == null) return var.icon; + return var.seamsCtmVert.icons[index]; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleSlab.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleSlab.java old mode 100755 new mode 100644 index e9fe2d9f..1d527887 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleSlab.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleSlab.java @@ -1,107 +1,122 @@ -package info.jbcs.minecraft.chisel.block; - -import java.util.List; -import java.util.Random; - -import net.minecraft.block.Block; -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.IIcon; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class BlockMarbleSlab extends BlockCarvable { - public Block master; - public BlockMarbleSlab bottom; - public BlockMarbleSlab top; - public boolean isBottom; - - public BlockMarbleSlab(BlockCarvable marble) { - opaque = true; - - setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - - master = marble; - bottom = this; - top = new BlockMarbleSlab(this); - - isBottom = true; - } - - public BlockMarbleSlab(BlockMarbleSlab bottomBlock) { - super(); - - setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F); - - master = bottomBlock.master; - bottom = bottomBlock; - top = this; - - carverHelper=bottomBlock.carverHelper; - isBottom=false; - } - - @Override - public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) { - if (isBottom) { - setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } else { - setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F); - } - } - - @Override - public void setBlockBoundsForItemRender() { - setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); - } - - @Override - public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) { - setBlockBoundsBasedOnState(par1World, par2, par3, par4); - super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); - } - - @Override - public boolean isOpaqueCube() { - return false; - } - - @Override - public int damageDropped(int meta) { - return meta; - } - - @Override - public Item getItemDropped(int par1, Random par2Random, int par3) { - return Item.getItemFromBlock(bottom); - } - - @Override - public boolean renderAsNormalBlock() { - return false; - } - - @Override - @SideOnly(Side.CLIENT) - public ItemStack getPickBlock(MovingObjectPosition mop, World world, int x, int y, int z) { - return new ItemStack(bottom, 1, world.getBlockMetadata(x, y, z)); - } - - @Override - public IIcon getIcon(int side, int metadata) { - return carverHelper.getIcon(side, metadata); -// return master.getIcon(side, metadata); - } - - @Override - public void getSubBlocks(Item block, CreativeTabs tabs, List list){ - if(isBottom) super.getSubBlocks(block,tabs,list); - } - -} +package info.jbcs.minecraft.chisel.block; + +import java.util.List; +import java.util.Random; + +import net.minecraft.block.Block; +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.IIcon; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class BlockMarbleSlab extends BlockCarvable +{ + public Block master; + public BlockMarbleSlab bottom; + public BlockMarbleSlab top; + public boolean isBottom; + + public BlockMarbleSlab(BlockCarvable marble) + { + opaque = true; + + setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); + + master = marble; + bottom = this; + top = new BlockMarbleSlab(this); + + isBottom = true; + } + + public BlockMarbleSlab(BlockMarbleSlab bottomBlock) + { + super(); + + setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F); + + master = bottomBlock.master; + bottom = bottomBlock; + top = this; + + carverHelper = bottomBlock.carverHelper; + isBottom = false; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess par1IBlockAccess, int par2, int par3, int par4) + { + if(isBottom) + { + setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); + } else + { + setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F); + } + } + + @Override + public void setBlockBoundsForItemRender() + { + setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); + } + + @Override + public void addCollisionBoxesToList(World par1World, int par2, int par3, int par4, AxisAlignedBB par5AxisAlignedBB, List par6List, Entity par7Entity) + { + setBlockBoundsBasedOnState(par1World, par2, par3, par4); + super.addCollisionBoxesToList(par1World, par2, par3, par4, par5AxisAlignedBB, par6List, par7Entity); + } + + @Override + public boolean isOpaqueCube() + { + return false; + } + + @Override + public int damageDropped(int meta) + { + return meta; + } + + @Override + public Item getItemDropped(int par1, Random par2Random, int par3) + { + return Item.getItemFromBlock(bottom); + } + + @Override + public boolean renderAsNormalBlock() + { + return false; + } + + @Override + @SideOnly(Side.CLIENT) + public ItemStack getPickBlock(MovingObjectPosition mop, World world, int x, int y, int z) + { + return new ItemStack(bottom, 1, world.getBlockMetadata(x, y, z)); + } + + @Override + public IIcon getIcon(int side, int metadata) + { + return carverHelper.getIcon(side, metadata); +// return master.getIcon(side, metadata); + } + + @Override + public void getSubBlocks(Item block, CreativeTabs tabs, List list) + { + if(isBottom) super.getSubBlocks(block, tabs, list); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairs.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairs.java old mode 100755 new mode 100644 index 91eb72e7..e13c2265 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairs.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairs.java @@ -1,100 +1,110 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; -import info.jbcs.minecraft.chisel.render.BlockMarbleStairsRenderer; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockStairs; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.util.MathHelper; -import net.minecraft.world.World; - -public class BlockMarbleStairs extends BlockStairs implements Carvable { - CarvableHelper carverHelper; - int blockMeta; - - public BlockMarbleStairs(Block block,int meta, CarvableHelper helper) { - super(block, meta); - - this.useNeighborBrightness = true; - setCreativeTab(Chisel.tabChisel); - carverHelper=helper; - blockMeta=meta; - } - - @Override - public IIcon getIcon(int side, int metadata) { - return carverHelper.getIcon(side, blockMeta+metadata/8); - } - - @Override - public int damageDropped(int i) { - return i&0x8; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - if(blockMeta==0) - carverHelper.registerBlockIcons("Chisel",this,register); - } - - @Override - public void getSubBlocks(Item block, CreativeTabs tabs, List list){ - list.add(new ItemStack(block, 1, 0)); - list.add(new ItemStack(block, 1, 8)); - } - - @Override - public int getRenderType() { - return BlockMarbleStairsRenderer.id; - } - - @Override - public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLiving, ItemStack par6ItemStack){ - int l = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; - int i1 = par1World.getBlockMetadata(par2, par3, par4) & 4; - int odd=par6ItemStack.getItemDamage(); - - if (l == 0) - { - par1World.setBlockMetadataWithNotify(par2, par3, par4, 2 | i1 + odd, 2); - } - - if (l == 1) - { - par1World.setBlockMetadataWithNotify(par2, par3, par4, 1 | i1 + odd, 2); - } - - if (l == 2) - { - par1World.setBlockMetadataWithNotify(par2, par3, par4, 3 | i1 + odd, 2); - } - - if (l == 3) - { - par1World.setBlockMetadataWithNotify(par2, par3, par4, 0 | i1 + odd, 2); - } - } - - - @Override - public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int damage){ - // int res=super.onBlockPlaced(); - return side != 0 && (side == 1 || hy <= 0.5D) ? damage : damage | 4; - } - - @Override - public CarvableVariation getVariation(int metadata) { - return carverHelper.getVariation(metadata); - } -} +package info.jbcs.minecraft.chisel.block; + +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.Chisel; +import info.jbcs.minecraft.chisel.client.render.BlockMarbleStairsRenderer; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockStairs; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockMarbleStairs extends BlockStairs implements ICarvable +{ + CarvableHelper carverHelper; + int blockMeta; + + public BlockMarbleStairs(Block block, int meta, CarvableHelper helper) + { + super(block, meta); + + this.useNeighborBrightness = true; + setCreativeTab(Chisel.tabChisel); + carverHelper = helper; + blockMeta = meta; + } + + @Override + public IIcon getIcon(int side, int metadata) + { + return carverHelper.getIcon(side, blockMeta + metadata / 8); + } + + @Override + public int damageDropped(int i) + { + return i & 0x8; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + if(blockMeta == 0) + carverHelper.registerBlockIcons("Chisel", this, register); + } + + @Override + public void getSubBlocks(Item block, CreativeTabs tabs, List list) + { + list.add(new ItemStack(block, 1, 0)); + list.add(new ItemStack(block, 1, 8)); + } + + @Override + public int getRenderType() + { + return BlockMarbleStairsRenderer.id; + } + + @Override + public void onBlockPlacedBy(World par1World, int par2, int par3, int par4, EntityLivingBase par5EntityLiving, ItemStack par6ItemStack) + { + int l = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; + int i1 = par1World.getBlockMetadata(par2, par3, par4) & 4; + int odd = par6ItemStack.getItemDamage(); + + if(l == 0) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, 2 | i1 + odd, 2); + } + + if(l == 1) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, 1 | i1 + odd, 2); + } + + if(l == 2) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, 3 | i1 + odd, 2); + } + + if(l == 3) + { + par1World.setBlockMetadataWithNotify(par2, par3, par4, 0 | i1 + odd, 2); + } + } + + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int damage) + { + // int res=super.onBlockPlaced(); + return side != 0 && (side == 1 || hy <= 0.5D) ? damage : damage | 4; + } + + @Override + public CarvableVariation getVariation(int metadata) + { + return carverHelper.getVariation(metadata); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairsMaker.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairsMaker.java old mode 100755 new mode 100644 index aee16096..dc2c0f35 --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairsMaker.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairsMaker.java @@ -1,55 +1,61 @@ -package info.jbcs.minecraft.chisel.block; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.item.ItemCarvable; -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import cpw.mods.fml.common.registry.GameRegistry; - -public class BlockMarbleStairsMaker { - public CarvableHelper carverHelper; - BlockMarbleStairs blocks[]; - - int idStart; - Block blockBase; - String blockName; - - public BlockMarbleStairsMaker(Block base){ - carverHelper=new CarvableHelper(); - - blockBase=base; - } - - public void create(String name){ - create(null, name); - } - - public void create(BlockMarbleStairsMakerCreator creator, String name){ - blocks=new BlockMarbleStairs[carverHelper.variations.size()/2]; - - for(int i=0;i 3) return; - - if(rotateHead(world, x, y, z)!=-1) - return; - - int rot = rotRemap[(MathHelper.floor_double(entity.rotationYaw * 4.0 / 360.0 + 0.5) ) & 3]; - - world.setBlockMetadataWithNotify(x, y, z, rot, 3); - } - - @Override - public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int meta) { - if (meta <= 3) return meta; - - if(rotateBodyPart(world,x,y,z)){ - return world.getBlockMetadata(x,y,z); - } - - if(side==0 || side==1) meta=14; - if(side==2 || side==3) meta=13; - if(side==4 || side==5) meta=12; - - world.setBlockMetadataWithNotify(x, y, z, meta, 2); - - return meta; - } - - @Override - public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { - int kind = world.getBlockMetadata(x, y, z) & 0xC; - - if (kind == 0) { - rotateHead(world, x, y, z); - } else { - rotateBodyPart(world, x, y, z); - } - } - - public int[] getConnections(World world, int ox, int oy, int oz) { - int index=0; - int[] res={-1,-1,-1,-1,-1,-1,-1}; - - for (int direction = 0; direction < 6; direction++) { - int x=ox, y=oy, z=oz; - switch (direction) { - case 0: z--; break; - case 1: z++; break; - case 2: x--; break; - case 3: x++; break; - case 4: y--; break; - case 5: y++; break; - } - - if ( !world.getBlock(x, y, z).equals(this) ) continue; - boolean match=false; - - int px1=x,px2=x; - int py1=y,py2=y; - int pz1=z,pz2=z; - - int meta=world.getBlockMetadata(x,y,z); - if((meta&0xc) == 4 || (meta&0xc) == 8){ - if((meta&4) == 4) py1--; else py1++; - - switch (meta&3) { - case 0: pz2--; break; - case 1: pz2++; break; - case 2: px2--; break; - case 3: px2++; break; - } - } else if(meta==12){ - px1--; px2++; - } else if(meta==13){ - pz1--; pz2++; - } else if(meta==14){ - py1--; py2++; - } else if(meta==15){ - match=true; - } else if(meta<4){ - match=true; - } - - if(! match){ - Block b1=world.getBlock(px1, py1, pz1); - Block b2=world.getBlock(px2, py2, pz2); - - - if(b1 != this || b2 != this) - match=true; - - if(ox==px1 && oy==py1 && oz==pz1) - match=true; - - if(ox==px2 && oy==py2 && oz==pz2) - match=true; - } - - if(match) - res[index++]=direction; - } - - if(index!=5) - res[index]=-1; - - return res; - } - - - public boolean rotateBodyPart(World world, int x, int y, int z) { - int[] con=getConnections(world,x,y,z); - int blockMeta=world.getBlockMetadata(x, y, z); - int kind=blockMeta&0xc; - - if(con[1]==-1) return false; - if(con[2]!=-1) return false; - - int meta=15; - - if(con[0]==2 && con[1]==3){ - meta=12; - } else if(con[0]==0 && con[1]==1){ - meta=13; - } else if(con[0]==4 && con[1]==5){ - meta=14; - } else if(con[1]==4){ - meta=SEC_DOWN|con[0]; - } else if(con[1]==5){ - meta=SEC_UP|con[0]; - } - - if(blockMeta!=meta) - world.setBlockMetadataWithNotify(x, y, z, meta, 3); - - return true; - } - - public int rotateHead(World world, int x, int y, int z) { - int[] con=getConnections(world,x,y,z); - - if (con[1]>=0 && con[1]<4) return -1; - - int meta=-1; - switch (con[0]) { - case 0: meta=1; break; - case 1: meta=0; break; - case 2: meta=3; break; - case 3: meta=2; break; - } - - if(meta==-1) return -1; - - world.setBlock(x, y, z, this, meta, 3); - return meta; - } - - public boolean connectedTo(World par1World, int x, int y, int z, int direction) { - switch (direction) { - case 0: return par1World.getBlock(x, y, z - 1).equals(this); - case 1: return par1World.getBlock(x, y, z + 1).equals(this); - case 2: return par1World.getBlock(x - 1, y, z).equals(this); - case 3: return par1World.getBlock(x + 1, y, z).equals(this); - case 4: return par1World.getBlock(x, y - 1, z).equals(this); - case 5: return par1World.getBlock(x, y + 1, z).equals(this); - } - - return false; - } - - @Override - public IIcon getIcon(int side, int meta) { - int type = meta & 0xc; - int orient = meta & 0x3; - - switch(meta | (side<<4)){ - - case(SEC_HOR | 0 | (SIDE_B<<4)): return iconBottomTip; - case(SEC_HOR | 0 | (SIDE_T<<4)): return iconTopSide; - case(SEC_HOR | 0 | (SIDE_N<<4)): return iconSide; - case(SEC_HOR | 0 | (SIDE_S<<4)): return iconSide; - case(SEC_HOR | 0 | (SIDE_W<<4)): return iconCross; - case(SEC_HOR | 0 | (SIDE_E<<4)): return iconCross; - - case(SEC_HOR | 1 | (SIDE_B<<4)): return iconBottomTip; - case(SEC_HOR | 1 | (SIDE_T<<4)): return iconTopSide; - case(SEC_HOR | 1 | (SIDE_N<<4)): return iconCross; - case(SEC_HOR | 1 | (SIDE_S<<4)): return iconCross; - case(SEC_HOR | 1 | (SIDE_W<<4)): return iconSide; - case(SEC_HOR | 1 | (SIDE_E<<4)): return iconSide; - - case(SEC_HOR | 2 | (SIDE_B<<4)): return iconCross; - case(SEC_HOR | 2 | (SIDE_T<<4)): return iconCross; - case(SEC_HOR | 2 | (SIDE_N<<4)): return iconSide; - case(SEC_HOR | 2 | (SIDE_S<<4)): return iconSide; - case(SEC_HOR | 2 | (SIDE_W<<4)): return iconSide; - case(SEC_HOR | 2 | (SIDE_E<<4)): return iconSide; - - case(SEC_HOR | 3 | (SIDE_B<<4)): return iconBottom; - case(SEC_HOR | 3 | (SIDE_T<<4)): return iconTop; - case(SEC_HOR | 3 | (SIDE_N<<4)): return iconSide; - case(SEC_HOR | 3 | (SIDE_S<<4)): return iconSide; - case(SEC_HOR | 3 | (SIDE_W<<4)): return iconSide; - case(SEC_HOR | 3 | (SIDE_E<<4)): return iconSide; - - case(SEC_DOWN | 0 | (SIDE_B<<4)): return iconCross; - case(SEC_DOWN | 0 | (SIDE_T<<4)): return iconTopTip; - case(SEC_DOWN | 0 | (SIDE_N<<4)): return iconCross; - case(SEC_DOWN | 0 | (SIDE_S<<4)): return iconRightTip; - case(SEC_DOWN | 0 | (SIDE_W<<4)): return iconLeftDown; - case(SEC_DOWN | 0 | (SIDE_E<<4)): return iconRightDown; - - case(SEC_DOWN | 1 | (SIDE_B<<4)): return iconCross; - case(SEC_DOWN | 1 | (SIDE_T<<4)): return iconTopTip; - case(SEC_DOWN | 1 | (SIDE_N<<4)): return iconLeftTip; - case(SEC_DOWN | 1 | (SIDE_S<<4)): return iconCross; - case(SEC_DOWN | 1 | (SIDE_W<<4)): return iconRightDown; - case(SEC_DOWN | 1 | (SIDE_E<<4)): return iconLeftDown; - - case(SEC_DOWN | 2 | (SIDE_B<<4)): return iconCross; - case(SEC_DOWN | 2 | (SIDE_T<<4)): return iconTopTip; - case(SEC_DOWN | 2 | (SIDE_N<<4)): return iconRightDown; - case(SEC_DOWN | 2 | (SIDE_S<<4)): return iconLeftDown; - case(SEC_DOWN | 2 | (SIDE_W<<4)): return iconCross; - case(SEC_DOWN | 2 | (SIDE_E<<4)): return iconLeftTip; - - case(SEC_DOWN | 3 | (SIDE_B<<4)): return iconCross; - case(SEC_DOWN | 3 | (SIDE_T<<4)): return iconTopTip; - case(SEC_DOWN | 3 | (SIDE_N<<4)): return iconLeftDown; - case(SEC_DOWN | 3 | (SIDE_S<<4)): return iconRightDown; - case(SEC_DOWN | 3 | (SIDE_W<<4)): return iconRightTip; - case(SEC_DOWN | 3 | (SIDE_E<<4)): return iconCross; - - case(SEC_UP | 0 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_UP | 0 | (SIDE_T<<4)): return iconCross; - case(SEC_UP | 0 | (SIDE_N<<4)): return iconCross; - case(SEC_UP | 0 | (SIDE_S<<4)): return iconLeftTip; - case(SEC_UP | 0 | (SIDE_W<<4)): return iconLeftUp; - case(SEC_UP | 0 | (SIDE_E<<4)): return iconRightUp; - - case(SEC_UP | 1 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_UP | 1 | (SIDE_T<<4)): return iconCross; - case(SEC_UP | 1 | (SIDE_N<<4)): return iconRightTip; - case(SEC_UP | 1 | (SIDE_S<<4)): return iconCross; - case(SEC_UP | 1 | (SIDE_W<<4)): return iconRightUp; - case(SEC_UP | 1 | (SIDE_E<<4)): return iconLeftUp; - - case(SEC_UP | 2 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_UP | 2 | (SIDE_T<<4)): return iconCross; - case(SEC_UP | 2 | (SIDE_N<<4)): return iconRightUp; - case(SEC_UP | 2 | (SIDE_S<<4)): return iconLeftUp; - case(SEC_UP | 2 | (SIDE_W<<4)): return iconCross; - case(SEC_UP | 2 | (SIDE_E<<4)): return iconRightTip; - - case(SEC_UP | 3 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_UP | 3 | (SIDE_T<<4)): return iconCross; - case(SEC_UP | 3 | (SIDE_N<<4)): return iconLeftUp; - case(SEC_UP | 3 | (SIDE_S<<4)): return iconRightUp; - case(SEC_UP | 3 | (SIDE_W<<4)): return iconLeftTip; - case(SEC_UP | 3 | (SIDE_E<<4)): return iconCross; - - case(SEC_HEAD | 0 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_HEAD | 0 | (SIDE_T<<4)): return iconTopTip; - case(SEC_HEAD | 0 | (SIDE_N<<4)): return iconFace; - case(SEC_HEAD | 0 | (SIDE_S<<4)): return iconCross; - case(SEC_HEAD | 0 | (SIDE_W<<4)): return iconFaceLeft; - case(SEC_HEAD | 0 | (SIDE_E<<4)): return iconFaceRight; - - case(SEC_HEAD | 1 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_HEAD | 1 | (SIDE_T<<4)): return iconTopTip; - case(SEC_HEAD | 1 | (SIDE_N<<4)): return iconCross; - case(SEC_HEAD | 1 | (SIDE_S<<4)): return iconFace; - case(SEC_HEAD | 1 | (SIDE_W<<4)): return iconFaceRight; - case(SEC_HEAD | 1 | (SIDE_E<<4)): return iconFaceLeft; - - case(SEC_HEAD | 2 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_HEAD | 2 | (SIDE_T<<4)): return iconTopTip; - case(SEC_HEAD | 2 | (SIDE_N<<4)): return iconFaceRight; - case(SEC_HEAD | 2 | (SIDE_S<<4)): return iconFaceLeft; - case(SEC_HEAD | 2 | (SIDE_W<<4)): return iconFace; - case(SEC_HEAD | 2 | (SIDE_E<<4)): return iconCross; - - case(SEC_HEAD | 3 | (SIDE_B<<4)): return iconBottomSide; - case(SEC_HEAD | 3 | (SIDE_T<<4)): return iconTopTip; - case(SEC_HEAD | 3 | (SIDE_N<<4)): return iconFaceLeft; - case(SEC_HEAD | 3 | (SIDE_S<<4)): return iconFaceRight; - case(SEC_HEAD | 3 | (SIDE_W<<4)): return iconCross; - case(SEC_HEAD | 3 | (SIDE_E<<4)): return iconFace; - - } - - return iconCross; - } - - @Override - public void getSubBlocks(Item item, CreativeTabs tabs, List list) { - list.add(new ItemStack(item, 1, 1)); - list.add(new ItemStack(item, 1, 13)); - } - - @Override - public int damageDropped(int meta) { - if (meta < 4) { - return 1; - } - - return 13; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - iconFaceLeft = register.registerIcon(iconPrefix + "face-left"); - iconFaceRight = register.registerIcon(iconPrefix + "face-right"); - iconFace = register.registerIcon(iconPrefix + "face"); - - iconLeftUp = register.registerIcon(iconPrefix + "left-up"); - iconLeftDown = register.registerIcon(iconPrefix + "left-down"); - iconLeftTip = register.registerIcon(iconPrefix + "left-tip"); - - iconRightUp = register.registerIcon(iconPrefix + "right-up"); - iconRightDown = register.registerIcon(iconPrefix + "right-down"); - iconRightTip = register.registerIcon(iconPrefix + "right-tip"); - - iconTop = register.registerIcon(iconPrefix + "top"); - iconTopTip = register.registerIcon(iconPrefix + "top-tip"); - iconTopSide = register.registerIcon(iconPrefix + "top-side"); - - iconBottom = register.registerIcon(iconPrefix + "bot"); - iconBottomTip = register.registerIcon(iconPrefix + "bot-tip"); - iconBottomSide = register.registerIcon(iconPrefix + "bot-side"); - - iconCross = register.registerIcon(iconPrefix + "crosssection"); - iconSide = register.registerIcon(iconPrefix + "side"); - } +package info.jbcs.minecraft.chisel.block; + +import info.jbcs.minecraft.chisel.Chisel; +import info.jbcs.minecraft.chisel.client.render.BlockSnakeStoneRenderer; + +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.EntityLivingBase; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class BlockSnakestone extends Block +{ + static final int SEC_HEAD = 0; + static final int SEC_DOWN = 4; + static final int SEC_UP = 8; + static final int SEC_HOR = 12; + + static final int SIDE_B = 0; + static final int SIDE_T = 1; + static final int SIDE_N = 2; + static final int SIDE_S = 3; + static final int SIDE_W = 4; + static final int SIDE_E = 5; + + String iconPrefix; + IIcon iconFaceLeft; + IIcon iconFaceRight; + IIcon iconCross; + IIcon iconFace; + IIcon iconTopTip; + IIcon iconTopSide; + IIcon iconBottom; + IIcon iconBottomSide; + IIcon iconBottomTip; + IIcon iconLeftDown; + IIcon iconRightDown; + IIcon iconLeftUp; + IIcon iconRightUp; + IIcon iconLeftTip; + IIcon iconSide; + IIcon iconRightTip; + IIcon iconTop; + + public boolean flipTopTextures; + + public BlockSnakestone(String iconPrefix) + { + super(Material.rock); + setHardness(1.5F); + setResistance(10.0F); + setStepSound(Block.soundTypeStone); + setCreativeTab(Chisel.tabChisel); + flipTopTextures = false; + + this.iconPrefix = iconPrefix; + } + + @Override + public int getRenderType() + { + return BlockSnakeStoneRenderer.id; + } + + static final int[] rotRemap = {0, 3, 1, 2}; + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) + { + int meta = world.getBlockMetadata(x, y, z); + if(meta > 3) return; + + if(rotateHead(world, x, y, z) != -1) + return; + + int rot = rotRemap[(MathHelper.floor_double(entity.rotationYaw * 4.0 / 360.0 + 0.5)) & 3]; + + world.setBlockMetadataWithNotify(x, y, z, rot, 3); + } + + @Override + public int onBlockPlaced(World world, int x, int y, int z, int side, float hx, float hy, float hz, int meta) + { + if(meta <= 3) return meta; + + if(rotateBodyPart(world, x, y, z)) + { + return world.getBlockMetadata(x, y, z); + } + + if(side == 0 || side == 1) meta = 14; + if(side == 2 || side == 3) meta = 13; + if(side == 4 || side == 5) meta = 12; + + world.setBlockMetadataWithNotify(x, y, z, meta, 2); + + return meta; + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) + { + int kind = world.getBlockMetadata(x, y, z) & 0xC; + + if(kind == 0) + { + rotateHead(world, x, y, z); + } else + { + rotateBodyPart(world, x, y, z); + } + } + + public int[] getConnections(World world, int ox, int oy, int oz) + { + int index = 0; + int[] res = {-1, -1, -1, -1, -1, -1, -1}; + + for(int direction = 0; direction < 6; direction++) + { + int x = ox, y = oy, z = oz; + switch(direction) + { + case 0: + z--; + break; + case 1: + z++; + break; + case 2: + x--; + break; + case 3: + x++; + break; + case 4: + y--; + break; + case 5: + y++; + break; + } + + if(!world.getBlock(x, y, z).equals(this)) continue; + boolean match = false; + + int px1 = x, px2 = x; + int py1 = y, py2 = y; + int pz1 = z, pz2 = z; + + int meta = world.getBlockMetadata(x, y, z); + if((meta & 0xc) == 4 || (meta & 0xc) == 8) + { + if((meta & 4) == 4) py1--; + else py1++; + + switch(meta & 3) + { + case 0: + pz2--; + break; + case 1: + pz2++; + break; + case 2: + px2--; + break; + case 3: + px2++; + break; + } + } else if(meta == 12) + { + px1--; + px2++; + } else if(meta == 13) + { + pz1--; + pz2++; + } else if(meta == 14) + { + py1--; + py2++; + } else if(meta == 15) + { + match = true; + } else if(meta < 4) + { + match = true; + } + + if(!match) + { + Block b1 = world.getBlock(px1, py1, pz1); + Block b2 = world.getBlock(px2, py2, pz2); + + + if(b1 != this || b2 != this) + match = true; + + if(ox == px1 && oy == py1 && oz == pz1) + match = true; + + if(ox == px2 && oy == py2 && oz == pz2) + match = true; + } + + if(match) + res[index++] = direction; + } + + if(index != 5) + res[index] = -1; + + return res; + } + + + public boolean rotateBodyPart(World world, int x, int y, int z) + { + int[] con = getConnections(world, x, y, z); + int blockMeta = world.getBlockMetadata(x, y, z); + int kind = blockMeta & 0xc; + + if(con[1] == -1) return false; + if(con[2] != -1) return false; + + int meta = 15; + + if(con[0] == 2 && con[1] == 3) + { + meta = 12; + } else if(con[0] == 0 && con[1] == 1) + { + meta = 13; + } else if(con[0] == 4 && con[1] == 5) + { + meta = 14; + } else if(con[1] == 4) + { + meta = SEC_DOWN | con[0]; + } else if(con[1] == 5) + { + meta = SEC_UP | con[0]; + } + + if(blockMeta != meta) + world.setBlockMetadataWithNotify(x, y, z, meta, 3); + + return true; + } + + public int rotateHead(World world, int x, int y, int z) + { + int[] con = getConnections(world, x, y, z); + + if(con[1] >= 0 && con[1] < 4) return -1; + + int meta = -1; + switch(con[0]) + { + case 0: + meta = 1; + break; + case 1: + meta = 0; + break; + case 2: + meta = 3; + break; + case 3: + meta = 2; + break; + } + + if(meta == -1) return -1; + + world.setBlock(x, y, z, this, meta, 3); + return meta; + } + + public boolean connectedTo(World par1World, int x, int y, int z, int direction) + { + switch(direction) + { + case 0: + return par1World.getBlock(x, y, z - 1).equals(this); + case 1: + return par1World.getBlock(x, y, z + 1).equals(this); + case 2: + return par1World.getBlock(x - 1, y, z).equals(this); + case 3: + return par1World.getBlock(x + 1, y, z).equals(this); + case 4: + return par1World.getBlock(x, y - 1, z).equals(this); + case 5: + return par1World.getBlock(x, y + 1, z).equals(this); + } + + return false; + } + + @Override + public IIcon getIcon(int side, int meta) + { + int type = meta & 0xc; + int orient = meta & 0x3; + + switch(meta | (side << 4)) + { + + case (SEC_HOR | 0 | (SIDE_B << 4)): + return iconBottomTip; + case (SEC_HOR | 0 | (SIDE_T << 4)): + return iconTopSide; + case (SEC_HOR | 0 | (SIDE_N << 4)): + return iconSide; + case (SEC_HOR | 0 | (SIDE_S << 4)): + return iconSide; + case (SEC_HOR | 0 | (SIDE_W << 4)): + return iconCross; + case (SEC_HOR | 0 | (SIDE_E << 4)): + return iconCross; + + case (SEC_HOR | 1 | (SIDE_B << 4)): + return iconBottomTip; + case (SEC_HOR | 1 | (SIDE_T << 4)): + return iconTopSide; + case (SEC_HOR | 1 | (SIDE_N << 4)): + return iconCross; + case (SEC_HOR | 1 | (SIDE_S << 4)): + return iconCross; + case (SEC_HOR | 1 | (SIDE_W << 4)): + return iconSide; + case (SEC_HOR | 1 | (SIDE_E << 4)): + return iconSide; + + case (SEC_HOR | 2 | (SIDE_B << 4)): + return iconCross; + case (SEC_HOR | 2 | (SIDE_T << 4)): + return iconCross; + case (SEC_HOR | 2 | (SIDE_N << 4)): + return iconSide; + case (SEC_HOR | 2 | (SIDE_S << 4)): + return iconSide; + case (SEC_HOR | 2 | (SIDE_W << 4)): + return iconSide; + case (SEC_HOR | 2 | (SIDE_E << 4)): + return iconSide; + + case (SEC_HOR | 3 | (SIDE_B << 4)): + return iconBottom; + case (SEC_HOR | 3 | (SIDE_T << 4)): + return iconTop; + case (SEC_HOR | 3 | (SIDE_N << 4)): + return iconSide; + case (SEC_HOR | 3 | (SIDE_S << 4)): + return iconSide; + case (SEC_HOR | 3 | (SIDE_W << 4)): + return iconSide; + case (SEC_HOR | 3 | (SIDE_E << 4)): + return iconSide; + + case (SEC_DOWN | 0 | (SIDE_B << 4)): + return iconCross; + case (SEC_DOWN | 0 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_DOWN | 0 | (SIDE_N << 4)): + return iconCross; + case (SEC_DOWN | 0 | (SIDE_S << 4)): + return iconRightTip; + case (SEC_DOWN | 0 | (SIDE_W << 4)): + return iconLeftDown; + case (SEC_DOWN | 0 | (SIDE_E << 4)): + return iconRightDown; + + case (SEC_DOWN | 1 | (SIDE_B << 4)): + return iconCross; + case (SEC_DOWN | 1 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_DOWN | 1 | (SIDE_N << 4)): + return iconLeftTip; + case (SEC_DOWN | 1 | (SIDE_S << 4)): + return iconCross; + case (SEC_DOWN | 1 | (SIDE_W << 4)): + return iconRightDown; + case (SEC_DOWN | 1 | (SIDE_E << 4)): + return iconLeftDown; + + case (SEC_DOWN | 2 | (SIDE_B << 4)): + return iconCross; + case (SEC_DOWN | 2 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_DOWN | 2 | (SIDE_N << 4)): + return iconRightDown; + case (SEC_DOWN | 2 | (SIDE_S << 4)): + return iconLeftDown; + case (SEC_DOWN | 2 | (SIDE_W << 4)): + return iconCross; + case (SEC_DOWN | 2 | (SIDE_E << 4)): + return iconLeftTip; + + case (SEC_DOWN | 3 | (SIDE_B << 4)): + return iconCross; + case (SEC_DOWN | 3 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_DOWN | 3 | (SIDE_N << 4)): + return iconLeftDown; + case (SEC_DOWN | 3 | (SIDE_S << 4)): + return iconRightDown; + case (SEC_DOWN | 3 | (SIDE_W << 4)): + return iconRightTip; + case (SEC_DOWN | 3 | (SIDE_E << 4)): + return iconCross; + + case (SEC_UP | 0 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_UP | 0 | (SIDE_T << 4)): + return iconCross; + case (SEC_UP | 0 | (SIDE_N << 4)): + return iconCross; + case (SEC_UP | 0 | (SIDE_S << 4)): + return iconLeftTip; + case (SEC_UP | 0 | (SIDE_W << 4)): + return iconLeftUp; + case (SEC_UP | 0 | (SIDE_E << 4)): + return iconRightUp; + + case (SEC_UP | 1 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_UP | 1 | (SIDE_T << 4)): + return iconCross; + case (SEC_UP | 1 | (SIDE_N << 4)): + return iconRightTip; + case (SEC_UP | 1 | (SIDE_S << 4)): + return iconCross; + case (SEC_UP | 1 | (SIDE_W << 4)): + return iconRightUp; + case (SEC_UP | 1 | (SIDE_E << 4)): + return iconLeftUp; + + case (SEC_UP | 2 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_UP | 2 | (SIDE_T << 4)): + return iconCross; + case (SEC_UP | 2 | (SIDE_N << 4)): + return iconRightUp; + case (SEC_UP | 2 | (SIDE_S << 4)): + return iconLeftUp; + case (SEC_UP | 2 | (SIDE_W << 4)): + return iconCross; + case (SEC_UP | 2 | (SIDE_E << 4)): + return iconRightTip; + + case (SEC_UP | 3 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_UP | 3 | (SIDE_T << 4)): + return iconCross; + case (SEC_UP | 3 | (SIDE_N << 4)): + return iconLeftUp; + case (SEC_UP | 3 | (SIDE_S << 4)): + return iconRightUp; + case (SEC_UP | 3 | (SIDE_W << 4)): + return iconLeftTip; + case (SEC_UP | 3 | (SIDE_E << 4)): + return iconCross; + + case (SEC_HEAD | 0 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_HEAD | 0 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_HEAD | 0 | (SIDE_N << 4)): + return iconFace; + case (SEC_HEAD | 0 | (SIDE_S << 4)): + return iconCross; + case (SEC_HEAD | 0 | (SIDE_W << 4)): + return iconFaceLeft; + case (SEC_HEAD | 0 | (SIDE_E << 4)): + return iconFaceRight; + + case (SEC_HEAD | 1 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_HEAD | 1 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_HEAD | 1 | (SIDE_N << 4)): + return iconCross; + case (SEC_HEAD | 1 | (SIDE_S << 4)): + return iconFace; + case (SEC_HEAD | 1 | (SIDE_W << 4)): + return iconFaceRight; + case (SEC_HEAD | 1 | (SIDE_E << 4)): + return iconFaceLeft; + + case (SEC_HEAD | 2 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_HEAD | 2 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_HEAD | 2 | (SIDE_N << 4)): + return iconFaceRight; + case (SEC_HEAD | 2 | (SIDE_S << 4)): + return iconFaceLeft; + case (SEC_HEAD | 2 | (SIDE_W << 4)): + return iconFace; + case (SEC_HEAD | 2 | (SIDE_E << 4)): + return iconCross; + + case (SEC_HEAD | 3 | (SIDE_B << 4)): + return iconBottomSide; + case (SEC_HEAD | 3 | (SIDE_T << 4)): + return iconTopTip; + case (SEC_HEAD | 3 | (SIDE_N << 4)): + return iconFaceLeft; + case (SEC_HEAD | 3 | (SIDE_S << 4)): + return iconFaceRight; + case (SEC_HEAD | 3 | (SIDE_W << 4)): + return iconCross; + case (SEC_HEAD | 3 | (SIDE_E << 4)): + return iconFace; + + } + + return iconCross; + } + + @Override + public void getSubBlocks(Item item, CreativeTabs tabs, List list) + { + list.add(new ItemStack(item, 1, 1)); + list.add(new ItemStack(item, 1, 13)); + } + + @Override + public int damageDropped(int meta) + { + if(meta < 4) + { + return 1; + } + + return 13; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + iconFaceLeft = register.registerIcon(iconPrefix + "face-left"); + iconFaceRight = register.registerIcon(iconPrefix + "face-right"); + iconFace = register.registerIcon(iconPrefix + "face"); + + iconLeftUp = register.registerIcon(iconPrefix + "left-up"); + iconLeftDown = register.registerIcon(iconPrefix + "left-down"); + iconLeftTip = register.registerIcon(iconPrefix + "left-tip"); + + iconRightUp = register.registerIcon(iconPrefix + "right-up"); + iconRightDown = register.registerIcon(iconPrefix + "right-down"); + iconRightTip = register.registerIcon(iconPrefix + "right-tip"); + + iconTop = register.registerIcon(iconPrefix + "top"); + iconTopTip = register.registerIcon(iconPrefix + "top-tip"); + iconTopSide = register.registerIcon(iconPrefix + "top-side"); + + iconBottom = register.registerIcon(iconPrefix + "bot"); + iconBottomTip = register.registerIcon(iconPrefix + "bot-tip"); + iconBottomSide = register.registerIcon(iconPrefix + "bot-side"); + + iconCross = register.registerIcon(iconPrefix + "crosssection"); + iconSide = register.registerIcon(iconPrefix + "side"); + } } \ No newline at end of file diff --git a/src/main/java/info/jbcs/minecraft/chisel/block/BlockSnakestoneObsidian.java b/src/main/java/info/jbcs/minecraft/chisel/block/BlockSnakestoneObsidian.java old mode 100755 new mode 100644 index e0311c5c..05cf10fc --- a/src/main/java/info/jbcs/minecraft/chisel/block/BlockSnakestoneObsidian.java +++ b/src/main/java/info/jbcs/minecraft/chisel/block/BlockSnakestoneObsidian.java @@ -1,37 +1,41 @@ -package info.jbcs.minecraft.chisel.block; - - - -import info.jbcs.minecraft.chisel.GeneralChiselClient; - -import java.util.Random; - -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -public class BlockSnakestoneObsidian extends BlockSnakestone { - public IIcon[] particles=new IIcon[8]; - - public BlockSnakestoneObsidian(String iconPrefix) { - super(iconPrefix); - - flipTopTextures=true; - - } - - @Override - public void randomDisplayTick(World world, int x, int y, int z, Random random) { - GeneralChiselClient.spawnSnakestoneObsidianFX(world,this,x,y,z); - } - - @Override - public void registerBlockIcons(IIconRegister register) { - super.registerBlockIcons(register); - - for(int i=0;i chiselBlocks = new ArrayList(); + + public static final int NORMAL = 0; + public static final int TOPSIDE = 1; + public static final int TOPBOTSIDE = 2; + public static final int CTM3 = 3; + public static final int CTMV = 4; + public static final int CTMH = 5; + public static final int V9 = 6; + public static final int V4 = 7; + public static final int CTMX = 8; + + + public CarvableHelper() + { + } + + public ArrayList variations = new ArrayList(); + CarvableVariation[] map = new CarvableVariation[16]; + public boolean forbidChiseling = false; + public String blockName; + + public void addVariation(String description, int metadata, Block bb) + { + addVariation(description, metadata, null, bb, 0); + } + + public void addVariation(String description, int metadata, Block bb, int blockMeta) + { + addVariation(description, metadata, null, bb, blockMeta); + } + + public void addVariation(String description, int metadata, String texture) + { + addVariation(description, metadata, texture, null, 0); + } + + public void addVariation(String description, int metadata, String texture, Block block, int blockMeta) + { + if(variations.size() >= 16) + return; + + if(blockName == null && block != null) blockName = block.getLocalizedName(); + else if(blockName == null && description != null) blockName = description; + + CarvableVariation variation = new CarvableVariation(); + variation.description = description; + variation.metadata = metadata; + variation.blockName = blockName; + + if(texture != null) + { + variation.texture = texture; + + String path = "/assets/" + modName + "/textures/blocks/" + variation.texture; + + boolean any = Chisel.class.getResource(path + ".png") != null; + boolean ctm3 = Chisel.class.getResource(path + "-ctm1.png") != null && Chisel.class.getResource(path + "-ctm2.png") != null && Chisel.class.getResource(path + "-ctm3.png") != null; + boolean ctmv = Chisel.class.getResource(path + "-ctmv.png") != null; + boolean ctmh = Chisel.class.getResource(path + "-ctmh.png") != null; + boolean side = Chisel.class.getResource(path + "-side.png") != null; + boolean top = Chisel.class.getResource(path + "-top.png") != null; + boolean bot = Chisel.class.getResource(path + "-bottom.png") != null; + boolean v9 = Chisel.class.getResource(path + "-v9.png") != null; + boolean v4 = Chisel.class.getResource(path + "-v4.png") != null; + boolean ctmx = Chisel.class.getResource(path + "-ctm.png") != null; + + if(ctm3) + { + variation.kind = 3; + } else if(ctmh && top) + { + variation.kind = 5; + } else if(ctmv && top) + { + variation.kind = CTMV; + } else if(bot && top && side) + { + variation.kind = 2; + } else if(top && side) + { + variation.kind = 1; + } else if(v9) + { + variation.kind = V9; + } else if(v4) + { + variation.kind = V4; + } else if(any && ctmx && !Chisel.disableCTM) + { + variation.kind = CTMX; + } else if(any) + { + variation.kind = 0; + } else + { + throw new RuntimeException("No valid textures found for chisel block variation '" + description + "' (" + variation.texture + ")"); + } + } else + { + variation.block = block; + variation.kind = 2; + variation.blockMeta = blockMeta; + } + + variations.add(variation); + map[metadata] = variation; + } + + public CarvableVariation getVariation(int metadata) + { + if(metadata < 0 || metadata > 15) + metadata = 0; + + CarvableVariation variation = map[metadata]; + if(variation == null) + return null; + +// if(variation.kind!=CTMX) +// return null; + + return variation; + } + + public IIcon getIcon(int side, int metadata) + { + if(metadata < 0 || metadata > 15) + metadata = 0; + + CarvableVariation variation = map[metadata]; + if(variation == null) + return GeneralClient.getMissingIcon(); + + switch(variation.kind) + { + case 0: + return variation.icon; + case 1: + if(side == 0 || side == 1) + return variation.iconTop; + else + return variation.icon; + case 2: + if(side == 1) + return variation.iconTop; + else if(side == 0) + return variation.iconBot; + else + return variation.icon; + case 3: + return variation.ctm.seams[0].icons[0]; + case 4: + if(side < 2) + return variation.iconTop; + else + return variation.seamsCtmVert.icons[0]; + case 5: + if(side < 2) + return variation.iconTop; + else + return variation.seamsCtmVert.icons[0]; + case V9: + return variation.variations9.icons[4]; + case V4: + return variation.variations9.icons[0]; + case CTMX: + return variation.icon; + } + + return GeneralClient.getMissingIcon(); + } + + public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) + { + int metadata = world.getBlockMetadata(x, y, z); + + if(metadata < 0 || metadata > 15) + metadata = 0; + + CarvableVariation variation = map[metadata]; + if(variation == null) + return GeneralClient.getMissingIcon(); + + switch(variation.kind) + { + case 0: + case 1: + case 2: + return getIcon(side, metadata); + case 3: + int tex = CTM.getTexture(world, x, y, z, side); + + int row = tex / 16; + int col = tex % 16; + + return variation.ctm.seams[col / 4].icons[col % 4 + row * 4]; + case 4: + { + if(side < 2) + return variation.iconTop; + + Block block = world.getBlock(x, y, z); + boolean topConnected = block.equals(world.getBlock(x, y + 1, z)) && metadata == world.getBlockMetadata(x, y + 1, z); + boolean botConnected = block.equals(world.getBlock(x, y - 1, z)) && metadata == world.getBlockMetadata(x, y - 1, z); + + if(topConnected && botConnected) return variation.seamsCtmVert.icons[2]; + if(topConnected && !botConnected) return variation.seamsCtmVert.icons[3]; + if(!topConnected && botConnected) return variation.seamsCtmVert.icons[1]; + return variation.seamsCtmVert.icons[0]; + } + case 5: + if(side < 2) + return variation.iconTop; + + Block block = world.getBlock(x, y, z); + + boolean p; + boolean n; + boolean reverse = side == 2 || side == 4; + + if(side < 4) + { + p = isSame(world, x - 1, y, z, block, metadata); + n = isSame(world, x + 1, y, z, block, metadata); + } else + { + p = isSame(world, x, y, z + 1, block, metadata); + n = isSame(world, x, y, z - 1, block, metadata); + } + + if(p && n) return variation.seamsCtmVert.icons[1]; + else if(p) return variation.seamsCtmVert.icons[reverse ? 2 : 3]; + else if(n) return variation.seamsCtmVert.icons[reverse ? 3 : 2]; + return variation.seamsCtmVert.icons[0]; + case V9: + case V4: + int index = x + y * 606731 + z * 571163 + side * 555491; + if(index < 0) index = -index; + + return variation.variations9.icons[index % ((variation.kind == V9) ? 9 : 4)]; + case CTMX: + return variation.icon; + } + + return GeneralClient.getMissingIcon(); + } + + public void register(Block block, String name) + { + register(block, name, ItemCarvable.class); + } + + public void registerBlock(Block block, String name) + { + registerBlock(block, name, ItemCarvable.class); + } + + void registerBlock(Block block, String name, Class cl) + { + block.setBlockName(name); + GameRegistry.registerBlock(block, cl, "chisel." + name); + chiselBlocks.add(block); + } + + public void register(Block block, String name, Class cl) + { + registerBlock(block, name, cl); + + if(block instanceof BlockMarbleSlab) + { + BlockMarbleSlab slab = (BlockMarbleSlab) block; + } + + for(CarvableVariation variation : variations) + { + registerVariation(name, variation, block, variation.metadata); + + if(block instanceof BlockMarbleSlab && ((BlockMarbleSlab) block).isBottom) + { + BlockMarbleSlab slab = (BlockMarbleSlab) block; + slab.top.setHarvestLevel("chisel", 0, variation.metadata); + + if(!forbidChiseling) + { + Carving.chisel.addVariation(name + ".top", slab.top, variation.metadata, 0); + Carving.chisel.setGroupClass(name + ".top", name); + } + } + } + } + + public void registerVariation(String name, CarvableVariation variation, Block block, int blockMeta) + { + LanguageRegistry.addName(new ItemStack(block, 1, blockMeta), Chisel.blockDescriptions ? variation.blockName : variation.description); + //TODO Multipart registry goes here + + if(forbidChiseling) return; + + if(variation.block == null) + { + Carving.chisel.addVariation(name, block, blockMeta, variation.metadata); + block.setHarvestLevel("chisel", 0, blockMeta); + } else + { + Carving.chisel.addVariation(name, variation.block, variation.blockMeta, variation.metadata); + variation.block.setHarvestLevel("chisel", 0, variation.blockMeta); + } + } + + public void registerBlockIcons(String modName, Block block, IIconRegister register) + { + for(CarvableVariation variation : variations) + { + if(variation.block != null) + { + variation.block.registerBlockIcons(register); + + if(variation.block instanceof BlockPane) + { + variation.icon = variation.block.getBlockTextureFromSide(2); + variation.iconTop = ((BlockPane) variation.block).getBlockTextureFromSide(0); + variation.iconBot = ((BlockPane) variation.block).getBlockTextureFromSide(0); + } else + { + switch(variation.kind) + { + case 0: + variation.icon = variation.block.getIcon(2, variation.blockMeta); + break; + case 1: + variation.icon = variation.block.getIcon(2, variation.blockMeta); + variation.iconTop = variation.block.getIcon(0, variation.blockMeta); + break; + case 2: + variation.icon = variation.block.getIcon(2, variation.blockMeta); + variation.iconTop = variation.block.getIcon(1, variation.blockMeta); + variation.iconBot = variation.block.getIcon(0, variation.blockMeta); + break; + } + } + } else + { + switch(variation.kind) + { + case 0: + variation.icon = register.registerIcon(modName + ":" + variation.texture); + break; + case 1: + variation.icon = register.registerIcon(modName + ":" + variation.texture + "-side"); + variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); + break; + case 2: + variation.icon = register.registerIcon(modName + ":" + variation.texture + "-side"); + variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); + variation.iconBot = register.registerIcon(modName + ":" + variation.texture + "-bottom"); + break; + case 3: + CarvableVariationCTM ctm = new CarvableVariationCTM(); + ctm.seams[0] = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctm1"), 4, 4); + ctm.seams[1] = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctm2"), 4, 4); + ctm.seams[2] = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctm3"), 4, 4); + variation.ctm = ctm; + break; + case 4: + variation.seamsCtmVert = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctmv"), 2, 2); + variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); + break; + case 5: + variation.seamsCtmVert = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctmh"), 2, 2); + variation.iconTop = register.registerIcon(modName + ":" + variation.texture + "-top"); + break; + case V9: + variation.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-v9"), 3, 3); + break; + case V4: + variation.variations9 = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-v4"), 2, 2); + break; + case CTMX: + variation.icon = register.registerIcon(modName + ":" + variation.texture); + variation.submap = new TextureSubmap(register.registerIcon(modName + ":" + variation.texture + "-ctm"), 4, 4); + variation.submapSmall = new TextureSubmap(variation.icon, 2, 2); + break; + } + } + } + } + + public void registerSubBlocks(Block block, CreativeTabs tabs, List list) + { + for(CarvableVariation variation : variations) + { + list.add(new ItemStack(block, 1, variation.metadata)); + } + } + + private boolean isSame(IBlockAccess world, int x, int y, int z, Block block, int meta) + { + return world.getBlock(x, y, z).equals(block) && world.getBlockMetadata(x, y, z) == meta; + } + + public void setBlockName(String name) + { + blockName = name; + } + + public static Set getChiselBlockSet() + { + HashSet tools = new HashSet(); + tools.addAll(CarvableHelper.chiselBlocks); + return tools; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/carving/CarvableVariation.java b/src/main/java/info/jbcs/minecraft/chisel/carving/CarvableVariation.java new file mode 100644 index 00000000..b1858777 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/carving/CarvableVariation.java @@ -0,0 +1,34 @@ +package info.jbcs.minecraft.chisel.carving; + +import info.jbcs.minecraft.chisel.client.render.TextureSubmap; +import net.minecraft.block.Block; +import net.minecraft.util.IIcon; + +public class CarvableVariation +{ + public String blockName; + public String description; + public int metadata; + public int kind; + + public Block block; + public int blockMeta; + + public String texture; + + public IIcon icon; + public IIcon iconTop; + public IIcon iconBot; + + public CarvableVariationCTM ctm; + public TextureSubmap seamsCtmVert; + public TextureSubmap variations9; + + public TextureSubmap submap; + public TextureSubmap submapSmall; + + static class CarvableVariationCTM + { + TextureSubmap seams[] = new TextureSubmap[3]; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/carving/Carving.java b/src/main/java/info/jbcs/minecraft/chisel/carving/Carving.java new file mode 100644 index 00000000..af147c8b --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/carving/Carving.java @@ -0,0 +1,181 @@ +package info.jbcs.minecraft.chisel.carving; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +public class Carving +{ + HashMap carvingGroupsByName = new HashMap(); + HashMap carvingGroupsByOre = new HashMap(); + HashMap carvingGroupsByVariation = new HashMap(); + + public static Carving chisel = new Carving(); + public static Carving needle = new Carving(); + + String key(Item item, int metadata) + { + return Item.itemRegistry.getNameForObject(item) + "|" + metadata; + } + + String key(Block block, int metadata) + { + return Block.blockRegistry.getNameForObject(block) + "|" + metadata; + } + + public boolean isVariationOfSameClass(Block target, int metadata1, Block block2, int metadata2) + { + CarvingGroup group1 = carvingGroupsByVariation.get(key(target, metadata1)); + if(group1 == null) return false; + + CarvingGroup group2 = carvingGroupsByVariation.get(key(block2, metadata2)); + if(group2 == null) return false; + + return group1 == group2 || group1.className.equals(group2.className) && !group1.className.isEmpty(); + + } + + public CarvingVariation[] getVariations(Block block, int metadata) + { + CarvingGroup group = getGroup(block, metadata); + if(group == null) return null; + + CarvingVariation[] res = group.variations.toArray(new CarvingVariation[group.variations.size()]); + return res; + } + + public String getOre(Block block, int metadata) + { + CarvingGroup group = getGroup(block, metadata); + if(group == null) return null; + + return group.oreName; + } + + public ArrayList getItems(ItemStack chiseledItem) + { + ArrayList items = new ArrayList(); + int damage = chiseledItem.getItemDamage(); + + CarvingGroup group = getGroup(Block.getBlockFromItem(chiseledItem.getItem()), damage); + if(group == null) return items; + + HashMap mapping = new HashMap(); + + if(group.variations != null) + { + for(CarvingVariation v : group.variations) + { + + String key = Block.getIdFromBlock(v.block) + "|" + v.damage; + if(mapping.containsKey(key)) continue; + mapping.put(key, 1); + + items.add(new ItemStack(v.block, 1, v.damage)); + } + } + + ArrayList ores; + if(group.oreName != null && ((ores = OreDictionary.getOres(group.oreName)) != null)) + { + for(ItemStack stack : ores) + { + + String key = Item.getIdFromItem(stack.getItem()) + "|" + stack.getItemDamage(); + if(mapping.containsKey(key)) continue; + mapping.put(key, 2); + + items.add(stack); + } + } + + return items; + } + + public CarvingGroup getGroup(Block block, int metadata) + { + if(block.equals(Blocks.stone)) block = Blocks.stonebrick; + + // Check name first + CarvingGroup res; + + if((res = carvingGroupsByOre.get(OreDictionary.getOreName(OreDictionary.getOreID(new ItemStack(block, 1, metadata))))) != null) + return res; + + if((res = carvingGroupsByVariation.get(key(block, metadata))) != null) + return res; + + return null; + } + + CarvingGroup getGroup(String name) + { + CarvingGroup group = carvingGroupsByName.get(name); + if(group == null) + { + group = new CarvingGroup(name); + group.className = name; + carvingGroupsByName.put(name, group); + } + + return group; + } + + public CarvingVariation addVariation(String name, Block block, int metadata, int order) + { + CarvingGroup group = getGroup(name); + + CarvingGroup blockGroup = carvingGroupsByVariation.get(key(block, metadata)); + if(blockGroup != null || blockGroup == group) return null; + + CarvingVariation variation = new CarvingVariation(block, metadata, order); + group.variations.add(variation); + Collections.sort(group.variations); + carvingGroupsByVariation.put(key(block, metadata), group); + + return variation; + } + + + public void registerOre(String name, String oreName) + { + CarvingGroup group = getGroup(name); + + carvingGroupsByOre.put(oreName, group); + + group.oreName = oreName; + } + + public void setGroupClass(String name, String className) + { + CarvingGroup group = getGroup(name); + + group.className = className; + } + + public void setVariationSound(String name, String sound) + { + CarvingGroup group = getGroup(name); + group.sound = sound; + } + + public String getVariationSound(Block block, int metadata) + { + return getVariationSound(Item.getItemFromBlock(block), metadata); + } + + public String getVariationSound(Item item, int metadata) + { + CarvingGroup blockGroup = carvingGroupsByVariation.get(key(item, metadata)); + if(blockGroup == null || blockGroup.sound == null) return "chisel:chisel"; + + return blockGroup.sound; + } +} + diff --git a/src/main/java/info/jbcs/minecraft/chisel/carving/CarvingGroup.java b/src/main/java/info/jbcs/minecraft/chisel/carving/CarvingGroup.java new file mode 100644 index 00000000..a45a3935 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/carving/CarvingGroup.java @@ -0,0 +1,18 @@ +package info.jbcs.minecraft.chisel.carving; + +import java.util.ArrayList; + +public class CarvingGroup +{ + public CarvingGroup(String n) + { + name = n; + } + + String name; + String className; + String sound; + String oreName; + + ArrayList variations = new ArrayList(); +} \ No newline at end of file diff --git a/src/main/java/info/jbcs/minecraft/chisel/carving/CarvingVariation.java b/src/main/java/info/jbcs/minecraft/chisel/carving/CarvingVariation.java new file mode 100644 index 00000000..37d33136 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/carving/CarvingVariation.java @@ -0,0 +1,25 @@ +package info.jbcs.minecraft.chisel.carving; + +import net.minecraft.block.Block; + +public class CarvingVariation implements Comparable +{ + public CarvingVariation(Block block, int metadata, int ord) + { + this.order = ord; + this.block = block; + this.meta = metadata; + this.damage = metadata; + } + + @Override + public int compareTo(Object a) + { + return order - ((CarvingVariation) a).order; + } + + public int order; + public Block block; + public int meta; + public int damage; +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java b/src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java new file mode 100644 index 00000000..3226e047 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java @@ -0,0 +1,223 @@ +package info.jbcs.minecraft.chisel.client; + +import info.jbcs.minecraft.chisel.Chisel; +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.entity.EntityBallOMossFX; +import info.jbcs.minecraft.chisel.entity.EntityHolystoneFX; +import info.jbcs.minecraft.chisel.entity.EntitySnakestoneObsidianFX; +import info.jbcs.minecraft.utilities.GeneralClient; + +import java.util.Random; + +import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.EntityPlayerSP; +import net.minecraft.client.particle.EffectRenderer; +import net.minecraft.client.particle.EntityDiggingFX; +import net.minecraft.client.particle.EntityLavaFX; +import net.minecraft.entity.Entity; +import net.minecraft.world.World; + + +public class GeneralChiselClient +{ + public static Random rand = new Random(); + public static int tick = 0; + + public static void spawnLavastoneFX(World world, BlockLavastone block, int x, int y, int z) + { + if(Chisel.particlesTickrate != 0 && tick++ % Chisel.particlesTickrate != 0) return; + + 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; + + EntityLavaFX res = new EntityLavaFX(world, x1, y1, z1); +// res.motionX=x1-x-0.5; +// res.motionY=y1-y-0.5; +// res.motionZ=z1-z-0.5; + double multiplier = 0.45; + res.motionX = -multiplier * (x1 - x - 0.5); + res.motionY = multiplier * (y1 - y - 0.5); + res.motionZ = -multiplier * (z1 - z - 0.5); + + Minecraft.getMinecraft().effectRenderer.addEffect(res); + } + + public static void spawnHolystoneFX(World world, BlockHolystone block, int x, int y, int z) + { + if(Chisel.particlesTickrate != 0 && tick++ % Chisel.particlesTickrate != 0) return; + + 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; + + EntityHolystoneFX res = new EntityHolystoneFX(world, block, x1, y1, z1); + Minecraft.getMinecraft().effectRenderer.addEffect(res); + } + + public static void spawnSnakestoneObsidianFX(World world, BlockSnakestoneObsidian block, int x, int y, int z) + { + if(Chisel.particlesTickrate == 0 || tick++ % Chisel.particlesTickrate == 0) + { + EntitySnakestoneObsidianFX res = new EntitySnakestoneObsidianFX(world, block, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(res); + } + } + public static + void spawnBallOMossFX(World world, double x, double y, double z) + { + if(Chisel.particlesTickrate == 0 || tick++ % Chisel.particlesTickrate == 0) + { + EntityBallOMossFX res = new EntityBallOMossFX(world, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(res); + } + } + + + public static EntityDiggingFX addBlockHitEffects(World world, int x, int y, int z, int side) + { + Block block = world.getBlock(x, y, z); + if(block.isAir(world, x, y, z)) + return null; + + EffectRenderer renderer = Minecraft.getMinecraft().effectRenderer; + + float f = 0.1F; + double d0 = x + rand.nextDouble() * (block.getBlockBoundsMaxX() - block.getBlockBoundsMinX() - f * 2.0F) + f + block.getBlockBoundsMinX(); + double d1 = y + rand.nextDouble() * (block.getBlockBoundsMaxY() - block.getBlockBoundsMinY() - f * 2.0F) + f + block.getBlockBoundsMinY(); + double d2 = z + rand.nextDouble() * (block.getBlockBoundsMaxZ() - block.getBlockBoundsMinZ() - f * 2.0F) + f + block.getBlockBoundsMinZ(); + + switch(side) + { + case 0: + d1 = y + block.getBlockBoundsMinY() - f; + break; + case 1: + d1 = y + block.getBlockBoundsMaxY() + f; + break; + case 2: + d2 = z + block.getBlockBoundsMinZ() - f; + break; + case 3: + d2 = z + block.getBlockBoundsMaxZ() + f; + break; + case 4: + d0 = x + block.getBlockBoundsMinX() - f; + break; + case 5: + d0 = x + block.getBlockBoundsMaxX() + f; + break; + } + + EntityDiggingFX res = new EntityDiggingFX(world, d0, d1, d2, 0.0D, 0.0D, 0.0D, block, world.getBlockMetadata(x, y, z), side); +// res.func_70596_a(x, y, z); + res.motionX = d0 - (x + 0.5); + res.motionY = d1 - (y + 0.5); + res.motionZ = d2 - (z + 0.5); + + renderer.addEffect(res); + + return res; + } + + public static void spawnChiselEffect(int x, int y, int z, String sound) + { + World world = Minecraft.getMinecraft().theWorld; + for(int side = 0; side < 6; side++) + { + for(int j = 0; j < 16; j++) + { + EntityDiggingFX fx = addBlockHitEffects(Minecraft.getMinecraft().theWorld, x, y, z, side); + if(fx == null) return; + + fx.multipleParticleScaleBy(0.25f + 0.5f * rand.nextFloat()); + fx.multiplyVelocity(0.3f * rand.nextFloat()); + } + } + + GeneralClient.playChiselSound(world, x, y, z, sound); + } + + public static void speedupPlayer(World world, Entity entity, double concreteVelocity) + { + double velocity = Math.sqrt(entity.motionX * entity.motionX + entity.motionZ * entity.motionZ); + + if(!(entity instanceof EntityPlayerSP)) return; + if(velocity == 0) return; + if(velocity >= Chisel.concreteVelocity) return; + + EntityPlayerSP player = (EntityPlayerSP) entity; + + if(Math.abs(player.movementInput.moveForward) < 0.75f && Math.abs(player.movementInput.moveStrafe) < 0.75f) + return; + + entity.motionX = Chisel.concreteVelocity * entity.motionX / velocity; + entity.motionZ = Chisel.concreteVelocity * entity.motionZ / velocity; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiChisel.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiChisel.java new file mode 100644 index 00000000..30d686c9 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiChisel.java @@ -0,0 +1,65 @@ +package info.jbcs.minecraft.chisel.client.gui; + +import info.jbcs.minecraft.chisel.inventory.ContainerChisel; +import info.jbcs.minecraft.chisel.inventory.InventoryChiselSelection; +import info.jbcs.minecraft.utilities.GeneralClient; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Slot; + +import org.lwjgl.opengl.GL11; + +public class GuiChisel extends GuiContainer +{ + public EntityPlayer player; + public ContainerChisel container; + + public GuiChisel(InventoryPlayer iinventory, InventoryChiselSelection menu) + { + super(new ContainerChisel(iinventory, menu)); + player = iinventory.player; + height = 177; + + container = (ContainerChisel) inventorySlots; + } + + @Override + public void onGuiClosed() + { + super.onGuiClosed(); + inventorySlots.onContainerClosed(player); + } + + boolean isExtended() + { + return container.inventory.activeVariations > 16; + } + + @Override + protected void drawGuiContainerForegroundLayer(int j, int i) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + String line = isExtended() ? "Carve" : "Carve blocks"; + fontRendererObj.drawString(line, 88 - fontRendererObj.getStringWidth(line) / 2, 13, 0x404040); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float f, int mx, int my) + { + drawDefaultBackground(); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + int i = width - xSize >> 1; + int j = height - ySize >> 1; + + String texture = isExtended() ? + "chisel:textures/chisel-gui-24.png" : + "chisel:textures/chisel-gui.png"; + + GeneralClient.bind(texture); + drawTexturedModalRect(i, j, 0, 0, xSize, ySize); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiEdit.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiEdit.java new file mode 100644 index 00000000..86735a53 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiEdit.java @@ -0,0 +1,71 @@ +package info.jbcs.minecraft.chisel.client.gui; + +import net.minecraft.client.gui.GuiTextField; + +public class GuiEdit extends GuiElement +{ + GuiTextField field; + String tempString = ""; + + public GuiEdit(int x, int y, int w, int h) + { + super(x, y, w, h); + } + + @Override + public void onAdded() + { + field = new GuiTextField(gui.fontRendererObj(), x, y, w, h); + setText(tempString); + } + + public String getText() + { + if(field == null) + { + return tempString; + } else + { + return field.getText(); + } + } + + public void setText(String text) + { + if(field == null) + { + tempString = text; + } else + { + field.setText(text); + } + } + + @Override + public void render() + { + field.drawTextBox(); + } + + @Override + public void mouseDown(InputMouseEvent ev) + { + field.mouseClicked(ev.x, ev.y, ev.button); + + if(isMouseOver(ev)) + { + ev.handled = true; + } + } + + @Override + public void keyPressed(InputKeyboardEvent ev) + { + field.textboxKeyTyped(ev.character, ev.key); + + if(field.isFocused()) + { + ev.handled = true; + } + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiElement.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiElement.java new file mode 100644 index 00000000..15908121 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiElement.java @@ -0,0 +1,187 @@ +package info.jbcs.minecraft.chisel.client.gui; + +import java.util.ArrayList; + +import org.lwjgl.opengl.GL11; + +public class GuiElement +{ + public int x; + public int y; + public int w; + public int h; + + public GuiScreenPlus gui; + public GuiElement parent, addedParent; + private ArrayList children = null; + + public GuiElement(int x, int y, int w, int h) + { + this.x = x; + this.y = y; + this.w = w; + this.h = h; + } + + public GuiElement addChild(GuiElement e) + { + if(children == null) + { + children = new ArrayList(); + } + + if(e.parent != null) + { + e.parent.removeChild(e); + } + + children.add(e); + e.x += x; + e.y += y; + e.parent = this; + e.gui = gui; + return e; + } + + public GuiElement removeChild(GuiElement e) + { + if(children == null) + { + return e; + } + + children.remove(e); + e.x -= x; + e.y -= y; + e.parent = null; + e.gui = null; + return e; + } + + public void onAdded() + { + if(children == null) + { + return; + } + + for(GuiElement e : children) + { + if(e.parent != e.addedParent) + { + e.onAdded(); + } + + e.addedParent = e.parent; + } + } + + boolean isMouseOver(InputMouseEvent ev) + { + return ev.x >= x && ev.x < x + w && ev.y >= y && ev.y < y + h; + } + + public void mouseDown(InputMouseEvent ev) + { + if(children == null) + { + return; + } + + for(GuiElement e : children) + { + e.mouseDown(ev); + + if(ev.handled) + { + return; + } + } + } + + public void mouseUp(InputMouseEvent ev) + { + if(children == null) + { + return; + } + + for(GuiElement e : children) + { + e.mouseUp(ev); + + if(ev.handled) + { + return; + } + } + } + + public void mouseMove(InputMouseEvent ev) + { + if(children == null) + { + return; + } + + for(GuiElement e : children) + { + e.mouseMove(ev); + + if(ev.handled) + { + return; + } + } + } + + public void mouseWheel(InputMouseEvent ev) + { + if(children == null) + { + return; + } + + for(GuiElement e : children) + { + e.mouseWheel(ev); + + if(ev.handled) + { + return; + } + } + } + + public void render() + { + if(children == null) + { + return; + } + + for(GuiElement e : children) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + e.render(); + } + } + + public void keyPressed(InputKeyboardEvent ev) + { + if(children == null) + { + return; + } + + for(GuiElement e : children) + { + e.keyPressed(ev); + + if(ev.handled) + { + return; + } + } + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiExButton.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiExButton.java new file mode 100644 index 00000000..a986cc16 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiExButton.java @@ -0,0 +1,83 @@ +package info.jbcs.minecraft.chisel.client.gui; + +public class GuiExButton extends GuiElement +{ + protected String caption; + + int u, v, texw, texh; + int borderTop, borderRight, borderBottom, borderLeft; + + boolean over; + public boolean disabled; + + public TexturedBox boxDisabled; + public TexturedBox boxNormal; + public TexturedBox boxOver; + + public GuiExButton(int x, int y, int w, int h, String caption) + { + this(x, y, w, h, caption, "textures/gui/widgets.png"); + } + + public GuiExButton(int x, int y, int w, int h, String caption, String texture) + { + super(x, y, w, h); + this.caption = caption; + disabled = false; + u = 0; + v = 46; + texw = 200; + texh = 20; + borderTop = 2; + borderRight = 2; + borderBottom = 3; + borderLeft = 2; + + boxDisabled = new TexturedBox(texture, 0, 46, 200, 20, 2, 2, 3, 2); + boxNormal = new TexturedBox(texture, 0, 66, 200, 20, 2, 2, 3, 2); + boxOver = new TexturedBox(texture, 0, 86, 200, 20, 2, 2, 3, 2); + + } + + public void onClick() + { + } + + @Override + public void render() + { + int color = 0xffe0e0e0; + TexturedBox box = boxDisabled; + + if(!disabled && !over) + { + box = boxNormal; + color = 0xffffffff; + } else if(!disabled && over) + { + box = boxOver; + color = 0xffffff70; + } + + box.render(gui, x, y, w, h); + gui.drawCenteredStringWithShadow(caption, x + w / 2, y + h / 2, color); + } + + @Override + public void mouseMove(InputMouseEvent ev) + { + over = isMouseOver(ev); + } + + @Override + public void mouseDown(InputMouseEvent ev) + { + if(!isMouseOver(ev)) + { + return; + } + + gui.playSound("random.click", 1.0f, 1.0f); + onClick(); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiLabel.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiLabel.java new file mode 100644 index 00000000..fc4d2330 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiLabel.java @@ -0,0 +1,23 @@ +package info.jbcs.minecraft.chisel.client.gui; + +public class GuiLabel extends GuiElement +{ + String caption; + + public GuiLabel(int x, int y, int w, int h, String caption) + { + super(x, y, w, h); + this.caption = caption; + } + + public GuiLabel(int x, int y, String string) + { + this(x, y, 0, 0, string); + } + + @Override + public void render() + { + gui.drawString(caption, x, y, 0x404040); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiScreenPlus.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiScreenPlus.java new file mode 100644 index 00000000..f3165b68 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiScreenPlus.java @@ -0,0 +1,273 @@ +package info.jbcs.minecraft.chisel.client.gui; + +import info.jbcs.minecraft.utilities.DummyContainer; +import info.jbcs.minecraft.utilities.GeneralClient; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.inventory.Container; + +import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +public class GuiScreenPlus extends GuiContainer +{ + public int screenW; + public int screenH; + public int screenX; + public int screenY; + + public GuiElement root; + + String backgroundTexture; + + public GuiScreenPlus(Container container, int w, int h, String backgroundTexture) + { + super(container); + root = new GuiElement(0, 0, w, h); + root.gui = this; + this.screenW = w; + this.screenH = h; + this.backgroundTexture = backgroundTexture; + } + + public GuiScreenPlus(int w, int h, String backgroundTexture) + { + this(new DummyContainer(), w, h, backgroundTexture); + } + + @Override + public void initGui() + { + xSize = screenW; + ySize = screenH; + super.initGui(); + screenX = guiLeft; + screenY = guiTop; + root.onAdded(); + + Keyboard.enableRepeatEvents(true); + } + + + @Override + public void handleInput() + { + while(Mouse.next()) + { + this.handleMouseInput(); + } + + while(Keyboard.next()) + { + this.handleKeyboardInput(); + } + } + + InputMouseEvent mouseEvent = new InputMouseEvent(); + int oldX = -1; + int oldY = -1; + + boolean[] downButtons = new boolean[12]; + + @Override + public void handleMouseInput() + { + mouseEvent.handled = false; + mouseEvent.x = Mouse.getEventX() * width / mc.displayWidth - this.screenX; + mouseEvent.y = height - Mouse.getEventY() * height / mc.displayHeight - 1 - this.screenY; + + if(oldX == -1) + { + oldX = mouseEvent.x; + oldY = mouseEvent.y; + } + + mouseEvent.dx = mouseEvent.x - oldX; + mouseEvent.dy = mouseEvent.y - oldY; + oldX = mouseEvent.x; + oldY = mouseEvent.y; + mouseEvent.down = Mouse.getEventButtonState(); + mouseEvent.button = Mouse.getEventButton(); + mouseEvent.wheel = Mouse.getEventDWheel(); + + if(mouseEvent.wheel != 0) + { + if(mouseEvent.wheel < 0) + { + mouseEvent.wheel = -1; + } else + { + mouseEvent.wheel = 1; + } + + root.mouseWheel(mouseEvent); + } else if(mouseEvent.button >= 0 && mouseEvent.button < downButtons.length) + { + if(downButtons[mouseEvent.button] != mouseEvent.down) + { + downButtons[mouseEvent.button] = mouseEvent.down; + + if(mouseEvent.down) + { + root.mouseDown(mouseEvent); + } else + { + root.mouseUp(mouseEvent); + } + } else if(mouseEvent.dx != 0 || mouseEvent.dy != 0) + { + root.mouseMove(mouseEvent); + } + } else if(mouseEvent.dx != 0 || mouseEvent.dy != 0) + { + root.mouseMove(mouseEvent); + } + + if(!mouseEvent.handled) + { + super.handleMouseInput(); + } + } + + InputKeyboardEvent keyboardEvent = new InputKeyboardEvent(); + + @Override + public void handleKeyboardInput() + { + keyboardEvent.handled = false; + + if(Keyboard.getEventKeyState()) + { + keyboardEvent.key = Keyboard.getEventKey(); + keyboardEvent.character = Keyboard.getEventCharacter(); + + switch(keyboardEvent.key) + { + case 1: + break; + + default: + root.keyPressed(keyboardEvent); + } + } + + if(!keyboardEvent.handled) + { + super.handleKeyboardInput(); + } + } + + public void close() + { + mc.displayGuiScreen((GuiScreen) null); + mc.setIngameFocus(); + } + + protected void addChild(GuiElement e) + { + root.addChild(e); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float f, int bx, int by) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GeneralClient.bind(backgroundTexture); + drawTexturedModalRect(screenX, screenY, 0, 0, screenW, screenH); + } + + @Override + protected void drawGuiContainerForegroundLayer(int fx, int fy) + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + root.render(); + } + + public void drawString(String text, int sx, int sy, int color) + { + fontRendererObj.drawString(text, sx, sy, color); + } + + public void drawCenteredString(String text, int sx, int sy, int color) + { + fontRendererObj.drawString(text, sx - fontRendererObj.getStringWidth(text) / 2, sy - fontRendererObj.FONT_HEIGHT / 2, color); + } + + public void drawStringWithShadow(String text, int sx, int sy, int color) + { + fontRendererObj.drawStringWithShadow(text, sx, sy, color); + } + + public void drawCenteredStringWithShadow(String text, int sx, int sy, int color) + { + fontRendererObj.drawStringWithShadow(text, sx - fontRendererObj.getStringWidth(text) / 2, sy - fontRendererObj.FONT_HEIGHT / 2, color); + } + + public FontRenderer fontRendererObj() + { + return this.fontRendererObj; + } + + protected void drawRect(int gx, int gy, int gw, int gh, int c1, int c2) + { + drawGradientRect(gx, gy, gx + gw, gy + gh, c1, c2); + } + + public void drawTiledRect(int rx, int ry, int rw, int rh, int u, int v, int tw, int th) + { + if(rw == 0 || rh == 0 || tw == 0 || th == 0) return; + + float pixel = 0.00390625f; + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawingQuads(); + + for(int y = 0; y < rh; y += th) + { + for(int x = 0; x < rw; x += tw) + { + int qw = tw; + + if(x + qw > rw) + { + qw = rw - x; + } + + int qh = th; + + if(y + qh > rh) + { + qh = rh - y; + } + + double x1 = rx + x; + double x2 = rx + x + qw; + double y1 = ry + y; + double y2 = ry + y + qh; + double u1 = pixel * (u); + double u2 = pixel * (u + tw); + double v1 = pixel * (v); + double v2 = pixel * (v + th); + tessellator.addVertexWithUV(x1, y2, this.zLevel, u1, v2); + tessellator.addVertexWithUV(x2, y2, this.zLevel, u2, v2); + tessellator.addVertexWithUV(x2, y1, this.zLevel, u2, v1); + tessellator.addVertexWithUV(x1, y1, this.zLevel, u1, v1); + } + } + + tessellator.draw(); + } + + public void bindTexture(String tex) + { + GeneralClient.bind(tex); + } + + public void playSound(String sound, float volume, float pitch) + { + // TODO + //mc.getSoundHandler().playSoundFX(null, 1.0F, 1.0F); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuilScrolledBox.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuilScrolledBox.java new file mode 100644 index 00000000..aa1a8a8e --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/GuilScrolledBox.java @@ -0,0 +1,124 @@ +package info.jbcs.minecraft.chisel.client.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.Tessellator; + +import org.lwjgl.opengl.GL11; + +public class GuilScrolledBox extends GuiElement +{ + public int offset = 0; + int contentHeight = 0; + int scrollingStart = -1; + + public GuilScrolledBox(int x, int y, int w, int h) + { + super(x, y, w, h); + } + + int x0, x1; + + protected void overlayBackground(int start, int end, int color, int a1, int a2) + { + Tessellator tessellator = Tessellator.instance; + + float f = 32.0F; + + tessellator.startDrawingQuads(); + tessellator.setColorRGBA_I(color, a2); + tessellator.addVertexWithUV(x0, end, 0.0D, 0.0D, end / f); + tessellator.addVertexWithUV(x1, end, 0.0D, gui.width / f, end / f); + tessellator.setColorRGBA_I(color, a1); + tessellator.addVertexWithUV(x1, start, 0.0D, gui.width / f, start / f); + tessellator.addVertexWithUV(x0, start, 0.0D, 0.0D, start / f); + tessellator.draw(); + } + + + @Override + public GuiElement addChild(GuiElement e) + { + int childBottom = e.y + e.h - 18; + if(childBottom > contentHeight) + contentHeight = childBottom; + + return super.addChild(e); + } + + + @Override + public void render() + { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(Gui.optionsBackground); + x0 = -gui.screenX; + x1 = -gui.screenX + gui.width; + + overlayBackground(y, h, 0x202020, 0xff, 0xff); + + GL11.glPushMatrix(); + GL11.glTranslatef(0.0f, offset, 0.0f); + super.render(); + GL11.glPopMatrix(); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glShadeModel(GL11.GL_SMOOTH); + GL11.glDisable(GL11.GL_TEXTURE_2D); + overlayBackground(y, y + 8, 0x000000, 0xff, 0x00); + overlayBackground(h - 8, h, 0x000000, 0x00, 0xff); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDisable(GL11.GL_BLEND); + + Minecraft.getMinecraft().getTextureManager().bindTexture(Gui.optionsBackground); + overlayBackground(-gui.screenY, y, 0x404040, 0xff, 0xff); + overlayBackground(h, -gui.screenY + gui.height, 0x404040, 0xff, 0xff); + } + + @Override + public void mouseMove(InputMouseEvent ev) + { + if(scrollingStart != -1) + { + offset = ev.y - scrollingStart; + if(offset > contentHeight) offset = contentHeight; + if(offset < -contentHeight) offset = -contentHeight; + } + + ev.y -= offset; + super.mouseMove(ev); + ev.y += offset; + } + + @Override + public void mouseDown(InputMouseEvent ev) + { + scrollingStart = ev.y - offset; + + if(ev.y >= y && ev.y < y + h) + { + ev.y -= offset; + super.mouseDown(ev); + ev.y += offset; + } + } + + @Override + public void mouseUp(InputMouseEvent ev) + { + scrollingStart = -1; + + if(ev.y >= y && ev.y < y + h) + { + ev.y -= offset; + super.mouseUp(ev); + ev.y += offset; + } + } +} + + diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputEvent.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputEvent.java new file mode 100644 index 00000000..bccd1dd5 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputEvent.java @@ -0,0 +1,6 @@ +package info.jbcs.minecraft.chisel.client.gui; + +public class InputEvent +{ + public boolean handled; +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputKeyboardEvent.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputKeyboardEvent.java new file mode 100644 index 00000000..4869df9c --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputKeyboardEvent.java @@ -0,0 +1,7 @@ +package info.jbcs.minecraft.chisel.client.gui; + +public class InputKeyboardEvent extends InputEvent +{ + public int key; + public char character; +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputMouseEvent.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputMouseEvent.java new file mode 100644 index 00000000..da47d9d7 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/InputMouseEvent.java @@ -0,0 +1,12 @@ +package info.jbcs.minecraft.chisel.client.gui; + +public class InputMouseEvent extends InputEvent +{ + public int x; + public int y; + public int dx; + public int dy; + public int wheel; + public int button; + public boolean down; +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/Scrollbar.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/Scrollbar.java new file mode 100644 index 00000000..18265dd5 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/Scrollbar.java @@ -0,0 +1,125 @@ +package info.jbcs.minecraft.chisel.client.gui; + +import info.jbcs.minecraft.utilities.GeneralClient; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; + +import org.lwjgl.input.Mouse; + +public abstract class Scrollbar extends GuiButton +{ + public boolean active; + + public float offset; + public float step; + + boolean dragged; + + int elementHeight = 15; + + public Scrollbar(int id, int x, int y, int w, int h, String string) + { + super(id, x, y, w, h, string); + offset = 0; + step = 0.025f; + height = h; + active = true; + dragged = false; + } + + /** + * Returns true if the mouse has been pressed on this control. Equivalent of + * MouseListener.mousePressed(MouseEvent e). + */ + @Override + public boolean mousePressed(Minecraft mc, int x, int y) + { + if(x < xPosition || x >= xPosition + width) + { + return false; + } + + if(y < yPosition || y >= yPosition + height) + { + return false; + } + + if(active) + { + dragged = true; + } + + return true; + } + + /** + * Draws this button to the screen. + */ + @Override + public void drawButton(Minecraft mc, int x, int y) + { + if(dragged) + { + float initialOffset = offset; + int off = y - yPosition - elementHeight / 2; + offset = 1.0f * off / (height - elementHeight); + + if(offset < 0) + { + offset = 0; + } + + if(offset > 1) + { + offset = 1; + } + + if(initialOffset != offset) + { + onScrolled(offset); + } + } + + int bottom = yPosition + height; + GeneralClient.bind("/gui/allitems.png"); + drawTexturedModalRect(xPosition, yPosition + (int) ((height - elementHeight) * offset), active ? 232 : 244, 0, 12, elementHeight); + } + + public void handleMouseInput() + { + if(Mouse.getEventButton() == 0 && !Mouse.getEventButtonState()) + { + dragged = false; + } + + if(!active) + { + return; + } + + float initialOffset = offset; + int direction = Mouse.getEventDWheel(); + + if(direction != 0) + { + offset += direction > 0 ? -step : step; + } + + if(offset < 0) + { + offset = 0; + } + + if(offset > 1) + { + offset = 1; + } + + if(initialOffset != offset) + { + onScrolled(offset); + } + } + + public abstract void onScrolled(float off); +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/gui/TexturedBox.java b/src/main/java/info/jbcs/minecraft/chisel/client/gui/TexturedBox.java new file mode 100644 index 00000000..04d5dc98 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/gui/TexturedBox.java @@ -0,0 +1,73 @@ +package info.jbcs.minecraft.chisel.client.gui; + +public class TexturedBox +{ + String texture; + int u, v, texw, texh; + int borderTop, borderRight, borderBottom, borderLeft; + + public TexturedBox(String texture, int u, int v, int texw, int texh, int borderTop, int borderRight, int borderBottom, int borderLeft) + { + this.texture = texture; + this.u = u; + this.v = v; + this.texw = texw; + this.texh = texh; + this.borderTop = borderTop; + this.borderRight = borderRight; + this.borderBottom = borderBottom; + this.borderLeft = borderLeft; + } + + public void render(GuiScreenPlus gui, int x, int y, int w, int h) + { + int x1 = x; + int x2 = x + borderLeft; + int x3 = x + w - borderRight; + int y1 = y; + int y2 = y + borderTop; + int y3 = y + h - borderBottom; + int w1 = borderLeft; + int w2 = w - borderLeft - borderRight; + int w3 = borderRight; + int h1 = borderTop; + int h2 = h - borderTop - borderBottom; + int h3 = borderBottom; + int u1 = u; + int v1 = v; + int tw = texw; + + if(tw > w) + { + tw = w; + } + + int th = texh; + + if(th > h) + { + th = h; + } + + int u2 = u1 + borderLeft; + int u3 = u1 + texw - borderRight; + int v2 = v1 + borderTop; + int v3 = v1 + texh - borderBottom; + int texw1 = borderLeft; + int texw2 = tw - borderLeft - borderRight; + int texw3 = borderRight; + int texh1 = borderTop; + int texh2 = th - borderTop - borderBottom; + int texh3 = borderBottom; + gui.bindTexture(texture); + gui.drawTexturedModalRect(x1, y1, u1, v1, w1, h1); + gui.drawTiledRect(x2, y1, w2, h1, u2, v1, texw2, texh1); + gui.drawTexturedModalRect(x3, y1, u3, v1, w3, h1); + gui.drawTiledRect(x1, y2, w1, h2, u1, v2, w1, texh2); + gui.drawTiledRect(x2, y2, w2, h2, u2, v2, texw2, texh2); + gui.drawTiledRect(x3, y2, w3, h2, u3, v2, w3, texh2); + gui.drawTexturedModalRect(x1, y3, u1, v3, w1, h3); + gui.drawTiledRect(x2, y3, w2, h3, u2, v3, texw2, texh3); + gui.drawTexturedModalRect(x3, y3, u3, v3, w3, h3); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockAdvancedMarbleRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockAdvancedMarbleRenderer.java new file mode 100644 index 00000000..027754b0 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockAdvancedMarbleRenderer.java @@ -0,0 +1,87 @@ +package info.jbcs.minecraft.chisel.client.render; + +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.Chisel; +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockAdvancedMarbleRenderer implements ISimpleBlockRenderingHandler +{ + RenderBlocksCTM rendererCTM = new RenderBlocksCTM(); + RenderBlocksColumn rendererColumn = new RenderBlocksColumn(); + + public BlockAdvancedMarbleRenderer() + { + if(Chisel.RenderCTMId == 0) + { + Chisel.RenderCTMId = RenderingRegistry.getNextAvailableRenderId(); + + } + } + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) + { + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + Drawing.drawBlock(block, metadata, renderer); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks rendererOld) + { + int meta = world.getBlockMetadata(x, y, z); + + CarvableVariation var = ((ICarvable) block).getVariation(meta); + + switch(var == null ? 0 : var.kind) + { + case CarvableHelper.CTMX: + rendererCTM.blockAccess = world; + rendererCTM.renderMaxX = 1.0; + rendererCTM.renderMaxY = 1.0; + rendererCTM.renderMaxZ = 1.0; + + rendererCTM.submap = var.submap; + rendererCTM.submapSmall = var.submapSmall; + + rendererCTM.rendererOld = rendererOld; + + return rendererCTM.renderStandardBlock(block, x, y, z); + case CarvableHelper.CTMV: + rendererColumn.blockAccess = world; + rendererColumn.renderMaxX = 1.0; + rendererColumn.renderMaxY = 1.0; + rendererColumn.renderMaxZ = 1.0; + + rendererColumn.submap = var.seamsCtmVert; + rendererColumn.iconTop = var.iconTop; + + return rendererColumn.renderStandardBlock(block, x, y, z); + default: + return rendererOld.renderStandardBlock(block, x, y, z); + } + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return true; + } + + @Override + public int getRenderId() + { + return Chisel.RenderCTMId; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockCarpetRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockCarpetRenderer.java new file mode 100644 index 00000000..c2ead782 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockCarpetRenderer.java @@ -0,0 +1,24 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.Chisel; +import cpw.mods.fml.client.registry.RenderingRegistry; + + +public class BlockCarpetRenderer extends BlockAdvancedMarbleRenderer +{ + + public BlockCarpetRenderer() + { + super(); + + Chisel.RenderCarpetId = RenderingRegistry.getNextAvailableRenderId(); + + rendererCTM = new RenderBlocksCTMCarpet(); + } + + @Override + public int getRenderId() + { + return Chisel.RenderCarpetId; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockEldritchRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockEldritchRenderer.java old mode 100755 new mode 100644 similarity index 65% rename from src/main/java/info/jbcs/minecraft/chisel/render/BlockEldritchRenderer.java rename to src/main/java/info/jbcs/minecraft/chisel/client/render/BlockEldritchRenderer.java index 3523f5ba..f23f6e9e --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockEldritchRenderer.java +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockEldritchRenderer.java @@ -1,109 +1,115 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockEldritchRenderer implements ISimpleBlockRenderingHandler { - public BlockEldritchRenderer() { - Chisel.RenderEldritchId = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) { - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - Drawing.drawBlock(block, metadata, renderer); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - - - RenderBlocksEldritch renderer=new RenderBlocksEldritch(); - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks rendererOld) { - int meta = world.getBlockMetadata(x, y, z); - -// tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); -/* - double d0 = 0.4000000059604645D; - double d1 = 0.5D - d0; - double d2 = 0.20000000298023224D; - - */ - // renderer.renderTorchAtAngle(Block.torchWood, x - d1, y + d2, z, -d0, 0.0D, 0); -/* - Icon icon = block.getIcon(2, meta); - double u0 = icon.getMinU(); - double v0 = icon.getMaxV(); - double u1 = icon.getMaxU(); - double v1 = icon.getMinV(); - double uu = icon.getInterpolatedU(8.0D); - double vv = icon.getInterpolatedV(8.0D); - - - int lyp=block.getMixedBrightnessForBlock(world, x, y+1, z); - int lym=block.getMixedBrightnessForBlock(world, x, y-1, z); - int lxp=block.getMixedBrightnessForBlock(world, x+1, y, z); - int lxm=block.getMixedBrightnessForBlock(world, x-1, y, z); - int lzp=block.getMixedBrightnessForBlock(world, x, y, z+1); - int lzm=block.getMixedBrightnessForBlock(world, x, y, z-1); - - - - - - - - - - - - - icon = block.getIcon(0, meta); - u0 = icon.getMinU(); - v0 = icon.getMinV(); - u1 = icon.getMaxU(); - v1 = icon.getMaxV(); - vertex(1,u0,v0); vertex(5,u1,v0); vertex(6,u1,v1); vertex(2,u0,v1); - - icon = block.getIcon(1, meta); - u0 = icon.getMinU(); - v0 = icon.getMinV(); - u1 = icon.getMaxU(); - v1 = icon.getMaxV(); - vertex(0,u0,v0); vertex(3,u0,v1); vertex(7,u1,v1); vertex(4,u1,v0); - - */ - - renderer.blockAccess=world; - renderer.renderMaxX=1.0; - renderer.renderMaxY=1.0; - renderer.renderMaxZ=1.0; - renderer.renderStandardBlock(block,x,y,z); - - return true; -/* - - boolean flag = renderer.renderStandardBlock(block, x, y, z); - - return flag;*/ - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return true; - } - - @Override - public int getRenderId() { - return Chisel.RenderEldritchId; - } - -} +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.Chisel; +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockEldritchRenderer implements ISimpleBlockRenderingHandler +{ + public BlockEldritchRenderer() + { + Chisel.RenderEldritchId = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) + { + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + Drawing.drawBlock(block, metadata, renderer); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + + RenderBlocksEldritch renderer = new RenderBlocksEldritch(); + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks rendererOld) + { + int meta = world.getBlockMetadata(x, y, z); + +// tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); +/* + double d0 = 0.4000000059604645D; + double d1 = 0.5D - d0; + double d2 = 0.20000000298023224D; + + */ + // renderer.renderTorchAtAngle(Block.torchWood, x - d1, y + d2, z, -d0, 0.0D, 0); +/* + Icon icon = block.getIcon(2, meta); + double u0 = icon.getMinU(); + double v0 = icon.getMaxV(); + double u1 = icon.getMaxU(); + double v1 = icon.getMinV(); + double uu = icon.getInterpolatedU(8.0D); + double vv = icon.getInterpolatedV(8.0D); + + + int lyp=block.getMixedBrightnessForBlock(world, x, y+1, z); + int lym=block.getMixedBrightnessForBlock(world, x, y-1, z); + int lxp=block.getMixedBrightnessForBlock(world, x+1, y, z); + int lxm=block.getMixedBrightnessForBlock(world, x-1, y, z); + int lzp=block.getMixedBrightnessForBlock(world, x, y, z+1); + int lzm=block.getMixedBrightnessForBlock(world, x, y, z-1); + + + + + + + + + + + + + icon = block.getIcon(0, meta); + u0 = icon.getMinU(); + v0 = icon.getMinV(); + u1 = icon.getMaxU(); + v1 = icon.getMaxV(); + vertex(1,u0,v0); vertex(5,u1,v0); vertex(6,u1,v1); vertex(2,u0,v1); + + icon = block.getIcon(1, meta); + u0 = icon.getMinU(); + v0 = icon.getMinV(); + u1 = icon.getMaxU(); + v1 = icon.getMaxV(); + vertex(0,u0,v0); vertex(3,u0,v1); vertex(7,u1,v1); vertex(4,u1,v0); + + */ + + renderer.blockAccess = world; + renderer.renderMaxX = 1.0; + renderer.renderMaxY = 1.0; + renderer.renderMaxZ = 1.0; + renderer.renderStandardBlock(block, x, y, z); + + return true; +/* + + boolean flag = renderer.renderStandardBlock(block, x, y, z); + + return flag;*/ + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return true; + } + + @Override + public int getRenderId() + { + return Chisel.RenderEldritchId; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePaneRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePaneRenderer.java new file mode 100644 index 00000000..6f513ec9 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePaneRenderer.java @@ -0,0 +1,339 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.block.BlockPane; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockMarblePaneRenderer implements ISimpleBlockRenderingHandler +{ + public static int id; + + public BlockMarblePaneRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) + { + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + GL11.glScalef(1.25f, 1.25f, 1.25f); + renderer.setRenderBounds(0.0f, 0.0f, 0.5f - 0.0625f, 1.0f, 1.0f, 0.5f + 0.0625f); + Drawing.drawBlock(block, meta, renderer); + } + + class PaneRenderer + { + Tessellator tessellator; + + double i0u0; + double i0uh; + double i0u1; + double i0v0; + double i0v1; + + double i1u0; + double i1u1; + double i1v0; + double i1vh; + double i1v1; + double i1v; + + double i2u0; + double i2u1; + double i2v0; + double i2v1; + double i2v; + + double x0; + double xh; + double x1; + double xp0; + double xp1; + + double z0; + double zh; + double z1; + double zp0; + double zp1; + + double y0; + double y1; + + void set(double x, double y, double z, IIcon icon, IIcon icon1, IIcon icon2) + { + tessellator = Tessellator.instance; + + i0u0 = icon.getMinU(); + i0uh = icon.getInterpolatedU(8.0D); + i0u1 = icon.getMaxU(); + i0v0 = icon.getMinV(); + i0v1 = icon.getMaxV(); + + i1u0 = icon1.getInterpolatedU(7.0D); + i1u1 = icon1.getInterpolatedU(9.0D); + i1v0 = icon1.getMinV(); + i1vh = icon1.getInterpolatedV(8.0D); + i1v1 = icon1.getMaxV(); + i1v = i1v1 - i1v0; + + i2u0 = icon2.getInterpolatedU(7.0D); + i2u1 = icon2.getInterpolatedU(9.0D); + i2v0 = icon2.getMinV(); + i2v1 = icon2.getMaxV(); + i2v = i2v1 - i2v0; + + x0 = x; + xh = x0 + 0.5D; + x1 = x + 1; + xp0 = x0 + 0.5D - 0.0625D; + xp1 = x0 + 0.5D + 0.0625D; + + z0 = z; + zh = z0 + 0.5D; + z1 = z + 1; + zp0 = z0 + 0.5D - 0.0625D; + zp1 = z0 + 0.5D + 0.0625D; + + y0 = y; + y1 = y + 1; + } + + public void renderNorthPane() + { + tessellator.addVertexWithUV(xh, y1, z0, i0uh, i0v0); + tessellator.addVertexWithUV(xh, y0, z0, i0uh, i0v1); + tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); + tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); + tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); + tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); + tessellator.addVertexWithUV(xh, y0, z0, i0uh, i0v1); + tessellator.addVertexWithUV(xh, y1, z0, i0uh, i0v0); + } + + public void renderSouthPane() + { + tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); + tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); + tessellator.addVertexWithUV(xh, y0, z1, i0uh, i0v1); + tessellator.addVertexWithUV(xh, y1, z1, i0uh, i0v0); + tessellator.addVertexWithUV(xh, y1, z1, i0uh, i0v0); + tessellator.addVertexWithUV(xh, y0, z1, i0uh, i0v1); + tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); + tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); + } + + public void renderWestPane() + { + tessellator.addVertexWithUV(x0, y1, zh, i0uh, i0v0); + tessellator.addVertexWithUV(x0, y0, zh, i0uh, i0v1); + tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); + tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); + tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); + tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); + tessellator.addVertexWithUV(x0, y0, zh, i0uh, i0v1); + tessellator.addVertexWithUV(x0, y1, zh, i0uh, i0v0); + } + + public void renderEastPane() + { + tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); + tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); + tessellator.addVertexWithUV(x1, y0, zh, i0uh, i0v1); + tessellator.addVertexWithUV(x1, y1, zh, i0uh, i0v0); + tessellator.addVertexWithUV(x1, y1, zh, i0uh, i0v0); + tessellator.addVertexWithUV(x1, y0, zh, i0uh, i0v1); + tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); + tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); + } + + public void renderVerticalNS(double y, double zoff0, double zoff1, double v0, double v1) + { + tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff0, i1u0, i1v0 + i1v * v0); + tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff1, i1u0, i1v0 + i1v * v1); + tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff1, i1u1, i1v0 + i1v * v1); + tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff0, i1u1, i1v0 + i1v * v0); + tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff1, i1u0, i1v0 + i1v * v1); + tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff0, i1u0, i1v0 + i1v * v0); + tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff0, i1u1, i1v0 + i1v * v0); + tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff1, i1u1, i1v0 + i1v * v1); + } + + public void renderVerticalWE(double y, double xoff0, double xoff1, double v0, double v1) + { + tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp1, i1u1, i1v0 + i1v * v0); + tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp1, i1u1, i1v0 + i1v * v1); + tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp0, i1u0, i1v0 + i1v * v1); + tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp0, i1u0, i1v0 + i1v * v0); + tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp1, i1u1, i1v0 + i1v * v1); + tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp1, i1u1, i1v0 + i1v * v0); + tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp0, i1u0, i1v0 + i1v * v0); + tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp0, i1u0, i1v0 + i1v * v1); + } + + + public void renderHorizontalNS(double zoff, double v0, double v1) + { + tessellator.addVertexWithUV(xp0, y1, z0 + zoff, i2u0, i2v0 + i2v * v1); + tessellator.addVertexWithUV(xp0, y0, z0 + zoff, i2u0, i2v0 + i2v * v0); + tessellator.addVertexWithUV(xp1, y0, z0 + zoff, i2u1, i2v0 + i2v * v0); + tessellator.addVertexWithUV(xp1, y1, z0 + zoff, i2u1, i2v0 + i2v * v1); + tessellator.addVertexWithUV(xp1, y1, z0 + zoff, i2u1, i2v0 + i2v * v1); + tessellator.addVertexWithUV(xp1, y0, z0 + zoff, i2u1, i2v0 + i2v * v0); + tessellator.addVertexWithUV(xp0, y0, z0 + zoff, i2u0, i2v0 + i2v * v0); + tessellator.addVertexWithUV(xp0, y1, z0 + zoff, i2u0, i2v0 + i2v * v1); + + } + + public void renderHorizontalWE(double xoff, double v0, double v1) + { + tessellator.addVertexWithUV(x0 + xoff, y1, zp0, i2u0, i2v0 + i2v * v1); + tessellator.addVertexWithUV(x0 + xoff, y0, zp0, i2u0, i2v0 + i2v * v0); + tessellator.addVertexWithUV(x0 + xoff, y0, zp1, i2u1, i2v0 + i2v * v0); + tessellator.addVertexWithUV(x0 + xoff, y1, zp1, i2u1, i2v0 + i2v * v1); + tessellator.addVertexWithUV(x0 + xoff, y1, zp1, i2u1, i2v0 + i2v * v1); + tessellator.addVertexWithUV(x0 + xoff, y0, zp1, i2u1, i2v0 + i2v * v0); + tessellator.addVertexWithUV(x0 + xoff, y0, zp0, i2u0, i2v0 + i2v * v0); + tessellator.addVertexWithUV(x0 + xoff, y1, zp0, i2u0, i2v0 + i2v * v1); + } + } + + PaneRenderer paneRenderer = new PaneRenderer(); + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block b, int modelId, RenderBlocks renderer) + { + BlockPane block = (BlockPane) b; + Tessellator tessellator = Tessellator.instance; + + int worldHeight = world.getHeight(); + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + + float f = 1.0F; + int i1 = block.colorMultiplier(world, x, y, z); + float f1 = (i1 >> 16 & 255) / 255.0F; + float f2 = (i1 >> 8 & 255) / 255.0F; + float f3 = (i1 & 255) / 255.0F; + + if(EntityRenderer.anaglyphEnable) + { + float f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F; + float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F; + float f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F; + f1 = f4; + f2 = f5; + f3 = f6; + } + tessellator.setColorOpaque_F(f * f1, f * f2, f * f3); + + int meta = world.getBlockMetadata(x, y, z); + IIcon iconPane = block.getIcon(2, meta); + IIcon iconTop = block.getIcon(1, meta); + IIcon iconSide = block.getIcon(0, meta); + if(iconPane == null || iconTop == null || iconSide == null) return false; + + paneRenderer.set(x, y, z, iconPane, iconTop, iconSide); + + boolean connectsNorth = block.canPaneConnectToBlock(world.getBlock(x, y, z - 1)); + boolean connectsSouth = block.canPaneConnectToBlock(world.getBlock(x, y, z + 1)); + boolean connectsWest = block.canPaneConnectToBlock(world.getBlock(x - 1, y, z)); + boolean connectsEast = block.canPaneConnectToBlock(world.getBlock(x + 1, y, z)); + boolean connectsTop = block.canPaneConnectToBlock(world.getBlock(x, y + 1, z)); + boolean connectsBottom = block.canPaneConnectToBlock(world.getBlock(x, y - 1, z)); + + boolean connectsTopNorth = block.canPaneConnectToBlock(world.getBlock(x, y + 1, z - 1)); + boolean connectsTopSouth = block.canPaneConnectToBlock(world.getBlock(x, y + 1, z + 1)); + boolean connectsTopWest = block.canPaneConnectToBlock(world.getBlock(x - 1, y + 1, z)); + boolean connectsTopEast = block.canPaneConnectToBlock(world.getBlock(x + 1, y + 1, z)); + + boolean connectsBottomNorth = block.canPaneConnectToBlock(world.getBlock(x, y - 1, z - 1)); + boolean connectsBottomSouth = block.canPaneConnectToBlock(world.getBlock(x, y - 1, z + 1)); + boolean connectsBottomWest = block.canPaneConnectToBlock(world.getBlock(x - 1, y - 1, z)); + boolean connectsBottomEast = block.canPaneConnectToBlock(world.getBlock(x + 1, y - 1, z)); + + boolean isolatedTop = !connectsTopNorth && !connectsTopSouth && !connectsTopWest && !connectsTopEast; + boolean isolatedBottom = !connectsBottomNorth && !connectsBottomSouth && !connectsBottomWest && !connectsBottomEast; + + if(!connectsNorth && !connectsSouth && !connectsWest && !connectsEast) + { + connectsNorth = connectsSouth = connectsWest = connectsEast = true; + } + + int connections = 0; + if(connectsNorth) + { + paneRenderer.renderNorthPane(); + if(!connectsBottom || !connectsBottomNorth && !isolatedBottom) + paneRenderer.renderVerticalNS(-0.0003, 0.0, 0.5, 0.5, 0.0); + if(!connectsTop || !connectsTopNorth && !isolatedTop) + paneRenderer.renderVerticalNS(+1.0003, 0.0, 0.5, 0.5, 0.0); + connections++; + } + if(connectsSouth) + { + paneRenderer.renderSouthPane(); + if(!connectsBottom || !connectsBottomSouth && !isolatedBottom) + paneRenderer.renderVerticalNS(-0.0004, 0.5, 1.0, 1.0, 0.5); + if(!connectsTop || !connectsTopSouth && !isolatedTop) + paneRenderer.renderVerticalNS(+1.0004, 0.5, 1.0, 1.0, 0.5); + connections++; + } + if(connectsWest) + { + paneRenderer.renderWestPane(); + if(!connectsBottom || !connectsBottomWest && !isolatedBottom) + paneRenderer.renderVerticalWE(-0.0001, 0.0, 0.5, 0.5, 0.0); + if(!connectsTop || !connectsTopWest && !isolatedTop) + paneRenderer.renderVerticalWE(+1.0001, 0.0, 0.5, 0.5, 0.0); + connections++; + } + if(connectsEast) + { + paneRenderer.renderEastPane(); + if(!connectsBottom || !connectsBottomEast && !isolatedBottom) + paneRenderer.renderVerticalWE(-0.0002, 0.5, 1.0, 1.0, 0.5); + if(!connectsTop || !connectsTopEast && !isolatedTop) + paneRenderer.renderVerticalWE(+1.0002, 0.5, 1.0, 1.0, 0.5); + connections++; + } + + + if(connections == 1) + { + if(connectsNorth) paneRenderer.renderHorizontalNS(0.5, 1.0, 0.0); + if(connectsSouth) paneRenderer.renderHorizontalNS(0.5, 0.0, 1.0); + if(connectsEast) paneRenderer.renderHorizontalWE(0.5, 0.0, 1.0); + if(connectsWest) paneRenderer.renderHorizontalWE(0.5, 1.0, 0.0); + } else if(connections == 4) + { + paneRenderer.renderHorizontalNS(0.0, 1.0, 0.0); + paneRenderer.renderHorizontalNS(1.0, 0.0, 1.0); + paneRenderer.renderHorizontalWE(0.0, 0.0, 1.0); + paneRenderer.renderHorizontalWE(1.0, 1.0, 0.0); + } + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return false; + } + + @Override + public int getRenderId() + { + return id; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePillarRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePillarRenderer.java new file mode 100644 index 00000000..f7b276bc --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePillarRenderer.java @@ -0,0 +1,174 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.carving.CarvableHelper; +import info.jbcs.minecraft.chisel.block.BlockMarblePillar; +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockMarblePillarRenderer implements ISimpleBlockRenderingHandler +{ + public static int id; + + public BlockMarblePillarRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block blck, int metadata, int modelID, RenderBlocks renderer) + { + if(!(blck instanceof BlockMarblePillar)) + return; + + BlockMarblePillar block = (BlockMarblePillar) blck; + + block.sides[0] = block.sides[1] = block.getCtmIcon(4, metadata); + block.sides[2] = block.sides[3] = block.sides[4] = block.sides[5] = block.getCtmIcon(0, metadata); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + Drawing.drawBlock(block, metadata, renderer); + } + + boolean connected(IBlockAccess world, int x, int y, int z, Block block, int meta) + { + return world.getBlock(x, y, z).equals(block) && world.getBlockMetadata(x, y, z) == meta; + + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) + { + if(!(blck instanceof BlockMarblePillar)) + return false; + + BlockMarblePillar block = (BlockMarblePillar) blck; + + int metadata = world.getBlockMetadata(x, y, z); + + if(block.carverHelper.variations.get(metadata).kind != CarvableHelper.CTMV) + { + block.sides[0] = block.carverHelper.getIcon(0, metadata); + block.sides[1] = block.carverHelper.getIcon(1, metadata); + block.sides[2] = block.carverHelper.getIcon(2, metadata); + block.sides[3] = block.carverHelper.getIcon(3, metadata); + block.sides[4] = block.carverHelper.getIcon(4, metadata); + block.sides[5] = block.carverHelper.getIcon(5, metadata); + + return renderer.renderStandardBlock(block, x, y, z); + } + + boolean yp = connected(world, x, y + 1, z, block, metadata); + boolean yn = connected(world, x, y - 1, z, block, metadata); + + if(yp || yn) + { + block.sides[0] = block.getCtmIcon(4, metadata); + block.sides[1] = block.getCtmIcon(4, metadata); + + if(yp && yn) + block.sides[2] = block.getCtmIcon(2, metadata); + else if(yp) + block.sides[2] = block.getCtmIcon(3, metadata); + else + block.sides[2] = block.getCtmIcon(1, metadata); + + block.sides[3] = block.sides[4] = block.sides[5] = block.sides[2]; + } else + { + boolean xp = connected(world, x + 1, y, z, block, metadata); + boolean xn = connected(world, x - 1, y, z, block, metadata); + + if(xp && (connected(world, x + 1, y + 1, z, block, metadata) || connected(world, x + 1, y - 1, z, block, metadata))) + xp = false; + if(xn && (connected(world, x - 1, y + 1, z, block, metadata) || connected(world, x - 1, y - 1, z, block, metadata))) + xn = false; + + if(xp || xn) + { + renderer.uvRotateEast = 2; + renderer.uvRotateWest = 1; + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + + block.sides[4] = block.getCtmIcon(4, metadata); + block.sides[5] = block.getCtmIcon(4, metadata); + + if(xp && xn) + block.sides[0] = block.getCtmIcon(2, metadata); + else if(xp) + block.sides[0] = block.getCtmIcon(3, metadata); + else + block.sides[0] = block.getCtmIcon(1, metadata); + + block.sides[1] = block.sides[2] = block.sides[3] = block.sides[0]; + } else + { + boolean zp = connected(world, x, y, z + 1, block, metadata); + boolean zn = connected(world, x, y, z - 1, block, metadata); + + if(zp && (connected(world, x, y + 1, z + 1, block, metadata) || connected(world, x, y - 1, z + 1, block, metadata))) + zp = false; + if(zp && (connected(world, x + 1, y, z + 1, block, metadata) || connected(world, x - 1, y, z + 1, block, metadata))) + zp = false; + if(zn && (connected(world, x, y + 1, z - 1, block, metadata) || connected(world, x, y - 1, z - 1, block, metadata))) + zn = false; + if(zn && (connected(world, x + 1, y, z - 1, block, metadata) || connected(world, x - 1, y, z - 1, block, metadata))) + zn = false; + + if(zp || zn) + { + renderer.uvRotateSouth = 1; + renderer.uvRotateNorth = 2; + + block.sides[2] = block.getCtmIcon(4, metadata); + block.sides[3] = block.getCtmIcon(4, metadata); + + if(zp && zn) + block.sides[0] = block.getCtmIcon(2, metadata); + else if(zp) + block.sides[0] = block.getCtmIcon(1, metadata); + else + block.sides[0] = block.getCtmIcon(3, metadata); + + block.sides[1] = block.sides[4] = block.sides[5] = block.sides[0]; + } else + { + block.sides[0] = block.sides[1] = block.getCtmIcon(4, metadata); + block.sides[2] = block.sides[3] = block.sides[4] = block.sides[5] = block.getCtmIcon(0, metadata); + } + } + } + + + boolean flag = renderer.renderStandardBlock(block, x, y, z); + + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + + return flag; + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return true; + } + + @Override + public int getRenderId() + { + return id; + } + + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarbleStairsRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarbleStairsRenderer.java new file mode 100644 index 00000000..3fb6960e --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarbleStairsRenderer.java @@ -0,0 +1,62 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.block.BlockMarbleStairs; +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockMarbleStairsRenderer implements ISimpleBlockRenderingHandler +{ + public static int id; + + public BlockMarbleStairsRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) + { + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F); + Drawing.drawBlock(block, meta, renderer); + renderer.setRenderBounds(0.0F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F); + Drawing.drawBlock(block, meta, renderer); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) + { + if(blck == null || !(blck instanceof BlockMarbleStairs)) + return false; + BlockMarbleStairs block = (BlockMarbleStairs) blck; + + renderer.renderBlockStairs(block, x, y, z); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return true; + } + + @Override + public int getRenderId() + { + return id; + } + + public int getRenderBlockPass() + { + return 1; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockNoCTMRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockNoCTMRenderer.java new file mode 100644 index 00000000..6bfd14f2 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockNoCTMRenderer.java @@ -0,0 +1,54 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockNoCTMRenderer implements ISimpleBlockRenderingHandler +{ + static int id; + + public BlockNoCTMRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) + { + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + Drawing.drawBlock(block, meta, renderer); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) + { + int meta = world.getBlockMetadata(x, y, z); + + if(meta != 0) renderer.overrideBlockTexture = block.getIcon(0, meta); + renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.renderStandardBlock(block, x, y, z); + renderer.overrideBlockTexture = null; + + return false; + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return true; + } + + @Override + public int getRenderId() + { + return id; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockRoadLineRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockRoadLineRenderer.java new file mode 100644 index 00000000..742cfe7f --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockRoadLineRenderer.java @@ -0,0 +1,137 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.block.BlockRoadLine; +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.EntityRenderer; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockRoadLineRenderer implements ISimpleBlockRenderingHandler +{ + public static int id; + + public BlockRoadLineRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) + { + renderer.setRenderBoundsFromBlock(block); + Drawing.drawBlock(block, meta, renderer); + } + + public void renderTopFace(double y, IIcon icon) + { + Tessellator tessellator = Tessellator.instance; + + tessellator.addVertexWithUV(1, y, 0, icon.getMaxU(), icon.getMinV()); + tessellator.addVertexWithUV(0, y, 0, icon.getMinU(), icon.getMinV()); + tessellator.addVertexWithUV(0, y, 1, icon.getMinU(), icon.getMaxV()); + tessellator.addVertexWithUV(1, y, 1, icon.getMaxU(), icon.getMaxV()); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block b, int modelId, RenderBlocks renderer) + { + int meta = world.getBlockMetadata(x, y, z); + BlockRoadLine block = (BlockRoadLine) b; + Tessellator tessellator = Tessellator.instance; + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + + float f = 1.0F; + int i1 = block.colorMultiplier(world, x, y, z); + float f1 = (i1 >> 16 & 255) / 255.0F; + float f2 = (i1 >> 8 & 255) / 255.0F; + float f3 = (i1 & 255) / 255.0F; + + if(EntityRenderer.anaglyphEnable) + { + float f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F; + float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F; + float f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F; + f1 = f4; + f2 = f5; + f3 = f6; + } + tessellator.setColorOpaque_F(f * f1, f * f2, f * f3); + + boolean N = world.getBlock(x, y, z - 1).equals(block); + boolean S = world.getBlock(x, y, z + 1).equals(block); + boolean W = world.getBlock(x - 1, y, z).equals(block); + boolean E = world.getBlock(x + 1, y, z).equals(block); + + if(!N && !S && !W && !E) + { + renderer.renderStandardBlock(block, x, y, z); + return true; + } + + if(N && S) + { + renderer.uvRotateTop = 0; + renderer.overrideBlockTexture = block.fullLineIcon; + renderer.renderStandardBlock(block, x, y, z); + + } else + { + if(N) + { + renderer.uvRotateTop = 0; + renderer.overrideBlockTexture = block.halfLineIcon; + renderer.renderStandardBlock(block, x, y, z); + } + if(S) + { + renderer.uvRotateTop = 3; + renderer.overrideBlockTexture = block.halfLineIcon; + renderer.renderStandardBlock(block, x, y, z); + } + + } + + if(E && W) + { + renderer.uvRotateTop = 1; + renderer.overrideBlockTexture = block.fullLineIcon; + renderer.renderStandardBlock(block, x, y, z); + } else + { + if(E) + { + renderer.uvRotateTop = 1; + renderer.overrideBlockTexture = block.halfLineIcon; + renderer.renderStandardBlock(block, x, y, z); + } + if(W) + { + renderer.uvRotateTop = 2; + renderer.overrideBlockTexture = block.halfLineIcon; + renderer.renderStandardBlock(block, x, y, z); + } + } + + renderer.uvRotateTop = 0; + renderer.overrideBlockTexture = null; + return true; + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return false; + } + + @Override + public int getRenderId() + { + return id; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSnakeStoneRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSnakeStoneRenderer.java new file mode 100644 index 00000000..73b933d8 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSnakeStoneRenderer.java @@ -0,0 +1,139 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.block.BlockSnakestone; +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockSnakeStoneRenderer implements ISimpleBlockRenderingHandler +{ + public static int id; + + public BlockSnakeStoneRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) + { + setRenderRotate(renderer, (BlockSnakestone) block, meta); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + Drawing.drawBlock(block, meta, renderer); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + restoreRendererRotate(renderer); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) + { + int meta = world.getBlockMetadata(x, y, z); + + setRenderRotate(renderer, (BlockSnakestone) block, meta); + boolean didRender = renderer.renderStandardBlock(block, x, y, z); + restoreRendererRotate(renderer); + + return didRender; + } + + private void restoreRendererRotate(RenderBlocks renderer) + { + renderer.uvRotateSouth = 0; + renderer.uvRotateEast = 0; + renderer.uvRotateWest = 0; + renderer.uvRotateNorth = 0; + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + } + + private void setRenderRotate(RenderBlocks renderer, BlockSnakestone block, int meta) + { + int type = meta & 0xC; + int orient = meta & 0x3; + + + if(type == 0) + { + switch(orient) + { + case 0: + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 2; + break; + case 1: + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + break; + case 2: + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 3; + break; + case 3: + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + } + + } else if((type == 4) || (type == 8)) + { + switch(orient) + { + case 0: + renderer.uvRotateTop = block.flipTopTextures ? 1 : 2; + renderer.uvRotateBottom = 1; + renderer.uvRotateWest = 2; + break; + case 1: + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + renderer.uvRotateEast = 2; + break; + case 2: + renderer.uvRotateTop = block.flipTopTextures ? 0 : 3; + renderer.uvRotateBottom = 0; + renderer.uvRotateSouth = 2; + break; + case 3: + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + renderer.uvRotateNorth = 2; + } + + } else if(type == 12) + { + switch(orient) + { + case 0: + renderer.uvRotateTop = 0; + renderer.uvRotateBottom = 0; + break; + case 1: + renderer.uvRotateTop = 1; + renderer.uvRotateBottom = 1; + break; + case 2: + renderer.uvRotateNorth = 2; + renderer.uvRotateSouth = 2; + renderer.uvRotateEast = 2; + renderer.uvRotateWest = 2; + } + } + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return true; + } + + @Override + public int getRenderId() + { + return id; + } +} \ No newline at end of file diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSpikesRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSpikesRenderer.java new file mode 100644 index 00000000..98046a79 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSpikesRenderer.java @@ -0,0 +1,124 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.ChiselBlocks; +import info.jbcs.minecraft.utilities.Drawing; + +import java.util.Random; + +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 cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockSpikesRenderer implements ISimpleBlockRenderingHandler +{ + public static int id; + + public BlockSpikesRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) + { + Drawing.drawBlock(block, meta, renderer); + } + + void drawSpike(IIcon icon, double r, double h, double x, double y, double z, double dx, double dz) + { + Tessellator tessellator = Tessellator.instance; + + double u0 = icon.getMinU(); + double u1 = icon.getMaxU(); + double v0 = icon.getMaxV(); + double v1 = icon.getMinV(); + + double tx = x + dx; + double ty = y + h; + double tz = z + dz; + + tessellator.addVertexWithUV(x + r, y + 0, z + r, u0, v0); + tessellator.addVertexWithUV(x + r, y + 0, z - r, u1, v0); + tessellator.addVertexWithUV(tx, ty, tz, u1, v1); + tessellator.addVertexWithUV(tx, ty, tz, u0, v1); + + tessellator.addVertexWithUV(x - r, y + 0, z + r, u1, v0); + tessellator.addVertexWithUV(x + r, y + 0, z + r, u0, v0); + tessellator.addVertexWithUV(tx, ty, tz, u1, v1); + tessellator.addVertexWithUV(tx, ty, tz, u0, v1); + + + tessellator.addVertexWithUV(x + r, y + 0, z - r, u1, v0); + tessellator.addVertexWithUV(x - r, y + 0, z - r, u0, v0); + tessellator.addVertexWithUV(tx, ty, tz, u1, v1); + tessellator.addVertexWithUV(tx, ty, tz, u0, v1); + + tessellator.addVertexWithUV(x - r, y + 0, z - r, u1, v0); + tessellator.addVertexWithUV(x - r, y + 0, z + r, u0, v0); + tessellator.addVertexWithUV(tx, ty, tz, u1, v1); + tessellator.addVertexWithUV(tx, ty, tz, u0, v1); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) + { + int meta = world.getBlockMetadata(x, y, z); + + renderer.renderStandardBlock(block, x, y, z); + + Tessellator tessellator = Tessellator.instance; + IIcon icon = ChiselBlocks.blockSpiketrap.iconSpike; +// Icon icon=Chisel.blockSpiketrap.iconBase; + + double h = 0.85; + double d = 1.5 / 16; + double r = d / 2; + + + double tx = x + 0.25; + double ty = y + h; + double tz = z + 0.25; + double skew = 0.5; + + // tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.addTranslation(0, 1.0f / 16, 0); + + Random rand = new Random(); + for(int xx = 0; xx < 4; xx++) + { + for(int yy = 0; yy < 4; yy++) + { +// float sx=1.0f/16+rand.nextFloat()*13.0f/16; +// float sz=1.0f/16+rand.nextFloat()*13.0f/16; + float sx = (2.0f + (12.0f - (float) d) * xx / 3) / 16; + float sz = (2.0f + (12.0f - (float) d) * yy / 3) / 16; + + + tessellator.addTranslation(sx, 0, sz); + drawSpike(icon, r, 0.5 + rand.nextDouble() * 0.35, x, y, z, rand.nextDouble() * skew - skew / 2, rand.nextDouble() * skew - skew / 2); + tessellator.addTranslation(-sx, 0, -sz); + } + } + + tessellator.addTranslation(0, -1.0f / 16, 0); + + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int renderId) + { + return true; + } + + @Override + public int getRenderId() + { + return id; + } +} \ No newline at end of file diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockTexturedOreRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockTexturedOreRenderer.java new file mode 100644 index 00000000..3897ce31 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/BlockTexturedOreRenderer.java @@ -0,0 +1,89 @@ +package info.jbcs.minecraft.chisel.client.render; + +import info.jbcs.minecraft.chisel.block.BlockTexturedOre; +import info.jbcs.minecraft.utilities.Drawing; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.init.Blocks; +import net.minecraft.world.IBlockAccess; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; + +public class BlockTexturedOreRenderer implements ISimpleBlockRenderingHandler +{ + float bot = -0.001f, top = 1.0f - bot; + public static int id; + + public BlockTexturedOreRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } + + @Override + public void renderInventoryBlock(Block blck, int meta, int modelID, RenderBlocks renderer) + { + if(blck == null || !(blck instanceof BlockTexturedOre)) + return; + + BlockTexturedOre block = (BlockTexturedOre) blck; + + if(block.icon != null) + { + renderer.overrideBlockTexture = block.icon; + renderer.renderBlockAsItem(Blocks.stone, meta, 1.0f); + renderer.overrideBlockTexture = null; + } else if(block.base != null) + { + renderer.renderBlockAsItem(block.base, meta, 1.0f); + } + + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + renderer.setRenderBounds(bot, bot, bot, top, top, top); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + Drawing.drawBlock(block, meta, renderer); + GL11.glDisable(3042); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) + { + if(blck == null || !(blck instanceof BlockTexturedOre)) + return false; + BlockTexturedOre block = (BlockTexturedOre) blck; + + if(block.currentPass == 0) + { + if(block.icon != null) + { + renderer.overrideBlockTexture = block.icon; + renderer.renderStandardBlock(block, x, y, z); + renderer.overrideBlockTexture = null; + } else if(block.base != null) + { + renderer.renderBlockByRenderType(block.base, x, y, z); + } + } else + { + renderer.setRenderBounds(bot, bot, bot, top, top, top); + renderer.renderStandardBlock(block, x, y, z); + } + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) + { + return true; + } + + @Override + public int getRenderId() + { + return id; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/CTM.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/CTM.java new file mode 100644 index 00000000..b7abfcc9 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/CTM.java @@ -0,0 +1,294 @@ +package info.jbcs.minecraft.chisel.client.render; + +import net.minecraft.block.Block; +import net.minecraft.world.IBlockAccess; + +public class CTM +{ + static int submaps[][] = { + {16, 17, 18, 19}, + {16, 9, 18, 13}, + {8, 9, 12, 13}, + {8, 17, 12, 19}, + {16, 9, 6, 15}, + {8, 17, 14, 7}, + {2, 11, 6, 15}, + {8, 9, 14, 15}, + {10, 1, 14, 15}, + {10, 11, 14, 5}, + {0, 11, 4, 15}, + {0, 1, 14, 15}, + {}, + {}, + {}, + {}, + {16, 17, 6, 7}, + {16, 9, 6, 5}, + {8, 9, 4, 5}, + {8, 17, 4, 7}, + {2, 11, 18, 13}, + {10, 3, 12, 19}, + {10, 11, 12, 13}, + {10, 3, 14, 7}, + {0, 11, 14, 15}, + {10, 11, 4, 15}, + {10, 11, 4, 5}, + {10, 1, 14, 5}, + {}, + {}, + {}, + {}, + {2, 3, 6, 7}, + {2, 1, 6, 5}, + {0, 1, 4, 5}, + {0, 3, 4, 7}, + {2, 11, 6, 5}, + {8, 9, 4, 15}, + {2, 1, 6, 15}, + {8, 9, 14, 5}, + {0, 1, 4, 15}, + {0, 1, 14, 5}, + {10, 1, 4, 15}, + {0, 11, 14, 5}, + {}, + {}, + {}, + {}, + {2, 3, 18, 19}, + {2, 1, 18, 13}, + {0, 1, 12, 13}, + {0, 3, 12, 19}, + {10, 1, 12, 13}, + {0, 3, 14, 7}, + {0, 11, 12, 13}, + {10, 3, 4, 7}, + {0, 11, 4, 5}, + {10, 1, 4, 5}, + {10, 11, 14, 15}, + {0, 1, 4, 5}, + {}, + {}, + {}, + {}, + }; + + public static int[] getSubmapIndices(IBlockAccess world, int x, int y, int z, int side) + { + int index = getTexture(world, x, y, z, side); + + return submaps[index]; + } + + public static int getTexture(IBlockAccess world, int x, int y, int z, int side) + { + if(world == null) return 0; + + int texture = 0; + Block block = world.getBlock(x, y, z); + int blockMetadata = world.getBlockMetadata(x, y, z); + + boolean b[] = new boolean[6]; + if(side <= 1) + { + b[0] = isConnected(world, x - 1, y, z, side, block, blockMetadata); + b[1] = isConnected(world, x + 1, y, z, side, block, blockMetadata); + b[2] = isConnected(world, x, y, z + 1, side, block, blockMetadata); + b[3] = isConnected(world, x, y, z - 1, side, block, blockMetadata); + } else if(side == 2) + { + b[0] = isConnected(world, x + 1, y, z, side, block, blockMetadata); + b[1] = isConnected(world, x - 1, y, z, side, block, blockMetadata); + b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); + b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); + } else if(side == 3) + { + b[0] = isConnected(world, x - 1, y, z, side, block, blockMetadata); + b[1] = isConnected(world, x + 1, y, z, side, block, blockMetadata); + b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); + b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); + } else if(side == 4) + { + b[0] = isConnected(world, x, y, z - 1, side, block, blockMetadata); + b[1] = isConnected(world, x, y, z + 1, side, block, blockMetadata); + b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); + b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); + } else if(side == 5) + { + b[0] = isConnected(world, x, y, z + 1, side, block, blockMetadata); + b[1] = isConnected(world, x, y, z - 1, side, block, blockMetadata); + b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); + b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); + } + if(b[0] & !b[1] & !b[2] & !b[3]) + texture = 3; + else if(!b[0] & b[1] & !b[2] & !b[3]) + texture = 1; + else if(!b[0] & !b[1] & b[2] & !b[3]) + texture = 16; + else if(!b[0] & !b[1] & !b[2] & b[3]) + texture = 48; + else if(b[0] & b[1] & !b[2] & !b[3]) + texture = 2; + else if(!b[0] & !b[1] & b[2] & b[3]) + texture = 32; + else if(b[0] & !b[1] & b[2] & !b[3]) + texture = 19; + else if(b[0] & !b[1] & !b[2] & b[3]) + texture = 51; + else if(!b[0] & b[1] & b[2] & !b[3]) + texture = 17; + else if(!b[0] & b[1] & !b[2] & b[3]) + texture = 49; + else if(!b[0] & b[1] & b[2] & b[3]) + texture = 33; + else if(b[0] & !b[1] & b[2] & b[3]) + texture = 35; + else if(b[0] & b[1] & !b[2] & b[3]) + texture = 50; + else if(b[0] & b[1] & b[2] & !b[3]) + texture = 18; + else if(b[0] & b[1] & b[2] & b[3]) + texture = 34; + + boolean b2[] = new boolean[6]; + if(side <= 1) + { + b2[0] = !isConnected(world, x + 1, y, z + 1, side, block, blockMetadata); + b2[1] = !isConnected(world, x - 1, y, z + 1, side, block, blockMetadata); + b2[2] = !isConnected(world, x + 1, y, z - 1, side, block, blockMetadata); + b2[3] = !isConnected(world, x - 1, y, z - 1, side, block, blockMetadata); + } else if(side == 2) + { + b2[0] = !isConnected(world, x - 1, y - 1, z, side, block, blockMetadata); + b2[1] = !isConnected(world, x + 1, y - 1, z, side, block, blockMetadata); + b2[2] = !isConnected(world, x - 1, y + 1, z, side, block, blockMetadata); + b2[3] = !isConnected(world, x + 1, y + 1, z, side, block, blockMetadata); + } else if(side == 3) + { + b2[0] = !isConnected(world, x + 1, y - 1, z, side, block, blockMetadata); + b2[1] = !isConnected(world, x - 1, y - 1, z, side, block, blockMetadata); + b2[2] = !isConnected(world, x + 1, y + 1, z, side, block, blockMetadata); + b2[3] = !isConnected(world, x - 1, y + 1, z, side, block, blockMetadata); + } else if(side == 4) + { + b2[0] = !isConnected(world, x, y - 1, z + 1, side, block, blockMetadata); + b2[1] = !isConnected(world, x, y - 1, z - 1, side, block, blockMetadata); + b2[2] = !isConnected(world, x, y + 1, z + 1, side, block, blockMetadata); + b2[3] = !isConnected(world, x, y + 1, z - 1, side, block, blockMetadata); + } else if(side == 5) + { + b2[0] = !isConnected(world, x, y - 1, z - 1, side, block, blockMetadata); + b2[1] = !isConnected(world, x, y - 1, z + 1, side, block, blockMetadata); + b2[2] = !isConnected(world, x, y + 1, z - 1, side, block, blockMetadata); + b2[3] = !isConnected(world, x, y + 1, z + 1, side, block, blockMetadata); + } + + if(texture == 17 && b2[0]) + texture = 4; + if(texture == 19 && b2[1]) + texture = 5; + if(texture == 49 && b2[2]) + texture = 20; + if(texture == 51 && b2[3]) + texture = 21; + + if(texture == 18 && b2[0] && b2[1]) + texture = 7; + if(texture == 33 && b2[0] && b2[2]) + texture = 6; + if(texture == 35 && b2[3] && b2[1]) + texture = 23; + if(texture == 50 && b2[3] && b2[2]) + texture = 22; + + if(texture == 18 && !b2[0] && b2[1]) + texture = 39; + if(texture == 33 && b2[0] && !b2[2]) + texture = 38; + if(texture == 35 && !b2[3] && b2[1]) + texture = 53; + if(texture == 50 && b2[3] && !b2[2]) + texture = 52; + + if(texture == 18 && b2[0] && !b2[1]) + texture = 37; + if(texture == 33 && !b2[0] && b2[2]) + texture = 36; + if(texture == 35 && b2[3] && !b2[1]) + texture = 55; + if(texture == 50 && !b2[3] && b2[2]) + texture = 54; + + + if(texture == 34 && b2[0] && b2[1] && b2[2] && b2[3]) + texture = 58; + + if(texture == 34 && !b2[0] && b2[1] && b2[2] && b2[3]) + texture = 9; + if(texture == 34 && b2[0] && !b2[1] && b2[2] && b2[3]) + texture = 25; + if(texture == 34 && b2[0] && b2[1] && !b2[2] && b2[3]) + texture = 8; + if(texture == 34 && b2[0] && b2[1] && b2[2] && !b2[3]) + texture = 24; + + if(texture == 34 && b2[0] && b2[1] && !b2[2] && !b2[3]) + texture = 11; + if(texture == 34 && !b2[0] && !b2[1] && b2[2] && b2[3]) + texture = 26; + if(texture == 34 && !b2[0] && b2[1] && !b2[2] && b2[3]) + texture = 27; + if(texture == 34 && b2[0] && !b2[1] && b2[2] && !b2[3]) + texture = 10; + + if(texture == 34 && b2[0] && !b2[1] && !b2[2] && b2[3]) + texture = 42; + if(texture == 34 && !b2[0] && b2[1] && b2[2] && !b2[3]) + texture = 43; + + if(texture == 34 && b2[0] && !b2[1] && !b2[2] && !b2[3]) + texture = 40; + if(texture == 34 && !b2[0] && b2[1] && !b2[2] && !b2[3]) + texture = 41; + if(texture == 34 && !b2[0] && !b2[1] && b2[2] && !b2[3]) + texture = 56; + if(texture == 34 && !b2[0] && !b2[1] && !b2[2] && b2[3]) + texture = 57; + return texture; + } + + private static boolean isConnected(IBlockAccess world, int x, int y, int z, int side, Block block, int meta) + { + int x2 = x, y2 = y, z2 = z; + + switch(side) + { + case 0: + y2--; + break; + case 1: + y2++; + break; + case 2: + z2--; + break; + case 3: + z2++; + break; + case 4: + x2--; + break; + case 5: + x2++; + break; + } + + return + world.getBlock(x, y, z).equals(block) && + world.getBlockMetadata(x, y, z) == meta && + (!world.getBlock(x2, y2, z2).equals(block) || world.getBlockMetadata(x2, y2, z2) != meta) + ; + } + + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/ItemChiselRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/ItemChiselRenderer.java new file mode 100644 index 00000000..04aa9abf --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/ItemChiselRenderer.java @@ -0,0 +1,50 @@ +package info.jbcs.minecraft.chisel.client.render; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.IItemRenderer; + +import org.lwjgl.opengl.GL11; + +public class ItemChiselRenderer implements IItemRenderer +{ + RenderBlocks renderBlock = new RenderBlocks(); + RenderItem renderItem = new RenderItem(); + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) + { + return type == IItemRenderer.ItemRenderType.INVENTORY; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) + { + return false; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack stack, Object... data) + { + RenderHelper.enableGUIStandardItemLighting(); + + renderItem.renderItemIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().renderEngine, stack, 0, 0); + + if(stack.stackTagCompound == null) return; + + ItemStack chiselTarget = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("chiselTarget")); + if(chiselTarget == null) return; + + GL11.glPushMatrix(); + GL11.glScalef(0.65f, 0.65f, 0.65f); + GL11.glTranslatef(-8f, -8f, 0.0f); + + renderItem.renderItemIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().renderEngine, chiselTarget, 8, 8); + + GL11.glPopMatrix(); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTM.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTM.java new file mode 100644 index 00000000..c833e509 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTM.java @@ -0,0 +1,311 @@ +package info.jbcs.minecraft.chisel.client.render; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; + +public class RenderBlocksCTM extends RenderBlocks +{ + + RenderBlocksCTM() + { + super(); + + resetVertices(); + } + + Tessellator tessellator; + double[] X = new double[26]; + double[] Y = new double[26]; + double[] Z = new double[26]; + double[] U = new double[26]; + double[] V = new double[26]; + int[] L = new int[26]; + float[] R = new float[26]; + float[] G = new float[26]; + float[] B = new float[26]; + TextureSubmap submap; + TextureSubmap submapSmall; + RenderBlocks rendererOld; + + int bx, by, bz; + + @Override + public boolean renderStandardBlock(Block block, int x, int y, int z) + { + bx = x; + by = y; + bz = z; + + tessellator = Tessellator.instance; + tessellator.setColorOpaque_F(1.0F, 1.0F, 1.0F); + + tessellator.addTranslation(x, y, z); + + boolean res = super.renderStandardBlock(block, x, y, z); + + tessellator.addTranslation(-x, -y, -z); + + return res; + } + + void setupSides(int a, int b, int c, int d, int xa, int xb, int xc, int xd, int e) + { + L[a] = brightnessBottomLeft; + L[b] = brightnessBottomRight; + L[c] = brightnessTopRight; + L[d] = brightnessTopLeft; + L[e] = (brightnessBottomLeft + brightnessTopLeft + brightnessTopRight + brightnessBottomRight) / 4; + L[xa] = (L[a] + L[b]) / 2; + L[xb] = (L[b] + L[c]) / 2; + L[xc] = (L[c] + L[d]) / 2; + L[xd] = (L[d] + L[a]) / 2; + + R[a] = colorRedBottomLeft; + R[b] = colorRedBottomRight; + R[c] = colorRedTopRight; + R[d] = colorRedTopLeft; + R[e] = (colorRedBottomLeft + colorRedTopLeft + colorRedTopRight + colorRedBottomRight) / 4; + R[xa] = (R[a] + R[b]) / 2; + R[xb] = (R[b] + R[c]) / 2; + R[xc] = (R[c] + R[d]) / 2; + R[xd] = (R[d] + R[a]) / 2; + + G[a] = colorGreenBottomLeft; + G[b] = colorGreenBottomRight; + G[c] = colorGreenTopRight; + G[d] = colorGreenTopLeft; + G[e] = (colorGreenBottomLeft + colorGreenTopLeft + colorGreenTopRight + colorGreenBottomRight) / 4; + G[xa] = (G[a] + G[b]) / 2; + G[xb] = (G[b] + G[c]) / 2; + G[xc] = (G[c] + G[d]) / 2; + G[xd] = (G[d] + G[a]) / 2; + + B[a] = colorBlueBottomLeft; + B[b] = colorBlueBottomRight; + B[c] = colorBlueTopRight; + B[d] = colorBlueTopLeft; + B[e] = (colorBlueBottomLeft + colorBlueTopLeft + colorBlueTopRight + colorBlueBottomRight) / 4; + B[xa] = (B[a] + B[b]) / 2; + B[xb] = (B[b] + B[c]) / 2; + B[xc] = (B[c] + B[d]) / 2; + B[xd] = (B[d] + B[a]) / 2; + } + + void side(int a, int b, int c, int d, int iconIndex, boolean flip) + { + IIcon icon = iconIndex >= 16 ? submapSmall.icons[iconIndex - 16] : submap.icons[iconIndex]; + + double u0 = icon.getMaxU(); + double u1 = icon.getMinU(); + double v0 = icon.getMaxV(); + double v1 = icon.getMinV(); + + U[a] = flip ? u1 : u1; + U[b] = flip ? u0 : u1; + U[c] = flip ? u0 : u0; + U[d] = flip ? u1 : u0; + + V[a] = flip ? v1 : v1; + V[b] = flip ? v1 : v0; + V[c] = flip ? v0 : v0; + V[d] = flip ? v0 : v1; + + vert(a); + vert(b); + vert(c); + vert(d); + } + + void vert(int index) + { + if(enableAO) + { + tessellator.setColorOpaque_F(R[index], G[index], B[index]); + tessellator.setBrightness(L[index]); + } + + tessellator.addVertexWithUV(X[index], Y[index], Z[index], U[index], V[index]); + } + + @Override + public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) + { + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 4); + + setupSides(1, 0, 4, 5, 14, 19, 17, 23, 9); + side(1, 14, 9, 23, tex[0], false); + side(23, 9, 17, 5, tex[1], false); + side(9, 19, 4, 17, tex[3], false); + side(14, 0, 19, 9, tex[2], false); + } + + @Override + public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) + { + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 5); + + setupSides(3, 2, 6, 7, 15, 25, 16, 21, 11); + side(11, 21, 3, 15, tex[3], false); + side(16, 7, 21, 11, tex[2], false); + side(25, 11, 15, 2, tex[1], false); + side(6, 16, 11, 25, tex[0], false); + } + + @Override + public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) + { + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 2); + + setupSides(2, 3, 0, 1, 15, 18, 14, 22, 8); + side(2, 15, 8, 22, tex[0], false); + side(15, 3, 18, 8, tex[2], false); + side(8, 18, 0, 14, tex[3], false); + side(22, 8, 14, 1, tex[1], false); + } + + + @Override + public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) + { + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 3); + + setupSides(4, 7, 6, 5, 20, 16, 24, 17, 10); + side(17, 4, 20, 10, tex[2], false); + side(5, 17, 10, 24, tex[0], false); + side(24, 10, 16, 6, tex[1], false); + side(10, 20, 7, 16, tex[3], false); + } + + @Override + public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon) + { + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 0); + + setupSides(0, 3, 7, 4, 18, 21, 20, 19, 13); + side(13, 21, 7, 20, tex[3], true); + side(19, 13, 20, 4, tex[2], true); + side(0, 18, 13, 19, tex[0], true); + side(18, 3, 21, 13, tex[1], true); + } + + @Override + public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon) + { + int tex[] = CTM.getSubmapIndices(blockAccess, bx, by, bz, 1); + + setupSides(2, 1, 5, 6, 22, 23, 24, 25, 12); + side(12, 24, 6, 25, tex[3], false); + side(22, 12, 25, 2, tex[1], false); + side(1, 23, 12, 22, tex[0], false); + side(23, 5, 24, 12, tex[2], false); + } + + void resetVertices() + { + X[0] = 0; + Z[0] = 0; + Y[0] = 0; + + X[1] = 0; + Z[1] = 0; + Y[1] = 1; + + X[2] = 1; + Z[2] = 0; + Y[2] = 1; + + X[3] = 1; + Z[3] = 0; + Y[3] = 0; + + X[4] = 0; + Z[4] = 1; + Y[4] = 0; + + X[5] = 0; + Z[5] = 1; + Y[5] = 1; + + X[6] = 1; + Z[6] = 1; + Y[6] = 1; + + X[7] = 1; + Z[7] = 1; + Y[7] = 0; + + X[8] = 0.5; + Z[8] = 0; + Y[8] = 0.5; + + X[9] = 0; + Z[9] = 0.5; + Y[9] = 0.5; + + X[10] = 0.5; + Z[10] = 1; + Y[10] = 0.5; + + X[11] = 1; + Z[11] = 0.5; + Y[11] = 0.5; + + X[12] = 0.5; + Z[12] = 0.5; + Y[12] = 1; + + X[13] = 0.5; + Z[13] = 0.5; + Y[13] = 0; + + X[14] = 0; + Z[14] = 0; + Y[14] = 0.5; + + X[15] = 1; + Z[15] = 0; + Y[15] = 0.5; + + X[16] = 1; + Z[16] = 1; + Y[16] = 0.5; + + X[17] = 0; + Z[17] = 1; + Y[17] = 0.5; + + X[18] = 0.5; + Z[18] = 0; + Y[18] = 0; + + X[19] = 0; + Z[19] = 0.5; + Y[19] = 0; + + X[20] = 0.5; + Z[20] = 1; + Y[20] = 0; + + X[21] = 1; + Z[21] = 0.5; + Y[21] = 0; + + X[22] = 0.5; + Z[22] = 0; + Y[22] = 1; + + X[23] = 0; + Z[23] = 0.5; + Y[23] = 1; + + X[24] = 0.5; + Z[24] = 1; + Y[24] = 1; + + X[25] = 1; + Z[25] = 0.5; + Y[25] = 1; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTMCarpet.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTMCarpet.java new file mode 100644 index 00000000..0232d4fc --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTMCarpet.java @@ -0,0 +1,49 @@ +package info.jbcs.minecraft.chisel.client.render; + +import net.minecraft.block.Block; +import net.minecraft.util.IIcon; + +public class RenderBlocksCTMCarpet extends RenderBlocksCTM +{ + RenderBlocksCTMCarpet() + { + super(); + } + + @Override + void resetVertices() + { + super.resetVertices(); + + for(int i = 0; i < Y.length; i++) + { + Y[i] /= 16; + } + } + + + @Override + public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) + { + rendererOld.renderFaceXNeg(block, 0, 0, 0, submapSmall.icon); + } + + @Override + public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) + { + rendererOld.renderFaceXPos(block, 0, 0, 0, submapSmall.icon); + } + + @Override + public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) + { + rendererOld.renderFaceZNeg(block, 0, 0, 0, submapSmall.icon); + } + + @Override + public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) + { + rendererOld.renderFaceZPos(block, 0, 0, 0, submapSmall.icon); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksColumn.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksColumn.java new file mode 100644 index 00000000..0cf034fa --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksColumn.java @@ -0,0 +1,163 @@ +package info.jbcs.minecraft.chisel.client.render; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; + +public class RenderBlocksColumn extends RenderBlocks +{ + TextureSubmap submap; + IIcon iconTop; + IIcon sides[] = new IIcon[6]; + + RenderBlocksColumn() + { + super(); + } + + boolean connected(IBlockAccess world, int x, int y, int z, Block block, int meta) + { + return world.getBlock(x, y, z).equals(block) && world.getBlockMetadata(x, y, z) == meta; + + } + + @Override + public boolean renderStandardBlock(Block block, int x, int y, int z) + { + int metadata = blockAccess.getBlockMetadata(x, y, z); + + boolean yp = connected(blockAccess, x, y + 1, z, block, metadata); + boolean yn = connected(blockAccess, x, y - 1, z, block, metadata); + + if(yp || yn) + { + sides[0] = iconTop; + sides[1] = iconTop; + + if(yp && yn) + sides[2] = submap.icons[2]; + else if(yp) + sides[2] = submap.icons[3]; + else + sides[2] = submap.icons[1]; + + sides[3] = sides[4] = sides[5] = sides[2]; + } else + { + boolean xp = connected(blockAccess, x + 1, y, z, block, metadata); + boolean xn = connected(blockAccess, x - 1, y, z, block, metadata); + + if(xp && (connected(blockAccess, x + 1, y + 1, z, block, metadata) || connected(blockAccess, x + 1, y - 1, z, block, metadata))) + xp = false; + if(xn && (connected(blockAccess, x - 1, y + 1, z, block, metadata) || connected(blockAccess, x - 1, y - 1, z, block, metadata))) + xn = false; + + if(xp || xn) + { + uvRotateEast = 2; + uvRotateWest = 1; + uvRotateTop = 1; + uvRotateBottom = 1; + + sides[4] = iconTop; + sides[5] = iconTop; + + if(xp && xn) + sides[0] = submap.icons[2]; + else if(xp) + sides[0] = submap.icons[3]; + else + sides[0] = submap.icons[1]; + + sides[1] = sides[2] = sides[3] = sides[0]; + } else + { + boolean zp = connected(blockAccess, x, y, z + 1, block, metadata); + boolean zn = connected(blockAccess, x, y, z - 1, block, metadata); + + if(zp && (connected(blockAccess, x, y + 1, z + 1, block, metadata) || connected(blockAccess, x, y - 1, z + 1, block, metadata))) + zp = false; + if(zp && (connected(blockAccess, x + 1, y, z + 1, block, metadata) || connected(blockAccess, x - 1, y, z + 1, block, metadata))) + zp = false; + if(zn && (connected(blockAccess, x, y + 1, z - 1, block, metadata) || connected(blockAccess, x, y - 1, z - 1, block, metadata))) + zn = false; + if(zn && (connected(blockAccess, x + 1, y, z - 1, block, metadata) || connected(blockAccess, x - 1, y, z - 1, block, metadata))) + zn = false; + + if(zp || zn) + { + uvRotateSouth = 1; + uvRotateNorth = 2; + + sides[2] = iconTop; + sides[3] = iconTop; + + if(zp && zn) + sides[0] = submap.icons[2]; + else if(zp) + sides[0] = submap.icons[1]; + else + sides[0] = submap.icons[3]; + + sides[1] = sides[4] = sides[5] = sides[0]; + } else + { + sides[0] = sides[1] = iconTop; + sides[2] = sides[3] = sides[4] = sides[5] = submap.icons[0]; + } + } + } + + + boolean flag = super.renderStandardBlock(block, x, y, z); + + uvRotateSouth = 0; + uvRotateEast = 0; + uvRotateWest = 0; + uvRotateNorth = 0; + uvRotateTop = 0; + uvRotateBottom = 0; + + return flag; + } + + + @Override + public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) + { + super.renderFaceXNeg(block, x, y, z, sides[4]); + } + + @Override + public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) + { + super.renderFaceXPos(block, x, y, z, sides[5]); + } + + @Override + public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) + { + super.renderFaceZNeg(block, x, y, z, sides[2]); + } + + + @Override + public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) + { + super.renderFaceZPos(block, x, y, z, sides[3]); + } + + @Override + public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon) + { + super.renderFaceYNeg(block, x, y, z, sides[0]); + } + + @Override + public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon) + { + super.renderFaceYPos(block, x, y, z, sides[1]); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksEldritch.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksEldritch.java new file mode 100644 index 00000000..6fc9a115 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksEldritch.java @@ -0,0 +1,328 @@ +package info.jbcs.minecraft.chisel.client.render; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; + +public class RenderBlocksEldritch extends RenderBlocks +{ + + RenderBlocksEldritch() + { + super(); + } + + static double displacementMap[] = { + +0.1165, -0.0352, -0.1208, +0.0906, -0.0295, +0.0302, -0.0973, +0.0548, + -0.1077, +0.0662, -0.0932, -0.0925, -0.1161, +0.0073, -0.1084, +0.1136, + +0.0307, +0.0316, -0.1066, -0.0237, +0.0614, -0.0864, +0.0837, +0.1218, + +0.0502, -0.0529, -0.0942, +0.1209, -0.0418, +0.1035, +0.0066, -0.0255, + +0.0830, -0.0361, +0.0965, +0.0646, +0.1124, +0.0890, -0.0037, +0.0467, + +0.1025, +0.1161, +0.0014, +0.0365, +0.0755, -0.0025, +0.0739, +0.0656, + +0.0571, -0.0813, -0.0062, -0.0904, -0.0005, +0.0612, -0.0227, +0.0138, + -0.0899, -0.0019, -0.1047, +0.1191, -0.1197, -0.1123, +0.0999, +0.0638, + +0.0865, +0.0029, -0.0084, +0.1132, -0.0433, +0.0115, +0.0850, +0.0439, + +0.0748, +0.0460, -0.0441, +0.0839, +0.0162, -0.0229, +0.0774, -0.0647, + -0.0636, -0.0709, -0.0719, -0.0194, +0.1070, -0.0466, -0.1200, -0.0996, + -0.0298, -0.1035, -0.0006, +0.0530, -0.0939, -0.1210, +0.0176, +0.0924, + +0.0343, -0.0777, +0.1050, -0.0729, -0.0062, -0.1107, -0.0434, -0.0042, + +0.0232, +0.0269, +0.0709, -0.0388, +0.0342, +0.0240, -0.0192, +0.0491, + +0.0017, -0.1240, +0.0687, -0.1160, +0.1123, -0.0332, -0.0260, +0.0476, + -0.0049, -0.0893, -0.0243, -0.0371, -0.0230, +0.0656, +0.1080, +0.0781, + -0.0648, +0.0082, -0.1086, -0.0451, -0.0594, -0.1155, -0.0623, -0.0152, + +0.0131, -0.0754, +0.0607, +0.0876, -0.0657, +0.0366, -0.0981, +0.1164, + -0.0623, +0.0181, -0.0475, +0.0722, -0.0293, +0.0486, -0.0195, +0.1041, + +0.1011, +0.0042, -0.0045, -0.1031, +0.0110, +0.0058, +0.0083, -0.0782, + -0.1003, -0.0082, -0.0304, -0.0971, -0.0097, -0.0208, -0.1059, -0.0239, + -0.0385, +0.0505, +0.0537, -0.1098, -0.0022, -0.0165, -0.0027, -0.0208, + +0.0305, +0.0592, +0.0301, +0.0055, +0.1138, -0.0338, -0.0901, +0.1015, + +0.0061, +0.0861, -0.1057, -0.0889, -0.0972, +0.0783, -0.1052, -0.0932, + -0.1103, +0.0497, +0.1222, -0.0146, +0.0632, -0.0240, -0.0193, +0.0676, + -0.1128, -0.0886, +0.0926, +0.0538, -0.0175, -0.0966, -0.0369, +0.1124, + -0.0820, -0.1013, -0.0836, -0.0981, -0.0502, +0.0573, +0.0616, -0.0458, + +0.0294, +0.0108, -0.0782, +0.0692, +0.0234, -0.0178, -0.0171, -0.0505, + -0.0313, +0.0538, +0.0462, -0.0758, +0.0556, -0.0023, -0.1086, -0.0100, + -0.0897, -0.0409, -0.1161, +0.0212, +0.1229, -0.0945, +0.0341, +0.1238, + +0.0893, -0.1189, -0.1098, -0.0125, +0.1137, -0.0202, +0.0239, -0.0408, + +0.0920, +0.0777, -0.0085, -0.0572, -0.0293, -0.0131, +0.0272, +0.0991, + }; + + static int dmap1 = displacementMap.length * 1 / 6; + static int dmap2 = displacementMap.length * 2 / 6; + static int dmap3 = displacementMap.length * 3 / 6; + static int dmap4 = displacementMap.length * 4 / 6; + static int dmap5 = displacementMap.length * 5 / 6; + static int dmap = displacementMap.length; + + Tessellator tessellator; + double[] X = new double[14]; + double[] Y = new double[14]; + double[] Z = new double[14]; + double[] U = new double[14]; + double[] V = new double[14]; + int[] L = new int[14]; + float[] R = new float[14]; + float[] G = new float[14]; + float[] B = new float[14]; + + @Override + public boolean renderStandardBlock(Block block, int x, int y, int z) + { + int index = x + y * 34573 + z * 32465781; + if(index < 0) index = -index; + + X[0] = x; + Z[0] = z; + Y[0] = y; + + X[1] = x; + Z[1] = z; + Y[1] = y + 1; + + X[2] = x + 1; + Z[2] = z; + Y[2] = y + 1; + + X[3] = x + 1; + Z[3] = z; + Y[3] = y; + + X[4] = x; + Z[4] = z + 1; + Y[4] = y; + + X[5] = x; + Z[5] = z + 1; + Y[5] = y + 1; + + X[6] = x + 1; + Z[6] = z + 1; + Y[6] = y + 1; + + X[7] = x + 1; + Z[7] = z + 1; + Y[7] = y; + + X[8] = x + 0.5 + displacementMap[(index + 0) % dmap]; + Z[8] = z - displacementMap[(index + 10) % dmap]; + Y[8] = y + 0.5 + displacementMap[(index + 20) % dmap]; + + X[9] = x - displacementMap[(index + 0 + dmap1) % dmap]; + Z[9] = z + 0.5 + displacementMap[(index + 10 + dmap1) % dmap]; + Y[9] = y + 0.5 + displacementMap[(index + 20 + dmap1) % dmap]; + + X[10] = x + 0.5 + displacementMap[(index + 0 + dmap2) % dmap]; + Z[10] = z + 1 + displacementMap[(index + 10 + dmap2) % dmap]; + Y[10] = y + 0.5 + displacementMap[(index + 20 + dmap2) % dmap]; + + X[11] = x + 1 + displacementMap[(index + 0 + dmap3) % dmap]; + Z[11] = z + 0.5 + displacementMap[(index + 10 + dmap3) % dmap]; + Y[11] = y + 0.5 + displacementMap[(index + 20 + dmap3) % dmap]; + + X[12] = x + 0.5 + displacementMap[(index + 0 + dmap4) % dmap]; + Z[12] = z + 0.5 + displacementMap[(index + 10 + dmap4) % dmap]; + Y[12] = y + 1;//+displacementMap[(index+20+dmap4)%dmap]; + + X[13] = x + 0.5 + displacementMap[(index + 0 + dmap5) % dmap]; + Z[13] = z + 0.5 + displacementMap[(index + 10 + dmap5) % dmap]; + Y[13] = y + 0;//+displacementMap[(index+20+dmap5)%dmap]; + + tessellator = Tessellator.instance; + tessellator.setColorOpaque_F(1.0F, 1.0F, 1.0F); + + return super.renderStandardBlock(block, x, y, z); + } + + void setupSides(IIcon icon, int a, int b, int c, int d, int e, int ta, int tb, int tc, int td) + { + L[a] = brightnessBottomLeft; + L[b] = brightnessBottomRight; + L[c] = brightnessTopRight; + L[d] = brightnessTopLeft; + L[e] = (brightnessBottomLeft + brightnessTopLeft + brightnessTopRight + brightnessBottomRight) / 4; + + R[a] = colorRedBottomLeft; + R[b] = colorRedBottomRight; + R[c] = colorRedTopRight; + R[d] = colorRedTopLeft; + R[e] = (colorRedBottomLeft + colorRedTopLeft + colorRedTopRight + colorRedBottomRight) / 4; + + G[a] = colorGreenBottomLeft; + G[b] = colorGreenBottomRight; + G[c] = colorGreenTopRight; + G[d] = colorGreenTopLeft; + G[e] = (colorGreenBottomLeft + colorGreenTopLeft + colorGreenTopRight + colorGreenBottomRight) / 4; + + B[a] = colorBlueBottomLeft; + B[b] = colorBlueBottomRight; + B[c] = colorBlueTopRight; + B[d] = colorBlueTopLeft; + B[e] = (colorBlueBottomLeft + colorBlueTopLeft + colorBlueTopRight + colorBlueBottomRight) / 4; + + double u0 = icon.getMaxU(); + double u1 = icon.getMinU(); + double v0 = icon.getMaxV(); + double v1 = icon.getMinV(); + + U[ta] = u0; + U[tb] = u0; + U[tc] = u1; + U[td] = u1; + U[e] = icon.getInterpolatedU(8.0D); + + V[ta] = v0; + V[tb] = v1; + V[tc] = v1; + V[td] = v0; + V[e] = icon.getInterpolatedV(8.0D); + } + + void vert(int index) + { + if(enableAO) + { + tessellator.setColorOpaque_F(R[index], G[index], B[index]); + tessellator.setBrightness(L[index]); + } + + tessellator.addVertexWithUV(X[index], Y[index], Z[index], U[index], V[index]); + } + + @Override + public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon) + { + setupSides(icon, 1, 0, 4, 5, 9, 4, 5, 1, 0); + vert(1); + vert(0); + vert(9); + vert(9); + vert(0); + vert(4); + vert(9); + vert(9); + vert(4); + vert(5); + vert(9); + vert(9); + vert(5); + vert(1); + vert(9); + vert(9); + } + + @Override + public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon) + { + setupSides(icon, 3, 2, 6, 7, 11, 3, 2, 6, 7); + vert(6); + vert(7); + vert(11); + vert(11); + vert(7); + vert(3); + vert(11); + vert(11); + vert(3); + vert(2); + vert(11); + vert(11); + vert(2); + vert(6); + vert(11); + vert(11); + + } + + @Override + public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon) + { + setupSides(icon, 2, 3, 0, 1, 8, 0, 1, 2, 3); + vert(0); + vert(1); + vert(8); + vert(8); + vert(1); + vert(2); + vert(8); + vert(8); + vert(2); + vert(3); + vert(8); + vert(8); + vert(3); + vert(0); + vert(8); + vert(8); + } + + + @Override + public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon) + { + setupSides(icon, 4, 7, 6, 5, 10, 7, 6, 5, 4); + vert(5); + vert(4); + vert(10); + vert(10); + vert(6); + vert(5); + vert(10); + vert(10); + vert(7); + vert(6); + vert(10); + vert(10); + vert(4); + vert(7); + vert(10); + vert(10); + } + + + @Override + public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon) + { + setupSides(icon, 0, 3, 7, 4, 13, 0, 3, 7, 4); + vert(0); + vert(3); + vert(13); + vert(13); + vert(3); + vert(7); + vert(13); + vert(13); + vert(7); + vert(4); + vert(13); + vert(13); + vert(4); + vert(0); + vert(13); + vert(13); + } + + @Override + public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon) + { + setupSides(icon, 2, 1, 5, 6, 12, 2, 1, 5, 6); + + vert(2); + vert(1); + vert(12); + vert(12); + vert(1); + vert(5); + vert(12); + vert(12); + vert(5); + vert(6); + vert(12); + vert(12); + vert(6); + vert(2); + vert(12); + vert(12); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/TextureSubmap.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/TextureSubmap.java new file mode 100644 index 00000000..ea5f0f49 --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/TextureSubmap.java @@ -0,0 +1,37 @@ +package info.jbcs.minecraft.chisel.client.render; + +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import net.minecraft.util.IIcon; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.common.MinecraftForge; + +public class TextureSubmap +{ + public int width, height; + public IIcon icon; + public IIcon icons[]; + + public TextureSubmap(IIcon i, int w, int h) + { + icon = i; + width = w; + height = h; + icons = new IIcon[width * height]; + + MinecraftForge.EVENT_BUS.register(this); + } + + @SubscribeEvent + public void TexturesStitched(TextureStitchEvent.Post event) + { + + for(int x = 0; x < width; x++) + { + for(int y = 0; y < height; y++) + { + icons[y * width + x] = new TextureVirtual(icon, width, height, x, y); + } + } + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/client/render/TextureVirtual.java b/src/main/java/info/jbcs/minecraft/chisel/client/render/TextureVirtual.java new file mode 100644 index 00000000..e24ee64b --- /dev/null +++ b/src/main/java/info/jbcs/minecraft/chisel/client/render/TextureVirtual.java @@ -0,0 +1,92 @@ +package info.jbcs.minecraft.chisel.client.render; + +import net.minecraft.util.IIcon; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class TextureVirtual implements IIcon +{ + int ox, oy; + float u0, u1, v0, v1; + String name; + IIcon icon; + + TextureVirtual(IIcon parent, int w, int h, int x, int y) + { + icon = parent; + + u0 = icon.getInterpolatedU(16.0 * (x) / w); + u1 = icon.getInterpolatedU(16.0 * (x + 1) / w); + v0 = icon.getInterpolatedV(16.0 * (y) / h); + v1 = icon.getInterpolatedV(16.0 * (y + 1) / h); + + name = icon.getIconName() + "|" + x + "." + y; + + ox = icon.getIconWidth(); + oy = icon.getIconHeight(); + } + + @Override + @SideOnly(Side.CLIENT) + public float getMinU() + { + return u0; + } + + @Override + @SideOnly(Side.CLIENT) + public float getMaxU() + { + return u1; + } + + @Override + @SideOnly(Side.CLIENT) + public float getInterpolatedU(double d0) + { + return (float) (u0 + (u1 - u0) * d0 / 16.0); + } + + @Override + @SideOnly(Side.CLIENT) + public float getMinV() + { + return v0; + } + + @Override + @SideOnly(Side.CLIENT) + public float getMaxV() + { + return v1; + } + + @Override + @SideOnly(Side.CLIENT) + public float getInterpolatedV(double d0) + { + return (float) (v0 + (v1 - v0) * d0 / 16.0); + } + + @Override + @SideOnly(Side.CLIENT) + public String getIconName() + { + return name; + } + + @Override + @SideOnly(Side.CLIENT) + public int getIconWidth() + { + return ox; + } + + @Override + @SideOnly(Side.CLIENT) + public int getIconHeight() + { + return oy; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMoss.java b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMoss.java old mode 100755 new mode 100644 index 99ce51b4..0d0dbc34 --- a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMoss.java +++ b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMoss.java @@ -1,105 +1,123 @@ -package info.jbcs.minecraft.chisel.entity; - -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.ChiselBlocks; -import info.jbcs.minecraft.chisel.GeneralChiselClient; -import info.jbcs.minecraft.utilities.General; -import net.minecraft.block.Block; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.init.Blocks; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityBallOMoss extends EntityThrowable { - - public EntityBallOMoss(World par1World) { - super(par1World); - } - - public EntityBallOMoss(World par1World, EntityLivingBase par2EntityLiving) { - super(par1World, par2EntityLiving); - } - - public EntityBallOMoss(World par1World, double x, double y, double z) { - super(par1World, x, y, z); - } - - @Override - protected void onImpact(MovingObjectPosition movingobjectposition) { - int x = movingobjectposition.blockX; - int y = movingobjectposition.blockY; - int z = movingobjectposition.blockZ; - - switch (movingobjectposition.sideHit) { - case 0: - y--; - break; - case 1: - y++; - break; - case 2: - z--; - break; - case 3: - z++; - break; - case 4: - x--; - break; - case 5: - x++; - break; - } - - setDead(); - - if (worldObj.isRemote){ - worldObj.playSound(x, y, z, "chisel:squash", 1.0f, 1.0f, false); - - for(int i=0;i<32;i++) - GeneralChiselClient.spawnBallOMossFX(worldObj,posX,posY,posZ); - - return; - } - - int radius=5; - int falloff=3; - - for(int xx=-radius;xx=dist*2)) continue; - - if (! worldObj.isRemote) - turnToMoss(worldObj, x+xx, y+yy, z+zz); - } - } - } - - } - - - public static void turnToMoss(World world, int x, int y, int z) { - Block block=world.getBlock(x, y, z); - int meta=world.getBlockMetadata(x, y, z); - Block resBlock=block; - int resMeta=meta; - - if(block.equals(Blocks.cobblestone)){ - resBlock = Blocks.mossy_cobblestone; - } else if(block.equals(Blocks.cobblestone_wall) && meta==0){ - resMeta=1; - } else if(block.equals(ChiselBlocks.blockCobblestone)){ - resBlock=ChiselBlocks.blockCobblestoneMossy; - } else if(block.equals(ChiselBlocks.blockTemple)){ - resBlock=ChiselBlocks.blockTempleMossy; - } - - if(resBlock.equals(block) && resMeta==meta) return; - world.setBlock(x, y, z, resBlock, resMeta, 3); - } - -} +package info.jbcs.minecraft.chisel.entity; + +import info.jbcs.minecraft.chisel.ChiselBlocks; +import info.jbcs.minecraft.chisel.client.GeneralChiselClient; +import info.jbcs.minecraft.utilities.General; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.init.Blocks; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityBallOMoss extends EntityThrowable +{ + + public EntityBallOMoss(World par1World) + { + super(par1World); + } + + public EntityBallOMoss(World par1World, EntityLivingBase par2EntityLiving) + { + super(par1World, par2EntityLiving); + } + + public EntityBallOMoss(World par1World, double x, double y, double z) + { + super(par1World, x, y, z); + } + + @Override + protected void onImpact(MovingObjectPosition movingobjectposition) + { + int x = movingobjectposition.blockX; + int y = movingobjectposition.blockY; + int z = movingobjectposition.blockZ; + + switch(movingobjectposition.sideHit) + { + case 0: + y--; + break; + case 1: + y++; + break; + case 2: + z--; + break; + case 3: + z++; + break; + case 4: + x--; + break; + case 5: + x++; + break; + } + + setDead(); + + if(worldObj.isRemote) + { + worldObj.playSound(x, y, z, "chisel:squash", 1.0f, 1.0f, false); + + for(int i = 0; i < 32; i++) + GeneralChiselClient.spawnBallOMossFX(worldObj, posX, posY, posZ); + + return; + } + + int radius = 5; + int falloff = 3; + + for(int xx = -radius; xx < radius; xx++) + { + for(int yy = -radius; yy < radius; yy++) + { + for(int zz = -radius; zz < radius; zz++) + { + double dist = (xx < 0 ? -xx : xx) + (yy < 0 ? -yy : yy) + (zz < 0 ? -zz : zz); + + if(!(dist < falloff || General.rand.nextInt(radius * 3 - falloff) >= dist * 2)) continue; + + if(!worldObj.isRemote) + turnToMoss(worldObj, x + xx, y + yy, z + zz); + } + } + } + + } + + + public static void turnToMoss(World world, int x, int y, int z) + { + Block block = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + Block resBlock = block; + int resMeta = meta; + + if(block.equals(Blocks.cobblestone)) + { + resBlock = Blocks.mossy_cobblestone; + } else if(block.equals(Blocks.cobblestone_wall) && meta == 0) + { + resMeta = 1; + } else if(block.equals(ChiselBlocks.blockCobblestone)) + { + resBlock = ChiselBlocks.blockCobblestoneMossy; + } else if(block.equals(ChiselBlocks.blockTemple)) + { + resBlock = ChiselBlocks.blockTempleMossy; + } else if(block.equals(Blocks.stonebrick)) + { + resMeta = 1; + } + + if(resBlock.equals(block) && resMeta == meta) + return; + world.setBlock(x, y, z, resBlock, resMeta, 3); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMossFX.java b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMossFX.java old mode 100755 new mode 100644 index cc38e2b1..fa9ddab5 --- a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMossFX.java +++ b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMossFX.java @@ -1,136 +1,153 @@ -package info.jbcs.minecraft.chisel.entity; - -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.block.BlockSnakestoneObsidian; -import info.jbcs.minecraft.utilities.General; -import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class EntityBallOMossFX extends EntityFX{ - BlockSnakestoneObsidian block; - double tx, ty, tz; - double speed; - - float u0,u1,v0,v1; - IIcon icon; - IIcon iconPlus=new IIcon(){ - - @Override - @SideOnly(Side.CLIENT) - public int getIconWidth() { - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public int getIconHeight() { - return 0; - } - - @Override - @SideOnly(Side.CLIENT) - public float getMinU() { - return u0; - } - - @Override - @SideOnly(Side.CLIENT) - public float getMaxU() { - return u1; - } - - @Override - @SideOnly(Side.CLIENT) - public float getInterpolatedU(double d0) { - return (float) (u0+d0*(u1-u0)/16.0f); - } - - @Override - @SideOnly(Side.CLIENT) - public float getMinV() { - return v0; - } - - @Override - @SideOnly(Side.CLIENT) - public float getMaxV() { - return v1; - } - - @Override - @SideOnly(Side.CLIENT) - public float getInterpolatedV(double d0) { - return (float) (v0+d0*(v1-v0)/16.0f); - } - - @Override - @SideOnly(Side.CLIENT) - public String getIconName() { - return ""; - } - - }; - - public EntityBallOMossFX(World world, double x, double y, double z) { - super(world, x, y+0.5, z, 0, 0, 0); - - particleScale = 0.5f + 0.5f*General.rand.nextFloat(); - speed=0.4+0.4*General.rand.nextDouble(); - - particleMaxAge = (int) (General.rand.nextDouble() * 10.0) + 5; - if(General.rand.nextInt(10)==0) - particleMaxAge+=General.rand.nextDouble()*40.0; - - motionX=(General.rand.nextDouble()-0.5)*0.7; - motionY=(General.rand.nextDouble()*0.5)*0.7; - motionZ=(General.rand.nextDouble()-0.5)*0.7; - particleGravity=2.0f; - -// setParticleIcon(block.particles[General.rand.nextInt(block.particles.length)]); - - icon=Chisel.itemBallOMoss.getIconFromDamage(0); - float width=4.0f+General.rand.nextFloat()*8.0f; - float uu=General.rand.nextFloat()*(16.0f-width); - float vv=General.rand.nextFloat()*(16.0f-width); - u0=icon.getInterpolatedU(uu); - u1=icon.getInterpolatedU(uu+width); - v0=icon.getInterpolatedV(vv); - v1=icon.getInterpolatedV(vv+width); - - setParticleIcon(iconPlus); - } - - @Override - public int getFXLayer() { - return 2; - } - - @Override - public void renderParticle(Tessellator tessellator, float partialTick, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { - GL11.glDepthMask(false); - GL11.glEnable(3042); - GL11.glBlendFunc(770, 771); - super.renderParticle(tessellator, partialTick, rotX, rotXZ, rotZ, rotYZ, rotXY); - } - - @Override - public void onUpdate() { - super.onUpdate(); - - double remaining=particleMaxAge-particleAge; - - if(remaining<5){ - particleAlpha=(float) (remaining/5.0); - } else{ - particleAlpha=1.0f; - } - } - -} +package info.jbcs.minecraft.chisel.entity; + +import info.jbcs.minecraft.chisel.Chisel; +import info.jbcs.minecraft.chisel.block.BlockSnakestoneObsidian; +import info.jbcs.minecraft.utilities.General; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import org.lwjgl.opengl.GL11; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +public class EntityBallOMossFX extends EntityFX +{ + BlockSnakestoneObsidian block; + double tx, ty, tz; + double speed; + + float u0, u1, v0, v1; + IIcon icon; + IIcon iconPlus = new IIcon() + { + + @Override + @SideOnly(Side.CLIENT) + public int getIconWidth() + { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public int getIconHeight() + { + return 0; + } + + @Override + @SideOnly(Side.CLIENT) + public float getMinU() + { + return u0; + } + + @Override + @SideOnly(Side.CLIENT) + public float getMaxU() + { + return u1; + } + + @Override + @SideOnly(Side.CLIENT) + public float getInterpolatedU(double d0) + { + return (float) (u0 + d0 * (u1 - u0) / 16.0f); + } + + @Override + @SideOnly(Side.CLIENT) + public float getMinV() + { + return v0; + } + + @Override + @SideOnly(Side.CLIENT) + public float getMaxV() + { + return v1; + } + + @Override + @SideOnly(Side.CLIENT) + public float getInterpolatedV(double d0) + { + return (float) (v0 + d0 * (v1 - v0) / 16.0f); + } + + @Override + @SideOnly(Side.CLIENT) + public String getIconName() + { + return ""; + } + + }; + + public EntityBallOMossFX(World world, double x, double y, double z) + { + super(world, x, y + 0.5, z, 0, 0, 0); + + particleScale = 0.5f + 0.5f * General.rand.nextFloat(); + speed = 0.4 + 0.4 * General.rand.nextDouble(); + + particleMaxAge = (int) (General.rand.nextDouble() * 10.0) + 5; + if(General.rand.nextInt(10) == 0) + particleMaxAge += General.rand.nextDouble() * 40.0; + + motionX = (General.rand.nextDouble() - 0.5) * 0.7; + motionY = (General.rand.nextDouble() * 0.5) * 0.7; + motionZ = (General.rand.nextDouble() - 0.5) * 0.7; + particleGravity = 2.0f; + +// setParticleIcon(block.particles[General.rand.nextInt(block.particles.length)]); + + icon = Chisel.itemBallOMoss.getIconFromDamage(0); + float width = 4.0f + General.rand.nextFloat() * 8.0f; + float uu = General.rand.nextFloat() * (16.0f - width); + float vv = General.rand.nextFloat() * (16.0f - width); + u0 = icon.getInterpolatedU(uu); + u1 = icon.getInterpolatedU(uu + width); + v0 = icon.getInterpolatedV(vv); + v1 = icon.getInterpolatedV(vv + width); + + setParticleIcon(iconPlus); + } + + @Override + public int getFXLayer() + { + return 2; + } + + @Override + public void renderParticle(Tessellator tessellator, float partialTick, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) + { + GL11.glDepthMask(false); + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + super.renderParticle(tessellator, partialTick, rotX, rotXZ, rotZ, rotYZ, rotXY); + } + + @Override + public void onUpdate() + { + super.onUpdate(); + + double remaining = particleMaxAge - particleAge; + + if(remaining < 5) + { + particleAlpha = (float) (remaining / 5.0); + } else + { + particleAlpha = 1.0f; + } + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityCloudInABottle.java b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityCloudInABottle.java old mode 100755 new mode 100644 index 392ca57c..45caf98a --- a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityCloudInABottle.java +++ b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityCloudInABottle.java @@ -1,114 +1,126 @@ -package info.jbcs.minecraft.chisel.entity; - -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.ChiselBlocks; - -import java.util.Random; - -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.entity.projectile.EntityThrowable; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.World; - -public class EntityCloudInABottle extends EntityThrowable { - Random rand = new Random(); - - public EntityCloudInABottle(World par1World) { - super(par1World); - } - - public EntityCloudInABottle(World par1World, EntityLivingBase par2EntityLiving) { - super(par1World, par2EntityLiving); - } - - public EntityCloudInABottle(World par1World, double x, double y, double z) { - super(par1World, x, y, z); - } - - @Override - protected void onImpact(MovingObjectPosition movingobjectposition) { - if (worldObj.isRemote) - return; - - int x = movingobjectposition.blockX; - int y = movingobjectposition.blockY; - int z = movingobjectposition.blockZ; - - switch (movingobjectposition.sideHit) { - case 0: - y--; - break; - case 1: - y++; - break; - case 2: - z--; - break; - case 3: - z++; - break; - case 4: - x--; - break; - case 5: - x++; - break; - } - - generate(worldObj, rand, x, y, z, 40); - - // worldObj.playSound(this.posX, this.posY, this.posZ, "random.glass", - // 1.0F, worldObj.rand.nextFloat() * 0.1F + 0.9F, false); - worldObj.playAuxSFX(2002, (int) Math.round(this.posX), (int) Math.round(this.posY), (int) Math.round(this.posZ), 2); - setDead(); - } - - public boolean generate(World world, Random random, int gx, int gy, int gz, int numberOfBlocks) { - int X[] = new int[9]; - int Y[] = new int[9]; - int Z[] = new int[9]; - - for (int dir = 0; dir < 9; dir++) { - X[dir] = gx; - Y[dir] = gy; - Z[dir] = gz; - } - int count = 0; - while (count < numberOfBlocks) { - for (int dir = 0; dir < 9; dir++) { - if (count >= numberOfBlocks) - break; - - int dx = dir % 3 - 1; - int dz = dir / 3 - 1; - - if (dx == 0 && dz == 0) - continue; - - X[dir] += random.nextInt(3) - 1 + dx; - Z[dir] += random.nextInt(3) - 1 + dz; - Y[dir] += random.nextInt(2) * (random.nextInt(3) - 1); - - int x = X[dir]; - int y = Y[dir]; - int z = Z[dir]; - - for (int j2 = x; j2 < x + random.nextInt(4) + 1; j2++) { - for (int k2 = y; k2 < y + random.nextInt(1) + 2; k2++) { - for (int l2 = z; l2 < z + random.nextInt(4) + 1; l2++) { - if (world.getBlock(j2, k2, l2).isAir(world, j2, k2, l2) && Math.abs(j2 - x) + Math.abs(k2 - y) + Math.abs(l2 - z) < 4 * 1 + random.nextInt(2)) { - world.setBlock(j2, k2, l2, ChiselBlocks.blockCloud); - count++; - } - } - } - } - } - } - - System.out.println("Created " + count + " cloud blocks."); - - return true; - } - -} +package info.jbcs.minecraft.chisel.entity; + +import info.jbcs.minecraft.chisel.Chisel; +import info.jbcs.minecraft.chisel.ChiselBlocks; + +import java.util.Random; + +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityCloudInABottle extends EntityThrowable +{ + Random rand = new Random(); + + public EntityCloudInABottle(World par1World) + { + super(par1World); + } + + public EntityCloudInABottle(World par1World, EntityLivingBase par2EntityLiving) + { + super(par1World, par2EntityLiving); + } + + public EntityCloudInABottle(World par1World, double x, double y, double z) + { + super(par1World, x, y, z); + } + + @Override + protected void onImpact(MovingObjectPosition movingobjectposition) + { + if(worldObj.isRemote) + return; + + int x = movingobjectposition.blockX; + int y = movingobjectposition.blockY; + int z = movingobjectposition.blockZ; + + switch(movingobjectposition.sideHit) + { + case 0: + y--; + break; + case 1: + y++; + break; + case 2: + z--; + break; + case 3: + z++; + break; + case 4: + x--; + break; + case 5: + x++; + break; + } + + generate(worldObj, rand, x, y, z, 40); + + worldObj.playAuxSFX(2002, (int) Math.round(this.posX), (int) Math.round(this.posY), (int) Math.round(this.posZ), 2); + setDead(); + } + + public boolean generate(World world, Random random, int gx, int gy, int gz, int numberOfBlocks) + { + int X[] = new int[9]; + int Y[] = new int[9]; + int Z[] = new int[9]; + + for(int dir = 0; dir < 9; dir++) + { + X[dir] = gx; + Y[dir] = gy; + Z[dir] = gz; + } + int count = 0; + while(count < numberOfBlocks) + { + for(int dir = 0; dir < 9; dir++) + { + if(count >= numberOfBlocks) + break; + + int dx = dir % 3 - 1; + int dz = dir / 3 - 1; + + if(dx == 0 && dz == 0) + continue; + + X[dir] += random.nextInt(3) - 1 + dx; + Z[dir] += random.nextInt(3) - 1 + dz; + Y[dir] += random.nextInt(2) * (random.nextInt(3) - 1); + + int x = X[dir]; + int y = Y[dir]; + int z = Z[dir]; + + for(int j2 = x; j2 < x + random.nextInt(4) + 1; j2++) + { + for(int k2 = y; k2 < y + random.nextInt(1) + 2; k2++) + { + for(int l2 = z; l2 < z + random.nextInt(4) + 1; l2++) + { + if(world.getBlock(j2, k2, l2).isAir(world, j2, k2, l2) && Math.abs(j2 - x) + Math.abs(k2 - y) + Math.abs(l2 - z) < 4 * 1 + random.nextInt(2)) + { + world.setBlock(j2, k2, l2, ChiselBlocks.blockCloud); + count++; + } + } + } + } + } + } + + //System.out.println("Created " + count + " cloud blocks."); + + return true; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityHolystoneFX.java b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityHolystoneFX.java old mode 100755 new mode 100644 index 53aa54c5..88646fa8 --- a/src/main/java/info/jbcs/minecraft/chisel/entity/EntityHolystoneFX.java +++ b/src/main/java/info/jbcs/minecraft/chisel/entity/EntityHolystoneFX.java @@ -1,62 +1,65 @@ -package info.jbcs.minecraft.chisel.entity; - -import info.jbcs.minecraft.chisel.block.BlockHolystone; -import info.jbcs.minecraft.utilities.General; -import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.World; - -public class EntityHolystoneFX extends EntityFX { - float initialScale; - float angleOffset; - static final float fadetime = 20f; - - public EntityHolystoneFX(World world, BlockHolystone block, double x, double y, double z) { - super(world, x, y, z, 0, 0, 0); - - // particleScale = 1.0f + 1.0f * General.rand.nextFloat(); - // particleScale = 1.0f; - 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(block.iconStar); - } - - @Override - public int getFXLayer() { - return 1; - } - - @Override - public void renderParticle(Tessellator tessellator, float partialTick, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { - particleScale = 0.25f + initialScale * (float) Math.sin((particleAge+angleOffset) / 180.f); - - if (particleAge < fadetime) - particleAlpha = particleAge / fadetime; - else if (particleAge + fadetime >= particleMaxAge) - particleAlpha = (particleMaxAge - particleAge) / fadetime; - else - particleAlpha = 1.0f; - - super.renderParticle(tessellator, partialTick, rotX, rotXZ, rotZ, rotYZ, rotXY); - - } - - @Override - public void onUpdate() { - if (particleAge++ >= particleMaxAge) { - setDead(); - return; - } - - } -} +package info.jbcs.minecraft.chisel.entity; + +import info.jbcs.minecraft.chisel.block.BlockHolystone; +import info.jbcs.minecraft.utilities.General; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.world.World; + +public class EntityHolystoneFX extends EntityFX +{ + float initialScale; + float angleOffset; + static final float fadetime = 20f; + + public EntityHolystoneFX(World world, BlockHolystone block, 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(block.iconStar); + } + + @Override + public int getFXLayer() + { + return 1; + } + + @Override + public void renderParticle(Tessellator tessellator, float partialTick, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) + { + particleScale = 0.25f + initialScale * (float) Math.sin((particleAge + angleOffset) / 180.f); + + if(particleAge < fadetime) + particleAlpha = particleAge / fadetime; + else if(particleAge + fadetime >= particleMaxAge) + particleAlpha = (particleMaxAge - particleAge) / fadetime; + else + particleAlpha = 1.0f; + + super.renderParticle(tessellator, partialTick, rotX, rotXZ, rotZ, rotYZ, rotXY); + + } + + @Override + public void onUpdate() + { + if(particleAge++ >= particleMaxAge) + { + setDead(); + } + + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/entity/EntitySnakestoneObsidianFX.java b/src/main/java/info/jbcs/minecraft/chisel/entity/EntitySnakestoneObsidianFX.java old mode 100755 new mode 100644 index 6a908e0d..9fa0d0a9 --- a/src/main/java/info/jbcs/minecraft/chisel/entity/EntitySnakestoneObsidianFX.java +++ b/src/main/java/info/jbcs/minecraft/chisel/entity/EntitySnakestoneObsidianFX.java @@ -1,107 +1,127 @@ -package info.jbcs.minecraft.chisel.entity; - -import info.jbcs.minecraft.chisel.block.BlockSnakestoneObsidian; -import info.jbcs.minecraft.utilities.General; -import net.minecraft.client.particle.EntityFX; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.World; - -import org.lwjgl.opengl.GL11; - -public class EntitySnakestoneObsidianFX extends EntityFX { - BlockSnakestoneObsidian block; - double tx, ty, tz; - double speed; - - public EntitySnakestoneObsidianFX(World world, BlockSnakestoneObsidian b, int x, int y, int z) { - super(world, x + 0.5, y + 0.5, z + 0.5, 0, 0, 0); - - block = b; - - particleScale = 0.5f + 0.5f*General.rand.nextFloat(); - speed=0.04+0.04*General.rand.nextDouble(); - //speed = 0; - -// motionX = 0; -// motionY = 0; -// motionZ = 0; - particleMaxAge = (int) (Math.random() * 10.0D) + 40; - - tx = x + General.rand.nextDouble(); - ty = y + General.rand.nextDouble(); - tz = z + General.rand.nextDouble(); - switch(General.rand.nextInt(6)){ - case 0: tx=x; break; - case 1: tx=x+1; break; - case 2: ty=y; break; - case 3: ty=y+1; break; - case 4: tz=z; break; - case 5: tz=z+1; break; - } - - double dx=(tx-posX)*3; - double dy=(ty-posY)*3; - double dz=(tz-posZ)*3; - - setPosition(posX + dx, posY + dy, posZ + dz); - prevPosX=posX; - prevPosY=posY; - prevPosZ=posZ; - - noClip = true; - - setParticleIcon(block.particles[General.rand.nextInt(block.particles.length)]); - } - - @Override - public int getFXLayer() { - return 1; - } - - @Override - public void renderParticle(Tessellator tessellator, float partialTick, float rotX, float rotXZ, float rotZ, float rotYZ, float rotXY) { - GL11.glDepthMask(false); - GL11.glEnable(3042); - GL11.glBlendFunc(770, 771); - super.renderParticle(tessellator, partialTick, rotX, rotXZ, rotZ, rotYZ, rotXY); - } - - @Override - public void onUpdate() { - if (particleAge++ >= particleMaxAge) { - setDead(); - return; - } - - double dx = tx - posX; - double dy = ty - posY; - double dz = tz - posZ; - - double distance = Math.sqrt(dx * dx + dy * dy + dz * dz); - if (distance == 0) { - setDead(); - return; - } - if(distance<0.4){ - particleAlpha=(float) (distance/0.4); - } else if(particleAge<20){ - particleAlpha=1.0f*particleAge/20; - } else{ - particleAlpha=1.0f; - } - - if(distance= particleMaxAge) + { + setDead(); + return; + } + + double dx = tx - posX; + double dy = ty - posY; + double dz = tz - posZ; + + double distance = Math.sqrt(dx * dx + dy * dy + dz * dz); + if(distance == 0) + { + setDead(); + return; + } + if(distance < 0.4) + { + particleAlpha = (float) (distance / 0.4); + } else if(particleAge < 20) + { + particleAlpha = 1.0f * particleAge / 20; + } else + { + particleAlpha = 1.0f; + } + + if(distance < speed) + { + speed = distance; + } + + prevPosX = posX; + prevPosY = posY; + prevPosZ = posZ; + + double px = posX + dx / distance * speed; + double py = posY + dy / distance * speed; + double pz = posZ + dz / distance * speed; + + setPosition(px, py, pz); + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/inventory/ContainerChisel.java b/src/main/java/info/jbcs/minecraft/chisel/inventory/ContainerChisel.java old mode 100755 new mode 100644 index ac37654f..ce223b89 --- a/src/main/java/info/jbcs/minecraft/chisel/inventory/ContainerChisel.java +++ b/src/main/java/info/jbcs/minecraft/chisel/inventory/ContainerChisel.java @@ -1,113 +1,128 @@ -package info.jbcs.minecraft.chisel.inventory; - -import info.jbcs.minecraft.chisel.Carving; -import info.jbcs.minecraft.chisel.item.ItemChisel; -import info.jbcs.minecraft.utilities.General; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; - -public class ContainerChisel extends Container { - final InventoryChiselSelection inventory; - InventoryPlayer playerInventory; - int currentIndex; - ItemStack chisel; - public boolean finished; - Carving carving; - - public ContainerChisel(InventoryPlayer inventoryplayer, InventoryChiselSelection inv) { - inventory = inv; - playerInventory=inventoryplayer; - currentIndex=playerInventory.currentItem; - inv.container=this; - - int[] leftOffsets = { 8, 26, 134, 152, 44, 116 }; - int[] topOffsets = { 8, 26, 44, 62 }; - - int index = 0; - for (int i = 0; i < 2; i++) { - for (int y = 0; y < 4; y++) { - for (int x = 0; x < 2; x++) { - addSlotToContainer(new SlotChiselSelection(this,inventory, inventory, x + i * 8 + y * 2, leftOffsets[x+i*2], topOffsets[y])); - } - } - } - - for (int y = 0; y < 4; y++) { - for (int x = 0; x < 2; x++) { - addSlotToContainer(new SlotChiselSelection(this,inventory, inventory, 16 + x + y * 2, leftOffsets[4 + x], topOffsets[3-y])); - } - } - - addSlotToContainer(new SlotChiselInput(this,inventory, InventoryChiselSelection.normalSlots, 80, 35)); - - for (int k = 0; k < 3; k++) { - for (int j1 = 0; j1 < 9; j1++) { - addSlotToContainer(new Slot(inventoryplayer, j1 + k * 9 + 9, 8 + j1 * 18, 102 + k * 18 - 18)); - } - } - - for (int l = 0; l < 9; l++) { - addSlotToContainer(l==currentIndex? - new SlotChiselPlayer(this,inventoryplayer, l, 8 + l * 18, 160 - 18): - new Slot(inventoryplayer, l, 8 + l * 18, 160 - 18) - ); - } - - chisel=inventoryplayer.getCurrentItem(); - if(chisel.stackTagCompound!=null){ - ItemStack stack=ItemStack.loadItemStackFromNBT(chisel.stackTagCompound.getCompoundTag("chiselTarget")); - inventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, stack); - } - - Item item=General.getItem(chisel); - carving=item instanceof ItemChisel?((ItemChisel)item).carving:Carving.chisel; - - inventory.updateItems(); - } - - @Override - public ItemStack slotClick(int par1, int par2, int par3, EntityPlayer par4EntityPlayer){ - if(par3==2 && par2==currentIndex) - return null; - - return super.slotClick(par1, par2, par3, par4EntityPlayer); - } - - @Override - public void onContainerClosed(EntityPlayer entityplayer) { - inventory.clearItems(); - super.onContainerClosed(entityplayer); - } - - @Override - public boolean canInteractWith(EntityPlayer entityplayer) { - return inventory.isUseableByPlayer(entityplayer); - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer entity, int i) { - return null; - } - - public void onChiselSlotChanged() { - ItemStack stack=playerInventory.mainInventory[currentIndex]; - if(!stack.isItemEqual(chisel)) finished=true; - - if(finished) return; - - if(chisel.stackTagCompound==null) - chisel.stackTagCompound=new NBTTagCompound(); - - NBTTagCompound tag=new NBTTagCompound(); - if(inventory.getStackInSpecialSlot()!=null) - inventory.getStackInSpecialSlot().writeToNBT(tag); - - chisel.stackTagCompound.setTag("chiselTarget", tag); - playerInventory.mainInventory[currentIndex]=chisel; - } -} +package info.jbcs.minecraft.chisel.inventory; + +import info.jbcs.minecraft.chisel.carving.Carving; +import info.jbcs.minecraft.chisel.item.ItemChisel; +import info.jbcs.minecraft.utilities.General; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class ContainerChisel extends Container +{ + public final InventoryChiselSelection inventory; + public InventoryPlayer playerInventory; + int currentIndex; + public ItemStack chisel; + public boolean finished; + public Carving carving; + + public ContainerChisel(InventoryPlayer inventoryplayer, InventoryChiselSelection inv) + { + inventory = inv; + playerInventory = inventoryplayer; + currentIndex = playerInventory.currentItem; + inv.container = this; + + int[] leftOffsets = {8, 26, 134, 152, 44, 116}; + int[] topOffsets = {8, 26, 44, 62}; + + for(int i = 0; i < 2; i++) + { + for(int y = 0; y < 4; y++) + { + for(int x = 0; x < 2; x++) + { + addSlotToContainer(new SlotChiselSelection(this, inventory, inventory, x + i * 8 + y * 2, leftOffsets[x + i * 2], topOffsets[y])); + } + } + } + + for(int y = 0; y < 4; y++) + { + for(int x = 0; x < 2; x++) + { + addSlotToContainer(new SlotChiselSelection(this, inventory, inventory, 16 + x + y * 2, leftOffsets[4 + x], topOffsets[3 - y])); + } + } + + addSlotToContainer(new SlotChiselInput(this, inventory, InventoryChiselSelection.normalSlots, 80, 35)); + + for(int k = 0; k < 3; k++) + { + for(int j1 = 0; j1 < 9; j1++) + { + addSlotToContainer(new Slot(inventoryplayer, j1 + k * 9 + 9, 8 + j1 * 18, 102 + k * 18 - 18)); + } + } + + for(int l = 0; l < 9; l++) + { + addSlotToContainer(l == currentIndex ? + new SlotChiselPlayer(this, inventoryplayer, l, 8 + l * 18, 160 - 18) : + new Slot(inventoryplayer, l, 8 + l * 18, 160 - 18) + ); + } + + chisel = inventoryplayer.getCurrentItem(); + if(chisel.stackTagCompound != null) + { + ItemStack stack = ItemStack.loadItemStackFromNBT(chisel.stackTagCompound.getCompoundTag("chiselTarget")); + inventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, stack); + } + + Item item = General.getItem(chisel); + carving = item instanceof ItemChisel ? ((ItemChisel) item).carving : Carving.chisel; + + inventory.updateItems(); + } + + @Override + public ItemStack slotClick(int par1, int par2, int par3, EntityPlayer par4EntityPlayer) + { + if(par3 == 2 && par2 == currentIndex) + return null; + + return super.slotClick(par1, par2, par3, par4EntityPlayer); + } + + @Override + public void onContainerClosed(EntityPlayer entityplayer) + { + inventory.clearItems(); + super.onContainerClosed(entityplayer); + } + + @Override + public boolean canInteractWith(EntityPlayer entityplayer) + { + return inventory.isUseableByPlayer(entityplayer); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer entity, int i) + { + return null; + } + + public void onChiselSlotChanged() + { + ItemStack stack = playerInventory.mainInventory[currentIndex]; + if(!stack.isItemEqual(chisel)) finished = true; + + if(finished) return; + + if(chisel.stackTagCompound == null) + chisel.stackTagCompound = new NBTTagCompound(); + + NBTTagCompound tag = new NBTTagCompound(); + if(inventory.getStackInSpecialSlot() != null) + inventory.getStackInSpecialSlot().writeToNBT(tag); + + chisel.stackTagCompound.setTag("chiselTarget", tag); + playerInventory.mainInventory[currentIndex] = chisel; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/inventory/GuiChisel.java b/src/main/java/info/jbcs/minecraft/chisel/inventory/GuiChisel.java deleted file mode 100755 index e39ba4a1..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/inventory/GuiChisel.java +++ /dev/null @@ -1,71 +0,0 @@ -package info.jbcs.minecraft.chisel.inventory; - -import info.jbcs.minecraft.utilities.GeneralClient; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; - -import org.lwjgl.opengl.GL11; - -public class GuiChisel extends GuiContainer { - EntityPlayer player; - ContainerChisel container; - - public GuiChisel(InventoryPlayer iinventory, InventoryChiselSelection menu) { - super(new ContainerChisel(iinventory, menu)); - player = iinventory.player; - height = 177; - - container=(ContainerChisel) inventorySlots; - } - - @Override - public void onGuiClosed() { - super.onGuiClosed(); - inventorySlots.onContainerClosed(player); - } - - boolean isExtended(){ - return container.inventory.activeVariations>16; - } - - //@Override - protected boolean isPointInRegion(int x, int y, int w, int h, int px, int py) { - px -= this.guiLeft; - py -= this.guiTop; - - if(! isExtended() && y>=7 && y<=62){ - if(px >= 43 && px <= 60) return false; - if(px >= 115 && px <= 132) return false; - } - - return px >= x - 1 && px < x + w + 1 && py >= y - 1 && py < y + h + 1; - } - - @Override - protected void drawGuiContainerForegroundLayer(int j, int i) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - String line=isExtended()?"Carve":"Carve blocks"; -// this.drawCenteredString(fontRenderer, isExtended()?"Carve":"Carve blocks", 88, 13, 0x888888); - fontRendererObj.drawString(line, 88-fontRendererObj.getStringWidth(line) / 2, 13, 0x404040); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float f, int mx, int my) { - drawDefaultBackground(); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - - int i = width - xSize >> 1; - int j = height - ySize >> 1; - - String texture=isExtended()? - "chisel:textures/chisel-gui-24.png": - "chisel:textures/chisel-gui.png"; - - GeneralClient.bind(texture); - drawTexturedModalRect(i, j, 0, 0, xSize, ySize); - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/inventory/InventoryChiselSelection.java b/src/main/java/info/jbcs/minecraft/chisel/inventory/InventoryChiselSelection.java old mode 100755 new mode 100644 index bb3617e6..337db476 --- a/src/main/java/info/jbcs/minecraft/chisel/inventory/InventoryChiselSelection.java +++ b/src/main/java/info/jbcs/minecraft/chisel/inventory/InventoryChiselSelection.java @@ -1,106 +1,188 @@ -package info.jbcs.minecraft.chisel.inventory; - -import info.jbcs.minecraft.chisel.item.ItemChisel; -import info.jbcs.minecraft.utilities.General; - -import java.util.ArrayList; - -import pl.asie.lib.block.InventoryBase; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class InventoryChiselSelection extends InventoryBase { - ItemStack chisel = null; - final static int normalSlots=32; - int activeVariations=0; - ContainerChisel container; - - public InventoryChiselSelection(ItemStack c) { - super(); - - chisel = c; - } - - @Override - public int getSizeInventory() { - return normalSlots+1; - } - - @Override - public String getInventoryName() { - return "Carve blocks"; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer entityplayer) { - return true; - } - - public void clearItems() { - activeVariations=0; - for (int i = 0; i < normalSlots; i++) { - inventory[i] = null; - } - } - - public ItemStack getStackInSpecialSlot() { - return inventory[normalSlots]; - } - - public void updateItems() { - ItemStack chiseledItem = inventory[normalSlots]; - - clearItems(); - - if (chiseledItem == null){ - container.onChiselSlotChanged(); - return; - } - - Item item = chiseledItem.getItem(); - if(item == null) return; - - if(Block.getBlockFromItem(item) == null) - return; - - ArrayList list=container.carving.getItems(chiseledItem); - - activeVariations=0; - while(activeVariations list = container.carving.getItems(chiseledItem); + + activeVariations = 0; + while(activeVariations < normalSlots && activeVariations < list.size()) + { + inventory[activeVariations] = list.get(activeVariations); + activeVariations++; + } + + container.onChiselSlotChanged(); + } + + @Override + public ItemStack getStackInSlotOnClosing(int slot) + { + ItemStack stack = getStackInSlot(slot); + + if(stack == null) + return null; + inventory[slot] = null; + + updateInventoryState(slot); + return stack; + } + + @Override + public void setInventorySlotContents(int slot, ItemStack stack) + { + inventory[slot] = stack; + updateInventoryState(slot); + } + + @Override + public void openInventory() + { + } + + @Override + public void closeInventory() + { + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) + { + return !(stack != null && (stack.getItem() instanceof ItemChisel)) && i == normalSlots; + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselInput.java b/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselInput.java old mode 100755 new mode 100644 index b8c22f90..61c7b4f6 --- a/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselInput.java +++ b/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselInput.java @@ -1,38 +1,43 @@ -package info.jbcs.minecraft.chisel.inventory; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class SlotChiselInput extends Slot { - public SlotChiselInput(ContainerChisel container, InventoryChiselSelection inv,int i,int j,int k) { - super(inv, i, j, k); - selInventory = inv; - this.container=container; - } - - @Override - public boolean isItemValid(ItemStack itemstack) { - if(container.finished) return false; - - return super.isItemValid(itemstack); - } - - @Override - public boolean canTakeStack(EntityPlayer par1EntityPlayer){ - if(container.finished) return false; - - return super.canTakeStack(par1EntityPlayer); - } - - @Override public void onSlotChanged() { - if(container.finished) return; - - super.onSlotChanged(); - selInventory.updateItems(); - } - - ContainerChisel container; - InventoryChiselSelection selInventory; -} +package info.jbcs.minecraft.chisel.inventory; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class SlotChiselInput extends Slot +{ + public SlotChiselInput(ContainerChisel container, InventoryChiselSelection inv, int i, int j, int k) + { + super(inv, i, j, k); + selInventory = inv; + this.container = container; + } + + @Override + public boolean isItemValid(ItemStack itemstack) + { + if(container.finished) return false; + + return super.isItemValid(itemstack); + } + + @Override + public boolean canTakeStack(EntityPlayer par1EntityPlayer) + { + return !container.finished && super.canTakeStack(par1EntityPlayer); + + } + + @Override + public void onSlotChanged() + { + if(container.finished) return; + + super.onSlotChanged(); + selInventory.updateItems(); + } + + ContainerChisel container; + InventoryChiselSelection selInventory; +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselPlayer.java b/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselPlayer.java old mode 100755 new mode 100644 index d2b303a3..83435eb4 --- a/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselPlayer.java +++ b/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselPlayer.java @@ -1,40 +1,47 @@ -package info.jbcs.minecraft.chisel.inventory; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.init.Blocks; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - - -public class SlotChiselPlayer extends Slot { - - public SlotChiselPlayer(ContainerChisel container,InventoryPlayer inv,int i,int j,int k) { - super(inv, i, j, k); - - this.container=container; - selInventory = inv; - } - - @Override - public boolean isItemValid(ItemStack par1ItemStack) { - return false; - } - - @Override - public void onPickupFromSlot(EntityPlayer player,ItemStack itemstack) { - container.finished=true; - } - - @Override - public boolean getHasStack() { - return false; - } - - @Override - public ItemStack decrStackSize(int i) { - return null; - } - - ContainerChisel container; - InventoryPlayer selInventory; -} +package info.jbcs.minecraft.chisel.inventory; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + + +public class SlotChiselPlayer extends Slot +{ + + public SlotChiselPlayer(ContainerChisel container, InventoryPlayer inv, int i, int j, int k) + { + super(inv, i, j, k); + + this.container = container; + selInventory = inv; + } + + @Override + public boolean isItemValid(ItemStack par1ItemStack) + { + return false; + } + + @Override + public void onPickupFromSlot(EntityPlayer player, ItemStack itemstack) + { + container.finished = true; + } + + @Override + public boolean getHasStack() + { + return false; + } + + @Override + public ItemStack decrStackSize(int i) + { + return null; + } + + ContainerChisel container; + InventoryPlayer selInventory; +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselSelection.java b/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselSelection.java old mode 100755 new mode 100644 index bb0cac79..5a9b5e1a --- a/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselSelection.java +++ b/src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselSelection.java @@ -1,77 +1,86 @@ -package info.jbcs.minecraft.chisel.inventory; - -import info.jbcs.minecraft.utilities.General; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class SlotChiselSelection extends Slot { - public SlotChiselSelection(ContainerChisel container, InventoryChiselSelection inv,IInventory iinventory,int i,int j,int k) { - super(iinventory, i, j, k); - - this.container=container; - selInventory = inv; - } - - @Override - public boolean isItemValid(ItemStack itemstack) { - return false; - } - - @Override - public boolean canTakeStack(EntityPlayer par1EntityPlayer){ - if(container.finished) return false; - - return par1EntityPlayer.inventory.getItemStack()==null; - } - - @Override public void onPickupFromSlot(EntityPlayer player,ItemStack itemstack) { - ItemStack stack=player.inventory.getItemStack(); - ItemStack crafted=selInventory.inventory[InventoryChiselSelection.normalSlots]; - - if(stack==null){ - if(crafted!=null && crafted.stackSize>0) crafted.stackSize--; - if(crafted.stackSize==0) crafted=null; - - selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots,crafted); - } else{ - putStack(new ItemStack(itemstack.getItem(), itemstack.stackSize, itemstack.getItemDamage())); - - player.inventory.setItemStack(null); - - if(selInventory.inventory[InventoryChiselSelection.normalSlots]==null) return; - - player.inventory.setItemStack(new ItemStack(itemstack.getItem(), selInventory.inventory[InventoryChiselSelection.normalSlots].stackSize, itemstack.getItemDamage())); - selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots,null); - } - - - selInventory.updateItems(); - - String sound=container.carving.getVariationSound(itemstack.getItem(), itemstack.getItemDamage()); - player.worldObj.playSoundAtEntity(player, sound, 0.3f + 0.7f * General.rand.nextFloat(), 0.6f + 0.4f * General.rand.nextFloat()); - - -/* ItemStack stack=player.inventory.getItemStack(); - - putStack(new ItemStack(itemstack.itemID, itemstack.stackSize, itemstack.getItemDamage())); - - super.onPickupFromSlot(player,itemstack); - - player.inventory.setItemStack(null); - - if(selInventory.items[InventoryChiselSelection.normalSlots]==null) return; - - player.inventory.setItemStack(new ItemStack(itemstack.itemID, selInventory.items[InventoryChiselSelection.normalSlots].stackSize, itemstack.getItemDamage())); - selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots,null); - - selInventory.updateItems(); - - String sound=Carving.chisel.getVariationSound(itemstack.itemID, itemstack.getItemDamage()); - player.worldObj.playSoundAtEntity(player, sound, 0.3f + 0.7f * General.rand.nextFloat(), 0.6f + 0.4f * General.rand.nextFloat()); -*/ } - - ContainerChisel container; - InventoryChiselSelection selInventory; -} +package info.jbcs.minecraft.chisel.inventory; + +import info.jbcs.minecraft.utilities.General; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class SlotChiselSelection extends Slot +{ + public SlotChiselSelection(ContainerChisel container, InventoryChiselSelection inv, IInventory iinventory, int i, int j, int k) + { + super(iinventory, i, j, k); + + this.container = container; + selInventory = inv; + } + + @Override + public boolean isItemValid(ItemStack itemstack) + { + return false; + } + + @Override + public boolean canTakeStack(EntityPlayer par1EntityPlayer) + { + if(container.finished) return false; + + return par1EntityPlayer.inventory.getItemStack() == null; + } + + @Override + public void onPickupFromSlot(EntityPlayer player, ItemStack itemstack) + { + ItemStack stack = player.inventory.getItemStack(); + ItemStack crafted = selInventory.inventory[InventoryChiselSelection.normalSlots]; + + if(stack == null) + { + if(crafted != null && crafted.stackSize > 0) crafted.stackSize--; + if(crafted.stackSize == 0) crafted = null; + + selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, crafted); + } else + { + putStack(new ItemStack(itemstack.getItem(), itemstack.stackSize, itemstack.getItemDamage())); + + player.inventory.setItemStack(null); + + if(selInventory.inventory[InventoryChiselSelection.normalSlots] == null) return; + + player.inventory.setItemStack(new ItemStack(itemstack.getItem(), selInventory.inventory[InventoryChiselSelection.normalSlots].stackSize, itemstack.getItemDamage())); + selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots, null); + } + + + selInventory.updateItems(); + + String sound = container.carving.getVariationSound(itemstack.getItem(), itemstack.getItemDamage()); + player.worldObj.playSoundAtEntity(player, sound, 0.3f + 0.7f * General.rand.nextFloat(), 0.6f + 0.4f * General.rand.nextFloat()); + + +/* ItemStack stack=player.inventory.getItemStack(); + + putStack(new ItemStack(itemstack.itemID, itemstack.stackSize, itemstack.getItemDamage())); + + super.onPickupFromSlot(player,itemstack); + + player.inventory.setItemStack(null); + + if(selInventory.items[InventoryChiselSelection.normalSlots]==null) return; + + player.inventory.setItemStack(new ItemStack(itemstack.itemID, selInventory.items[InventoryChiselSelection.normalSlots].stackSize, itemstack.getItemDamage())); + selInventory.setInventorySlotContents(InventoryChiselSelection.normalSlots,null); + + selInventory.updateItems(); + + String sound=Carving.chisel.getVariationSound(itemstack.itemID, itemstack.getItemDamage()); + player.worldObj.playSoundAtEntity(player, sound, 0.3f + 0.7f * General.rand.nextFloat(), 0.6f + 0.4f * General.rand.nextFloat()); +*/ + } + + ContainerChisel container; + InventoryChiselSelection selInventory; +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/item/ItemBallOMoss.java b/src/main/java/info/jbcs/minecraft/chisel/item/ItemBallOMoss.java old mode 100755 new mode 100644 index 0d7bde29..908ac98c --- a/src/main/java/info/jbcs/minecraft/chisel/item/ItemBallOMoss.java +++ b/src/main/java/info/jbcs/minecraft/chisel/item/ItemBallOMoss.java @@ -1,29 +1,36 @@ -package info.jbcs.minecraft.chisel.item; - -import info.jbcs.minecraft.chisel.entity.EntityBallOMoss; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemBallOMoss extends Item{ - - public ItemBallOMoss() { - super(); - } - - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { - if (!par3EntityPlayer.capabilities.isCreativeMode) { - --par1ItemStack.stackSize; - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) { - par2World.spawnEntityInWorld(new EntityBallOMoss(par2World,par3EntityPlayer)); - } - - return par1ItemStack; - } -} +package info.jbcs.minecraft.chisel.item; + +import info.jbcs.minecraft.chisel.entity.EntityBallOMoss; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemBallOMoss extends Item +{ + + public ItemBallOMoss() + { + super(); + setUnlocalizedName("ballMoss"); + } + + @Override + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if(!par3EntityPlayer.capabilities.isCreativeMode) + { + --par1ItemStack.stackSize; + } + + if(par2World.isRemote) + par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if(!par2World.isRemote) + { + par2World.spawnEntityInWorld(new EntityBallOMoss(par2World, par3EntityPlayer)); + } + + return par1ItemStack; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/item/ItemCarvable.java b/src/main/java/info/jbcs/minecraft/chisel/item/ItemCarvable.java old mode 100755 new mode 100644 index 8de0cbc2..66b8f028 --- a/src/main/java/info/jbcs/minecraft/chisel/item/ItemCarvable.java +++ b/src/main/java/info/jbcs/minecraft/chisel/item/ItemCarvable.java @@ -1,57 +1,63 @@ -package info.jbcs.minecraft.chisel.item; - -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; -import info.jbcs.minecraft.utilities.General; - -import java.util.List; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -public class ItemCarvable extends ItemBlock { - - public ItemCarvable(Block block) { - super(block); - setMaxDamage(0); - setHasSubtypes(true); - } - - @Override - public int getMetadata(int i) { - return i; - } - - @Override - public String getUnlocalizedName(ItemStack itemstack) { - return "item." + Block.getBlockFromItem(this).getUnlocalizedName() + "." + itemstack.getItemDamage(); - } - - @Override - public IIcon getIconFromDamage(int damage) { - return Block.getBlockFromItem(this).getIcon(2,damage); - } - - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) { - if(! Chisel.blockDescriptions) return; - - Item item=General.getItem(stack); - if(item==null) return; - - Block block = Block.getBlockFromItem(this); - if(! (block instanceof Carvable)) return; - - Carvable carvable=(Carvable) block; - CarvableVariation var=carvable.getVariation(stack.getItemDamage()); - if(var==null) return; - - lines.add(var.description); - } - -} +package info.jbcs.minecraft.chisel.item; + +import info.jbcs.minecraft.chisel.api.ICarvable; +import info.jbcs.minecraft.chisel.carving.CarvableVariation; +import info.jbcs.minecraft.chisel.Chisel; +import info.jbcs.minecraft.utilities.General; + +import java.util.List; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class ItemCarvable extends ItemBlock +{ + + public ItemCarvable(Block block) + { + super(block); + setMaxDamage(0); + setHasSubtypes(true); + } + + @Override + public int getMetadata(int i) + { + return i; + } + + @Override + public String getUnlocalizedName(ItemStack itemstack) + { + return "item." + Block.getBlockFromItem(this).getUnlocalizedName() + "." + itemstack.getItemDamage(); + } + + @Override + public IIcon getIconFromDamage(int damage) + { + return Block.getBlockFromItem(this).getIcon(2, damage); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List lines, boolean advancedTooltips) + { + if(!Chisel.blockDescriptions) return; + + Item item = General.getItem(stack); + if(item == null) return; + + Block block = Block.getBlockFromItem(this); + if(!(block instanceof ICarvable)) return; + + ICarvable carvable = (ICarvable) block; + CarvableVariation var = carvable.getVariation(stack.getItemDamage()); + if(var == null) return; + + lines.add(var.description); + } + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/item/ItemChisel.java b/src/main/java/info/jbcs/minecraft/chisel/item/ItemChisel.java old mode 100755 new mode 100644 index b30074e1..cbcf382a --- a/src/main/java/info/jbcs/minecraft/chisel/item/ItemChisel.java +++ b/src/main/java/info/jbcs/minecraft/chisel/item/ItemChisel.java @@ -1,185 +1,193 @@ -package info.jbcs.minecraft.chisel.item; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.Carving; -import info.jbcs.minecraft.chisel.CarvingVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.ChiselBlocks; -import info.jbcs.minecraft.chisel.GeneralChiselClient; -import info.jbcs.minecraft.chisel.Packets; -import info.jbcs.minecraft.utilities.General; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Random; -import java.util.Set; - -import pl.asie.lib.network.Packet; -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemTool; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.management.ServerConfigurationManager; -import net.minecraft.world.World; -import net.minecraftforge.common.ForgeHooks; -import net.minecraftforge.common.MinecraftForge; -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; - -public class ItemChisel extends ItemTool { - Random random=new Random(); - public Carving carving; - - private static final HashSet toolSet = new HashSet(); - - public ItemChisel(Carving c) { - super(1,ToolMaterial.IRON,CarvableHelper.getChiselBlockSet()); - - maxStackSize = 1; - setMaxDamage(500); - efficiencyOnProperMaterial=100f; - - toolSet.add("chisel"); - carving=c; - } - - @Override - public Set getToolClasses(ItemStack stack) { - return toolSet; - } - - @Override - public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) { - entityplayer.openGui(Chisel.instance, 0, world, 0, 0, 0); - - return itemstack; - } -/* - @Override - public void registerIcons(IconRegister register) - { - }*/ - - HashMap chiselUseTime=new HashMap(); - HashMap chiselUseLocation=new HashMap(); - - @Override - public boolean onBlockStartBreak(ItemStack stack, final int x, final int y, final int z, EntityPlayer player){ - if(!Chisel.enableChiseling) return true; - - World world=player.worldObj; - Block block = world.getBlock(x, y, z); - int blockMeta=world.getBlockMetadata(x,y,z); - - if(! ForgeHooks.isToolEffective(stack, block, blockMeta)) - return false; - - ItemStack chiselTarget=null; - - if(stack.stackTagCompound!=null){ - chiselTarget=ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("chiselTarget")); - } - - boolean chiselHasBlockInside=true; - - boolean noReplace = false; - - if(chiselTarget==null){ - chiselHasBlockInside=false; - - Long useTime=chiselUseTime.get(player.getCommandSenderName()); - String loc=chiselUseLocation.get(player.getCommandSenderName()); - - if(useTime!=null && chiselUseLocation!=null && loc.equals(x+"|"+y+"|"+z)){ - long cooldown=20; - long time=world.getWorldInfo().getWorldTotalTime(); - - //if(time>useTime-cooldown && time=variations.length) index=0; - } - CarvingVariation var=variations[index]; - chiselTarget=new ItemStack(var.block,1,var.damage); - } - } - Item result = null; - int targetMeta = 0; - - if(!noReplace) { - Item target = chiselTarget.getItem(); - - targetMeta=chiselTarget.getItemDamage(); - - boolean match = carving.isVariationOfSameClass(Block.getBlockFromItem(target),targetMeta,block,blockMeta); - result = target; - - /* special case: stone can be carved to cobble and bricks */ - if(Chisel.chiselStoneToCobbleBricks) { - if(!match && block.equals(Blocks.stone) && Block.getBlockFromItem(target).equals(ChiselBlocks.blockCobblestone)) - match=true; - if(!match && block.equals(Blocks.stone) && Block.getBlockFromItem(target).equals(ChiselBlocks.stoneBrick)) - match=true; - } - if(match == false) noReplace = true; - } - - int updateValue = 2; - - if(noReplace) { - result = Item.getItemFromBlock(block); - targetMeta = blockMeta; - } - if(Block.getBlockFromItem(result).equals(block) && targetMeta == blockMeta) updateValue |= 4; - //if(Block.getBlockFromItem(result) == null) return true; - - if(! world.isRemote || chiselHasBlockInside) { - System.out.println("Changing to " + Item.itemRegistry.getNameForObject(result) + ":" + chiselTarget.getItemDamage()); - world.setBlock(x, y, z, Block.getBlockFromItem(result), targetMeta, updateValue); - } - - switch(FMLCommonHandler.instance().getEffectiveSide()){ - case SERVER: - chiselUseTime.put(player.getCommandSenderName(), world.getWorldInfo().getWorldTotalTime()); - chiselUseLocation.put(player.getCommandSenderName(),x+"|"+y+"|"+z); - - try { - Packet packet = Chisel.packet.create(Packets.CHISELED).writeInt(x).writeInt(y).writeInt(z); - Chisel.packet.sendToAllAround(packet, new TargetPoint(player.dimension, x, y, z, 30.0f)); - } catch(Exception e) { e.printStackTrace(); } - break; - - case CLIENT: - if(chiselHasBlockInside){ - String sound=carving.getVariationSound(result, chiselTarget.getItemDamage()); - GeneralChiselClient.spawnChiselEffect(x, y, z, sound); - } - break; - - default: - break; - } - - stack.damageItem(1, player); - if(stack.stackSize==0){ - player.inventory.mainInventory[player.inventory.currentItem]= - chiselHasBlockInside? - chiselTarget: - null; - } - - return true; - } - - -} +package info.jbcs.minecraft.chisel.item; + +import info.jbcs.minecraft.chisel.carving.CarvableHelper; +import info.jbcs.minecraft.chisel.carving.Carving; +import info.jbcs.minecraft.chisel.carving.CarvingVariation; +import info.jbcs.minecraft.chisel.Chisel; +import info.jbcs.minecraft.chisel.ChiselBlocks; +import info.jbcs.minecraft.chisel.client.GeneralChiselClient; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Random; +import java.util.Set; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemTool; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; +import cpw.mods.fml.common.FMLCommonHandler; + +public class ItemChisel extends ItemTool +{ + Random random = new Random(); + public Carving carving; + + private static final HashSet toolSet = new HashSet(); + + public ItemChisel(Carving c) + { + super(1, ToolMaterial.IRON, CarvableHelper.getChiselBlockSet()); + + maxStackSize = 1; + setMaxDamage(500); + efficiencyOnProperMaterial = 100f; + setUnlocalizedName("chisel"); + + toolSet.add("chisel"); + carving = c; + } + + @Override + public Set getToolClasses(ItemStack stack) + { + return toolSet; + } + + @Override + public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) + { + entityplayer.openGui(Chisel.instance, 0, world, 0, 0, 0); + + return itemstack; + } + + HashMap chiselUseTime = new HashMap(); + HashMap chiselUseLocation = new HashMap(); + + @Override + public boolean onBlockStartBreak(ItemStack stack, final int x, final int y, final int z, EntityPlayer player) + { + if(!Chisel.enableChiseling) return true; + + World world = player.worldObj; + Block block = world.getBlock(x, y, z); + int blockMeta = world.getBlockMetadata(x, y, z); + + if(!ForgeHooks.isToolEffective(stack, block, blockMeta)) + return false; + + ItemStack chiselTarget = null; + + if(stack.stackTagCompound != null) + { + chiselTarget = ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("chiselTarget")); + } + + boolean chiselHasBlockInside = true; + + boolean noReplace = false; + + if(chiselTarget == null) + { + chiselHasBlockInside = false; + + Long useTime = chiselUseTime.get(player.getCommandSenderName()); + String loc = chiselUseLocation.get(player.getCommandSenderName()); + + if(useTime != null && chiselUseLocation != null && loc.equals(x + "|" + y + "|" + z)) + { + long cooldown = 20; + long time = world.getWorldInfo().getWorldTotalTime(); + + //if(time>useTime-cooldown && time= variations.length) index = 0; + } + CarvingVariation var = variations[index]; + chiselTarget = new ItemStack(var.block, 1, var.damage); + } + } + Item result = null; + int targetMeta = 0; + + if(!noReplace) + { + Item target = chiselTarget.getItem(); + + targetMeta = chiselTarget.getItemDamage(); + + boolean match = carving.isVariationOfSameClass(Block.getBlockFromItem(target), targetMeta, block, blockMeta); + result = target; + + /* special case: stone can be carved to cobble and bricks */ + if(Chisel.chiselStoneToCobbleBricks) + { + if(!match && block.equals(Blocks.stone) && Block.getBlockFromItem(target).equals(ChiselBlocks.blockCobblestone)) + match = true; + if(!match && block.equals(Blocks.stone) && Block.getBlockFromItem(target).equals(ChiselBlocks.stoneBrick)) + match = true; + } + if(match == false) noReplace = true; + } + + int updateValue = 2; + + if(noReplace) + { + result = Item.getItemFromBlock(block); + targetMeta = blockMeta; + } + + if(!world.isRemote || chiselHasBlockInside) + { + System.out.println("Changing to " + Item.itemRegistry.getNameForObject(result) + ":" + chiselTarget.getItemDamage()); + world.setBlock(x, y, z, Block.getBlockFromItem(result), targetMeta, updateValue); + } + + switch(FMLCommonHandler.instance().getEffectiveSide()) + { + case SERVER: + chiselUseTime.put(player.getCommandSenderName(), world.getWorldInfo().getWorldTotalTime()); + chiselUseLocation.put(player.getCommandSenderName(), x + "|" + y + "|" + z); + + try + { + //TODO chisel left click thingy + // Packet packet = Chisel.packet.create(Packets.CHISELED).writeInt(x).writeInt(y).writeInt(z); + // Chisel.packet.sendToAllAround(packet, new TargetPoint(player.dimension, x, y, z, 30.0f)); + } catch(Exception e) + { + e.printStackTrace(); + } + break; + + case CLIENT: + if(chiselHasBlockInside) + { + String sound = carving.getVariationSound(result, chiselTarget.getItemDamage()); + GeneralChiselClient.spawnChiselEffect(x, y, z, sound); + } + break; + + default: + break; + } + + stack.damageItem(1, player); + if(stack.stackSize == 0) + { + player.inventory.mainInventory[player.inventory.currentItem] = + chiselHasBlockInside ? + chiselTarget : + null; + } + + return true; + } + + +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/item/ItemCloudInABottle.java b/src/main/java/info/jbcs/minecraft/chisel/item/ItemCloudInABottle.java old mode 100755 new mode 100644 index 0b9546a1..0ecfa8a1 --- a/src/main/java/info/jbcs/minecraft/chisel/item/ItemCloudInABottle.java +++ b/src/main/java/info/jbcs/minecraft/chisel/item/ItemCloudInABottle.java @@ -1,33 +1,36 @@ -package info.jbcs.minecraft.chisel.item; - -import info.jbcs.minecraft.chisel.entity.EntityCloudInABottle; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemCloudInABottle extends Item { - - public ItemCloudInABottle() { - super(); - } - - /** - * Called whenever this item is equipped and the right mouse button is - * pressed. Args: itemStack, world, entityPlayer - */ - @Override - public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { - if (!par3EntityPlayer.capabilities.isCreativeMode) { - --par1ItemStack.stackSize; - } - - par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); - - if (!par2World.isRemote) { - par2World.spawnEntityInWorld(new EntityCloudInABottle(par2World,par3EntityPlayer)); - } - - return par1ItemStack; - } -} +package info.jbcs.minecraft.chisel.item; + +import info.jbcs.minecraft.chisel.entity.EntityCloudInABottle; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemCloudInABottle extends Item +{ + + public ItemCloudInABottle() + { + super(); + setUnlocalizedName("cloudBottle"); + } + + @Override + public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) + { + if(!par3EntityPlayer.capabilities.isCreativeMode) + { + --par1ItemStack.stackSize; + } + + if(par2World.isRemote) + par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 0.5F, 0.4F / (itemRand.nextFloat() * 0.4F + 0.8F)); + + if(!par2World.isRemote) + { + par2World.spawnEntityInWorld(new EntityCloudInABottle(par2World, par3EntityPlayer)); + } + + return par1ItemStack; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/item/ItemMarbleSlab.java b/src/main/java/info/jbcs/minecraft/chisel/item/ItemMarbleSlab.java old mode 100755 new mode 100644 index 99637179..67650229 --- a/src/main/java/info/jbcs/minecraft/chisel/item/ItemMarbleSlab.java +++ b/src/main/java/info/jbcs/minecraft/chisel/item/ItemMarbleSlab.java @@ -1,87 +1,120 @@ -package info.jbcs.minecraft.chisel.item; - -import info.jbcs.minecraft.chisel.block.BlockMarbleSlab; -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemStack; -import net.minecraft.world.World; - -public class ItemMarbleSlab extends ItemCarvable { - - public ItemMarbleSlab(Block block) { - super(block); - } - - /** - * Returns true if the given ItemBlock can be placed on the given side of the given block position. - */ - @Override - public boolean func_150936_a(World world, int x, int y, int z, int side, EntityPlayer player, ItemStack stack){ - BlockMarbleSlab block = (BlockMarbleSlab)Block.getBlockFromItem(this); - - switch(side){ - case 0: --y; break; - case 1: ++y; break; - case 2: --z; break; - case 3: ++z; break; - case 4: --x; break; - case 5: ++x; break; - } - - Block targetBlock = world.getBlock(x, y, z); - int meta=world.getBlockMetadata(x, y, z); - - if((targetBlock.equals(block) || targetBlock.equals(block.top)) && meta==stack.getItemDamage()) - return true; - - return world.canPlaceEntityOnSide(block, x, y, z, false, side, (Entity)null, stack); - } - - - @Override - public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hx, float hy, float hz){ - BlockMarbleSlab block = (BlockMarbleSlab)Block.getBlockFromItem(this); - - Block targetBlock = world.getBlock(x, y, z); - int meta=world.getBlockMetadata(x, y, z); - boolean metaMatches=meta==stack.getItemDamage(); - - if(metaMatches && side==0 && targetBlock.equals(block.top)){ - world.setBlock(x, y, z, block.master, meta, 2); - return true; - } else if(metaMatches && side==1 && targetBlock.equals(block.bottom)){ - world.setBlock(x, y, z, block.master, meta, 2); - return true; - } - - boolean result=super.onItemUse(stack,player,world,x,y,z,side,hz,hy,hz); - - - switch(side){ - case 0: --y; break; - case 1: ++y; break; - case 2: --z; break; - case 3: ++z; break; - case 4: --x; break; - case 5: ++x; break; - } - - targetBlock = world.getBlock(x, y, z); - meta=world.getBlockMetadata(x, y, z); - - if(!result && (targetBlock.equals(block.top) || targetBlock.equals(block.bottom)) && meta==stack.getItemDamage()){ - world.setBlock(x, y, z, block.master, meta, 2); - return true; - } - - if(!result) - return false; - - if(side != 0 && (side == 1 || hy <= 0.5D)) - return true; - - world.setBlock(x, y, z, block.top, meta, 2); - return true; - } -} +package info.jbcs.minecraft.chisel.item; + +import info.jbcs.minecraft.chisel.block.BlockMarbleSlab; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemMarbleSlab extends ItemCarvable +{ + + public ItemMarbleSlab(Block block) + { + super(block); + } + + /** + * Returns true if the given ItemBlock can be placed on the given side of the given block position. + */ + @Override + public boolean func_150936_a(World world, int x, int y, int z, int side, EntityPlayer player, ItemStack stack) + { + BlockMarbleSlab block = (BlockMarbleSlab) Block.getBlockFromItem(this); + + switch(side) + { + case 0: + --y; + break; + case 1: + ++y; + break; + case 2: + --z; + break; + case 3: + ++z; + break; + case 4: + --x; + break; + case 5: + ++x; + break; + } + + Block targetBlock = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + + if((targetBlock.equals(block) || targetBlock.equals(block.top)) && meta == stack.getItemDamage()) + return true; + + return world.canPlaceEntityOnSide(block, x, y, z, false, side, (Entity) null, stack); + } + + + @Override + public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hx, float hy, float hz) + { + BlockMarbleSlab block = (BlockMarbleSlab) Block.getBlockFromItem(this); + + Block targetBlock = world.getBlock(x, y, z); + int meta = world.getBlockMetadata(x, y, z); + boolean metaMatches = meta == stack.getItemDamage(); + + if(metaMatches && side == 0 && targetBlock.equals(block.top)) + { + world.setBlock(x, y, z, block.master, meta, 2); + return true; + } else if(metaMatches && side == 1 && targetBlock.equals(block.bottom)) + { + world.setBlock(x, y, z, block.master, meta, 2); + return true; + } + + boolean result = super.onItemUse(stack, player, world, x, y, z, side, hz, hy, hz); + + + switch(side) + { + case 0: + --y; + break; + case 1: + ++y; + break; + case 2: + --z; + break; + case 3: + ++z; + break; + case 4: + --x; + break; + case 5: + ++x; + break; + } + + targetBlock = world.getBlock(x, y, z); + meta = world.getBlockMetadata(x, y, z); + + if(!result && (targetBlock.equals(block.top) || targetBlock.equals(block.bottom)) && meta == stack.getItemDamage()) + { + world.setBlock(x, y, z, block.master, meta, 2); + return true; + } + + if(!result) + return false; + + if(side != 0 && (side == 1 || hy <= 0.5D)) + return true; + + world.setBlock(x, y, z, block.top, meta, 2); + return true; + } +} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockAdvancedMarbleRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockAdvancedMarbleRenderer.java deleted file mode 100755 index 11ddae76..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockAdvancedMarbleRenderer.java +++ /dev/null @@ -1,79 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.CarvableVariation; -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.api.Carvable; -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockAdvancedMarbleRenderer implements ISimpleBlockRenderingHandler { - RenderBlocksCTM rendererCTM=new RenderBlocksCTM(); - RenderBlocksColumn rendererColumn=new RenderBlocksColumn(); - - public BlockAdvancedMarbleRenderer() { - if(Chisel.RenderCTMId==0){ - Chisel.RenderCTMId = RenderingRegistry.getNextAvailableRenderId(); - - } - } - - @Override - public void renderInventoryBlock(Block block, int metadata, int modelID, RenderBlocks renderer) { - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - Drawing.drawBlock(block, metadata, renderer); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks rendererOld) { - int meta = world.getBlockMetadata(x, y, z); - - CarvableVariation var=((Carvable) block).getVariation(meta); - - switch(var==null?0:var.kind){ - case CarvableHelper.CTMX: - rendererCTM.blockAccess=world; - rendererCTM.renderMaxX=1.0; - rendererCTM.renderMaxY=1.0; - rendererCTM.renderMaxZ=1.0; - - rendererCTM.submap=var.submap; - rendererCTM.submapSmall=var.submapSmall; - - rendererCTM.rendererOld=rendererOld; - - return rendererCTM.renderStandardBlock(block,x,y,z); - case CarvableHelper.CTMV: - rendererColumn.blockAccess=world; - rendererColumn.renderMaxX=1.0; - rendererColumn.renderMaxY=1.0; - rendererColumn.renderMaxZ=1.0; - - rendererColumn.submap=var.seamsCtmVert; - rendererColumn.iconTop=var.iconTop; - - return rendererColumn.renderStandardBlock(block,x,y,z); - default: - return rendererOld.renderStandardBlock(block,x,y,z); - } - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return true; - } - - @Override - public int getRenderId() { - return Chisel.RenderCTMId; - } - -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockCarpetRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockCarpetRenderer.java deleted file mode 100755 index 56c73b79..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockCarpetRenderer.java +++ /dev/null @@ -1,21 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.Chisel; -import cpw.mods.fml.client.registry.RenderingRegistry; - - -public class BlockCarpetRenderer extends BlockAdvancedMarbleRenderer { - - public BlockCarpetRenderer(){ - super(); - - Chisel.RenderCarpetId = RenderingRegistry.getNextAvailableRenderId(); - - rendererCTM=new RenderBlocksCTMCarpet(); - } - - @Override - public int getRenderId() { - return Chisel.RenderCarpetId; - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarblePaneRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarblePaneRenderer.java deleted file mode 100755 index b743f499..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarblePaneRenderer.java +++ /dev/null @@ -1,307 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.block.BlockPane; -import net.minecraft.client.renderer.EntityRenderer; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockMarblePaneRenderer implements ISimpleBlockRenderingHandler { - public static int id; - - public BlockMarblePaneRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) { - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - GL11.glScalef(1.25f, 1.25f, 1.25f); - renderer.setRenderBounds(0.0f, 0.0f, 0.5f - 0.0625f, 1.0f, 1.0f, 0.5f + 0.0625f); - Drawing.drawBlock(block, meta, renderer); - } - - class PaneRenderer { - Tessellator tessellator; - - double i0u0; - double i0uh; - double i0u1; - double i0v0; - double i0v1; - - double i1u0; - double i1u1; - double i1v0; - double i1vh; - double i1v1; - double i1v; - - double i2u0; - double i2u1; - double i2v0; - double i2v1; - double i2v; - - double x0; - double xh; - double x1; - double xp0; - double xp1; - - double z0; - double zh; - double z1; - double zp0; - double zp1; - - double y0; - double y1; - - void set(double x, double y, double z, IIcon icon, IIcon icon1, IIcon icon2) { - tessellator = Tessellator.instance; - - i0u0 = icon.getMinU(); - i0uh = icon.getInterpolatedU(8.0D); - i0u1 = icon.getMaxU(); - i0v0 = icon.getMinV(); - i0v1 = icon.getMaxV(); - - i1u0 = icon1.getInterpolatedU(7.0D); - i1u1 = icon1.getInterpolatedU(9.0D); - i1v0 = icon1.getMinV(); - i1vh = icon1.getInterpolatedV(8.0D); - i1v1 = icon1.getMaxV(); - i1v = i1v1 - i1v0; - - i2u0 = icon2.getInterpolatedU(7.0D); - i2u1 = icon2.getInterpolatedU(9.0D); - i2v0 = icon2.getMinV(); - i2v1 = icon2.getMaxV(); - i2v = i2v1 - i2v0; - - x0 = x; - xh = x0 + 0.5D; - x1 = x + 1; - xp0 = x0 + 0.5D - 0.0625D; - xp1 = x0 + 0.5D + 0.0625D; - - z0 = z; - zh = z0 + 0.5D; - z1 = z + 1; - zp0 = z0 + 0.5D - 0.0625D; - zp1 = z0 + 0.5D + 0.0625D; - - y0 = y; - y1 = y + 1; - } - - public void renderNorthPane() { - tessellator.addVertexWithUV(xh, y1, z0, i0uh, i0v0); - tessellator.addVertexWithUV(xh, y0, z0, i0uh, i0v1); - tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); - tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); - tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); - tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); - tessellator.addVertexWithUV(xh, y0, z0, i0uh, i0v1); - tessellator.addVertexWithUV(xh, y1, z0, i0uh, i0v0); - } - - public void renderSouthPane() { - tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); - tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); - tessellator.addVertexWithUV(xh, y0, z1, i0uh, i0v1); - tessellator.addVertexWithUV(xh, y1, z1, i0uh, i0v0); - tessellator.addVertexWithUV(xh, y1, z1, i0uh, i0v0); - tessellator.addVertexWithUV(xh, y0, z1, i0uh, i0v1); - tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); - tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); - } - - public void renderWestPane() { - tessellator.addVertexWithUV(x0, y1, zh, i0uh, i0v0); - tessellator.addVertexWithUV(x0, y0, zh, i0uh, i0v1); - tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); - tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); - tessellator.addVertexWithUV(xh, y1, zh, i0u0, i0v0); - tessellator.addVertexWithUV(xh, y0, zh, i0u0, i0v1); - tessellator.addVertexWithUV(x0, y0, zh, i0uh, i0v1); - tessellator.addVertexWithUV(x0, y1, zh, i0uh, i0v0); - } - - public void renderEastPane() { - tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); - tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); - tessellator.addVertexWithUV(x1, y0, zh, i0uh, i0v1); - tessellator.addVertexWithUV(x1, y1, zh, i0uh, i0v0); - tessellator.addVertexWithUV(x1, y1, zh, i0uh, i0v0); - tessellator.addVertexWithUV(x1, y0, zh, i0uh, i0v1); - tessellator.addVertexWithUV(xh, y0, zh, i0u1, i0v1); - tessellator.addVertexWithUV(xh, y1, zh, i0u1, i0v0); - } - - public void renderVerticalNS(double y, double zoff0, double zoff1, double v0, double v1) { - tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff0, i1u0, i1v0 + i1v * v0); - tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff1, i1u0, i1v0 + i1v * v1); - tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff1, i1u1, i1v0 + i1v * v1); - tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff0, i1u1, i1v0 + i1v * v0); - tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff1, i1u0, i1v0 + i1v * v1); - tessellator.addVertexWithUV(xp0, y0 + y, z0 + zoff0, i1u0, i1v0 + i1v * v0); - tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff0, i1u1, i1v0 + i1v * v0); - tessellator.addVertexWithUV(xp1, y0 + y, z0 + zoff1, i1u1, i1v0 + i1v * v1); - } - - public void renderVerticalWE(double y, double xoff0, double xoff1, double v0, double v1) { - tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp1, i1u1, i1v0 + i1v * v0); - tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp1, i1u1, i1v0 + i1v * v1); - tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp0, i1u0, i1v0 + i1v * v1); - tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp0, i1u0, i1v0 + i1v * v0); - tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp1, i1u1, i1v0 + i1v * v1); - tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp1, i1u1, i1v0 + i1v * v0); - tessellator.addVertexWithUV(x0 + xoff0, y0 + y, zp0, i1u0, i1v0 + i1v * v0); - tessellator.addVertexWithUV(x0 + xoff1, y0 + y, zp0, i1u0, i1v0 + i1v * v1); - } - - - public void renderHorizontalNS(double zoff, double v0, double v1) { - tessellator.addVertexWithUV(xp0, y1, z0+zoff, i2u0, i2v0 + i2v * v1); - tessellator.addVertexWithUV(xp0, y0, z0+zoff, i2u0, i2v0 + i2v * v0); - tessellator.addVertexWithUV(xp1, y0, z0+zoff, i2u1, i2v0 + i2v * v0); - tessellator.addVertexWithUV(xp1, y1, z0+zoff, i2u1, i2v0 + i2v * v1); - tessellator.addVertexWithUV(xp1, y1, z0+zoff, i2u1, i2v0 + i2v * v1); - tessellator.addVertexWithUV(xp1, y0, z0+zoff, i2u1, i2v0 + i2v * v0); - tessellator.addVertexWithUV(xp0, y0, z0+zoff, i2u0, i2v0 + i2v * v0); - tessellator.addVertexWithUV(xp0, y1, z0+zoff, i2u0, i2v0 + i2v * v1); - - } - - public void renderHorizontalWE(double xoff,double v0,double v1){ - tessellator.addVertexWithUV(x0 + xoff, y1, zp0, i2u0, i2v0 + i2v * v1); - tessellator.addVertexWithUV(x0 + xoff, y0, zp0, i2u0, i2v0 + i2v * v0); - tessellator.addVertexWithUV(x0 + xoff, y0, zp1, i2u1, i2v0 + i2v * v0); - tessellator.addVertexWithUV(x0 + xoff, y1, zp1, i2u1, i2v0 + i2v * v1); - tessellator.addVertexWithUV(x0 + xoff, y1, zp1, i2u1, i2v0 + i2v * v1); - tessellator.addVertexWithUV(x0 + xoff, y0, zp1, i2u1, i2v0 + i2v * v0); - tessellator.addVertexWithUV(x0 + xoff, y0, zp0, i2u0, i2v0 + i2v * v0); - tessellator.addVertexWithUV(x0 + xoff, y1, zp0, i2u0, i2v0 + i2v * v1); - } - } - - PaneRenderer paneRenderer = new PaneRenderer(); - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block b, int modelId, RenderBlocks renderer) { - BlockPane block = (BlockPane) b; - Tessellator tessellator = Tessellator.instance; - - int worldHeight = world.getHeight(); - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - - float f = 1.0F; - int i1 = block.colorMultiplier(world, x, y, z); - float f1 = (i1 >> 16 & 255) / 255.0F; - float f2 = (i1 >> 8 & 255) / 255.0F; - float f3 = (i1 & 255) / 255.0F; - - if (EntityRenderer.anaglyphEnable) { - float f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F; - float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F; - float f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F; - f1 = f4; - f2 = f5; - f3 = f6; - } - tessellator.setColorOpaque_F(f * f1, f * f2, f * f3); - - int meta = world.getBlockMetadata(x, y, z); - IIcon iconPane = block.getIcon(2, meta); - IIcon iconTop = block.getIcon(1, meta); - IIcon iconSide = block.getIcon(0, meta); - if(iconPane==null || iconTop==null || iconSide==null) return false; - - paneRenderer.set(x, y, z, iconPane, iconTop, iconSide); - - boolean connectsNorth = block.canPaneConnectToBlock(world.getBlock(x, y, z - 1)); - boolean connectsSouth = block.canPaneConnectToBlock(world.getBlock(x, y, z + 1)); - boolean connectsWest = block.canPaneConnectToBlock(world.getBlock(x - 1, y, z)); - boolean connectsEast = block.canPaneConnectToBlock(world.getBlock(x + 1, y, z)); - boolean connectsTop = block.canPaneConnectToBlock(world.getBlock(x, y + 1, z)); - boolean connectsBottom = block.canPaneConnectToBlock(world.getBlock(x, y - 1, z)); - - boolean connectsTopNorth=block.canPaneConnectToBlock(world.getBlock(x, y + 1, z - 1)); - boolean connectsTopSouth=block.canPaneConnectToBlock(world.getBlock(x, y + 1, z + 1)); - boolean connectsTopWest=block.canPaneConnectToBlock(world.getBlock(x-1, y + 1, z)); - boolean connectsTopEast=block.canPaneConnectToBlock(world.getBlock(x+1, y + 1, z)); - - boolean connectsBottomNorth=block.canPaneConnectToBlock(world.getBlock(x, y - 1, z - 1)); - boolean connectsBottomSouth=block.canPaneConnectToBlock(world.getBlock(x, y - 1, z + 1)); - boolean connectsBottomWest=block.canPaneConnectToBlock(world.getBlock(x-1, y - 1, z)); - boolean connectsBottomEast=block.canPaneConnectToBlock(world.getBlock(x+1, y - 1, z)); - - boolean isolatedTop=!connectsTopNorth && !connectsTopSouth && !connectsTopWest && !connectsTopEast; - boolean isolatedBottom=!connectsBottomNorth && !connectsBottomSouth && !connectsBottomWest && !connectsBottomEast; - - if (!connectsNorth && !connectsSouth && !connectsWest && !connectsEast) { - connectsNorth = connectsSouth = connectsWest = connectsEast = true; - } - - int connections=0; - if (connectsNorth) { - paneRenderer.renderNorthPane(); - if(!connectsBottom || !connectsBottomNorth && !isolatedBottom) paneRenderer.renderVerticalNS(-0.0003, 0.0, 0.5, 0.5, 0.0); - if(!connectsTop || !connectsTopNorth && !isolatedTop) paneRenderer.renderVerticalNS(+1.0003, 0.0, 0.5, 0.5, 0.0); - connections++; - } - if (connectsSouth) { - paneRenderer.renderSouthPane(); - if(!connectsBottom || !connectsBottomSouth && !isolatedBottom) paneRenderer.renderVerticalNS(-0.0004, 0.5, 1.0, 1.0, 0.5); - if(!connectsTop || !connectsTopSouth && !isolatedTop) paneRenderer.renderVerticalNS(+1.0004, 0.5, 1.0, 1.0, 0.5); - connections++; - } - if (connectsWest) { - paneRenderer.renderWestPane(); - if(!connectsBottom || !connectsBottomWest && !isolatedBottom) paneRenderer.renderVerticalWE(-0.0001, 0.0, 0.5, 0.5, 0.0); - if(!connectsTop || !connectsTopWest && !isolatedTop) paneRenderer.renderVerticalWE(+1.0001, 0.0, 0.5, 0.5, 0.0); - connections++; - } - if (connectsEast) { - paneRenderer.renderEastPane(); - if(!connectsBottom || !connectsBottomEast && !isolatedBottom) paneRenderer.renderVerticalWE(-0.0002, 0.5, 1.0, 1.0, 0.5); - if(!connectsTop || !connectsTopEast && !isolatedTop) paneRenderer.renderVerticalWE(+1.0002, 0.5, 1.0, 1.0, 0.5); - connections++; - } - - - if(connections==1){ - if(connectsNorth) paneRenderer.renderHorizontalNS(0.5,1.0,0.0); - if(connectsSouth) paneRenderer.renderHorizontalNS(0.5,0.0,1.0); - if(connectsEast) paneRenderer.renderHorizontalWE(0.5,0.0,1.0); - if(connectsWest) paneRenderer.renderHorizontalWE(0.5,1.0,0.0); - } else if(connections==4){ - paneRenderer.renderHorizontalNS(0.0,1.0,0.0); - paneRenderer.renderHorizontalNS(1.0,0.0,1.0); - paneRenderer.renderHorizontalWE(0.0,0.0,1.0); - paneRenderer.renderHorizontalWE(1.0,1.0,0.0); - } - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return false; - } - - @Override - public int getRenderId() { - return id; - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarblePillarRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarblePillarRenderer.java deleted file mode 100755 index 449752b8..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarblePillarRenderer.java +++ /dev/null @@ -1,160 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.CarvableHelper; -import info.jbcs.minecraft.chisel.block.BlockMarblePillar; -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockMarblePillarRenderer implements ISimpleBlockRenderingHandler { - public static int id; - - public BlockMarblePillarRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block blck, int metadata, int modelID, RenderBlocks renderer) { - if(! (blck instanceof BlockMarblePillar)) - return; - - BlockMarblePillar block=(BlockMarblePillar) blck; - - block.sides[0]=block.sides[1]=block.getCtmIcon(4,metadata); - block.sides[2]=block.sides[3]=block.sides[4]=block.sides[5]=block.getCtmIcon(0,metadata); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - Drawing.drawBlock(block, metadata, renderer); - } - - boolean connected(IBlockAccess world, int x,int y,int z, Block block, int meta){ - return world.getBlock(x,y,z).equals(block) && world.getBlockMetadata(x,y,z)==meta; - - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) { - if(! (blck instanceof BlockMarblePillar)) - return false; - - BlockMarblePillar block=(BlockMarblePillar) blck; - - int metadata=world.getBlockMetadata(x, y, z); - - if(block.carverHelper.variations.get(metadata).kind!=CarvableHelper.CTMV){ - block.sides[0]=block.carverHelper.getIcon(0,metadata); - block.sides[1]=block.carverHelper.getIcon(1,metadata); - block.sides[2]=block.carverHelper.getIcon(2,metadata); - block.sides[3]=block.carverHelper.getIcon(3,metadata); - block.sides[4]=block.carverHelper.getIcon(4,metadata); - block.sides[5]=block.carverHelper.getIcon(5,metadata); - - return renderer.renderStandardBlock(block, x, y, z); - } - - boolean yp=connected(world,x,y+1,z,block,metadata); - boolean yn=connected(world,x,y-1,z,block,metadata); - - if(yp || yn){ - block.sides[0]=block.getCtmIcon(4,metadata); - block.sides[1]=block.getCtmIcon(4,metadata); - - if(yp && yn) - block.sides[2]=block.getCtmIcon(2,metadata); - else if(yp) - block.sides[2]=block.getCtmIcon(3,metadata); - else - block.sides[2]=block.getCtmIcon(1,metadata); - - block.sides[3]=block.sides[4]=block.sides[5]=block.sides[2]; - } else{ - boolean xp=connected(world,x+1,y,z,block,metadata); - boolean xn=connected(world,x-1,y,z,block,metadata); - - if(xp && (connected(world,x+1,y+1,z,block,metadata) || connected(world,x+1,y-1,z,block,metadata))) - xp=false; - if(xn && (connected(world,x-1,y+1,z,block,metadata) || connected(world,x-1,y-1,z,block,metadata))) - xn=false; - - if(xp || xn){ - renderer.uvRotateEast = 2; - renderer.uvRotateWest = 1; - renderer.uvRotateTop = 1; - renderer.uvRotateBottom = 1; - - block.sides[4]=block.getCtmIcon(4,metadata); - block.sides[5]=block.getCtmIcon(4,metadata); - - if(xp && xn) - block.sides[0]=block.getCtmIcon(2,metadata); - else if(xp) - block.sides[0]=block.getCtmIcon(3,metadata); - else - block.sides[0]=block.getCtmIcon(1,metadata); - - block.sides[1]=block.sides[2]=block.sides[3]=block.sides[0]; - } else{ - boolean zp=connected(world,x,y,z+1,block,metadata); - boolean zn=connected(world,x,y,z-1,block,metadata); - - if(zp && (connected(world,x,y+1,z+1,block,metadata) || connected(world,x,y-1,z+1,block,metadata))) - zp=false; - if(zp && (connected(world,x+1,y,z+1,block,metadata) || connected(world,x-1,y,z+1,block,metadata))) - zp=false; - if(zn && (connected(world,x,y+1,z-1,block,metadata) || connected(world,x,y-1,z-1,block,metadata))) - zn=false; - if(zn && (connected(world,x+1,y,z-1,block,metadata) || connected(world,x-1,y,z-1,block,metadata))) - zn=false; - - if(zp || zn){ - renderer.uvRotateSouth = 1; - renderer.uvRotateNorth = 2; - - block.sides[2]=block.getCtmIcon(4,metadata); - block.sides[3]=block.getCtmIcon(4,metadata); - - if(zp && zn) - block.sides[0]=block.getCtmIcon(2,metadata); - else if(zp) - block.sides[0]=block.getCtmIcon(1,metadata); - else - block.sides[0]=block.getCtmIcon(3,metadata); - - block.sides[1]=block.sides[4]=block.sides[5]=block.sides[0]; - } else{ - block.sides[0]=block.sides[1]=block.getCtmIcon(4,metadata); - block.sides[2]=block.sides[3]=block.sides[4]=block.sides[5]=block.getCtmIcon(0,metadata); - } - } - } - - - boolean flag = renderer.renderStandardBlock(block, x, y, z); - - renderer.uvRotateSouth = 0; - renderer.uvRotateEast = 0; - renderer.uvRotateWest = 0; - renderer.uvRotateNorth = 0; - renderer.uvRotateTop = 0; - renderer.uvRotateBottom = 0; - - return flag; - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return true; - } - - @Override - public int getRenderId() { - return id; - } - - -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarbleStairsRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarbleStairsRenderer.java deleted file mode 100755 index 9200b1be..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockMarbleStairsRenderer.java +++ /dev/null @@ -1,55 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.block.BlockMarbleStairs; -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockMarbleStairsRenderer implements ISimpleBlockRenderingHandler { - public static int id; - - public BlockMarbleStairsRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) { - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.5F); - Drawing.drawBlock(block, meta, renderer); - renderer.setRenderBounds(0.0F, 0.0F, 0.5F, 1.0F, 0.5F, 1.0F); - Drawing.drawBlock(block, meta, renderer); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) { - if (blck == null || !(blck instanceof BlockMarbleStairs)) - return false; - BlockMarbleStairs block = (BlockMarbleStairs) blck; - - renderer.renderBlockStairs(block, x, y, z); - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return true; - } - - @Override - public int getRenderId() { - return id; - } - - public int getRenderBlockPass() { - return 1; - } - -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockNoCTMRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockNoCTMRenderer.java deleted file mode 100755 index 1c5a3b04..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockNoCTMRenderer.java +++ /dev/null @@ -1,48 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockNoCTMRenderer implements ISimpleBlockRenderingHandler { - static int id; - - public BlockNoCTMRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) { - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - Drawing.drawBlock(block, meta, renderer); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - int meta=world.getBlockMetadata(x, y, z); - - if(meta!=0) renderer.overrideBlockTexture=block.getIcon(0,meta); - renderer.setRenderBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - renderer.renderStandardBlock(block, x, y, z); - renderer.overrideBlockTexture=null; - - return false; - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return true; - } - - @Override - public int getRenderId() { - return id; - } - -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockRoadLineRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockRoadLineRenderer.java deleted file mode 100755 index c7c2b27e..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockRoadLineRenderer.java +++ /dev/null @@ -1,120 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.block.BlockRoadLine; -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.EntityRenderer; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; -import net.minecraft.world.IBlockAccess; -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockRoadLineRenderer implements ISimpleBlockRenderingHandler { - public static int id; - - public BlockRoadLineRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) { - renderer.setRenderBoundsFromBlock(block); - Drawing.drawBlock(block, meta, renderer); - } - - public void renderTopFace(double y,IIcon icon) { - Tessellator tessellator=Tessellator.instance; - - tessellator.addVertexWithUV(1, y, 0, icon.getMaxU(), icon.getMinV()); - tessellator.addVertexWithUV(0, y, 0, icon.getMinU(), icon.getMinV()); - tessellator.addVertexWithUV(0, y, 1, icon.getMinU(), icon.getMaxV()); - tessellator.addVertexWithUV(1, y, 1, icon.getMaxU(), icon.getMaxV()); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block b, int modelId, RenderBlocks renderer) { - int meta=world.getBlockMetadata(x, y, z); - BlockRoadLine block=(BlockRoadLine) b; - Tessellator tessellator=Tessellator.instance; - - tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - - float f = 1.0F; - int i1 = block.colorMultiplier(world, x, y, z); - float f1 = (i1 >> 16 & 255) / 255.0F; - float f2 = (i1 >> 8 & 255) / 255.0F; - float f3 = (i1 & 255) / 255.0F; - - if (EntityRenderer.anaglyphEnable) { - float f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F; - float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F; - float f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F; - f1 = f4; - f2 = f5; - f3 = f6; - } - tessellator.setColorOpaque_F(f * f1, f * f2, f * f3); - - boolean N=world.getBlock(x, y, z-1).equals(block); - boolean S=world.getBlock(x, y, z+1).equals(block); - boolean W=world.getBlock(x-1, y, z).equals(block); - boolean E=world.getBlock(x+1, y, z).equals(block); - - if(!N && !S && !W && !E){ - renderer.renderStandardBlock(block, x, y, z); - return true; - } - - if(N && S){ - renderer.uvRotateTop=0; - renderer.overrideBlockTexture=block.fullLineIcon; - renderer.renderStandardBlock(block, x, y, z); - - } else{ - if(N){ - renderer.uvRotateTop=0; - renderer.overrideBlockTexture=block.halfLineIcon; - renderer.renderStandardBlock(block, x, y, z); - } - if(S){ - renderer.uvRotateTop=3; - renderer.overrideBlockTexture=block.halfLineIcon; - renderer.renderStandardBlock(block, x, y, z); - } - - } - - if(E && W){ - renderer.uvRotateTop=1; - renderer.overrideBlockTexture=block.fullLineIcon; - renderer.renderStandardBlock(block, x, y, z); - } else{ - if(E){ - renderer.uvRotateTop=1; - renderer.overrideBlockTexture=block.halfLineIcon; - renderer.renderStandardBlock(block, x, y, z); - } - if(W){ - renderer.uvRotateTop=2; - renderer.overrideBlockTexture=block.halfLineIcon; - renderer.renderStandardBlock(block, x, y, z); - } - } - - renderer.uvRotateTop=0; - renderer.overrideBlockTexture=null; - return true; - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return false; - } - - @Override - public int getRenderId() { - return id; - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockSnakeStoneRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockSnakeStoneRenderer.java deleted file mode 100755 index 9bb88cc2..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockSnakeStoneRenderer.java +++ /dev/null @@ -1,126 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.block.BlockSnakestone; -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockSnakeStoneRenderer implements ISimpleBlockRenderingHandler { - public static int id; - - public BlockSnakeStoneRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) { - setRenderRotate(renderer, (BlockSnakestone) block, meta); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - Drawing.drawBlock(block, meta, renderer); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - restoreRendererRotate(renderer); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - int meta = world.getBlockMetadata(x, y, z); - - setRenderRotate(renderer, (BlockSnakestone) block, meta); - boolean didRender = renderer.renderStandardBlock(block, x, y, z); - restoreRendererRotate(renderer); - - return didRender; - } - - private void restoreRendererRotate(RenderBlocks renderer) { - renderer.uvRotateSouth = 0; - renderer.uvRotateEast = 0; - renderer.uvRotateWest = 0; - renderer.uvRotateNorth = 0; - renderer.uvRotateTop = 0; - renderer.uvRotateBottom = 0; - } - - private void setRenderRotate(RenderBlocks renderer, BlockSnakestone block, int meta) { - int type = meta & 0xC; - int orient = meta & 0x3; - - - - if (type == 0) { - switch (orient) { - case 0: - renderer.uvRotateTop = 1; - renderer.uvRotateBottom = 2; - break; - case 1: - renderer.uvRotateTop = 1; - renderer.uvRotateBottom = 1; - break; - case 2: - renderer.uvRotateTop = 0; - renderer.uvRotateBottom = 3; - break; - case 3: - renderer.uvRotateTop = 0; - renderer.uvRotateBottom = 0; - } - - } else if ((type == 4) || (type == 8)) { - switch (orient) { - case 0: - renderer.uvRotateTop = block.flipTopTextures?1:2; - renderer.uvRotateBottom = 1; - renderer.uvRotateWest = 2; - break; - case 1: - renderer.uvRotateTop = 1; - renderer.uvRotateBottom = 1; - renderer.uvRotateEast = 2; - break; - case 2: - renderer.uvRotateTop = block.flipTopTextures?0:3; - renderer.uvRotateBottom = 0; - renderer.uvRotateSouth = 2; - break; - case 3: - renderer.uvRotateTop = 0; - renderer.uvRotateBottom = 0; - renderer.uvRotateNorth = 2; - } - - } else if (type == 12) { - switch (orient) { - case 0: - renderer.uvRotateTop = 0; - renderer.uvRotateBottom = 0; - break; - case 1: - renderer.uvRotateTop = 1; - renderer.uvRotateBottom = 1; - break; - case 2: - renderer.uvRotateNorth = 2; - renderer.uvRotateSouth = 2; - renderer.uvRotateEast = 2; - renderer.uvRotateWest = 2; - } - } - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return true; - } - - @Override - public int getRenderId() { - return id; - } -} \ No newline at end of file diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockSpikesRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockSpikesRenderer.java deleted file mode 100755 index 22e8c89d..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockSpikesRenderer.java +++ /dev/null @@ -1,116 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.Chisel; -import info.jbcs.minecraft.chisel.ChiselBlocks; -import info.jbcs.minecraft.utilities.Drawing; - -import java.util.Random; - -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 cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockSpikesRenderer implements ISimpleBlockRenderingHandler { - public static int id; - - public BlockSpikesRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelID, RenderBlocks renderer) { - Drawing.drawBlock(block, meta, renderer); - } - - void drawSpike(IIcon icon,double r,double h,double x,double y,double z,double dx,double dz){ - Tessellator tessellator=Tessellator.instance; - - double u0=icon.getMinU(); - double u1=icon.getMaxU(); - double v0=icon.getMaxV(); - double v1=icon.getMinV(); - - double tx=x+dx; - double ty=y+h; - double tz=z+dz; - - tessellator.addVertexWithUV(x+r, y+0, z+r, u0, v0); - tessellator.addVertexWithUV(x+r, y+0, z-r, u1, v0); - tessellator.addVertexWithUV(tx, ty, tz, u1, v1); - tessellator.addVertexWithUV(tx, ty, tz, u0, v1); - - tessellator.addVertexWithUV(x-r, y+0, z+r, u1, v0); - tessellator.addVertexWithUV(x+r, y+0, z+r, u0, v0); - tessellator.addVertexWithUV(tx, ty, tz, u1, v1); - tessellator.addVertexWithUV(tx, ty, tz, u0, v1); - - - tessellator.addVertexWithUV(x+r, y+0, z-r, u1, v0); - tessellator.addVertexWithUV(x-r, y+0, z-r, u0, v0); - tessellator.addVertexWithUV(tx, ty, tz, u1, v1); - tessellator.addVertexWithUV(tx, ty, tz, u0, v1); - - tessellator.addVertexWithUV(x-r, y+0, z-r, u1, v0); - tessellator.addVertexWithUV(x-r, y+0, z+r, u0, v0); - tessellator.addVertexWithUV(tx, ty, tz, u1, v1); - tessellator.addVertexWithUV(tx, ty, tz, u0, v1); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { - int meta = world.getBlockMetadata(x, y, z); - - renderer.renderStandardBlock(block, x, y, z); - - Tessellator tessellator=Tessellator.instance; - IIcon icon=ChiselBlocks.blockSpiketrap.iconSpike; -// Icon icon=Chisel.blockSpiketrap.iconBase; - - double h=0.85; - double d=1.5/16; - double r=d/2; - - - double tx=x+0.25; - double ty=y+h; - double tz=z+0.25; - double skew=0.5; - - // tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); - tessellator.addTranslation(0, 1.0f/16, 0); - - Random rand=new Random(); - for(int xx=0;xx<4;xx++){ - for(int yy=0;yy<4;yy++){ -// float sx=1.0f/16+rand.nextFloat()*13.0f/16; -// float sz=1.0f/16+rand.nextFloat()*13.0f/16; - float sx=(2.0f+(12.0f-(float)d)*xx/3)/16; - float sz=(2.0f+(12.0f-(float)d)*yy/3)/16; - - - tessellator.addTranslation(sx, 0, sz); - drawSpike(icon,r,0.5+rand.nextDouble()*0.35,x,y,z,rand.nextDouble()*skew-skew/2,rand.nextDouble()*skew-skew/2); - tessellator.addTranslation(-sx, 0, -sz); - } - } - - tessellator.addTranslation(0, -1.0f/16, 0); - - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int renderId) { - return true; - } - - @Override - public int getRenderId() { - return id; - } -} \ No newline at end of file diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/BlockTexturedOreRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/BlockTexturedOreRenderer.java deleted file mode 100644 index c5e71bab..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/BlockTexturedOreRenderer.java +++ /dev/null @@ -1,77 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import info.jbcs.minecraft.chisel.block.BlockTexturedOre; -import info.jbcs.minecraft.utilities.Drawing; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.init.Blocks; -import net.minecraft.world.IBlockAccess; - -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; - -public class BlockTexturedOreRenderer implements ISimpleBlockRenderingHandler { - float bot=-0.001f,top=1.0f-bot; - public static int id; - - public BlockTexturedOreRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } - - @Override - public void renderInventoryBlock(Block blck, int meta, int modelID, RenderBlocks renderer) { - if (blck == null || !(blck instanceof BlockTexturedOre)) - return; - - BlockTexturedOre block=(BlockTexturedOre) blck; - - if(block.icon!=null){ - renderer.overrideBlockTexture=block.icon; - renderer.renderBlockAsItem(Blocks.stone,meta,1.0f); - renderer.overrideBlockTexture=null; - } else if(block.base!=null){ - renderer.renderBlockAsItem(block.base,meta,1.0f); - } - - GL11.glEnable(3042); - GL11.glBlendFunc(770, 771); - renderer.setRenderBounds(bot, bot, bot, top, top, top); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - Drawing.drawBlock(block, meta, renderer); - GL11.glDisable(3042); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) { - if (blck == null || !(blck instanceof BlockTexturedOre)) - return false; - BlockTexturedOre block=(BlockTexturedOre) blck; - - if(block.currentPass==0){ - if(block.icon!=null){ - renderer.overrideBlockTexture=block.icon; - renderer.renderStandardBlock(block, x, y, z); - renderer.overrideBlockTexture=null; - } else if(block.base!=null){ - renderer.renderBlockByRenderType(block.base, x, y, z); - } - } else{ - renderer.setRenderBounds(bot, bot, bot, top, top, top); - renderer.renderStandardBlock(block, x, y, z); - } - - return true; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return id; - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/CTM.java b/src/main/java/info/jbcs/minecraft/chisel/render/CTM.java deleted file mode 100755 index 8ebf509c..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/CTM.java +++ /dev/null @@ -1,267 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import net.minecraft.block.Block; -import net.minecraft.world.IBlockAccess; - -public class CTM { - static int submaps[][]={ - {16,17,18,19}, - {16, 9,18,13}, - { 8, 9,12,13}, - { 8,17,12,19}, - {16, 9, 6,15}, - { 8,17,14, 7}, - { 2,11, 6,15}, - { 8, 9,14,15}, - {10, 1,14,15}, - {10,11,14, 5}, - { 0,11, 4,15}, - { 0, 1,14,15}, - {}, - {}, - {}, - {}, - {16,17, 6, 7}, - {16, 9, 6, 5}, - { 8, 9, 4, 5}, - { 8,17, 4, 7}, - { 2,11,18,13}, - {10, 3,12,19}, - {10,11,12,13}, - {10, 3,14, 7}, - { 0,11,14,15}, - {10,11, 4,15}, - {10,11, 4, 5}, - {10, 1,14, 5}, - {}, - {}, - {}, - {}, - { 2, 3, 6, 7}, - { 2, 1, 6, 5}, - { 0, 1, 4, 5}, - { 0, 3, 4, 7}, - { 2,11, 6, 5}, - { 8, 9, 4,15}, - { 2, 1, 6,15}, - { 8, 9,14, 5}, - { 0, 1, 4,15}, - { 0, 1,14, 5}, - {10, 1, 4,15}, - { 0,11,14, 5}, - {}, - {}, - {}, - {}, - { 2, 3,18,19}, - { 2, 1,18,13}, - { 0, 1,12,13}, - { 0, 3,12,19}, - {10, 1,12,13}, - { 0, 3,14, 7}, - { 0,11,12,13}, - {10, 3, 4, 7}, - { 0,11, 4, 5}, - {10, 1, 4, 5}, - {10,11,14,15}, - { 0, 1, 4, 5}, - {}, - {}, - {}, - {}, - }; - - public static int[] getSubmapIndices(IBlockAccess world, int x, int y, int z, int side){ - int index=getTexture(world,x,y,z,side); - - return submaps[index]; - } - - public static int getTexture(IBlockAccess world, int x, int y, int z, int side) { - if(world==null) return 0; - - int texture = 0; - Block block = world.getBlock(x, y, z); - int blockMetadata=world.getBlockMetadata(x, y, z); - - boolean b[] = new boolean[6]; - if (side <= 1) { - b[0] = isConnected(world, x - 1, y, z, side, block, blockMetadata); - b[1] = isConnected(world, x + 1, y, z, side, block, blockMetadata); - b[2] = isConnected(world, x, y, z + 1, side, block, blockMetadata); - b[3] = isConnected(world, x, y, z - 1, side, block, blockMetadata); - } else if (side == 2) { - b[0] = isConnected(world, x + 1, y, z, side, block, blockMetadata); - b[1] = isConnected(world, x - 1, y, z, side, block, blockMetadata); - b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); - b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); - } else if (side == 3) { - b[0] = isConnected(world, x - 1, y, z, side, block, blockMetadata); - b[1] = isConnected(world, x + 1, y, z, side, block, blockMetadata); - b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); - b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); - } else if (side == 4) { - b[0] = isConnected(world, x, y, z - 1, side, block, blockMetadata); - b[1] = isConnected(world, x, y, z + 1, side, block, blockMetadata); - b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); - b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); - } else if (side == 5) { - b[0] = isConnected(world, x, y, z + 1, side, block, blockMetadata); - b[1] = isConnected(world, x, y, z - 1, side, block, blockMetadata); - b[2] = isConnected(world, x, y - 1, z, side, block, blockMetadata); - b[3] = isConnected(world, x, y + 1, z, side, block, blockMetadata); - } - if (b[0] & !b[1] & !b[2] & !b[3]) - texture = 3; - else if (!b[0] & b[1] & !b[2] & !b[3]) - texture = 1; - else if (!b[0] & !b[1] & b[2] & !b[3]) - texture = 16; - else if (!b[0] & !b[1] & !b[2] & b[3]) - texture = 48; - else if (b[0] & b[1] & !b[2] & !b[3]) - texture = 2; - else if (!b[0] & !b[1] & b[2] & b[3]) - texture = 32; - else if (b[0] & !b[1] & b[2] & !b[3]) - texture = 19; - else if (b[0] & !b[1] & !b[2] & b[3]) - texture = 51; - else if (!b[0] & b[1] & b[2] & !b[3]) - texture = 17; - else if (!b[0] & b[1] & !b[2] & b[3]) - texture = 49; - else if (!b[0] & b[1] & b[2] & b[3]) - texture = 33; - else if (b[0] & !b[1] & b[2] & b[3]) - texture = 35; - else if (b[0] & b[1] & !b[2] & b[3]) - texture = 50; - else if (b[0] & b[1] & b[2] & !b[3]) - texture = 18; - else if (b[0] & b[1] & b[2] & b[3]) - texture = 34; - - boolean b2[] = new boolean[6]; - if (side <= 1) { - b2[0] = !isConnected(world, x + 1, y, z + 1, side, block, blockMetadata); - b2[1] = !isConnected(world, x - 1, y, z + 1, side, block, blockMetadata); - b2[2] = !isConnected(world, x + 1, y, z - 1, side, block, blockMetadata); - b2[3] = !isConnected(world, x - 1, y, z - 1, side, block, blockMetadata); - } else if (side == 2) { - b2[0] = !isConnected(world, x - 1, y - 1, z, side, block, blockMetadata); - b2[1] = !isConnected(world, x + 1, y - 1, z, side, block, blockMetadata); - b2[2] = !isConnected(world, x - 1, y + 1, z, side, block, blockMetadata); - b2[3] = !isConnected(world, x + 1, y + 1, z, side, block, blockMetadata); - } else if (side == 3) { - b2[0] = !isConnected(world, x + 1, y - 1, z, side, block, blockMetadata); - b2[1] = !isConnected(world, x - 1, y - 1, z, side, block, blockMetadata); - b2[2] = !isConnected(world, x + 1, y + 1, z, side, block, blockMetadata); - b2[3] = !isConnected(world, x - 1, y + 1, z, side, block, blockMetadata); - } else if (side == 4) { - b2[0] = !isConnected(world, x, y - 1, z + 1, side, block, blockMetadata); - b2[1] = !isConnected(world, x, y - 1, z - 1, side, block, blockMetadata); - b2[2] = !isConnected(world, x, y + 1, z + 1, side, block, blockMetadata); - b2[3] = !isConnected(world, x, y + 1, z - 1, side, block, blockMetadata); - } else if (side == 5) { - b2[0] = !isConnected(world, x, y - 1, z - 1, side, block, blockMetadata); - b2[1] = !isConnected(world, x, y - 1, z + 1, side, block, blockMetadata); - b2[2] = !isConnected(world, x, y + 1, z - 1, side, block, blockMetadata); - b2[3] = !isConnected(world, x, y + 1, z + 1, side, block, blockMetadata); - } - - if (texture == 17 && b2[0]) - texture = 4; - if (texture == 19 && b2[1]) - texture = 5; - if (texture == 49 && b2[2]) - texture = 20; - if (texture == 51 && b2[3]) - texture = 21; - - if (texture == 18 && b2[0] && b2[1]) - texture = 7; - if (texture == 33 && b2[0] && b2[2]) - texture = 6; - if (texture == 35 && b2[3] && b2[1]) - texture = 23; - if (texture == 50 && b2[3] && b2[2]) - texture = 22; - - if (texture == 18 && !b2[0] && b2[1]) - texture = 39; - if (texture == 33 && b2[0] && !b2[2]) - texture = 38; - if (texture == 35 && !b2[3] && b2[1]) - texture = 53; - if (texture == 50 && b2[3] && !b2[2]) - texture = 52; - - if (texture == 18 && b2[0] && !b2[1]) - texture = 37; - if (texture == 33 && !b2[0] && b2[2]) - texture = 36; - if (texture == 35 && b2[3] && !b2[1]) - texture = 55; - if (texture == 50 && !b2[3] && b2[2]) - texture = 54; - - - if (texture == 34 && b2[0] && b2[1] && b2[2] && b2[3]) - texture = 58; - - if (texture == 34 && !b2[0] && b2[1] && b2[2] && b2[3]) - texture = 9; - if (texture == 34 && b2[0] && !b2[1] && b2[2] && b2[3]) - texture = 25; - if (texture == 34 && b2[0] && b2[1] && !b2[2] && b2[3]) - texture = 8; - if (texture == 34 && b2[0] && b2[1] && b2[2] && !b2[3]) - texture = 24; - - if (texture == 34 && b2[0] && b2[1] && !b2[2] && !b2[3]) - texture = 11; - if (texture == 34 && !b2[0] && !b2[1] && b2[2] && b2[3]) - texture = 26; - if (texture == 34 && !b2[0] && b2[1] && !b2[2] && b2[3]) - texture = 27; - if (texture == 34 && b2[0] && !b2[1] && b2[2] && !b2[3]) - texture = 10; - - if (texture == 34 && b2[0] && !b2[1] && !b2[2] && b2[3]) - texture = 42; - if (texture == 34 && !b2[0] && b2[1] && b2[2] && !b2[3]) - texture = 43; - - if (texture == 34 && b2[0] && !b2[1] && !b2[2] && !b2[3]) - texture = 40; - if (texture == 34 && !b2[0] && b2[1] && !b2[2] && !b2[3]) - texture = 41; - if (texture == 34 && !b2[0] && !b2[1] && b2[2] && !b2[3]) - texture = 56; - if (texture == 34 && !b2[0] && !b2[1] && !b2[2] && b2[3]) - texture = 57; - return texture; - } - - private static boolean isConnected(IBlockAccess world, int x, int y, int z, int side, Block block, int meta) { - int x2=x,y2=y,z2=z; - - switch(side){ - case 0: y2--; break; - case 1: y2++; break; - case 2: z2--; break; - case 3: z2++; break; - case 4: x2--; break; - case 5: x2++; break; - } - - return - world.getBlock(x, y, z).equals(block) && - world.getBlockMetadata(x, y, z) == meta && - (!world.getBlock(x2, y2, z2).equals(block) || world.getBlockMetadata(x2, y2, z2) != meta) - ; - } - - -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/ItemChiselRenderer.java b/src/main/java/info/jbcs/minecraft/chisel/render/ItemChiselRenderer.java deleted file mode 100755 index 7822f57c..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/ItemChiselRenderer.java +++ /dev/null @@ -1,46 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.RenderHelper; -import net.minecraft.client.renderer.entity.RenderItem; -import net.minecraft.item.ItemStack; -import net.minecraftforge.client.IItemRenderer; - -import org.lwjgl.opengl.GL11; - -public class ItemChiselRenderer implements IItemRenderer { - RenderBlocks renderBlock=new RenderBlocks(); - RenderItem renderItem=new RenderItem(); - - @Override - public boolean handleRenderType(ItemStack item, ItemRenderType type) { - return type == IItemRenderer.ItemRenderType.INVENTORY; - } - - @Override - public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; - } - - @Override - public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { - RenderHelper.enableGUIStandardItemLighting(); - - renderItem.renderItemIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().renderEngine, stack, 0, 0); - - if(stack.stackTagCompound==null) return; - - ItemStack chiselTarget=ItemStack.loadItemStackFromNBT(stack.stackTagCompound.getCompoundTag("chiselTarget")); - if(chiselTarget==null) return; - - GL11.glPushMatrix(); - GL11.glScalef(0.65f,0.65f,0.65f); - GL11.glTranslatef(-8f, -8f, 0.0f); - - renderItem.renderItemIntoGUI(Minecraft.getMinecraft().fontRenderer, Minecraft.getMinecraft().renderEngine, chiselTarget, 8, 8); - - GL11.glPopMatrix(); - } - -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/RenderBlocksCTM.java b/src/main/java/info/jbcs/minecraft/chisel/render/RenderBlocksCTM.java deleted file mode 100755 index a82ac70e..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/RenderBlocksCTM.java +++ /dev/null @@ -1,292 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.util.IIcon; - -public class RenderBlocksCTM extends RenderBlocks { - - RenderBlocksCTM(){ - super(); - - resetVertices(); - } - - Tessellator tessellator; - double[] X=new double[26]; - double[] Y=new double[26]; - double[] Z=new double[26]; - double[] U=new double[26]; - double[] V=new double[26]; - int[] L=new int[26]; - float[] R=new float[26]; - float[] G=new float[26]; - float[] B=new float[26]; - TextureSubmap submap; - TextureSubmap submapSmall; - RenderBlocks rendererOld; - - int bx,by,bz; - - @Override - public boolean renderStandardBlock(Block block, int x, int y, int z){ - bx=x; by=y; bz=z; - - tessellator = Tessellator.instance; - tessellator.setColorOpaque_F(1.0F, 1.0F, 1.0F); - - tessellator.addTranslation(x, y, z); - - boolean res=super.renderStandardBlock(block, x, y, z); - - tessellator.addTranslation(-x, -y, -z); - - return res; - } - - void setupSides(int a,int b,int c,int d,int xa,int xb,int xc,int xd,int e){ - L[a]=brightnessBottomLeft; - L[b]=brightnessBottomRight; - L[c]=brightnessTopRight; - L[d]=brightnessTopLeft; - L[e]=(brightnessBottomLeft+brightnessTopLeft+brightnessTopRight+brightnessBottomRight)/4; - L[xa]=(L[a]+L[b])/2; - L[xb]=(L[b]+L[c])/2; - L[xc]=(L[c]+L[d])/2; - L[xd]=(L[d]+L[a])/2; - - R[a]=colorRedBottomLeft; - R[b]=colorRedBottomRight; - R[c]=colorRedTopRight; - R[d]=colorRedTopLeft; - R[e]=(colorRedBottomLeft+colorRedTopLeft+colorRedTopRight+colorRedBottomRight)/4; - R[xa]=(R[a]+R[b])/2; - R[xb]=(R[b]+R[c])/2; - R[xc]=(R[c]+R[d])/2; - R[xd]=(R[d]+R[a])/2; - - G[a]=colorGreenBottomLeft; - G[b]=colorGreenBottomRight; - G[c]=colorGreenTopRight; - G[d]=colorGreenTopLeft; - G[e]=(colorGreenBottomLeft+colorGreenTopLeft+colorGreenTopRight+colorGreenBottomRight)/4; - G[xa]=(G[a]+G[b])/2; - G[xb]=(G[b]+G[c])/2; - G[xc]=(G[c]+G[d])/2; - G[xd]=(G[d]+G[a])/2; - - B[a]=colorBlueBottomLeft; - B[b]=colorBlueBottomRight; - B[c]=colorBlueTopRight; - B[d]=colorBlueTopLeft; - B[e]=(colorBlueBottomLeft+colorBlueTopLeft+colorBlueTopRight+colorBlueBottomRight)/4; - B[xa]=(B[a]+B[b])/2; - B[xb]=(B[b]+B[c])/2; - B[xc]=(B[c]+B[d])/2; - B[xd]=(B[d]+B[a])/2; - } - - void side(int a,int b,int c,int d,int iconIndex,boolean flip){ - IIcon icon=iconIndex>=16?submapSmall.icons[iconIndex-16]:submap.icons[iconIndex]; - - double u0=icon.getMaxU(); - double u1=icon.getMinU(); - double v0=icon.getMaxV(); - double v1=icon.getMinV(); - - U[a]=flip?u1:u1; - U[b]=flip?u0:u1; - U[c]=flip?u0:u0; - U[d]=flip?u1:u0; - - V[a]=flip?v1:v1; - V[b]=flip?v1:v0; - V[c]=flip?v0:v0; - V[d]=flip?v0:v1; - - vert(a); vert(b); vert(c); vert(d); - } - - void vert(int index){ - if(enableAO){ - tessellator.setColorOpaque_F(R[index], G[index], B[index]); - tessellator.setBrightness(L[index]); - } - - tessellator.addVertexWithUV(X[index], Y[index], Z[index], U[index], V[index]); - } - - @Override - public void renderFaceXNeg(Block block, double x, double y, double z, IIcon icon){ - int tex[]=CTM.getSubmapIndices(blockAccess,bx,by,bz,4); - - setupSides(1, 0, 4, 5, 14, 19, 17, 23, 9); - side(1,14,9,23,tex[0],false); - side(23,9,17,5,tex[1],false); - side(9,19,4,17,tex[3],false); - side(14,0,19,9,tex[2],false); - } - - @Override - public void renderFaceXPos(Block block, double x, double y, double z, IIcon icon){ - int tex[]=CTM.getSubmapIndices(blockAccess,bx,by,bz,5); - - setupSides(3, 2, 6, 7, 15, 25, 16, 21, 11); - side(11,21,3,15,tex[3],false); - side(16,7,21,11,tex[2],false); - side(25,11,15,2,tex[1],false); - side(6,16,11,25,tex[0],false); - } - - @Override - public void renderFaceZNeg(Block block, double x, double y, double z, IIcon icon){ - int tex[]=CTM.getSubmapIndices(blockAccess,bx,by,bz,2); - - setupSides(2, 3, 0, 1, 15, 18, 14, 22, 8); - side(2,15,8,22,tex[0],false); - side(15,3,18,8,tex[2],false); - side(8,18,0,14,tex[3],false); - side(22,8,14,1,tex[1],false); - } - - - @Override - public void renderFaceZPos(Block block, double x, double y, double z, IIcon icon){ - int tex[]=CTM.getSubmapIndices(blockAccess,bx,by,bz,3); - - setupSides(4, 7, 6, 5, 20, 16, 24, 17, 10); - side(17,4,20,10,tex[2],false); - side(5,17,10,24,tex[0],false); - side(24,10,16,6,tex[1],false); - side(10,20,7,16,tex[3],false); - } - - @Override - public void renderFaceYNeg(Block block, double x, double y, double z, IIcon icon){ - int tex[]=CTM.getSubmapIndices(blockAccess,bx,by,bz,0); - - setupSides(0,3,7,4,18,21,20,19,13); - side(13,21,7,20,tex[3],true); - side(19,13,20,4,tex[2],true); - side(0,18,13,19,tex[0],true); - side(18,3,21,13,tex[1],true); - } - - @Override - public void renderFaceYPos(Block block, double x, double y, double z, IIcon icon){ - int tex[]=CTM.getSubmapIndices(blockAccess,bx,by,bz,1); - - setupSides(2,1,5,6,22,23,24,25,12); - side(12,24,6,25,tex[3],false); - side(22,12,25,2,tex[1],false); - side(1,23,12,22,tex[0],false); - side(23,5,24,12,tex[2],false); - } - - void resetVertices(){ - X[ 0]=0; - Z[ 0]=0; - Y[ 0]=0; - - X[ 1]=0; - Z[ 1]=0; - Y[ 1]=1; - - X[ 2]=1; - Z[ 2]=0; - Y[ 2]=1; - - X[ 3]=1; - Z[ 3]=0; - Y[ 3]=0; - - X[ 4]=0; - Z[ 4]=1; - Y[ 4]=0; - - X[ 5]=0; - Z[ 5]=1; - Y[ 5]=1; - - X[ 6]=1; - Z[ 6]=1; - Y[ 6]=1; - - X[ 7]=1; - Z[ 7]=1; - Y[ 7]=0; - - X[ 8]=0.5; - Z[ 8]=0; - Y[ 8]=0.5; - - X[ 9]=0; - Z[ 9]=0.5; - Y[ 9]=0.5; - - X[10]=0.5; - Z[10]=1; - Y[10]=0.5; - - X[11]=1; - Z[11]=0.5; - Y[11]=0.5; - - X[12]=0.5; - Z[12]=0.5; - Y[12]=1; - - X[13]=0.5; - Z[13]=0.5; - Y[13]=0; - - X[14]=0; - Z[14]=0; - Y[14]=0.5; - - X[15]=1; - Z[15]=0; - Y[15]=0.5; - - X[16]=1; - Z[16]=1; - Y[16]=0.5; - - X[17]=0; - Z[17]=1; - Y[17]=0.5; - - X[18]=0.5; - Z[18]=0; - Y[18]=0; - - X[19]=0; - Z[19]=0.5; - Y[19]=0; - - X[20]=0.5; - Z[20]=1; - Y[20]=0; - - X[21]=1; - Z[21]=0.5; - Y[21]=0; - - X[22]=0.5; - Z[22]=0; - Y[22]=1; - - X[23]=0; - Z[23]=0.5; - Y[23]=1; - - X[24]=0.5; - Z[24]=1; - Y[24]=1; - - X[25]=1; - Z[25]=0.5; - Y[25]=1; - } -} diff --git a/src/main/java/info/jbcs/minecraft/chisel/render/RenderBlocksCTMCarpet.java b/src/main/java/info/jbcs/minecraft/chisel/render/RenderBlocksCTMCarpet.java deleted file mode 100755 index 952f7ba2..00000000 --- a/src/main/java/info/jbcs/minecraft/chisel/render/RenderBlocksCTMCarpet.java +++ /dev/null @@ -1,41 +0,0 @@ -package info.jbcs.minecraft.chisel.render; - -import net.minecraft.block.Block; -import net.minecraft.util.IIcon; - -public class RenderBlocksCTMCarpet extends RenderBlocksCTM { - RenderBlocksCTMCarpet(){ - super(); - } - - @Override - void resetVertices(){ - super.resetVertices(); - - for(int i=0;i children = null; - - public GuiElement(int x, int y, int w, int h) { - this.x = x; - this.y = y; - this.w = w; - this.h = h; - } - - public GuiElement addChild(GuiElement e) { - if (children == null) { - children = new ArrayList(); - } - - if (e.parent != null) { - e.parent.removeChild(e); - } - - children.add(e); - e.x += x; - e.y += y; - e.parent = this; - e.gui = gui; - return e; - } - - public GuiElement removeChild(GuiElement e) { - if (children == null) { - return e; - } - - children.remove(e); - e.x -= x; - e.y -= y; - e.parent = null; - e.gui = null; - return e; - } - - public void onAdded() { - if (children == null) { - return; - } - - for (GuiElement e : children) { - if (e.parent != e.addedParent) { - e.onAdded(); - } - - e.addedParent = e.parent; - } - } - - boolean isMouseOver(InputMouseEvent ev) { - return ev.x >= x && ev.x < x + w && ev.y >= y && ev.y < y + h; - } - - public void mouseDown(InputMouseEvent ev) { - if (children == null) { - return; - } - - for (GuiElement e : children) { - e.mouseDown(ev); - - if (ev.handled) { - return; - } - } - } - - public void mouseUp(InputMouseEvent ev) { - if (children == null) { - return; - } - - for (GuiElement e : children) { - e.mouseUp(ev); - - if (ev.handled) { - return; - } - } - } - - public void mouseMove(InputMouseEvent ev) { - if (children == null) { - return; - } - - for (GuiElement e : children) { - e.mouseMove(ev); - - if (ev.handled) { - return; - } - } - } - - public void mouseWheel(InputMouseEvent ev) { - if (children == null) { - return; - } - - for (GuiElement e : children) { - e.mouseWheel(ev); - - if (ev.handled) { - return; - } - } - } - - public void render() { - if (children == null) { - return; - } - - for (GuiElement e : children) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - e.render(); - } - } - - public void keyPressed(InputKeyboardEvent ev) { - if (children == null) { - return; - } - - for (GuiElement e : children) { - e.keyPressed(ev); - - if (ev.handled) { - return; - } - } - } -} diff --git a/src/main/java/info/jbcs/minecraft/gui/GuiExButton.java b/src/main/java/info/jbcs/minecraft/gui/GuiExButton.java deleted file mode 100644 index 0a7f0309..00000000 --- a/src/main/java/info/jbcs/minecraft/gui/GuiExButton.java +++ /dev/null @@ -1,73 +0,0 @@ -package info.jbcs.minecraft.gui; - -public class GuiExButton extends GuiElement { - protected String caption; - - int u, v, texw, texh; - int borderTop, borderRight, borderBottom, borderLeft; - - boolean over; - public boolean disabled; - - public TexturedBox boxDisabled; - public TexturedBox boxNormal; - public TexturedBox boxOver; - - public GuiExButton(int x, int y, int w, int h, String caption) { - this(x, y, w, h, caption, "textures/gui/widgets.png"); - } - - public GuiExButton(int x, int y, int w, int h, String caption,String texture) { - super(x, y, w, h); - this.caption = caption; - disabled = false; - u = 0; - v = 46; - texw = 200; - texh = 20; - borderTop = 2; - borderRight = 2; - borderBottom = 3; - borderLeft = 2; - - boxDisabled = new TexturedBox(texture, 0, 46, 200, 20, 2, 2, 3, 2); - boxNormal = new TexturedBox(texture, 0, 66, 200, 20, 2, 2, 3, 2); - boxOver = new TexturedBox(texture, 0, 86, 200, 20, 2, 2, 3, 2); - - } - - public void onClick() { - } - - @Override - public void render() { - int color = 0xffe0e0e0; - TexturedBox box = boxDisabled; - - if (!disabled && !over) { - box = boxNormal; - color = 0xffffffff; - } else if (!disabled && over) { - box = boxOver; - color = 0xffffff70; - } - - box.render(gui, x, y, w, h); - gui.drawCenteredStringWithShadow(caption, x + w / 2, y + h / 2, color); - } - - @Override - public void mouseMove(InputMouseEvent ev) { - over = isMouseOver(ev); - } - - @Override - public void mouseDown(InputMouseEvent ev) { - if (!isMouseOver(ev)) { - return; - } - - gui.playSound("random.click", 1.0f, 1.0f); - onClick(); - } -} diff --git a/src/main/java/info/jbcs/minecraft/gui/GuiLabel.java b/src/main/java/info/jbcs/minecraft/gui/GuiLabel.java deleted file mode 100644 index ce4c4ad5..00000000 --- a/src/main/java/info/jbcs/minecraft/gui/GuiLabel.java +++ /dev/null @@ -1,19 +0,0 @@ -package info.jbcs.minecraft.gui; - -public class GuiLabel extends GuiElement { - String caption; - - public GuiLabel(int x, int y, int w, int h, String caption) { - super(x, y, w, h); - this.caption = caption; - } - - public GuiLabel(int x, int y, String string) { - this(x, y, 0, 0, string); - } - - @Override - public void render() { - gui.drawString(caption, x, y, 0x404040); - } -} diff --git a/src/main/java/info/jbcs/minecraft/gui/GuiScreenPlus.java b/src/main/java/info/jbcs/minecraft/gui/GuiScreenPlus.java deleted file mode 100644 index ef81f37a..00000000 --- a/src/main/java/info/jbcs/minecraft/gui/GuiScreenPlus.java +++ /dev/null @@ -1,233 +0,0 @@ -package info.jbcs.minecraft.gui; - -import info.jbcs.minecraft.utilities.DummyContainer; -import info.jbcs.minecraft.utilities.GeneralClient; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.inventory.Container; - -import org.lwjgl.input.Keyboard; -import org.lwjgl.input.Mouse; -import org.lwjgl.opengl.GL11; - -public class GuiScreenPlus extends GuiContainer { - public int screenW; - public int screenH; - public int screenX; - public int screenY; - - public GuiElement root; - - String backgroundTexture; - - public GuiScreenPlus(Container container, int w, int h, String backgroundTexture) { - super(container); - root = new GuiElement(0, 0, w, h); - root.gui = this; - this.screenW = w; - this.screenH = h; - this.backgroundTexture = backgroundTexture; - } - - public GuiScreenPlus(int w, int h, String backgroundTexture) { - this(new DummyContainer(), w, h, backgroundTexture); - } - - @Override - public void initGui() { - xSize = screenW; - ySize = screenH; - super.initGui(); - screenX = guiLeft; - screenY = guiTop; - root.onAdded(); - - Keyboard.enableRepeatEvents(true); - } - - - @Override - public void handleInput() { - while (Mouse.next()) { - this.handleMouseInput(); - } - - while (Keyboard.next()) { - this.handleKeyboardInput(); - } - } - - InputMouseEvent mouseEvent = new InputMouseEvent(); - int oldX = -1; - int oldY = -1; - - boolean[] downButtons = new boolean[12]; - - @Override - public void handleMouseInput() { - mouseEvent.handled = false; - mouseEvent.x = Mouse.getEventX() * width / mc.displayWidth - this.screenX; - mouseEvent.y = height - Mouse.getEventY() * height / mc.displayHeight - 1 - this.screenY; - - if (oldX == -1) { - oldX = mouseEvent.x; - oldY = mouseEvent.y; - } - - mouseEvent.dx = mouseEvent.x - oldX; - mouseEvent.dy = mouseEvent.y - oldY; - oldX = mouseEvent.x; - oldY = mouseEvent.y; - mouseEvent.down = Mouse.getEventButtonState(); - mouseEvent.button = Mouse.getEventButton(); - mouseEvent.wheel = Mouse.getEventDWheel(); - - if (mouseEvent.wheel != 0) { - if (mouseEvent.wheel < 0) { - mouseEvent.wheel = -1; - } else { - mouseEvent.wheel = 1; - } - - root.mouseWheel(mouseEvent); - } else if (mouseEvent.button >= 0 && mouseEvent.button < downButtons.length) { - if (downButtons[mouseEvent.button] != mouseEvent.down) { - downButtons[mouseEvent.button] = mouseEvent.down; - - if (mouseEvent.down) { - root.mouseDown(mouseEvent); - } else { - root.mouseUp(mouseEvent); - } - } else if (mouseEvent.dx != 0 || mouseEvent.dy != 0) { - root.mouseMove(mouseEvent); - } - } else if (mouseEvent.dx != 0 || mouseEvent.dy != 0) { - root.mouseMove(mouseEvent); - } - - if (!mouseEvent.handled) { - super.handleMouseInput(); - } - } - - InputKeyboardEvent keyboardEvent = new InputKeyboardEvent(); - - @Override - public void handleKeyboardInput() { - keyboardEvent.handled = false; - - if (Keyboard.getEventKeyState()) { - keyboardEvent.key = Keyboard.getEventKey(); - keyboardEvent.character = Keyboard.getEventCharacter(); - - switch (keyboardEvent.key) { - case 1: - break; - - default: - root.keyPressed(keyboardEvent); - } - } - - if (!keyboardEvent.handled) { - super.handleKeyboardInput(); - } - } - - public void close() { - mc.displayGuiScreen((GuiScreen) null); - mc.setIngameFocus(); - } - - protected void addChild(GuiElement e) { - root.addChild(e); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float f, int bx, int by) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - GeneralClient.bind(backgroundTexture); - drawTexturedModalRect(screenX, screenY, 0, 0, screenW, screenH); - } - - @Override - protected void drawGuiContainerForegroundLayer(int fx, int fy) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - root.render(); - } - - public void drawString(String text, int sx, int sy, int color) { - fontRendererObj.drawString(text, sx, sy, color); - } - - public void drawCenteredString(String text, int sx, int sy, int color) { - fontRendererObj.drawString(text, sx - fontRendererObj.getStringWidth(text) / 2, sy - fontRendererObj.FONT_HEIGHT / 2, color); - } - - public void drawStringWithShadow(String text, int sx, int sy, int color) { - fontRendererObj.drawStringWithShadow(text, sx, sy, color); - } - - public void drawCenteredStringWithShadow(String text, int sx, int sy, int color) { - fontRendererObj.drawStringWithShadow(text, sx - fontRendererObj.getStringWidth(text) / 2, sy - fontRendererObj.FONT_HEIGHT / 2, color); - } - - public FontRenderer fontRendererObj() { - return this.fontRendererObj; - } - - protected void drawRect(int gx, int gy, int gw, int gh, int c1, int c2) { - drawGradientRect(gx, gy, gx + gw, gy + gh, c1, c2); - } - - public void drawTiledRect(int rx, int ry, int rw, int rh, int u, int v, int tw, int th) { - if(rw==0 || rh==0 || tw==0 || th==0) return; - - float pixel = 0.00390625f; - Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); - - for (int y = 0; y < rh; y += th) { - for (int x = 0; x < rw; x += tw) { - int qw = tw; - - if (x + qw > rw) { - qw = rw - x; - } - - int qh = th; - - if (y + qh > rh) { - qh = rh - y; - } - - double x1 = rx + x; - double x2 = rx + x + qw; - double y1 = ry + y; - double y2 = ry + y + qh; - double u1 = pixel * (u); - double u2 = pixel * (u + tw); - double v1 = pixel * (v); - double v2 = pixel * (v + th); - tessellator.addVertexWithUV(x1, y2, this.zLevel, u1, v2); - tessellator.addVertexWithUV(x2, y2, this.zLevel, u2, v2); - tessellator.addVertexWithUV(x2, y1, this.zLevel, u2, v1); - tessellator.addVertexWithUV(x1, y1, this.zLevel, u1, v1); - } - } - - tessellator.draw(); - } - - public void bindTexture(String tex) { - GeneralClient.bind(tex); - } - - public void playSound(String sound, float volume, float pitch) { - // TODO - //mc.getSoundHandler().playSoundFX(null, 1.0F, 1.0F); - } -} diff --git a/src/main/java/info/jbcs/minecraft/gui/GuilScrolledBox.java b/src/main/java/info/jbcs/minecraft/gui/GuilScrolledBox.java deleted file mode 100644 index 1951973a..00000000 --- a/src/main/java/info/jbcs/minecraft/gui/GuilScrolledBox.java +++ /dev/null @@ -1,112 +0,0 @@ -package info.jbcs.minecraft.gui; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.renderer.Tessellator; - -import org.lwjgl.opengl.GL11; - -public class GuilScrolledBox extends GuiElement { - public int offset=0; - int contentHeight=0; - int scrollingStart=-1; - - public GuilScrolledBox(int x, int y, int w, int h) { - super(x, y, w, h); - } - - int x0,x1; - - protected void overlayBackground(int start, int end, int color, int a1, int a2){ - Tessellator tessellator = Tessellator.instance; - - float f = 32.0F; - - tessellator.startDrawingQuads(); - tessellator.setColorRGBA_I(color, a2); - tessellator.addVertexWithUV(x0, end, 0.0D, 0.0D, end / f); - tessellator.addVertexWithUV(x1, end, 0.0D, gui.width / f, end / f); - tessellator.setColorRGBA_I(color, a1); - tessellator.addVertexWithUV(x1, start, 0.0D, gui.width / f, start / f); - tessellator.addVertexWithUV(x0, start, 0.0D, 0.0D, start / f); - tessellator.draw(); - } - - - @Override - public GuiElement addChild(GuiElement e) { - int childBottom=e.y+e.h-18; - if(childBottom>contentHeight) - contentHeight=childBottom; - - return super.addChild(e); - } - - - @Override - public void render() { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(Gui.optionsBackground); - x0=-gui.screenX; x1=-gui.screenX+gui.width; - - overlayBackground(y, h, 0x202020, 0xff, 0xff); - - GL11.glPushMatrix(); - GL11.glTranslatef(0.0f,offset,0.0f); - super.render(); - GL11.glPopMatrix(); - - GL11.glEnable(GL11.GL_BLEND); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - GL11.glDisable(GL11.GL_ALPHA_TEST); - GL11.glShadeModel(GL11.GL_SMOOTH); - GL11.glDisable(GL11.GL_TEXTURE_2D); - overlayBackground(y, y+8, 0x000000, 0xff, 0x00); - overlayBackground(h-8, h, 0x000000, 0x00, 0xff); - GL11.glEnable(GL11.GL_TEXTURE_2D); - GL11.glShadeModel(GL11.GL_FLAT); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glDisable(GL11.GL_BLEND); - - Minecraft.getMinecraft().getTextureManager().bindTexture(Gui.optionsBackground); - overlayBackground(-gui.screenY, y, 0x404040, 0xff, 0xff); - overlayBackground(h, -gui.screenY+gui.height, 0x404040, 0xff, 0xff); - } - - @Override - public void mouseMove(InputMouseEvent ev) { - if(scrollingStart!=-1){ - offset=ev.y-scrollingStart; - if(offset>contentHeight) offset=contentHeight; - if(offset<-contentHeight) offset=-contentHeight; - } - - ev.y-=offset; - super.mouseMove(ev); - ev.y+=offset; - } - - @Override - public void mouseDown(InputMouseEvent ev) { - scrollingStart=ev.y-offset; - - if(ev.y>=y && ev.y=y && ev.y= xPosition + width) { - return false; - } - - if (y < yPosition || y >= yPosition + height) { - return false; - } - - if (active) { - dragged = true; - } - - return true; - } - - /** - * Draws this button to the screen. - */ - @Override - public void drawButton(Minecraft mc, int x, int y) { - if (dragged) { - float initialOffset = offset; - int off = y - yPosition - elementHeight / 2; - offset = 1.0f * off / (height - elementHeight); - - if (offset < 0) { - offset = 0; - } - - if (offset > 1) { - offset = 1; - } - - if (initialOffset != offset) { - onScrolled(offset); - } - } - - int bottom = yPosition + height; - GeneralClient.bind("/gui/allitems.png"); - drawTexturedModalRect(xPosition, yPosition + (int) ((height - elementHeight) * offset), active ? 232 : 244, 0, 12, elementHeight); - } - - public void handleMouseInput() { - if (Mouse.getEventButton() == 0 && !Mouse.getEventButtonState()) { - dragged = false; - } - - if (!active) { - return; - } - - float initialOffset = offset; - int direction = Mouse.getEventDWheel(); - - if (direction != 0) { - offset += direction > 0 ? -step : step; - } - - if (offset < 0) { - offset = 0; - } - - if (offset > 1) { - offset = 1; - } - - if (initialOffset != offset) { - onScrolled(offset); - } - } - - public abstract void onScrolled(float off); -} diff --git a/src/main/java/info/jbcs/minecraft/gui/TexturedBox.java b/src/main/java/info/jbcs/minecraft/gui/TexturedBox.java deleted file mode 100644 index 8acbacc6..00000000 --- a/src/main/java/info/jbcs/minecraft/gui/TexturedBox.java +++ /dev/null @@ -1,68 +0,0 @@ -package info.jbcs.minecraft.gui; - -public class TexturedBox { - String texture; - int u, v, texw, texh; - int borderTop, borderRight, borderBottom, borderLeft; - - public TexturedBox(String texture, int u, int v, int texw, int texh, int borderTop, int borderRight, int borderBottom, int borderLeft) { - this.texture = texture; - this.u = u; - this.v = v; - this.texw = texw; - this.texh = texh; - this.borderTop = borderTop; - this.borderRight = borderRight; - this.borderBottom = borderBottom; - this.borderLeft = borderLeft; - } - - public void render(GuiScreenPlus gui, int x, int y, int w, int h) { - int x1 = x; - int x2 = x + borderLeft; - int x3 = x + w - borderRight; - int y1 = y; - int y2 = y + borderTop; - int y3 = y + h - borderBottom; - int w1 = borderLeft; - int w2 = w - borderLeft - borderRight; - int w3 = borderRight; - int h1 = borderTop; - int h2 = h - borderTop - borderBottom; - int h3 = borderBottom; - int u1 = u; - int v1 = v; - int tw = texw; - - if (tw > w) { - tw = w; - } - - int th = texh; - - if (th > h) { - th = h; - } - - int u2 = u1 + borderLeft; - int u3 = u1 + texw - borderRight; - int v2 = v1 + borderTop; - int v3 = v1 + texh - borderBottom; - int texw1 = borderLeft; - int texw2 = tw - borderLeft - borderRight; - int texw3 = borderRight; - int texh1 = borderTop; - int texh2 = th - borderTop - borderBottom; - int texh3 = borderBottom; - gui.bindTexture(texture); - gui.drawTexturedModalRect(x1, y1, u1, v1, w1, h1); - gui.drawTiledRect(x2, y1, w2, h1, u2, v1, texw2, texh1); - gui.drawTexturedModalRect(x3, y1, u3, v1, w3, h1); - gui.drawTiledRect(x1, y2, w1, h2, u1, v2, w1, texh2); - gui.drawTiledRect(x2, y2, w2, h2, u2, v2, texw2, texh2); - gui.drawTiledRect(x3, y2, w3, h2, u3, v2, w3, texh2); - gui.drawTexturedModalRect(x1, y3, u1, v3, w1, h3); - gui.drawTiledRect(x2, y3, w2, h3, u2, v3, texw2, texh3); - gui.drawTexturedModalRect(x3, y3, u3, v3, w3, h3); - } -} diff --git a/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOre.java b/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOre.java index 6fdeefbf..ca782c03 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOre.java +++ b/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOre.java @@ -5,50 +5,58 @@ import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; -public class BlockTexturedOre extends Block { - int currentPass; - Block base; - IIcon icon; - String iconFile; +public class BlockTexturedOre extends Block +{ + int currentPass; + Block base; + IIcon icon; + String iconFile; - public BlockTexturedOre(Material mat, Block base) { - super(mat); + public BlockTexturedOre(Material mat, Block base) + { + super(mat); - this.base = base; - } + this.base = base; + } - public BlockTexturedOre(Material mat, String iconFile) { - super(mat); + public BlockTexturedOre(Material mat, String iconFile) + { + super(mat); - this.iconFile=iconFile; - } + this.iconFile = iconFile; + } - @Override - public boolean renderAsNormalBlock() { - return false; - } + @Override + public boolean renderAsNormalBlock() + { + return false; + } - @Override - public int getRenderType() { - return BlockTexturedOreRenderer.id; - } + @Override + public int getRenderType() + { + return BlockTexturedOreRenderer.id; + } - @Override - public int getRenderBlockPass() { - return 1; - } + @Override + public int getRenderBlockPass() + { + return 1; + } - @Override - public boolean canRenderInPass(int pass) { - currentPass = pass; + @Override + public boolean canRenderInPass(int pass) + { + currentPass = pass; - return pass == 1 || pass == 0; - } - - @Override - public void registerBlockIcons(IIconRegister register) { - if(iconFile!=null) - icon=register.registerIcon(iconFile); - } + return pass == 1 || pass == 0; + } + + @Override + public void registerBlockIcons(IIconRegister register) + { + if(iconFile != null) + icon = register.registerIcon(iconFile); + } } diff --git a/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOreRenderer.java b/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOreRenderer.java index 11a32ece..7431b3f6 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOreRenderer.java +++ b/src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOreRenderer.java @@ -10,66 +10,78 @@ import org.lwjgl.opengl.GL11; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; -public class BlockTexturedOreRenderer implements ISimpleBlockRenderingHandler { - float bot=-0.001f,top=1.0f-bot; - static int id; +public class BlockTexturedOreRenderer implements ISimpleBlockRenderingHandler +{ + float bot = -0.001f, top = 1.0f - bot; + static int id; - public BlockTexturedOreRenderer() { - id = RenderingRegistry.getNextAvailableRenderId(); - } + public BlockTexturedOreRenderer() + { + id = RenderingRegistry.getNextAvailableRenderId(); + } - @Override - public void renderInventoryBlock(Block blck, int meta, int modelID, RenderBlocks renderer) { - if (blck == null || !(blck instanceof BlockTexturedOre)) - return; - - BlockTexturedOre block=(BlockTexturedOre) blck; - - if(block.icon!=null){ - renderer.overrideBlockTexture=block.icon; - renderer.renderBlockAsItem(Blocks.stone,meta,1.0f); - renderer.overrideBlockTexture=null; - } else if(block.base!=null){ - renderer.renderBlockAsItem(block.base,meta,1.0f); - } - - GL11.glEnable(3042); - GL11.glBlendFunc(770, 771); - renderer.setRenderBounds(bot, bot, bot, top, top, top); - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - Drawing.drawBlock(block, meta, renderer); - GL11.glDisable(3042); - } + @Override + public void renderInventoryBlock(Block blck, int meta, int modelID, RenderBlocks renderer) + { + if(blck == null || !(blck instanceof BlockTexturedOre)) + return; - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) { - if (blck == null || !(blck instanceof BlockTexturedOre)) - return false; - BlockTexturedOre block=(BlockTexturedOre) blck; - - if(block.currentPass==0){ - if(block.icon!=null){ - renderer.overrideBlockTexture=block.icon; - renderer.renderStandardBlock(block, x, y, z); - renderer.overrideBlockTexture=null; - } else if(block.base!=null){ - renderer.renderBlockByRenderType(block.base, x, y, z); - } - } else{ - renderer.setRenderBounds(bot, bot, bot, top, top, top); - renderer.renderStandardBlock(block, x, y, z); - } + BlockTexturedOre block = (BlockTexturedOre) blck; - return true; - } + if(block.icon != null) + { + renderer.overrideBlockTexture = block.icon; + renderer.renderBlockAsItem(Blocks.stone, meta, 1.0f); + renderer.overrideBlockTexture = null; + } else if(block.base != null) + { + renderer.renderBlockAsItem(block.base, meta, 1.0f); + } - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } + GL11.glEnable(3042); + GL11.glBlendFunc(770, 771); + renderer.setRenderBounds(bot, bot, bot, top, top, top); + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + Drawing.drawBlock(block, meta, renderer); + GL11.glDisable(3042); + } - @Override - public int getRenderId() { - return id; - } + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block blck, int modelId, RenderBlocks renderer) + { + if(blck == null || !(blck instanceof BlockTexturedOre)) + return false; + BlockTexturedOre block = (BlockTexturedOre) blck; + + if(block.currentPass == 0) + { + if(block.icon != null) + { + renderer.overrideBlockTexture = block.icon; + renderer.renderStandardBlock(block, x, y, z); + renderer.overrideBlockTexture = null; + } else if(block.base != null) + { + renderer.renderBlockByRenderType(block.base, x, y, z); + } + } else + { + renderer.setRenderBounds(bot, bot, bot, top, top, top); + renderer.renderStandardBlock(block, x, y, z); + } + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) + { + return true; + } + + @Override + public int getRenderId() + { + return id; + } } diff --git a/src/main/java/info/jbcs/minecraft/utilities/Drawing.java b/src/main/java/info/jbcs/minecraft/utilities/Drawing.java index 7710e491..5c36230c 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/Drawing.java +++ b/src/main/java/info/jbcs/minecraft/utilities/Drawing.java @@ -5,62 +5,65 @@ import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; -public class Drawing { - public static void drawBlock(Block block,IIcon icon, RenderBlocks renderer){ - Tessellator tessellator = Tessellator.instance; +public class Drawing +{ + public static void drawBlock(Block block, IIcon icon, RenderBlocks renderer) + { + Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, -1.0F, 0.0F); renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, icon); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 1.0F, 0.0F); renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, icon); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 0.0F, -1.0F); renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, icon); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 0.0F, 1.0F); renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, icon); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(-1.0F, 0.0F, 0.0F); renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, icon); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(1.0F, 0.0F, 0.0F); renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, icon); tessellator.draw(); - } + } - public static void drawBlock(Block block,int meta, RenderBlocks renderer){ - Tessellator tessellator = Tessellator.instance; + public static void drawBlock(Block block, int meta, RenderBlocks renderer) + { + Tessellator tessellator = Tessellator.instance; - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, -1.0F, 0.0F); renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta)); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 1.0F, 0.0F); renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta)); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 0.0F, -1.0F); renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta)); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(0.0F, 0.0F, 1.0F); renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta)); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(-1.0F, 0.0F, 0.0F); renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(4, meta)); tessellator.draw(); - tessellator.startDrawingQuads(); + tessellator.startDrawingQuads(); tessellator.setNormal(1.0F, 0.0F, 0.0F); renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta)); tessellator.draw(); - } + } } diff --git a/src/main/java/info/jbcs/minecraft/utilities/DummyContainer.java b/src/main/java/info/jbcs/minecraft/utilities/DummyContainer.java index 50393ed0..90140190 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/DummyContainer.java +++ b/src/main/java/info/jbcs/minecraft/utilities/DummyContainer.java @@ -3,9 +3,11 @@ package info.jbcs.minecraft.utilities; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; -public class DummyContainer extends Container { - @Override - public boolean canInteractWith(EntityPlayer entityplayer) { - return true; - } +public class DummyContainer extends Container +{ + @Override + public boolean canInteractWith(EntityPlayer entityplayer) + { + return true; + } } diff --git a/src/main/java/info/jbcs/minecraft/utilities/General.java b/src/main/java/info/jbcs/minecraft/utilities/General.java index a03c9889..866b1be1 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/General.java +++ b/src/main/java/info/jbcs/minecraft/utilities/General.java @@ -14,78 +14,88 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.Vec3; import net.minecraft.world.World; -public class General { - public static Random rand = new Random(); +public class General +{ + public static Random rand = new Random(); - public static void propelTowards(Entity what, Entity whereTo, double force) { - double dx = whereTo.posX - what.posX; - double dy = whereTo.posY - what.posY; - double dz = whereTo.posZ - what.posZ; - double total = Math.sqrt(dx * dx + dy * dy + dz * dz); + public static void propelTowards(Entity what, Entity whereTo, double force) + { + double dx = whereTo.posX - what.posX; + double dy = whereTo.posY - what.posY; + double dz = whereTo.posZ - what.posZ; + double total = Math.sqrt(dx * dx + dy * dy + dz * dz); - if (total == 0) { - what.motionX = 0; - what.motionY = 0; - what.motionZ = 0; - } else { - what.motionX = dx / total * force; - what.motionY = dy / total * force; - what.motionZ = dz / total * force; - } - } - - public static boolean isInRange(double distance, double x1, double y1, double z1, double x2, double y2, double z2) { - double x = x1 - x2; - double y = y1 - y2; - double z = z1 - z2; + if(total == 0) + { + what.motionX = 0; + what.motionY = 0; + what.motionZ = 0; + } else + { + what.motionX = dx / total * force; + what.motionY = dy / total * force; + what.motionZ = dz / total * force; + } + } - return x * x + y * y + z * z < distance * distance; - } + public static boolean isInRange(double distance, double x1, double y1, double z1, double x2, double y2, double z2) + { + double x = x1 - x2; + double y = y1 - y2; + double z = z1 - z2; - public static Item getItem(ItemStack stack) { - if (stack == null) - return null; - if (stack.getItem() == null) - return null; + return x * x + y * y + z * z < distance * distance; + } - return stack.getItem(); - } + public static Item getItem(ItemStack stack) + { + if(stack == null) + return null; + if(stack.getItem() == null) + return null; - public static String getUnlocalizedName(Block block) { - String name=block.getUnlocalizedName(); - if(name.startsWith("tile.")) name=name.substring(5); - - return name; - } - - public static String getName(Block block){ - String res=block.getUnlocalizedName(); - return res.substring(5); - } - + return stack.getItem(); + } - public static MovingObjectPosition getMovingObjectPositionFromPlayer(World par1World, EntityPlayer par2EntityPlayer, boolean par3) { - float var4 = 1.0F; - float var5 = par2EntityPlayer.prevRotationPitch + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * var4; - float var6 = par2EntityPlayer.prevRotationYaw + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * var4; - double var7 = par2EntityPlayer.prevPosX + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * var4; - double var9 = par2EntityPlayer.prevPosY + (par2EntityPlayer.posY - par2EntityPlayer.prevPosY) * var4 + 1.62D - par2EntityPlayer.yOffset; - double var11 = par2EntityPlayer.prevPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * var4; - Vec3 var13 = par1World.getWorldVec3Pool().getVecFromPool(var7, var9, var11); - float var14 = MathHelper.cos(-var6 * 0.017453292F - (float) Math.PI); - float var15 = MathHelper.sin(-var6 * 0.017453292F - (float) Math.PI); - float var16 = -MathHelper.cos(-var5 * 0.017453292F); - float var17 = MathHelper.sin(-var5 * 0.017453292F); - float var18 = var15 * var16; - float var20 = var14 * var16; - double var21 = 5.0D; + public static String getUnlocalizedName(Block block) + { + String name = block.getUnlocalizedName(); + if(name.startsWith("tile.")) name = name.substring(5); - if (par2EntityPlayer instanceof EntityPlayerMP) { - var21 = ((EntityPlayerMP) par2EntityPlayer).theItemInWorldManager.getBlockReachDistance(); - } + return name; + } - Vec3 var23 = var13.addVector(var18 * var21, var17 * var21, var20 * var21); - return par1World.rayTraceBlocks(var13, var23, par3); - } + public static String getName(Block block) + { + String res = block.getUnlocalizedName(); + return res.substring(5); + } + + + public static MovingObjectPosition getMovingObjectPositionFromPlayer(World par1World, EntityPlayer par2EntityPlayer, boolean par3) + { + float var4 = 1.0F; + float var5 = par2EntityPlayer.prevRotationPitch + (par2EntityPlayer.rotationPitch - par2EntityPlayer.prevRotationPitch) * var4; + float var6 = par2EntityPlayer.prevRotationYaw + (par2EntityPlayer.rotationYaw - par2EntityPlayer.prevRotationYaw) * var4; + double var7 = par2EntityPlayer.prevPosX + (par2EntityPlayer.posX - par2EntityPlayer.prevPosX) * var4; + double var9 = par2EntityPlayer.prevPosY + (par2EntityPlayer.posY - par2EntityPlayer.prevPosY) * var4 + 1.62D - par2EntityPlayer.yOffset; + double var11 = par2EntityPlayer.prevPosZ + (par2EntityPlayer.posZ - par2EntityPlayer.prevPosZ) * var4; + Vec3 var13 = par1World.getWorldVec3Pool().getVecFromPool(var7, var9, var11); + float var14 = MathHelper.cos(-var6 * 0.017453292F - (float) Math.PI); + float var15 = MathHelper.sin(-var6 * 0.017453292F - (float) Math.PI); + float var16 = -MathHelper.cos(-var5 * 0.017453292F); + float var17 = MathHelper.sin(-var5 * 0.017453292F); + float var18 = var15 * var16; + float var20 = var14 * var16; + double var21 = 5.0D; + + if(par2EntityPlayer instanceof EntityPlayerMP) + { + var21 = ((EntityPlayerMP) par2EntityPlayer).theItemInWorldManager.getBlockReachDistance(); + } + + Vec3 var23 = var13.addVector(var18 * var21, var17 * var21, var20 * var21); + return par1World.rayTraceBlocks(var13, var23, par3); + } } diff --git a/src/main/java/info/jbcs/minecraft/utilities/GeneralClient.java b/src/main/java/info/jbcs/minecraft/utilities/GeneralClient.java index 5f1469c3..5c66fd6c 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/GeneralClient.java +++ b/src/main/java/info/jbcs/minecraft/utilities/GeneralClient.java @@ -9,27 +9,33 @@ import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -public class GeneralClient { - public static Random rand = new Random(); +public class GeneralClient +{ + public static Random rand = new Random(); - public static void playChiselSound(World world, int x, int y, int z, String sound) { - Minecraft.getMinecraft().theWorld.playSound(x + 0.5, y + 0.5, z + 0.5, sound, 0.3f + 0.7f * rand.nextFloat(), 0.6f + 0.4f * rand.nextFloat(), true); - } + public static void playChiselSound(World world, int x, int y, int z, String sound) + { + Minecraft.getMinecraft().theWorld.playSound(x + 0.5, y + 0.5, z + 0.5, sound, 0.3f + 0.7f * rand.nextFloat(), 0.6f + 0.4f * rand.nextFloat(), true); + } - public static IIcon getMissingIcon() { - return ((TextureMap)Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.locationBlocksTexture)).getAtlasSprite("missingno"); - } + public static IIcon getMissingIcon() + { + return ((TextureMap) Minecraft.getMinecraft().getTextureManager().getTexture(TextureMap.locationBlocksTexture)).getAtlasSprite("missingno"); + } - static HashMap resources=new HashMap(); - public static void bind(String textureName) { - ResourceLocation res=resources.get(textureName); - - if(res==null){ - res=new ResourceLocation(textureName); - resources.put(textureName,res); - } - - Minecraft.getMinecraft().getTextureManager().bindTexture(res); - } + static HashMap resources = new HashMap(); + + public static void bind(String textureName) + { + ResourceLocation res = resources.get(textureName); + + if(res == null) + { + res = new ResourceLocation(textureName); + resources.put(textureName, res); + } + + Minecraft.getMinecraft().getTextureManager().bindTexture(res); + } } diff --git a/src/main/java/info/jbcs/minecraft/utilities/GuiHandler.java b/src/main/java/info/jbcs/minecraft/utilities/GuiHandler.java index 0b86e5c2..95143774 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/GuiHandler.java +++ b/src/main/java/info/jbcs/minecraft/utilities/GuiHandler.java @@ -8,58 +8,69 @@ import net.minecraft.world.World; import cpw.mods.fml.common.network.IGuiHandler; import cpw.mods.fml.common.network.NetworkRegistry; -public abstract class GuiHandler implements Comparable { - static ArrayList items = new ArrayList(); +public abstract class GuiHandler implements Comparable +{ + static ArrayList items = new ArrayList(); - int index; - Object mod; - String name; + int index; + Object mod; + String name; - public GuiHandler(String n) { - items.add(this); - name = n; - } + public GuiHandler(String n) + { + items.add(this); + name = n; + } - public void open(EntityPlayer player, World world, int x, int y, int z) { - player.openGui(mod, index, world, x, y, z); - } + public void open(EntityPlayer player, World world, int x, int y, int z) + { + player.openGui(mod, index, world, x, y, z); + } - @Override - public int compareTo(Object a) { - return name.compareTo(((GuiHandler) a).name); - } + @Override + public int compareTo(Object a) + { + return name.compareTo(((GuiHandler) a).name); + } - public static void register(Object mod) { - Collections.sort(items); - int index = 0; + public static void register(Object mod) + { + Collections.sort(items); + int index = 0; - for (GuiHandler h : items) { - h.mod = mod; - h.index = index++; - } + for(GuiHandler h : items) + { + h.mod = mod; + h.index = index++; + } - NetworkRegistry.INSTANCE.registerGuiHandler(mod, new IGuiHandler() { - @Override - public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { - if (id < 0 || id >= items.size()) { - return null; - } + NetworkRegistry.INSTANCE.registerGuiHandler(mod, new IGuiHandler() + { + @Override + public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) + { + if(id < 0 || id >= items.size()) + { + return null; + } - return items.get(id).getServerGuiElement(id, player, world, x, y, z); - } + return items.get(id).getServerGuiElement(id, player, world, x, y, z); + } - @Override - public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { - if (id < 0 || id >= items.size()) { - return null; - } + @Override + public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) + { + if(id < 0 || id >= items.size()) + { + return null; + } - return items.get(id).getClientGuiElement(id, player, world, x, y, z); - } - }); - } + return items.get(id).getClientGuiElement(id, player, world, x, y, z); + } + }); + } - public abstract Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z); + public abstract Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z); - public abstract Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z); + public abstract Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z); } diff --git a/src/main/java/info/jbcs/minecraft/utilities/ItemMetaBlock.java b/src/main/java/info/jbcs/minecraft/utilities/ItemMetaBlock.java index 33bccebd..944dfb42 100644 --- a/src/main/java/info/jbcs/minecraft/utilities/ItemMetaBlock.java +++ b/src/main/java/info/jbcs/minecraft/utilities/ItemMetaBlock.java @@ -4,24 +4,29 @@ import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -public class ItemMetaBlock extends ItemBlock { - public ItemMetaBlock(Block b) { - super(b); - setMaxDamage(0); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack itemstack) { - if (itemstack == null) { - return Block.getBlockFromItem(this).getUnlocalizedName(); - } +public class ItemMetaBlock extends ItemBlock +{ + public ItemMetaBlock(Block b) + { + super(b); + setMaxDamage(0); + setHasSubtypes(true); + } - return Block.getBlockFromItem(this).getUnlocalizedName(); - } + @Override + public String getUnlocalizedName(ItemStack itemstack) + { + if(itemstack == null) + { + return Block.getBlockFromItem(this).getUnlocalizedName(); + } - @Override - public int getMetadata(int i) { - return i; - } + return Block.getBlockFromItem(this).getUnlocalizedName(); + } + + @Override + public int getMetadata(int i) + { + return i; + } } diff --git a/src/main/resources/LICENSE b/src/main/resources/LICENSE index 846a9cb7..f01e53fb 100644 --- a/src/main/resources/LICENSE +++ b/src/main/resources/LICENSE @@ -1,16 +1,16 @@ -Minecraft Autoutils mod. -Copyright (C) 2013 AUTOMATIC_MAIDEN - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program 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 General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +Minecraft Autoutils mod. +Copyright (C) 2013 AUTOMATIC_MAIDEN + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program 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 General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. diff --git a/src/main/resources/assets/chisel/lang/en_US.lang b/src/main/resources/assets/chisel/lang/en_US.lang new file mode 100644 index 00000000..491bcb3a --- /dev/null +++ b/src/main/resources/assets/chisel/lang/en_US.lang @@ -0,0 +1,11 @@ +# Key localizations + +# Item localizations +item.chisel.name=Chisel +item.ballMoss.name=Ball O' Moss +item.cloudBottle.name=Cloud In A Bottle + +# Block localizations + +# Creative Tab localizations +itemGroup.tabChisel=Chisel Blocks diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 15501096..f6c4d7cc 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -2,14 +2,14 @@ { "modid": "chisel", "name": "Chisel", - "description": "Adds a chisel item that lets you carve blocks like cobblestone or sandstone. Adds two new blocks to world generation: marble and limestone, which can be be carved and crafted into many various building materials.", - "version": "1.5.3", + "description": "A mod that adds in many fancy blocks for decoration, which are crafted utilising the Chisel.", + "version": "1.5.4", "credits": "This mod uses a lot of textures from the Painterly pack: http://painterlypack.net/. Also one stone variation is designed to look like a block from Doku.", "logoFile": "", "mcversion": "1.7.2", "url": "", "updateUrl": "", - "authors": [ "AUTOMATIC_MAIDEN", "asiekierka" ], + "authors": [ "AUTOMATIC_MAIDEN" "asiekierka" "Pokefenn" ], "parent":"", "screenshots": [], "dependencies": [] diff --git a/ydpm302g.va1.txt b/ydpm302g.va1.txt new file mode 100644 index 00000000..867fe154 --- /dev/null +++ b/ydpm302g.va1.txt @@ -0,0 +1,1660 @@ + +# Please enter the commit message for your changes. Lines starting +# with '#' will be ignored, and an empty message aborts the commit. +# On branch master +# Changes to be committed: +# (use "git reset HEAD ..." to unstage) +# +# new file: LICENSE +# modified: README.md +# new file: src/main/java/info/jbcs/minecraft/chisel/Chisel.java +# new file: src/main/java/info/jbcs/minecraft/chisel/ChiselBlocks.java +# new file: src/main/java/info/jbcs/minecraft/chisel/ChiselModCompatibility.java +# new file: src/main/java/info/jbcs/minecraft/chisel/ClientProxy.java +# new file: src/main/java/info/jbcs/minecraft/chisel/CommonProxy.java +# new file: src/main/java/info/jbcs/minecraft/chisel/Crafting.java +# new file: src/main/java/info/jbcs/minecraft/chisel/MarbleWorldGenerator.java +# new file: src/main/java/info/jbcs/minecraft/chisel/Packets.java +# new file: src/main/java/info/jbcs/minecraft/chisel/StepSoundEx.java +# new file: src/main/java/info/jbcs/minecraft/chisel/api/ICarvable.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvable.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvableGlass.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePane.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockCarvablePowered.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockCloud.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockConcrete.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockEldritch.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockHolystone.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockLavastone.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockLightstoneCarvable.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleBookshelf.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleCarpet.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIce.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleIceStairs.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleLamp.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarblePillar.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleSlab.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairs.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairsMaker.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleStairsMakerCreator.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleTexturedOre.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockMarbleWall.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockRoadLine.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockSnakestone.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockSnakestoneObsidian.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockSpikes.java +# new file: src/main/java/info/jbcs/minecraft/chisel/block/BlockTexturedOre.java +# new file: src/main/java/info/jbcs/minecraft/chisel/carving/CarvableHelper.java +# new file: src/main/java/info/jbcs/minecraft/chisel/carving/CarvableVariation.java +# new file: src/main/java/info/jbcs/minecraft/chisel/carving/Carving.java +# new file: src/main/java/info/jbcs/minecraft/chisel/carving/CarvingGroup.java +# new file: src/main/java/info/jbcs/minecraft/chisel/carving/CarvingVariation.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/GeneralChiselClient.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiChisel.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiEdit.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiElement.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiExButton.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiLabel.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/GuiScreenPlus.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/GuilScrolledBox.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/InputEvent.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/InputKeyboardEvent.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/InputMouseEvent.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/Scrollbar.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/gui/TexturedBox.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockAdvancedMarbleRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockCarpetRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockEldritchRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePaneRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarblePillarRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockMarbleStairsRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockNoCTMRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockRoadLineRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSnakeStoneRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockSpikesRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/BlockTexturedOreRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/CTM.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/ItemChiselRenderer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTM.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksCTMCarpet.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksColumn.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/RenderBlocksEldritch.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/TextureSubmap.java +# new file: src/main/java/info/jbcs/minecraft/chisel/client/render/TextureVirtual.java +# new file: src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMoss.java +# new file: src/main/java/info/jbcs/minecraft/chisel/entity/EntityBallOMossFX.java +# new file: src/main/java/info/jbcs/minecraft/chisel/entity/EntityCloudInABottle.java +# new file: src/main/java/info/jbcs/minecraft/chisel/entity/EntityHolystoneFX.java +# new file: src/main/java/info/jbcs/minecraft/chisel/entity/EntitySnakestoneObsidianFX.java +# new file: src/main/java/info/jbcs/minecraft/chisel/inventory/ContainerChisel.java +# new file: src/main/java/info/jbcs/minecraft/chisel/inventory/InventoryChiselSelection.java +# new file: src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselInput.java +# new file: src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselPlayer.java +# new file: src/main/java/info/jbcs/minecraft/chisel/inventory/SlotChiselSelection.java +# new file: src/main/java/info/jbcs/minecraft/chisel/item/ItemBallOMoss.java +# new file: src/main/java/info/jbcs/minecraft/chisel/item/ItemCarvable.java +# new file: src/main/java/info/jbcs/minecraft/chisel/item/ItemChisel.java +# new file: src/main/java/info/jbcs/minecraft/chisel/item/ItemCloudInABottle.java +# new file: src/main/java/info/jbcs/minecraft/chisel/item/ItemMarbleSlab.java +# new file: src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOre.java +# new file: src/main/java/info/jbcs/minecraft/utilities/BlockTexturedOreRenderer.java +# new file: src/main/java/info/jbcs/minecraft/utilities/Drawing.java +# new file: src/main/java/info/jbcs/minecraft/utilities/DummyContainer.java +# new file: src/main/java/info/jbcs/minecraft/utilities/General.java +# new file: src/main/java/info/jbcs/minecraft/utilities/GeneralClient.java +# new file: src/main/java/info/jbcs/minecraft/utilities/GuiHandler.java +# new file: src/main/java/info/jbcs/minecraft/utilities/ItemMetaBlock.java +# new file: src/main/resources/LICENSE +# new file: src/main/resources/assets/chisel/lang/en_US.lang +# new file: src/main/resources/assets/chisel/sounds.json +# new file: src/main/resources/assets/chisel/sounds/0/temple-footstep1.ogg +# new file: src/main/resources/assets/chisel/sounds/0/temple-footstep2.ogg +# new file: src/main/resources/assets/chisel/sounds/0/temple-footstep3.ogg +# new file: src/main/resources/assets/chisel/sounds/0/temple-footstep4.ogg +# new file: src/main/resources/assets/chisel/sounds/0/temple-footstep5.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel-wood11.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel-wood2.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel-wood3.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel-wood4.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel-wood5.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel-wood8.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel-wood9.ogg +# new file: src/main/resources/assets/chisel/sounds/chisel.ogg +# new file: src/main/resources/assets/chisel/sounds/holystone1.ogg +# new file: src/main/resources/assets/chisel/sounds/holystone2.ogg +# new file: src/main/resources/assets/chisel/sounds/holystone3.ogg +# new file: src/main/resources/assets/chisel/sounds/holystone5.ogg +# new file: src/main/resources/assets/chisel/sounds/holystone7.ogg +# new file: src/main/resources/assets/chisel/sounds/metal.ogg +# new file: src/main/resources/assets/chisel/sounds/metal1.ogg +# new file: src/main/resources/assets/chisel/sounds/metal2.ogg +# new file: src/main/resources/assets/chisel/sounds/metal3.ogg +# new file: src/main/resources/assets/chisel/sounds/metal4.ogg +# new file: src/main/resources/assets/chisel/sounds/metal5.ogg +# new file: src/main/resources/assets/chisel/sounds/metal6.ogg +# new file: src/main/resources/assets/chisel/sounds/metal7.ogg +# new file: src/main/resources/assets/chisel/sounds/metal8.ogg +# new file: src/main/resources/assets/chisel/sounds/metal9.ogg +# new file: src/main/resources/assets/chisel/sounds/squash.ogg +# new file: src/main/resources/assets/chisel/sounds/squash2.ogg +# new file: src/main/resources/assets/chisel/sounds/temple-footstep1.ogg +# new file: src/main/resources/assets/chisel/sounds/temple-footstep2.ogg +# new file: src/main/resources/assets/chisel/sounds/temple-footstep3.ogg +# new file: src/main/resources/assets/chisel/sounds/temple-footstep4.ogg +# new file: src/main/resources/assets/chisel/sounds/temple-footstep5.ogg +# new file: src/main/resources/assets/chisel/textures/autochisel-gui.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/bricks+dirt2-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/bricks+dirt2-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/bricks2.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/bricks3.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/chunky.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/cobble.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/dirt-reinforced-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/dirt-reinforced-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/dirt-reinforced-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/dirt-reinforced.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/happy.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/hor-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/hor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/horizontal.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/layers.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/netherbricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/plate.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/reinforced-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/reinforced-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/reinforced-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/reinforced.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/vert-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/vert-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/vertical-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/Grass/vertical-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/autoChisel.pdn +# new file: src/main/resources/assets/chisel/textures/blocks/autoChisel.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/abandoned-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/abandoned-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/bookcase.psd +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/brim-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/brim-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/default-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/default-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/historician-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/historician-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/hoarder-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/hoarder-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/necromancer-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/necromancer-novice-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/necromancer-novice-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/necromancer-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/rainbow-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/rainbow-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/redtomes-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/bookshelf/redtomes-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/black-ctm1 - Copy.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/black-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/black-ctm2 - Copy.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/black-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/black-ctm3 - Copy.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/black-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/brown-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/brown-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/brown-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkblue-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkblue-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkblue-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkgrey-ctm1 - Copy.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkgrey-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkgrey-ctm2 - Copy.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkgrey-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkgrey-ctm3 - Copy.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/darkgrey-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/green-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/green-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/green-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/grey-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/grey-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/grey-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lightblue-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lightblue-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lightblue-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lightgreen-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lightgreen-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lightgreen-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lily-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lily-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/lily-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/orange-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/orange-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/orange-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/pink-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/pink-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/pink-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/purple-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/purple-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/purple-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/red-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/red-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/red-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/red-template-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/red-template-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/red-template-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/teal-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/teal-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/teal-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/white-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/white-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/white-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/yellow-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/yellow-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet-old/yellow-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/black-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/black.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/brown-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/brown.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/darkblue-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/darkblue.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/darkgrey-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/darkgrey.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/green-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/green.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/grey-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/grey.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/lightblue-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/lightblue.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/lightgreen-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/lightgreen.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/lily-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/lily.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/orange-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/orange.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/pink-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/pink.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/purple-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/purple.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/red-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/red.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/teal-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/teal.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/white-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/white.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/yellow-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/carpet/yellow.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/frameblue-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/frameblue.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/iceiceice-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/iceiceice.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/lamp-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/lamp.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/symbolgold-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/symbolgold.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/tilemosaic-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/tilemosaic.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/tilered-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/tilered.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/vent-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/vent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/wireframeblue-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/chrono/wireframeblue.png +# new file: src/main/resources/assets/chisel/textures/blocks/cloud/cloud.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cob-detailedbrick.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cob-french.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cob-french2.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cob-smallbrick.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cobb-brickaligned.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cobblargetiledark.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cobbsmalltile.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-cobmoss-creepdungeon.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-mossysmalltiledark.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkcreeper.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkdent-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkdent.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkemboss-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkemboss.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkmarker.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkpanel-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-darkpanel.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-dungeontile-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestone/terrain-pistonback-dungeontile.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cob-detailedbrick.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cob-french.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cob-french2.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cob-smallbrick.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cobb-brickaligned.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cobblargetiledark.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cobbsmalltile.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-cobmoss-creepdungeon.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-mossysmalltiledark.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-pistonback-darkcreeper.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-pistonback-darkdent.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-pistonback-darkemboss.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-pistonback-darkmarker.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-pistonback-darkpanel.png +# new file: src/main/resources/assets/chisel/textures/blocks/cobblestonemossy/terrain-pistonback-dungeontile.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/asphalt.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/block-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/block.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/default.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/doubleslab-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/doubleslab-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-block-half-botom.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-block-half-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-block-half-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-block.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-doubleslab-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-doubleslab-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-half-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-half-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered-half-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/concrete/weathered.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-bismuth-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-bismuth-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-bismuth-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-crushed-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-crushed-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-crushed-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-four-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-four-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-four-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-fourornate-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-fourornate-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-fourornate-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-ornatelayer-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-ornatelayer-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-ornatelayer-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-zelda-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-zelda-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/a1-blockdiamond-zelda-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-cells-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-cells-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-cells-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-embossed-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-embossed-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-embossed-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-gem-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-gem-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-gem-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-simple-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-simple-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-simple-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-space-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-space-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-space-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-spaceblack-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-spaceblack-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/diamond/terrain-diamond-spaceblack-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/bricks+dirt2-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/bricks+dirt2-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/bricks2.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/bricks3.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/chunky.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/cobble.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/dirt-reinforced-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/dirt-reinforced-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/dirt-reinforced-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/dirt-reinforced.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/happy.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/hor-ctmh.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/hor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/horizontal.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/layers.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/netherbricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/plate.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/reinforced-ctm1.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/reinforced-ctm2.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/reinforced-ctm3.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/reinforced.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/vert-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/vert-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/vertical-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/dirt/vertical-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockemerald-emeraldchunk.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockemerald-emeraldornatelayer.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockemerald-emeraldpanel.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockemerald-emeraldpanelclassic.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockemerald-emeraldsmooth.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockemerald-emeraldzelda.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockquartz-cell.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockquartz-cellbismuth.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockquartz-four.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockquartz-fourornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/emerald/a1-blockquartz-ornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/circuit-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/circuit.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/column-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/dots-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/dots.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/goldplate-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/goldplate.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/goldplating-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/goldplating.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/grinder-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/grinder.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/hazard-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/hazard.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/hazardorange-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/hazardorange.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/metalbox-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/metalbox-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/platex-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/platex.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/plating-v9.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/rust-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/rust.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/rust2-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/rust2.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/rustplates-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/rustplates.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/wireframe-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/wireframe.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/wireframewhite-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/factory/wireframewhite.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/block-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/block.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/brick-faded-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/brick-faded-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/brick-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/brick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/brick-wear-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/brick-wear-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/bricks-chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/bricks-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/bricks-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/bricks-wear-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/bricks-wear-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/decor-block-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/decor-block-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/decor-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/decor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-1-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-1-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-2-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-2-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-3-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-3-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-4-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/gold-decor-4-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/pillar+-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/pillar+.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/pillar-decorated-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/pillar-decorated-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/pillar-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/pillar-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/plate-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/fft/plate-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/a1-glasswindow-ironfencemodern.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/japanese.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-chinese.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-ornatesteel-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-ornatesteel-old.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-ornatesteel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-screen.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-steelframe-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-steelframe.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-thickgrid.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glass-thingrid.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassbubble-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassbubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassdungeon.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glasslight-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glasslight.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassnoborder-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassnoborder.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassshale-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassshale.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassstone-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassstone.png +# new file: src/main/resources/assets/chisel/textures/blocks/glass/terrain-glassstreak.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/black-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/black-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/black-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/black-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/blue-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/blue-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/blue-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/blue-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/brown-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/brown-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/brown-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/brown-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/cyan-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/cyan-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/cyan-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/cyan-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/gray-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/gray-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/gray-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/gray-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/green-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/green-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/green-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/green-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightblue-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightblue-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightblue-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightblue-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightgray-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightgray-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightgray-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lightgray-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lime-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lime-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lime-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/lime-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/magenta-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/magenta-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/magenta-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/magenta-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/orange-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/orange-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/orange-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/orange-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/pink-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/pink-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/pink-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/pink-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/purple-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/purple-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/purple-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/purple-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/red-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/red-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/red-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/red-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/white-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/white-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/white-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/white-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/yellow-bubble.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/yellow-panel-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/yellow-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/glassdyed/yellow-transparent.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/chinese-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/chinese-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/chinese2-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/chinese2-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/japanese-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/japanese-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/japanese2-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/japanese2-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/terrain-glass-screen.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/terrain-glassbubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/terrain-glassbubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/terrain-glassnoborder-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/terrain-glassnoborder-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/terrain-glassstreak-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspane/terrain-glassstreak-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/black-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/blue-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/brown-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/cyan-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/gray-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/green-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightblue-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lightgray-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/lime-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/magenta-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/orange-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/pink-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/purple-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/red-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/white-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-bubble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-bubble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-panel-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-panel-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-panel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-panel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-quad-fancy-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-quad-fancy-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-quad-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-quad-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-transparent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/glasspanedyed/yellow-transparent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-brick-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-brick-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-brick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-cart-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-cart-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-cart-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-coin-heads-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-coin-heads-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-coin-heads-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-coin-tails-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-coin-tails-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-coin-tails-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-crate-dark-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-crate-dark-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-crate-dark-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-crate-light-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-crate-light-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-crate-light-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-largeingot-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-largeingot-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-largeingot-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-plates-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-plates-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-plates-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-rivets-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-rivets-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-rivets-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-simple-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-simple-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-simple-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-smallingot-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-smallingot-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-smallingot-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-space-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-space-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-space-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-spaceblack-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-spaceblack-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-spaceblack-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-star-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-star-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/gold/terrain-gold-star-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/blocks-rough.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/brick.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/chiseled-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/chiseled-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/chunks.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/construction.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/fancy-tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/holystone.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/largebricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/love.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/particles/star.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/plate-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/plate-rough-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/plate-rough.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/plate.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/platform-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/platform-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/platform-tiles-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/platform-tiles-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/platform-tiles-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/platform-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/roughblocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/smooth.png +# new file: src/main/resources/assets/chisel/textures/blocks/holystone/tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-ice-light.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-netherbrick-ice.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icebrick.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icebricksmall.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icecobble.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icedungeon-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icedungeon-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icefour.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icefrench.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stonecobble-icepanel.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stoneslab-ice-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stoneslab-ice-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/a1-stoneslab-icetop.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/bismuth.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/poison.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/scribbles-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/scribbles-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/sunkentiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/ice/zelda.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stoneornamental-marblegreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stoneornamental-marblegreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greekbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greekbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greekbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greekbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greektopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greektopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greektopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-greektopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plainbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plainbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plainbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plainbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plaintopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plaintopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plaintopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/a1-stonepillar-plaintopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/base-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/base-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/capstone-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/capstone-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/pillar-carved-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/pillar-carved-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/small-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/icepillar/small-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-brick-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-brick-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-brick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-coin-heads-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-coin-heads-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-coin-heads-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-coin-tails-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-coin-tails-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-coin-tails-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-crate-dark-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-crate-dark-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-crate-dark-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-crate-light-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-crate-light-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-crate-light-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-gears-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-gears-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-largeingot-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-largeingot-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-largeingot-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-moon-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-moon-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-moon-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-plates-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-plates-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-plates-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-rivets-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-rivets-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-rivets-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-simple-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-simple-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-simple-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-smallingot-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-smallingot-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-smallingot-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-space.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-spaceblack.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-vents-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/iron/terrain-iron-vents-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/a1-ironbars-ironclassic.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/a1-ironbars-ironclassicnew.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/a1-ironbars-ironfence.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/a1-ironbars-ironfencemodern.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/barbedwire-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/barbedwire-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/barbedwire-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/bars-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/bars-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/bars-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/cage-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/cage-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/fenceIron-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/fenceIron-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/fenceIron-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/fenceIron.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/fenceIronTop-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/fenceIronTop-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/fenceIronTop-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/spikes-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/spikes-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/spikes-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/terrain-glass-ornatesteel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/terrain-glass-ornatesteel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/terrain-glass-thickgrid.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/terrain-glass-thingrid-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/ironpane/terrain-glass-thingrid-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/lamp/symbolgold-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/lamp/symbolgold.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/a1-blocklapis-ornatelayer.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/a1-blocklapis-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/a1-blocklapis-smooth.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/terrain-lapisblock-chunky.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/terrain-lapisblock-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/terrain-lapisblock-zelda.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/terrain-lapisornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/lapis/terrain-lapistile.png +# new file: src/main/resources/assets/chisel/textures/blocks/lava_flow.png +# new file: src/main/resources/assets/chisel/textures/blocks/lava_flow.txt +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/black.png +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/black1.png +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/cobble.png +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/creeper.png +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/panel-ornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/lavastone/tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/a1-glowstone-cobble.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/a1-glowstone-growth.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/a1-glowstone-layers.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/a1-glowstone-tilecorroded.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/glowstone-bismuth-panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/glowstone-bismuth.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-cobble.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-corroded.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-glass.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-neon.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-ornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-rocky.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-shale.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-tile.png +# new file: src/main/resources/assets/chisel/textures/blocks/lightstone/terrain-sulphur-weavelanternlight.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-cob-french2light.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-cob-frenchlight.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-cob-smallbricklight.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-cobbsmalltilelight.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-cobmoss-creepdungeonlight.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-mossysmalltilelight.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-dungeon.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-dungeonornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-dungeonvent.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-lightcreeper.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-lightdent.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-lightemboss.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-lightfour.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-lightmarker.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone/terrain-pistonback-lightpanel.png +# new file: src/main/resources/assets/chisel/textures/blocks/limestone2.png +# new file: src/main/resources/assets/chisel/textures/blocks/line-marking/white-center.png +# new file: src/main/resources/assets/chisel/textures/blocks/line-marking/white-long.png +# new file: src/main/resources/assets/chisel/textures/blocks/line-marking/white-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/line-marking/yellow-center.png +# new file: src/main/resources/assets/chisel/textures/blocks/line-marking/yellow-long.png +# new file: src/main/resources/assets/chisel/textures/blocks/line-marking/yellow-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble-old.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/32/a1-stoneornamental-marblebrick-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/32/a1-stoneornamental-marblebrick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/32/marble.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/a1-stoneornamental-marblebrick-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/a1-stoneornamental-marblebrick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/a1-stoneornamental-marblecarved.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/a1-stoneornamental-marblecarvedradial.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/a1-stoneornamental-marbleclassicpanel.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/a1-stoneornamental-marbleornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/block-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/block.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/marble-arranged-bricks-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/marble-arranged-bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/marble-blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/marble-bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/marble-fancy-bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/panel-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/raw.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marblecreeperdark-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marblecreeperdark-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marblecreeperlight-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marblecreeperlight-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marbledent-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marbledent-small-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marbledent-small.png +# new file: src/main/resources/assets/chisel/textures/blocks/marble/terrain-pistonback-marbledent.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/carved-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/carved-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/convex-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/convex-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/default-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/default-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/greekdecor-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/greekdecor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/greekgreek-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/greekgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/greekplain-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/greekplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/ornamental-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/ornamental-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/pillar-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/pillar-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/plaindecor-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/plaindecor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/plaingreek-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/plaingreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/plainplain-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/plainplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/rough-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/rough-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/simple-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/simple-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/widedecor-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/widedecor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/widegreek-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/widegreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/wideplain-ctmv.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillar/wideplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stoneornamental-marblebrick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stoneornamental-marblegreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stoneornamental-marblegreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greekbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greekbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greekbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greekbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greektopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greektopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greektopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-greektopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plainbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plainbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plainbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plainbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plaintopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plaintopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plaintopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/a1-stonepillar-plaintopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/base-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/base-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/capstone-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/capstone-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/pillar-carved-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/pillar-carved-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/small-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/1/small-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stoneornamental-marblegreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stoneornamental-marblegreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greekbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greekbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greekbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greekbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greektopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greektopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greektopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-greektopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plainbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plainbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plainbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plainbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plaintopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plaintopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plaintopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/a1-stonepillar-plaintopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/base-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/base-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/capstone-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/capstone-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/pillar-carved-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/pillar-carved-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/small-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarold/small-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/carved-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/carved-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/convex-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/convex-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/default-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/default-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/greekdecor-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/greekdecor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/greekgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/greekgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/greekplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/greekplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/ornamental-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/ornamental-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/pillar-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/pillar-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/plaindecor-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/plaindecor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/plaingreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/plaingreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/plainplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/plainplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/rough-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/rough-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/simple-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/simple-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/widedecor-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/widedecor-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/widegreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/widegreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/wideplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslab/wideplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stoneornamental-marblegreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stoneornamental-marblegreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greekbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greekbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greekbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greekbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greektopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greektopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greektopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-greektopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plainbottomgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plainbottomgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plainbottomplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plainbottomplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plaintopgreek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plaintopgreek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plaintopplain-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/a1-stonepillar-plaintopplain-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/base-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/base-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/capstone-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/capstone-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/pillar-carved-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/pillar-carved-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/small-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marblepillarslabold/small-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblebrick-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblebrick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblecarved-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblecarved-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblecarvedradial-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblecarvedradial-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marbleclassicpanel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marbleclassicpanel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marbleornate-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marbleornate-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblepanel-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/a1-stoneornamental-marblepanel-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/marble-arranged-bricks-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/marble-arranged-bricks-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/marble-blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/marble-bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/marble-fancy-bricks-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/marble-fancy-bricks-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marblecreeperdark-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marblecreeperdark-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marblecreeperlight-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marblecreeperlight-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marbledent-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marbledent-small-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marbledent-small-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/marbleslab/terrain-pistonback-marbledent-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-brinstar.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-classicspatter.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-guts.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-gutsdark.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-gutssmall.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-lavabrinstar.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-lavabrown.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-lavaobsidian.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-lavastonedark.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-meat.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-meatred.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-meatredsmall.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-meatsmall.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-red.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherbrick/a1-netherbrick-redsmall.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-bloodgravel.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-bloodrock.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-bloodrockgrey.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-brinstar.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-brinstarshale.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-classic.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-classicspatter.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-guts.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-gutsdark.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-meat.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-meatred.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-meatrock.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-red.png +# new file: src/main/resources/assets/chisel/textures/blocks/netherrack/a1-netherrack-wells.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/chiseled-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/chiseled-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/chunks.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/crate-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/crate-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/crate-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/crystal.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/greek-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/greek-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/growth.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/map-a.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/map-b.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/panel-light.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/panel-shiny.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/panel.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/pillar-quartz-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/pillar-quartz-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/pillar-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/pillar-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/obsidian/tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/paver-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/paver.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/clean.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/crate-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/crate.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/double-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/double-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/large.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/panel-nails.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-acacia/short.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/blinds.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/chaotic-hor.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/clean.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/crate-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/crate.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/crateex.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/double-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/double-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/large.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/panel-nails.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/parquet.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/short.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/vertical-uneven.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-birch/vertical.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/clean.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/crate-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/crate.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/double-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/double-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/large.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/panel-nails.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-dark-oak/short.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/blinds.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/chaotic-hor.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/clean.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/crate-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/crate.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/crateex.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/double-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/double-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/large.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/panel-nails.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/parquet.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/short.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/vertical-uneven.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-jungle/vertical.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/blinds.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/chaotic-hor.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/clean.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/crate-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/crate.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/crateex.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/double-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/double-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/large.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/panel-nails.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/parquet.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/short.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/vertical-uneven.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-oak/vertical.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/blinds.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/chaotic-hor.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/clean.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/crate-fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/crate.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/crateex.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/double-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/double-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/large.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/panel-nails.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/parquet.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/short.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/vertical-uneven.png +# new file: src/main/resources/assets/chisel/textures/blocks/planks-spruce/vertical.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/a1-blockredstone-redstonechunk.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/a1-blockredstone-redstonezelda.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/a1-blockredstone-skullred.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/block-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/block.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/chiseled-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/chiseled-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/circuit.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/ere.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/ornate-tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/pillar-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/pillar-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/smallbricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/smallchaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/smooth.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/solid.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/supaplex.png +# new file: src/main/resources/assets/chisel/textures/blocks/redstone/tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-0-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-0-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-1-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-1-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-10-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-10-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-11-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-11-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-12-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-12-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-13-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-13-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-14-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-14-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-15-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-15-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-2-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-2-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-3-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-3-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-4-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-4-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-5-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-5-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-6-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-6-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-7-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-7-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-8-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-8-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-9-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone-scribbles/scribbles-9-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-boxcreeper-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-boxcreeper-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-boxcreeper-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concrete-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concrete-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concrete-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concreteblock-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concreteblock-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concreteblock-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concretesidewalk-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concretesidewalk-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concretesidewalk-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concreteweathered-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concreteweathered-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-concreteweathered-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-smoothflat-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-smoothflat-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/a0-sandstonepreview-smoothflat-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/base-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/base-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/block.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/blocks.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/capstone-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/capstone-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/faded-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/faded-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/faded-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/horizontal-tiles-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/horizontal-tiles-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/mosaic-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/mosaic.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/small-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/small-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/smooth-base-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/smooth-base-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/smooth-cap-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/smooth-cap-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/smooth-small-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/smooth-small-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/smooth.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-brickflat-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-brickflat-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-brickflat-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-cobble-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-cobble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-cobble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-column-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-columnflat-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-columnflat-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-columnflat-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-faded-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-faded-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-faded-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-glyph-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-glyph-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-glyph-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-naturalsmooth-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-naturalsmooth-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-naturalsmooth-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-smoothglyph-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-smoothglyph-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-smoothglyph-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-solidcobble-bottom.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-solidcobble-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/sandstone/terrain-sandstone-solidcobble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/bot-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/bot-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/bot.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/crosssection.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/face-left.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/face-right.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/face.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/left-down.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/left-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/left-up.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/0.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/1.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/2.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/3.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/4.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/5.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/6.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/particles/7.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/right-down.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/right-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/right-up.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/top-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/top-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/obsidian/top.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/bot-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/bot-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/bot.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/crosssection.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/face-left.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/face-right.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/face.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/left-down.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/left-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/left-up.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/right-down.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/right-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/right-up.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/top-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/top-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/sandsnake/top.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/bot-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/bot-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/bot.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/crosssection.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/face-left.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/face-right.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/face.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/left-down.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/left-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/left-up.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/right-down.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/right-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/right-up.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/top-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/top-tip.png +# new file: src/main/resources/assets/chisel/textures/blocks/snakestone/snake/top.png +# new file: src/main/resources/assets/chisel/textures/blocks/spiketrap/base - Copy.png +# new file: src/main/resources/assets/chisel/textures/blocks/spiketrap/base.png +# new file: src/main/resources/assets/chisel/textures/blocks/spiketrap/spike.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/chaoticbricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/fancy.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/fullsmooth.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/largebricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/largeornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/ornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/ornatepanel.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/panel-hard-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/panel-hard.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/poison.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/roughbricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/smallbricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/smallchaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/sunken-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/stonebrick/sunken.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/0/a1-stoneornamental-marblebrick-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/0/default.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/0/limestone.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/0/marble.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/0/scribbles-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/0/scribbles-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/0/terrain-pistonback-marble-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/a.psd +# new file: src/main/resources/assets/chisel/textures/blocks/temple/bricks-disarray.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/bricks-large.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/bricks-weared.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/cobble-v4.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/ornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/plate-cracked-v9.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/plate.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/smalltiles-light.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/smalltiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/stand-creeper-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/stand-creeper-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/stand-mosaic-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/stand-mosaic-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/stand-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/stand-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/temple-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/tiles-light.png +# new file: src/main/resources/assets/chisel/textures/blocks/temple/tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/bricks-disarray.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/bricks-large.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/bricks-weared.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/bricks.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/cobble-v4.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/column-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/column-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/ornate.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/plate-cracked-v9.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/plate.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/smalltiles-light.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/smalltiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/stand-creeper-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/stand-creeper-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/stand-mosaic-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/stand-mosaic-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/stand-side.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/stand-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/temple-top.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/tiles-light.png +# new file: src/main/resources/assets/chisel/textures/blocks/templemossy/tiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/black.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/black2.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/blueplating.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/chaotic.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/dent.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/diagonal.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/elaborate.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/opening.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/plate-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/plate-raw.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/plate.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/platetiles.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/platform.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/routes.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/rust.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/shining.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/softplate.png +# new file: src/main/resources/assets/chisel/textures/blocks/tyrian/tyrian.png +# new file: src/main/resources/assets/chisel/textures/blocks/vetrices.psd +# new file: src/main/resources/assets/chisel/textures/blocks/wireframe/chrono-ctm.png +# new file: src/main/resources/assets/chisel/textures/blocks/wireframe/chrono.png +# new file: src/main/resources/assets/chisel/textures/chisel-gui-24.png +# new file: src/main/resources/assets/chisel/textures/chisel-gui.png +# new file: src/main/resources/assets/chisel/textures/items/Diamond_chisel.png +# new file: src/main/resources/assets/chisel/textures/items/ballomoss.png +# new file: src/main/resources/assets/chisel/textures/items/brush.png +# new file: src/main/resources/assets/chisel/textures/items/chisel.png +# new file: src/main/resources/assets/chisel/textures/items/cloudinabottle-x.png +# new file: src/main/resources/assets/chisel/textures/items/cloudinabottle.png +# new file: src/main/resources/assets/chisel/textures/items/iceshard.png +# new file: src/main/resources/assets/chisel/textures/items/needle.png +# new file: src/main/resources/chisel_compile_at.cfg +# new file: src/main/resources/mcmod.info +# +