├── .gitignore ├── README.md ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── server.properties ├── src └── main │ ├── java │ └── cjminecraft │ │ └── bitofeverything │ │ ├── BitOfEverything.java │ │ ├── Reference.java │ │ ├── blocks │ │ ├── BlockBreaker.java │ │ ├── BlockCanvas.java │ │ ├── BlockCotton.java │ │ ├── BlockDoubleFurnace.java │ │ ├── BlockEnergyCell.java │ │ ├── BlockFurnaceGenerator.java │ │ ├── BlockGamemodeDetector.java │ │ ├── BlockMachine.java │ │ ├── BlockMachineFrame.java │ │ ├── BlockTinBlock.java │ │ ├── BlockTinButton.java │ │ ├── BlockTinDoor.java │ │ ├── BlockTinFence.java │ │ ├── BlockTinFenceGate.java │ │ ├── BlockTinOre.java │ │ ├── BlockTinPressurePlate.java │ │ ├── BlockTinSlab.java │ │ ├── BlockTinSlabDouble.java │ │ ├── BlockTinSlabHalf.java │ │ ├── BlockTinStairs.java │ │ └── item │ │ │ ├── IMetaBlockName.java │ │ │ ├── ItemBlockBreaker.java │ │ │ ├── ItemBlockDoor.java │ │ │ ├── ItemBlockMachine.java │ │ │ └── ItemBlockMeta.java │ │ ├── capabilties │ │ ├── IWork.java │ │ └── Worker.java │ │ ├── client │ │ └── gui │ │ │ ├── GuiBlockBreaker.java │ │ │ ├── GuiDoubleFurnace.java │ │ │ ├── GuiEnergyCell.java │ │ │ ├── GuiFurnaceGenerator.java │ │ │ ├── GuiHandler.java │ │ │ └── ProgressBar.java │ │ ├── config │ │ ├── BoeConfig.java │ │ └── BoeConfigGuiFactory.java │ │ ├── container │ │ ├── ContainerBlockBreaker.java │ │ ├── ContainerDoubleFurnace.java │ │ ├── ContainerEnergyCell.java │ │ ├── ContainerFurnaceGenerator.java │ │ └── slots │ │ │ ├── SlotEnchantedBook.java │ │ │ ├── SlotEnergyItem.java │ │ │ ├── SlotFurnaceFuel.java │ │ │ └── SlotFurnaceOutput.java │ │ ├── creativetabs │ │ ├── TabBOEBlocks.java │ │ └── TabBOEItems.java │ │ ├── events │ │ ├── PlayerEvents.java │ │ ├── SoulStealerEvents.java │ │ └── TooltipEvents.java │ │ ├── handlers │ │ ├── AchievementHandler.java │ │ ├── BoeSoundHandler.java │ │ ├── EnumHandler.java │ │ ├── EventHandler.java │ │ ├── FuelHandler.java │ │ ├── OreDictionaryHandler.java │ │ └── RecipeHandler.java │ │ ├── init │ │ ├── ModArmour.java │ │ ├── ModBlocks.java │ │ ├── ModCapabilities.java │ │ ├── ModItems.java │ │ └── ModTools.java │ │ ├── items │ │ ├── ItemChip.java │ │ ├── ItemHeart.java │ │ ├── ItemModArmour.java │ │ ├── ItemModAxe.java │ │ ├── ItemModFood.java │ │ ├── ItemModHoe.java │ │ ├── ItemModPickaxe.java │ │ ├── ItemModShovel.java │ │ ├── ItemModSword.java │ │ ├── ItemPaintBrush.java │ │ ├── ItemSoulStealer.java │ │ └── ItemTinIngot.java │ │ ├── network │ │ ├── PacketGetEnergyDifference.java │ │ ├── PacketGetWorker.java │ │ ├── PacketHandler.java │ │ ├── PacketReturnEnergyDifference.java │ │ └── PacketReturnWorker.java │ │ ├── proxy │ │ ├── ClientProxy.java │ │ ├── CommonProxy.java │ │ └── ServerProxy.java │ │ ├── tileentity │ │ ├── TileEntityBlockBreaker.java │ │ ├── TileEntityCanvas.java │ │ ├── TileEntityDoubleFurnace.java │ │ ├── TileEntityEnergyCell.java │ │ ├── TileEntityFurnaceGenerator.java │ │ └── TileEntitySidedInventory.java │ │ ├── util │ │ ├── DummyBlockProperty.java │ │ ├── Lang.java │ │ ├── RecipeClearColour.java │ │ ├── RecipeItemColour.java │ │ └── Utils.java │ │ └── worldgen │ │ ├── EndGenPredicate.java │ │ ├── NetherGenPredicate.java │ │ ├── OreGen.java │ │ ├── StructureGen.java │ │ └── StructureGenerator.java │ └── resources │ ├── assets │ └── boe │ │ ├── blockstates │ │ ├── block_breaker.json │ │ ├── canvas.json │ │ ├── cotton.json │ │ ├── double_furnace.json │ │ ├── energy_cell.json │ │ ├── furnace_generator.json │ │ ├── gamemode_detector.json │ │ ├── machine_frame.json │ │ ├── tin_block.json │ │ ├── tin_button.json │ │ ├── tin_door.json │ │ ├── tin_fence.json │ │ ├── tin_fence_gate.json │ │ ├── tin_ore.json │ │ ├── tin_pressure_plate.json │ │ ├── tin_slab_double.json │ │ ├── tin_slab_half.json │ │ └── tin_stairs.json │ │ ├── lang │ │ ├── en_US.lang │ │ ├── fr_FR.lang │ │ └── sv_SE.lang │ │ ├── models │ │ ├── block │ │ │ ├── block_breaker_advanced.json │ │ │ ├── block_breaker_advanced_activated.json │ │ │ ├── block_breaker_basic.json │ │ │ ├── block_breaker_basic_activated.json │ │ │ ├── canvas.json │ │ │ ├── cotton_stage0.json │ │ │ ├── cotton_stage1.json │ │ │ ├── cotton_stage2.json │ │ │ ├── cotton_stage3.json │ │ │ ├── cotton_stage4.json │ │ │ ├── cotton_stage5.json │ │ │ ├── cotton_stage6.json │ │ │ ├── cotton_stage7.json │ │ │ ├── ctm │ │ │ │ ├── canvas.cf │ │ │ │ ├── machine_advanced.cf │ │ │ │ └── machine_basic.cf │ │ │ ├── double_furnace.json │ │ │ ├── double_furnace_activated.json │ │ │ ├── energy_cell_centre_advanced.json │ │ │ ├── energy_cell_centre_basic.json │ │ │ ├── energy_cell_connection_in_advanced.json │ │ │ ├── energy_cell_connection_in_basic.json │ │ │ ├── energy_cell_connection_normal_advanced.json │ │ │ ├── energy_cell_connection_normal_basic.json │ │ │ ├── energy_cell_connection_out_advanced.json │ │ │ ├── energy_cell_connection_out_basic.json │ │ │ ├── furnace_generator_advanced.json │ │ │ ├── furnace_generator_advanced_activated.json │ │ │ ├── furnace_generator_basic.json │ │ │ ├── furnace_generator_basic_activated.json │ │ │ ├── gamemode_detector.json │ │ │ ├── machine.json │ │ │ ├── machine_frame_advanced.json │ │ │ ├── machine_frame_basic.json │ │ │ ├── tin_block.json │ │ │ ├── tin_button.json │ │ │ ├── tin_button_inventory.json │ │ │ ├── tin_button_pressed.json │ │ │ ├── tin_door_bottom.json │ │ │ ├── tin_door_bottom_rh.json │ │ │ ├── tin_door_top.json │ │ │ ├── tin_door_top_rh.json │ │ │ ├── tin_fence_gate_closed.json │ │ │ ├── tin_fence_gate_open.json │ │ │ ├── tin_fence_post.json │ │ │ ├── tin_fence_side.json │ │ │ ├── tin_inner_stairs.json │ │ │ ├── tin_ore.json │ │ │ ├── tin_ore_end.json │ │ │ ├── tin_ore_nether.json │ │ │ ├── tin_ore_overworld.json │ │ │ ├── tin_outer_stairs.json │ │ │ ├── tin_pressure_plate_down.json │ │ │ ├── tin_pressure_plate_up.json │ │ │ ├── tin_slab_bottom.json │ │ │ ├── tin_slab_top.json │ │ │ ├── tin_stairs.json │ │ │ ├── tin_wall_gate_closed.json │ │ │ └── tin_wall_gate_open.json │ │ └── item │ │ │ ├── block_breaker_advanced.json │ │ │ ├── block_breaker_basic.json │ │ │ ├── canvas.json │ │ │ ├── chip_advanced.json │ │ │ ├── chip_basic.json │ │ │ ├── cotton.json │ │ │ ├── double_furnace.json │ │ │ ├── energy_cell_advanced.json │ │ │ ├── energy_cell_basic.json │ │ │ ├── fabric.json │ │ │ ├── furnace_generator_advanced.json │ │ │ ├── furnace_generator_basic.json │ │ │ ├── gamemode_detector.json │ │ │ ├── heart.json │ │ │ ├── infinity_flame.json │ │ │ ├── machine_frame_advanced.json │ │ │ ├── machine_frame_basic.json │ │ │ ├── nice_biscuit.json │ │ │ ├── paint_brush.json │ │ │ ├── soul_stealer.json │ │ │ ├── tin_apple.json │ │ │ ├── tin_axe.json │ │ │ ├── tin_block.json │ │ │ ├── tin_boots.json │ │ │ ├── tin_button.json │ │ │ ├── tin_chestplate.json │ │ │ ├── tin_door.json │ │ │ ├── tin_fence.json │ │ │ ├── tin_fence_gate.json │ │ │ ├── tin_helmet.json │ │ │ ├── tin_hoe.json │ │ │ ├── tin_ingot.json │ │ │ ├── tin_leggings.json │ │ │ ├── tin_nugget.json │ │ │ ├── tin_ore.json │ │ │ ├── tin_ore_end.json │ │ │ ├── tin_ore_nether.json │ │ │ ├── tin_ore_overworld.json │ │ │ ├── tin_pickaxe.json │ │ │ ├── tin_pressure_plate.json │ │ │ ├── tin_shovel.json │ │ │ ├── tin_slab_half.json │ │ │ ├── tin_stairs.json │ │ │ ├── tin_stick.json │ │ │ └── tin_sword.json │ │ ├── sounds.json │ │ ├── sounds │ │ └── block │ │ │ ├── tin_button │ │ │ ├── click_off.ogg │ │ │ └── click_on.ogg │ │ │ └── tin_fence_gate │ │ │ ├── close.ogg │ │ │ └── open.ogg │ │ ├── structures │ │ └── cabin.nbt │ │ └── textures │ │ ├── blocks │ │ ├── block_breaker_advanced.png │ │ ├── block_breaker_advanced_front.png │ │ ├── block_breaker_advanced_front_activated.png │ │ ├── block_breaker_advanced_front_activated.png.mcmeta │ │ ├── block_breaker_basic.png │ │ ├── block_breaker_basic_front.png │ │ ├── block_breaker_basic_front_activated.png │ │ ├── block_breaker_basic_front_activated.png.mcmeta │ │ ├── block_breaker_front_advanced.png │ │ ├── block_breaker_front_advanced_activated.png │ │ ├── block_breaker_front_advanced_activated.png.mcmeta │ │ ├── block_breaker_front_basic.png │ │ ├── block_breaker_front_basic_activated.png │ │ ├── block_breaker_front_basic_activated.png.mcmeta │ │ ├── block_breaker_side_advanced.png │ │ ├── block_breaker_side_basic.png │ │ ├── block_placer_side_advanced.png │ │ ├── block_placer_side_basic.png │ │ ├── canvas.png │ │ ├── canvas_core.png │ │ ├── cotton_stage_0.png │ │ ├── cotton_stage_1.png │ │ ├── cotton_stage_2.png │ │ ├── cotton_stage_3.png │ │ ├── cotton_stage_4.png │ │ ├── cotton_stage_5.png │ │ ├── cotton_stage_6.png │ │ ├── cotton_stage_7.png │ │ ├── ctm │ │ │ ├── canvas.ctx │ │ │ ├── canvas.png │ │ │ ├── machine_advanced.ctx │ │ │ ├── machine_advanced.png │ │ │ ├── machine_basic.ctx │ │ │ └── machine_basic.png │ │ ├── door_tin_lower.png │ │ ├── door_tin_upper.png │ │ ├── double_furnace_front_off.png │ │ ├── double_furnace_front_on.png │ │ ├── energy_cell.png │ │ ├── energy_cell.png.mcmeta │ │ ├── energy_cell_centre_advanced.png │ │ ├── energy_cell_centre_advanced.png.mcmeta │ │ ├── energy_cell_centre_basic.png │ │ ├── energy_cell_centre_basic.png.mcmeta │ │ ├── energy_cell_strip_in.png │ │ ├── energy_cell_strip_in.png.mcmeta │ │ ├── energy_cell_strip_normal.png │ │ ├── energy_cell_strip_out.png │ │ ├── energy_cell_strip_out.png.mcmeta │ │ ├── furnace_generator_front_advanced.png │ │ ├── furnace_generator_front_advanced_activated.png │ │ ├── furnace_generator_front_basic.png │ │ ├── furnace_generator_front_basic_activated.png │ │ ├── gamemode_detector.png │ │ ├── machine_advanced.png │ │ ├── machine_basic.png │ │ ├── tin_block.png │ │ ├── tin_ore.png │ │ ├── tin_ore_end.png │ │ └── tin_ore_nether.png │ │ ├── gui │ │ └── container │ │ │ ├── block_breaker.png │ │ │ ├── double_furnace.png │ │ │ ├── energy_cell.png │ │ │ └── furnace_generator.png │ │ ├── items │ │ ├── chip_advanced.png │ │ ├── chip_basic.png │ │ ├── cotton.png │ │ ├── door_tin.png │ │ ├── fabric.png │ │ ├── heart.png │ │ ├── infinity_flame.png │ │ ├── nice_biscuit.png │ │ ├── paint_brush_0.png │ │ ├── paint_brush_1.png │ │ ├── soul_stealer.png │ │ ├── tin_apple.png │ │ ├── tin_axe.png │ │ ├── tin_boots.png │ │ ├── tin_chestplate.png │ │ ├── tin_helmet.png │ │ ├── tin_hoe.png │ │ ├── tin_ingot.png │ │ ├── tin_leggings.png │ │ ├── tin_nugget.png │ │ ├── tin_pickaxe.png │ │ ├── tin_shovel.png │ │ ├── tin_stick.png │ │ └── tin_sword.png │ │ └── models │ │ └── armor │ │ ├── tin_layer_1.png │ │ └── tin_layer_2.png │ └── mcmod.info └── update.json /.gitignore: -------------------------------------------------------------------------------- 1 | # eclipse 2 | bin 3 | *.launch 4 | .settings 5 | .metadata 6 | .classpath 7 | .project 8 | 9 | # idea 10 | out 11 | *.ipr 12 | *.iws 13 | *.iml 14 | .idea 15 | 16 | # gradle 17 | build 18 | .gradle 19 | 20 | # other 21 | eclipse 22 | run 23 | libs -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BitOfEverything 2 | ## About the mod 3 | BitOfEverything is a mod aimed at adding everything that may be essential for your Minecraft Modded needs. It aims at providing useful and awesome blocks and items which will improve your gaming experience. 4 | 5 | ## Can I use this mod in a mod pack? 6 | Yes you can but please notify me so I can see where my mod is being used (you don't have to but it would be nice) 7 | 8 | ## Can I use the code for my own mod? 9 | Of course! My mod is open source and means that anyone can use my code but please don't claim any code as your own :D 10 | 11 | ## Modding Tutorials 12 | This mod is part of my modding tutorials series over on YouTube so it would be nice if you could check that out and see how my code is being used! 13 | 14 | http://www.youtube.com/cjminecraft 15 | -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | maven { url = "http://files.minecraftforge.net/maven" } 5 | } 6 | dependencies { 7 | classpath 'net.minecraftforge.gradle:ForgeGradle:2.2-SNAPSHOT' 8 | } 9 | } 10 | apply plugin: 'net.minecraftforge.gradle.forge' 11 | //Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. 12 | 13 | version = "0.0.1" 14 | archivesBaseName = "bitofeverything" 15 | group = "cjminecraft.bitofeverything" // http://maven.apache.org/guides/mini/guide-naming-conventions.html 16 | 17 | sourceCompatibility = targetCompatibility = "1.8" // Need this here so eclipse task generates correctly. 18 | compileJava { 19 | sourceCompatibility = targetCompatibility = "1.8" 20 | } 21 | 22 | minecraft { 23 | version = "1.11.2-13.20.1.2588" 24 | runDir = "run" 25 | mappings = "snapshot_20170612" 26 | } 27 | 28 | repositories { 29 | maven { 30 | name = "ic2" 31 | url = "http://maven.ic2.player.to/" 32 | } 33 | 34 | maven { 35 | url = 'https://jitpack.io' 36 | } 37 | } 38 | 39 | dependencies { 40 | compile 'net.industrial-craft:industrialcraft-2:2.7.9-ex111:api' 41 | compile 'com.github.CJMinecraft01:CJCore:1.11-SNAPSHOT' 42 | } 43 | 44 | processResources { 45 | // this will ensure that this task is redone when the versions change. 46 | inputs.property "version", project.version 47 | inputs.property "mcversion", project.minecraft.version 48 | 49 | // replace stuff in mcmod.info, nothing else 50 | from(sourceSets.main.resources.srcDirs) { 51 | include 'mcmod.info' 52 | 53 | // replace version and mcversion 54 | expand 'version':project.version, 'mcversion':project.minecraft.version 55 | } 56 | 57 | // copy everything else except the mcmod.info 58 | from(sourceSets.main.resources.srcDirs) { 59 | exclude 'mcmod.info' 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Sets default memory used for gradle commands. Can be overridden by user or command line properties. 2 | # This is required to provide enough memory for the Minecraft decompilation process. 3 | org.gradle.jvmargs=-Xmx3G 4 | cjcore_version=1.11-SNAPSHOT 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Mon Aug 06 16:54:12 BST 2018 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.2-bin.zip 7 | -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /server.properties: -------------------------------------------------------------------------------- 1 | #Minecraft server properties 2 | #Sat Jul 01 12:21:20 BST 2017 3 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/Reference.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything; 2 | 3 | /** 4 | * This class handles all of our constants about the mod and its details 5 | * 6 | * @author CJMinecraft 7 | * 8 | */ 9 | public class Reference { 10 | 11 | /** 12 | * Generic modid used for models and registering textures 13 | */ 14 | public static final String MODID = "boe"; 15 | /** 16 | * The mod's name 17 | */ 18 | public static final String NAME = "BitOfEverything"; 19 | /** 20 | * Current version TODO Update version 21 | */ 22 | public static final String VERSION = "0.0.1"; 23 | /** 24 | * Where the server proxy is found 25 | */ 26 | public static final String SERVER_PROXY_CLASS = "cjminecraft.bitofeverything.proxy.ServerProxy"; 27 | /** 28 | * Where the client proxy is found 29 | */ 30 | public static final String CLIENT_PROXY_CLASS = "cjminecraft.bitofeverything.proxy.ClientProxy"; 31 | 32 | /** 33 | * Where our gui factory if found 34 | */ 35 | public static final String GUI_FACTORY = "cjminecraft.bitofeverything.config.BoeConfigGuiFactory"; 36 | 37 | public static final String VERSION_CHECKER_URL = "https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/master/update.json"; 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockCotton.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.init.ModItems; 5 | import net.minecraft.block.BlockCrops; 6 | import net.minecraft.init.Items; 7 | import net.minecraft.item.Item; 8 | import net.minecraft.util.ResourceLocation; 9 | 10 | /** 11 | * A crop which will craft to make fabric 12 | * 13 | * @author CJMinecraft 14 | * 15 | */ 16 | public class BlockCotton extends BlockCrops { 17 | 18 | /** 19 | * Initialize the crop 20 | * 21 | * @param unloclaizedName 22 | * The unlocalized name of the block 23 | */ 24 | public BlockCotton(String unloclaizedName) { 25 | this.setUnlocalizedName(unloclaizedName); 26 | this.setRegistryName(new ResourceLocation(Reference.MODID, unloclaizedName)); 27 | } 28 | 29 | /** 30 | * Get the seed. e.g {@link Items#WHEAT_SEEDS} 31 | */ 32 | @Override 33 | protected Item getSeed() { 34 | return ModItems.cotton; 35 | } 36 | 37 | /** 38 | * Get the crop. e.g. {@link Items#WHEAT} 39 | */ 40 | @Override 41 | protected Item getCrop() { 42 | return ModItems.cotton; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockMachineFrame.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | import cjminecraft.bitofeverything.handlers.EnumHandler.ChipTypes; 4 | import net.minecraft.creativetab.CreativeTabs; 5 | import net.minecraft.item.Item; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.util.NonNullList; 8 | 9 | /** 10 | * Simple instance of the {@link BlockMachine} Used for crafting only I have 11 | * this class just in case I want to make it have a tooltip 12 | * 13 | * @author CJMinecraft 14 | * 15 | */ 16 | public class BlockMachineFrame extends BlockMachine { 17 | 18 | /** 19 | * Default constructor 20 | * 21 | * @param unlocalizedName 22 | * The block's unlocalizedName 23 | */ 24 | public BlockMachineFrame(String unlocalizedName) { 25 | super(unlocalizedName); 26 | } 27 | 28 | @Override 29 | public void getSubBlocks(Item item, CreativeTabs tab, NonNullList list) { 30 | for (int i = 0; i < ChipTypes.values().length; i++) 31 | list.add(new ItemStack(item, 1, i)); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockTinBlock.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.block.Block; 5 | import net.minecraft.block.material.Material; 6 | import net.minecraft.util.ResourceLocation; 7 | 8 | /** 9 | * A block of tin, similar to an iron block 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class BlockTinBlock extends Block { 15 | 16 | /** 17 | * Default constructor which sets the hardness and resistance 18 | * 19 | * @param unlocalizedName 20 | * The unlocalized name 21 | */ 22 | public BlockTinBlock(String unlocalizedName) { 23 | super(Material.IRON); 24 | this.setUnlocalizedName(unlocalizedName); 25 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 26 | this.setHardness(3); 27 | this.setResistance(20); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockTinButton.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.handlers.BoeSoundHandler; 5 | import net.minecraft.block.BlockButton; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.util.ResourceLocation; 8 | import net.minecraft.util.SoundCategory; 9 | import net.minecraft.util.math.BlockPos; 10 | import net.minecraft.world.World; 11 | 12 | /** 13 | * A block which is like a button 14 | * 15 | * @author CJMinecraft 16 | * 17 | */ 18 | public class BlockTinButton extends BlockButton { 19 | 20 | /** 21 | * Default constructor 22 | * 23 | * @param unlocalizedName 24 | * The unlocalized name of the block 25 | */ 26 | public BlockTinButton(String unlocalizedName) { 27 | super(false); // Says that the block is not a wooden button 28 | this.setUnlocalizedName(unlocalizedName); 29 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 30 | this.setHardness(3); 31 | this.setResistance(20); 32 | } 33 | 34 | /** 35 | * Plays our custom sound when you press it 36 | */ 37 | @Override 38 | protected void playClickSound(EntityPlayer player, World worldIn, BlockPos pos) { 39 | worldIn.playSound(player, pos, BoeSoundHandler.TIN_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 1.0F, 1.0F); 40 | } 41 | 42 | /** 43 | * Plays our custom sound when you press it 44 | */ 45 | @Override 46 | protected void playReleaseSound(World worldIn, BlockPos pos) { 47 | worldIn.playSound((EntityPlayer) null, pos, BoeSoundHandler.TIN_BUTTON_CLICK_OFF, SoundCategory.BLOCKS, 1.0F, 48 | 1.0F); 49 | } 50 | 51 | /** 52 | * How long the button emits a redstone signal 53 | */ 54 | @Override 55 | public int tickRate(World worldIn) { 56 | return 15; 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockTinFence.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.block.BlockFence; 5 | import net.minecraft.block.material.MapColor; 6 | import net.minecraft.block.material.Material; 7 | import net.minecraft.util.ResourceLocation; 8 | 9 | /** 10 | * A tin version of a fence 11 | * 12 | * @author CJMinecraft 13 | * 14 | */ 15 | public class BlockTinFence extends BlockFence { 16 | 17 | public BlockTinFence(String unlocalizedName) { 18 | super(Material.IRON, Material.IRON.getMaterialMapColor()); //The block fence class wants us to also put in the materials map colour 19 | this.setUnlocalizedName(unlocalizedName); 20 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 21 | this.setHardness(3); 22 | this.setResistance(20); 23 | this.useNeighborBrightness = true; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockTinPressurePlate.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.block.BlockPressurePlateWeighted; 5 | import net.minecraft.block.material.Material; 6 | import net.minecraft.util.ResourceLocation; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | 10 | /** 11 | * A block which acts like a pressure plate 12 | * 13 | * @author CJMinecraft 14 | * 15 | */ 16 | public class BlockTinPressurePlate extends BlockPressurePlateWeighted { 17 | 18 | /** 19 | * Default constructor 20 | * 21 | * @param unlocalizedName 22 | * The unlocalized name of the block 23 | */ 24 | public BlockTinPressurePlate(String unlocalizedName) { 25 | super(Material.IRON, 10); 26 | this.setUnlocalizedName(unlocalizedName); 27 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 28 | this.setHardness(3); 29 | this.setResistance(20); 30 | } 31 | 32 | /** 33 | * Change this if you want to emit a redstone signal different to that of a 34 | * weighted pressure plate 35 | */ 36 | @Override 37 | protected int computeRedstoneStrength(World worldIn, BlockPos pos) { 38 | return super.computeRedstoneStrength(worldIn, pos); 39 | } 40 | 41 | /** 42 | * Change this to play your own click on sound 43 | */ 44 | @Override 45 | protected void playClickOffSound(World worldIn, BlockPos pos) { 46 | super.playClickOffSound(worldIn, pos); 47 | } 48 | 49 | /** 50 | * Change this to play your own click off sound 51 | */ 52 | @Override 53 | protected void playClickOnSound(World worldIn, BlockPos color) { 54 | super.playClickOnSound(worldIn, color); 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockTinSlabDouble.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | /** 4 | * A half slab which gets its properties from the tin slab 5 | * 6 | * @author CJMinecraft 7 | * 8 | */ 9 | public class BlockTinSlabDouble extends BlockTinSlab { 10 | 11 | public BlockTinSlabDouble(String unlocalizedName) { 12 | super(unlocalizedName); 13 | } 14 | 15 | /** 16 | * Says that this block is the double version of the tin slab 17 | */ 18 | @Override 19 | public boolean isDouble() { 20 | return true; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockTinSlabHalf.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | /** 4 | * A half slab which gets its properties from the tin slab 5 | * 6 | * @author CJMinecraft 7 | * 8 | */ 9 | public class BlockTinSlabHalf extends BlockTinSlab { 10 | 11 | public BlockTinSlabHalf(String unlocalizedName) { 12 | super(unlocalizedName); 13 | } 14 | 15 | /** 16 | * Says that it isn't the double version of the block 17 | */ 18 | @Override 19 | public boolean isDouble() { 20 | return false; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/BlockTinStairs.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.block.BlockStairs; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.util.ResourceLocation; 7 | 8 | /** 9 | * A block representing a default instance of stairs 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class BlockTinStairs extends BlockStairs { 15 | 16 | /** 17 | * Initialise custom stairs 18 | * 19 | * @param unlocalizedName 20 | * The unlocalized name of the stairs 21 | * @param state 22 | * The block which the stairs is made out of (i.e. the tin block 23 | * for tin stairs) 24 | */ 25 | public BlockTinStairs(String unlocalizedName, IBlockState state) { 26 | super(state); 27 | this.setUnlocalizedName(unlocalizedName); 28 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 29 | this.setHardness(3); 30 | this.setResistance(20); 31 | this.useNeighborBrightness = true; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/item/IMetaBlockName.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks.item; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | /** 6 | * Used for any block which has meta data 7 | * 8 | * @author CJMinecraft 9 | * 10 | */ 11 | public interface IMetaBlockName { 12 | 13 | /** 14 | * Should return the name of the variant i.e. when we have the block breaker 15 | * we have two types, Basic and Advanced, I just used "basic" and "advanced" 16 | * for the correct item damage 17 | * Refer to {@link ItemStack}.getItemDamage() to get the correct damage 18 | * 19 | * @param stack The stack 20 | * @return The name of the variant that specific item is 21 | */ 22 | String getSpecialName(ItemStack stack); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/item/ItemBlockBreaker.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks.item; 2 | 3 | import cjminecraft.bitofeverything.blocks.BlockBreaker; 4 | import net.minecraft.block.Block; 5 | import net.minecraft.item.ItemBlock; 6 | import net.minecraft.item.ItemStack; 7 | 8 | /** 9 | * Used for the block breaker. This is exactly the same as the {@link ItemBlockMeta} class 10 | * This is for if I want the {@link BlockBreaker} to have a tool tip 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class ItemBlockBreaker extends ItemBlock { 15 | 16 | /** 17 | * Default {@link ItemBlock} constructor 18 | * @param block The original block 19 | */ 20 | public ItemBlockBreaker(Block block) { 21 | super(block); 22 | if(!(block instanceof IMetaBlockName)) { //Makes sure that the block implements IMetaBlockName 23 | throw new IllegalArgumentException(String.format("The given Block %s is not an instance of IMetaBlockName!", block.getUnlocalizedName())); 24 | } 25 | this.setHasSubtypes(true); //Says the block has meta data 26 | this.setMaxDamage(0); 27 | } 28 | 29 | /** 30 | * Changes the unlocalized name 31 | */ 32 | @Override 33 | public String getUnlocalizedName(ItemStack stack) { 34 | return super.getUnlocalizedName() + "." + ((IMetaBlockName) this.block).getSpecialName(stack); 35 | } 36 | 37 | /** 38 | * Fixes a bug with not placing the correct variant of the block 39 | * THIS IS NEEDED 40 | */ 41 | public int getMetadata(int damage) { 42 | return damage; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/item/ItemBlockMachine.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks.item; 2 | 3 | import java.util.List; 4 | 5 | import cjminecraft.core.energy.EnergyUtils; 6 | import cjminecraft.core.energy.compat.ItemBlockEnergy; 7 | import cjminecraft.core.energy.compat.forge.CustomForgeEnergyStorage; 8 | import cjminecraft.core.energy.compat.forge.ForgeEnergyCapabilityProvider; 9 | import net.minecraft.block.Block; 10 | import net.minecraft.entity.player.EntityPlayer; 11 | import net.minecraft.item.ItemBlock; 12 | import net.minecraft.item.ItemStack; 13 | import net.minecraft.nbt.NBTTagCompound; 14 | import net.minecraftforge.common.capabilities.ICapabilityProvider; 15 | 16 | public class ItemBlockMachine extends ItemBlockEnergy { 17 | 18 | /** 19 | * Default {@link ItemBlock} constructor 20 | * @param block The original block 21 | */ 22 | public ItemBlockMachine(Block block) { 23 | super(block, 100000, 1000, 1000); 24 | if(!(block instanceof IMetaBlockName)) { //Makes sure that the block implements IMetaBlockName 25 | throw new IllegalArgumentException(String.format("The given Block %s is not an instance of IMetaBlockName!", block.getUnlocalizedName())); 26 | } 27 | this.setHasSubtypes(true); //Says the block has meta data 28 | this.setMaxDamage(0); 29 | } 30 | 31 | /** 32 | * Changes the unlocalized name 33 | */ 34 | @Override 35 | public String getUnlocalizedName(ItemStack stack) { 36 | return super.getUnlocalizedName() + "." + ((IMetaBlockName) this.block).getSpecialName(stack); 37 | } 38 | 39 | /** 40 | * Fixes a bug with not placing the correct variant of the block 41 | * THIS IS NEEDED 42 | */ 43 | public int getMetadata(int damage) { 44 | return damage; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/blocks/item/ItemBlockMeta.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.blocks.item; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.item.ItemBlock; 5 | import net.minecraft.item.ItemStack; 6 | 7 | /** 8 | * This should be used for any block that uses meta data. 9 | * Make sure to have your block implement IMetaBlockName 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class ItemBlockMeta extends ItemBlock { 14 | 15 | /** 16 | * Default {@link ItemBlock} constructor 17 | * @param block The original block 18 | */ 19 | public ItemBlockMeta(Block block) { 20 | super(block); 21 | if(!(block instanceof IMetaBlockName)) { //Makes sure that the block implements IMetaBlockName 22 | throw new IllegalArgumentException(String.format("The given Block %s is not an instance of IMetaBlockName!", block.getUnlocalizedName())); 23 | } 24 | this.setHasSubtypes(true); //Says the block has meta data 25 | this.setMaxDamage(0); 26 | } 27 | 28 | /** 29 | * Changes the unlocalized name 30 | */ 31 | @Override 32 | public String getUnlocalizedName(ItemStack stack) { 33 | return super.getUnlocalizedName() + "." + ((IMetaBlockName) this.block).getSpecialName(stack); 34 | } 35 | 36 | /** 37 | * Fixes a bug with not placing the correct variant of the block 38 | * THIS IS NEEDED 39 | */ 40 | public int getMetadata(int damage) { 41 | return damage; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/capabilties/IWork.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.capabilties; 2 | 3 | import cjminecraft.bitofeverything.init.ModCapabilities; 4 | import net.minecraft.tileentity.TileEntity; 5 | 6 | /** 7 | * An interface which represents a {@link TileEntity} which will "do work". The 8 | * interface representation of {@link ModCapabilities#CAPABILITY_WORKER} 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public interface IWork { 14 | 15 | /** 16 | * Return the current work that has been done 17 | * 18 | * @return the current work that has been done 19 | */ 20 | int getWorkDone(); 21 | 22 | /** 23 | * Return the maximum amount of work the {@link TileEntity} can do 24 | * 25 | * @return the maximum value for the "cooldown" 26 | */ 27 | int getMaxWork(); 28 | 29 | /** 30 | * Called when every tick by the {@link TileEntity} Typically will update 31 | * the "cooldown" value 32 | */ 33 | void doWork(); 34 | 35 | /** 36 | * Called when the work has been completed i.e. when the cooldown has reset 37 | */ 38 | void workDone(); 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/capabilties/Worker.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.capabilties; 2 | 3 | import cjminecraft.bitofeverything.init.ModCapabilities; 4 | import net.minecraft.nbt.NBTTagCompound; 5 | import net.minecraft.util.ITickable; 6 | import net.minecraftforge.common.util.INBTSerializable; 7 | 8 | /** 9 | * The default implementation of the {@link ModCapabilities#CAPABILITY_WORKER} 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class Worker implements IWork, INBTSerializable { 15 | 16 | private int cooldown; 17 | private int maxCooldown; 18 | private boolean reversed; 19 | 20 | /** 21 | * What will be ran in the {@link #doWork()} and {@link #workDone()} methods 22 | */ 23 | private Runnable doWork, workDone; 24 | 25 | /** 26 | * Create an instance of the {@link ModCapabilities#CAPABILITY_WORKER} which 27 | * will do work 28 | * 29 | * @param maxCooldown 30 | * The maximum number of ticks until work is done 31 | * @param doWork 32 | * What will happen every tick 33 | * @param workDone 34 | * What will happen when the work is completed 35 | */ 36 | public Worker(int maxCooldown, Runnable doWork, Runnable workDone) { 37 | this.cooldown = 0; 38 | this.maxCooldown = maxCooldown; 39 | this.doWork = doWork; 40 | this.workDone = workDone; 41 | } 42 | 43 | /** 44 | * Set the maximum number of ticks until work is done 45 | * 46 | * @param maxCooldown 47 | * The maximum number of ticks until work is done 48 | * @return The updated {@link Worker} 49 | */ 50 | public Worker setMaxCooldown(int maxCooldown) { 51 | this.maxCooldown = maxCooldown; 52 | return this; 53 | } 54 | 55 | /** 56 | * Get the cooldown 57 | */ 58 | @Override 59 | public int getWorkDone() { 60 | return this.cooldown; 61 | } 62 | 63 | /** 64 | * Get the cooldown cap or max cooldown 65 | */ 66 | @Override 67 | public int getMaxWork() { 68 | return this.maxCooldown; 69 | } 70 | 71 | public void setReversed(boolean reversed) { 72 | this.reversed = reversed; 73 | } 74 | 75 | public boolean isReversed() { 76 | return this.reversed; 77 | } 78 | 79 | /** 80 | * To be called every tick using {@link ITickable} 81 | */ 82 | @Override 83 | public void doWork() { 84 | if (this.reversed) 85 | this.cooldown--; 86 | else 87 | this.cooldown++; 88 | this.doWork.run(); 89 | if (this.cooldown == this.maxCooldown) 90 | workDone(); 91 | if (this.maxCooldown != 0) 92 | this.cooldown %= this.maxCooldown; // Caps the cooldown to the max cooldown 93 | 94 | if (this.cooldown < 0) 95 | this.cooldown = 0; 96 | } 97 | 98 | /** 99 | * To be used internally, called when the work has been done 100 | */ 101 | @Override 102 | public void workDone() { 103 | this.workDone.run(); 104 | } 105 | 106 | /** 107 | * Write all data to an {@link NBTTagCompound} 108 | */ 109 | @Override 110 | public NBTTagCompound serializeNBT() { 111 | NBTTagCompound nbt = new NBTTagCompound(); 112 | nbt.setInteger("cooldown", this.cooldown); 113 | nbt.setInteger("maxCooldown", this.maxCooldown); 114 | return nbt; 115 | } 116 | 117 | /** 118 | * Read all data from an {@link NBTTagCompound} 119 | */ 120 | @Override 121 | public void deserializeNBT(NBTTagCompound nbt) { 122 | this.cooldown = nbt.getInteger("cooldown"); 123 | this.maxCooldown = nbt.getInteger("maxCooldown"); 124 | } 125 | 126 | } 127 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/client/gui/GuiDoubleFurnace.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.client.gui; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.container.ContainerDoubleFurnace; 5 | import cjminecraft.bitofeverything.network.PacketGetWorker; 6 | import cjminecraft.bitofeverything.network.PacketHandler; 7 | import cjminecraft.bitofeverything.tileentity.TileEntityDoubleFurnace; 8 | import cjminecraft.core.client.gui.GuiBase; 9 | import cjminecraft.core.client.gui.element.ElementProgressBar; 10 | import cjminecraft.core.client.gui.element.ElementProgressBar.ProgressBarDirection; 11 | import net.minecraft.entity.player.EntityPlayer; 12 | import net.minecraft.inventory.Container; 13 | import net.minecraft.util.EnumFacing; 14 | import net.minecraft.util.ResourceLocation; 15 | 16 | public class GuiDoubleFurnace extends GuiBase { 17 | 18 | public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.MODID, "textures/gui/container/double_furnace.png"); 19 | 20 | private static int sync = 0; 21 | 22 | public static int burnMin = 1, burnMax = 1; 23 | public static int cookMin = 0, cookMax = 1; 24 | 25 | private TileEntityDoubleFurnace te; 26 | 27 | public GuiDoubleFurnace(EntityPlayer player, TileEntityDoubleFurnace te) { 28 | super(new ContainerDoubleFurnace(player, te), TEXTURE); 29 | setGuiSize(176, 166); 30 | this.te = te; 31 | this.name = "container.double_furnace"; 32 | } 33 | 34 | @Override 35 | public void initGui() { 36 | super.initGui(); 37 | addElement(new ElementProgressBar(this, 56, 36, 14, 14).setDirection(ProgressBarDirection.UP_TO_DOWN).setTextureUV(176, 0).setTexture(TEXTURE, 256, 256)); 38 | addElement(new ElementProgressBar(this, 79, 34, 24, 18).setDirection(ProgressBarDirection.LEFT_TO_RIGHT).setTextureUV(176, 14).setTexture(TEXTURE, 256, 256)); 39 | } 40 | 41 | @Override 42 | protected void updateElementInformation() { 43 | super.updateElementInformation(); 44 | 45 | if (burnMin == 0) 46 | burnMin = burnMax; 47 | 48 | ((ElementProgressBar) this.elements.get(0)).setMin(burnMin).setMax(burnMax); 49 | ((ElementProgressBar) this.elements.get(1)).setMin(cookMin).setMax(cookMax); 50 | 51 | sync++; 52 | sync %= 10; 53 | if (sync == 0) { 54 | PacketHandler.INSTANCE.sendToServer(new PacketGetWorker(this.te.getPos(), EnumFacing.NORTH, "cjminecraft.bitofeverything.client.gui.GuiDoubleFurnace", "burnMin", "burnMax")); 55 | PacketHandler.INSTANCE.sendToServer(new PacketGetWorker(this.te.getPos(), EnumFacing.SOUTH, "cjminecraft.bitofeverything.client.gui.GuiDoubleFurnace", "cookMin", "cookMax")); 56 | } 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/client/gui/GuiEnergyCell.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.client.gui; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.container.ContainerEnergyCell; 5 | import cjminecraft.bitofeverything.tileentity.TileEntityEnergyCell; 6 | import cjminecraft.core.client.gui.GuiBase; 7 | import cjminecraft.core.client.gui.element.ElementEnergyBar; 8 | import net.minecraft.inventory.IInventory; 9 | import net.minecraft.util.ResourceLocation; 10 | 11 | /** 12 | * The gui for the energy cell 13 | * 14 | * @author CJMinecraft 15 | * 16 | */ 17 | public class GuiEnergyCell extends GuiBase { 18 | 19 | /** 20 | * The background texture of the energy cell 21 | */ 22 | public static final ResourceLocation TEXTURE = new ResourceLocation(Reference.MODID, 23 | "textures/gui/container/energy_cell.png"); 24 | 25 | /** 26 | * The {@link TileEntityEnergyCell} for the syncing of the 27 | * {@link ElementEnergyBar} 28 | */ 29 | private TileEntityEnergyCell te; 30 | 31 | /** 32 | * Initialise the gui for the energy cell 33 | * 34 | * @param playerInv 35 | * The player's inventory (for the container) 36 | * @param te 37 | * The {@link TileEntityEnergyCell} for syncing and the container 38 | */ 39 | public GuiEnergyCell(IInventory playerInv, TileEntityEnergyCell te) { 40 | // Sets the background texture 41 | super(new ContainerEnergyCell(playerInv, te), TEXTURE); 42 | setGuiSize(176, 166); // Set the gui size 43 | this.te = te; 44 | this.name = "container.energy_cell"; // Will automatically be localised 45 | // using CJCore 46 | } 47 | 48 | /** 49 | * Where we add all our gui elements 50 | */ 51 | @Override 52 | public void initGui() { 53 | super.initGui(); 54 | addElement(new ElementEnergyBar(this, 79, 16, 18, 56).shouldSync(this.te.getPos(), null)); 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/client/gui/GuiHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.client.gui; 2 | 3 | import cjminecraft.bitofeverything.container.ContainerBlockBreaker; 4 | import cjminecraft.bitofeverything.container.ContainerDoubleFurnace; 5 | import cjminecraft.bitofeverything.container.ContainerEnergyCell; 6 | import cjminecraft.bitofeverything.container.ContainerFurnaceGenerator; 7 | import cjminecraft.bitofeverything.tileentity.TileEntityBlockBreaker; 8 | import cjminecraft.bitofeverything.tileentity.TileEntityDoubleFurnace; 9 | import cjminecraft.bitofeverything.tileentity.TileEntityEnergyCell; 10 | import cjminecraft.bitofeverything.tileentity.TileEntityFurnaceGenerator; 11 | import cjminecraft.core.energy.compat.TileEntityEnergyConsumer; 12 | import net.minecraft.entity.player.EntityPlayer; 13 | import net.minecraft.util.math.BlockPos; 14 | import net.minecraft.world.World; 15 | import net.minecraftforge.fml.common.network.IGuiHandler; 16 | 17 | /** 18 | * Handles all of the gui's 19 | * 20 | * @author CJMinecraft 21 | * 22 | */ 23 | public class GuiHandler implements IGuiHandler { 24 | 25 | /** 26 | * Each gui needs an ID 27 | */ 28 | public static final int BLOCK_BREAKER = 0; 29 | public static final int ENERGY_CELL = 1; 30 | public static final int FURNACE_GENERATOR = 2; 31 | public static final int DOUBLE_FURNACE = 3; 32 | 33 | /** 34 | * Should return the container for that gui. This is called server side 35 | * because servers handle items in guis 36 | */ 37 | @Override 38 | public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { 39 | BlockPos pos = new BlockPos(x, y, z); 40 | switch (ID) { 41 | case BLOCK_BREAKER: 42 | return new ContainerBlockBreaker(player.inventory, (TileEntityBlockBreaker) world.getTileEntity(pos)); 43 | case ENERGY_CELL: 44 | return new ContainerEnergyCell(player.inventory, (TileEntityEnergyCell) world.getTileEntity(pos)); 45 | case FURNACE_GENERATOR: 46 | return new ContainerFurnaceGenerator(player.inventory, 47 | (TileEntityFurnaceGenerator) world.getTileEntity(pos)); 48 | case DOUBLE_FURNACE: 49 | return new ContainerDoubleFurnace(player, (TileEntityDoubleFurnace) world.getTileEntity(pos)); 50 | } 51 | return null; 52 | } 53 | 54 | /** 55 | * Should return the actual gui. This is called client side as thats where 56 | * guis are rendered 57 | */ 58 | @Override 59 | public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { 60 | BlockPos pos = new BlockPos(x, y, z); 61 | switch (ID) { 62 | case BLOCK_BREAKER: 63 | return new GuiBlockBreaker(player.inventory, (TileEntityBlockBreaker) world.getTileEntity(pos)); 64 | case ENERGY_CELL: 65 | return new GuiEnergyCell(player.inventory, (TileEntityEnergyCell) world.getTileEntity(pos)); 66 | case FURNACE_GENERATOR: 67 | return new GuiFurnaceGenerator(player.inventory, (TileEntityFurnaceGenerator) world.getTileEntity(pos)); 68 | case DOUBLE_FURNACE: 69 | return new GuiDoubleFurnace(player, (TileEntityDoubleFurnace) world.getTileEntity(pos)); 70 | } 71 | return null; 72 | } 73 | 74 | } 75 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/container/ContainerDoubleFurnace.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.container; 2 | 3 | import cjminecraft.bitofeverything.container.slots.SlotFurnaceFuel; 4 | import cjminecraft.bitofeverything.container.slots.SlotFurnaceOutput; 5 | import cjminecraft.bitofeverything.tileentity.TileEntityDoubleFurnace; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.inventory.Container; 8 | import net.minecraft.inventory.Slot; 9 | import net.minecraft.item.ItemStack; 10 | import net.minecraft.tileentity.TileEntityFurnace; 11 | import net.minecraftforge.items.CapabilityItemHandler; 12 | import net.minecraftforge.items.IItemHandler; 13 | import net.minecraftforge.items.SlotItemHandler; 14 | 15 | public class ContainerDoubleFurnace extends Container { 16 | 17 | private TileEntityDoubleFurnace te; 18 | private IItemHandler handler; 19 | 20 | public ContainerDoubleFurnace(EntityPlayer player, TileEntityDoubleFurnace te) { 21 | this.te = te; 22 | this.handler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); 23 | 24 | this.addSlotToContainer(new SlotItemHandler(this.handler, 0, 56, 17)); 25 | this.addSlotToContainer(new SlotItemHandler(this.handler, 1, 39, 17)); 26 | this.addSlotToContainer(new SlotFurnaceFuel(this.handler, 2, 56, 53)); 27 | this.addSlotToContainer(new SlotFurnaceFuel(this.handler, 3, 39, 53)); 28 | this.addSlotToContainer(new SlotFurnaceOutput(player, this.handler, 4, 118, 35)); 29 | this.addSlotToContainer(new SlotFurnaceOutput(player, this.handler, 5, 139, 35)); 30 | 31 | // The player's inventory slots 32 | int xPos = 8; // The x position of the top left player inventory slot on our texture 33 | int yPos = 84; // The y position of the top left player inventory slot on our texture 34 | 35 | // Player slots 36 | for (int y = 0; y < 3; ++y) { 37 | for (int x = 0; x < 9; ++x) { 38 | this.addSlotToContainer(new Slot(player.inventory, x + y * 9 + 9, xPos + x * 18, yPos + y * 18)); 39 | } 40 | } 41 | 42 | for (int x = 0; x < 9; ++x) { 43 | this.addSlotToContainer(new Slot(player.inventory, x, xPos + x * 18, yPos + 58)); 44 | } 45 | } 46 | 47 | 48 | @Override 49 | public ItemStack transferStackInSlot(EntityPlayer playerIn, int fromSlot) { 50 | ItemStack previous = ItemStack.EMPTY; 51 | Slot slot = (Slot) this.inventorySlots.get(fromSlot); 52 | 53 | if (slot != null && slot.getHasStack()) { 54 | ItemStack current = slot.getStack(); 55 | previous = current.copy(); 56 | 57 | if (fromSlot < this.handler.getSlots()) { 58 | // From the furnace inventory to the player's inventory 59 | if (!this.mergeItemStack(current, this.handler.getSlots(), this.handler.getSlots() + 36, true)) 60 | return ItemStack.EMPTY; 61 | } else { 62 | // From the player's inventory to the furnace's inventory 63 | if (TileEntityFurnace.isItemFuel(current)) 64 | if (!this.mergeItemStack(current, 2, 4, false)) 65 | return ItemStack.EMPTY; 66 | if (!this.mergeItemStack(current, 0, 4, false)) 67 | return ItemStack.EMPTY; 68 | } 69 | 70 | if (current.getCount() == 0) 71 | slot.putStack(ItemStack.EMPTY); 72 | else 73 | slot.onSlotChanged(); 74 | 75 | if (current.getCount() == previous.getCount()) 76 | return ItemStack.EMPTY; 77 | slot.onTake(playerIn, current); 78 | } 79 | return previous; 80 | } 81 | 82 | @Override 83 | public boolean canInteractWith(EntityPlayer player) { 84 | return player.getPosition().distanceSq(this.te.getPos().add(0.5, 0.5, 0.5)) <= 64; 85 | } 86 | 87 | } 88 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/container/ContainerEnergyCell.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.container; 2 | 3 | import cjminecraft.bitofeverything.container.slots.SlotEnergyItem; 4 | import cjminecraft.bitofeverything.tileentity.TileEntityEnergyCell; 5 | import cjminecraft.core.energy.EnergyUtils; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.inventory.Container; 8 | import net.minecraft.inventory.IInventory; 9 | import net.minecraft.inventory.Slot; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraftforge.items.CapabilityItemHandler; 12 | import net.minecraftforge.items.IItemHandler; 13 | 14 | /** 15 | * The container for the energy cell 16 | * @author CJMinecraft 17 | * 18 | */ 19 | public class ContainerEnergyCell extends Container { 20 | 21 | /** 22 | * All of the inventories to interact with 23 | */ 24 | 25 | private TileEntityEnergyCell te; 26 | private IItemHandler handler; 27 | 28 | /** 29 | * Initialise the container for the energy cell 30 | * @param playerInv The player's inventory 31 | * @param te The {@link TileEntityEnergyCell} to get the inventory from 32 | */ 33 | public ContainerEnergyCell(IInventory playerInv, TileEntityEnergyCell te) { 34 | this.te = te; 35 | this.handler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); 36 | 37 | //Our tile entity slots 38 | this.addSlotToContainer(new SlotEnergyItem(this.handler, 0, 44, 35)); 39 | this.addSlotToContainer(new SlotEnergyItem(this.handler, 1, 116, 35)); 40 | 41 | // The player's inventory slots 42 | int xPos = 8; // The x position of the top left player inventory slot on our texture 43 | int yPos = 84; // The y position of the top left player inventory slot on our texture 44 | 45 | // Player slots 46 | for (int y = 0; y < 3; ++y) { 47 | for (int x = 0; x < 9; ++x) { 48 | this.addSlotToContainer(new Slot(playerInv, x + y * 9 + 9, xPos + x * 18, yPos + y * 18)); 49 | } 50 | } 51 | 52 | for (int x = 0; x < 9; ++x) { 53 | this.addSlotToContainer(new Slot(playerInv, x, xPos + x * 18, yPos + 58)); 54 | } 55 | } 56 | 57 | /** 58 | * Say we can interact with the player 59 | */ 60 | @Override 61 | public boolean canInteractWith(EntityPlayer player) { 62 | return player.getDistanceSq(this.te.getPos().add(0.5, 0.5, 0.5)) <= 64; 63 | } 64 | 65 | /** 66 | * Allow for SHIFT click transfers 67 | */ 68 | @Override 69 | public ItemStack transferStackInSlot(EntityPlayer playerIn, int fromSlot) { 70 | ItemStack previous = ItemStack.EMPTY; 71 | Slot slot = (Slot) this.inventorySlots.get(fromSlot); 72 | 73 | if (slot != null && slot.getHasStack()) { 74 | ItemStack current = slot.getStack(); 75 | previous = current.copy(); 76 | 77 | if(fromSlot < this.handler.getSlots()) { 78 | //From the energy cell inventory to the player's inventory 79 | if(!this.mergeItemStack(current, handler.getSlots(), handler.getSlots() + 36, true)) 80 | return ItemStack.EMPTY; 81 | } else { 82 | //From the player's inventory to the block breaker's inventory 83 | if(EnergyUtils.hasSupport(current, null)) 84 | if(!this.mergeItemStack(current, 0, handler.getSlots(), false)) 85 | return ItemStack.EMPTY; 86 | } 87 | 88 | if(current.getCount() == 0) 89 | slot.putStack(ItemStack.EMPTY); 90 | else 91 | slot.onSlotChanged(); 92 | 93 | if(current.getCount() == previous.getCount()) 94 | return ItemStack.EMPTY; 95 | slot.onTake(playerIn, current); 96 | } 97 | return previous; 98 | } 99 | 100 | } 101 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/container/ContainerFurnaceGenerator.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.container; 2 | 3 | import cjminecraft.bitofeverything.container.slots.SlotFurnaceFuel; 4 | import cjminecraft.bitofeverything.tileentity.TileEntityFurnaceGenerator; 5 | import net.minecraft.entity.player.EntityPlayer; 6 | import net.minecraft.inventory.Container; 7 | import net.minecraft.inventory.IInventory; 8 | import net.minecraft.inventory.Slot; 9 | import net.minecraft.item.ItemStack; 10 | import net.minecraftforge.items.CapabilityItemHandler; 11 | import net.minecraftforge.items.IItemHandler; 12 | 13 | /** 14 | * The container for the furnace generator 15 | * 16 | * @author CJMinecraft 17 | * 18 | */ 19 | public class ContainerFurnaceGenerator extends Container { 20 | 21 | /** 22 | * The inventories 23 | */ 24 | 25 | private TileEntityFurnaceGenerator te; 26 | private IItemHandler handler; 27 | 28 | /** 29 | * Initialise the container for the furnace generator 30 | * 31 | * @param playerInv 32 | * The player's inventory 33 | * @param te 34 | * The {@link TileEntityFurnaceGenerator} with the inventory 35 | */ 36 | public ContainerFurnaceGenerator(IInventory playerInv, TileEntityFurnaceGenerator te) { 37 | this.te = te; 38 | this.handler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); 39 | 40 | this.addSlotToContainer(new SlotFurnaceFuel(handler, 0, 81, 35)); 41 | 42 | // The player's inventory slots 43 | int xPos = 8; // The x position of the top left player inventory slot on 44 | // our texture 45 | int yPos = 84; // The y position of the top left player inventory slot 46 | // on our texture 47 | 48 | // Player slots 49 | for (int y = 0; y < 3; ++y) { 50 | for (int x = 0; x < 9; ++x) { 51 | this.addSlotToContainer(new Slot(playerInv, x + y * 9 + 9, xPos + x * 18, yPos + y * 18)); 52 | } 53 | } 54 | 55 | for (int x = 0; x < 9; ++x) { 56 | this.addSlotToContainer(new Slot(playerInv, x, xPos + x * 18, yPos + 58)); 57 | } 58 | } 59 | 60 | /** 61 | * Allow for SHIFT click transfers 62 | */ 63 | @Override 64 | public ItemStack transferStackInSlot(EntityPlayer playerIn, int fromSlot) { 65 | ItemStack previous = ItemStack.EMPTY; 66 | Slot slot = (Slot) this.inventorySlots.get(fromSlot); 67 | 68 | if (slot != null && slot.getHasStack()) { 69 | ItemStack current = slot.getStack(); 70 | previous = current.copy(); 71 | 72 | if (fromSlot < this.handler.getSlots()) { 73 | // From the energy cell inventory to the player's inventory 74 | if (!this.mergeItemStack(current, this.handler.getSlots(), handler.getSlots() + 36, true)) 75 | return ItemStack.EMPTY; 76 | } else { 77 | // From the player's inventory to the block breaker's inventory 78 | if (!this.mergeItemStack(current, 0, this.handler.getSlots(), false)) 79 | return ItemStack.EMPTY; 80 | } 81 | 82 | if (current.getCount() == 0) 83 | slot.putStack(ItemStack.EMPTY); 84 | else 85 | slot.onSlotChanged(); 86 | 87 | if (current.getCount() == previous.getCount()) 88 | return ItemStack.EMPTY; 89 | slot.onTake(playerIn, current); 90 | } 91 | return previous; 92 | } 93 | 94 | /** 95 | * Say we can interact with the player 96 | */ 97 | @Override 98 | public boolean canInteractWith(EntityPlayer player) { 99 | return player.getDistanceSq(this.te.getPos().add(0.5, 0.5, 0.5)) <= 64; 100 | } 101 | 102 | } 103 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/container/slots/SlotEnchantedBook.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.container.slots; 2 | 3 | import net.minecraft.init.Items; 4 | import net.minecraft.inventory.IInventory; 5 | import net.minecraft.inventory.Slot; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraftforge.items.IItemHandler; 8 | import net.minecraftforge.items.SlotItemHandler; 9 | 10 | public class SlotEnchantedBook extends SlotItemHandler { 11 | 12 | public SlotEnchantedBook(IItemHandler itemHandler, int index, int xPosition, int yPosition) { 13 | super(itemHandler, index, xPosition, yPosition); 14 | } 15 | 16 | @Override 17 | public boolean isItemValid(ItemStack stack) { 18 | return super.isItemValid(stack) && stack.getItem() == Items.ENCHANTED_BOOK; 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/container/slots/SlotEnergyItem.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.container.slots; 2 | 3 | import cjminecraft.core.energy.EnergyUtils; 4 | import net.minecraft.item.ItemStack; 5 | import net.minecraftforge.items.IItemHandler; 6 | import net.minecraftforge.items.SlotItemHandler; 7 | 8 | public class SlotEnergyItem extends SlotItemHandler { 9 | 10 | public SlotEnergyItem(IItemHandler itemHandler, int index, int xPosition, int yPosition) { 11 | super(itemHandler, index, xPosition, yPosition); 12 | } 13 | 14 | @Override 15 | public boolean isItemValid(ItemStack stack) { 16 | return super.isItemValid(stack) && EnergyUtils.hasSupport(stack, null); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/container/slots/SlotFurnaceFuel.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.container.slots; 2 | 3 | import net.minecraft.inventory.IInventory; 4 | import net.minecraft.item.ItemStack; 5 | import net.minecraft.tileentity.TileEntityFurnace; 6 | import net.minecraftforge.items.IItemHandler; 7 | import net.minecraftforge.items.SlotItemHandler; 8 | 9 | public class SlotFurnaceFuel extends SlotItemHandler { 10 | 11 | public SlotFurnaceFuel(IItemHandler itemHandler, int index, int xPosition, int yPosition) { 12 | super(itemHandler, index, xPosition, yPosition); 13 | } 14 | 15 | @Override 16 | public boolean isItemValid(ItemStack stack) { 17 | return TileEntityFurnace.isItemFuel(stack) || net.minecraft.inventory.SlotFurnaceFuel.isBucket(stack); 18 | } 19 | 20 | @Override 21 | public int getItemStackLimit(ItemStack stack) { 22 | return net.minecraft.inventory.SlotFurnaceFuel.isBucket(stack) ? 1 : super.getItemStackLimit(stack); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/container/slots/SlotFurnaceOutput.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.container.slots; 2 | 3 | import cjminecraft.bitofeverything.tileentity.TileEntityDoubleFurnace; 4 | import cjminecraft.bitofeverything.util.Utils; 5 | import net.minecraft.entity.item.EntityXPOrb; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraft.init.Items; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.item.crafting.FurnaceRecipes; 10 | import net.minecraft.stats.AchievementList; 11 | import net.minecraft.util.math.MathHelper; 12 | import net.minecraftforge.fml.common.FMLCommonHandler; 13 | import net.minecraftforge.items.IItemHandler; 14 | import net.minecraftforge.items.SlotItemHandler; 15 | 16 | public class SlotFurnaceOutput extends SlotItemHandler { 17 | 18 | private final EntityPlayer player; 19 | private int removeCount; 20 | 21 | public SlotFurnaceOutput(EntityPlayer player, IItemHandler itemHandler, int index, 22 | int xPosition, int yPosition) { 23 | super(itemHandler, index, xPosition, yPosition); 24 | this.player = player; 25 | } 26 | 27 | @Override 28 | public boolean isItemValid(ItemStack stack) { 29 | return false; 30 | } 31 | 32 | @Override 33 | public ItemStack decrStackSize(int amount) { 34 | if (this.getHasStack()) 35 | this.removeCount += Math.min(amount, this.getStack().getCount()); 36 | return super.decrStackSize(amount); 37 | } 38 | 39 | @Override 40 | public ItemStack onTake(EntityPlayer player, ItemStack stack) { 41 | this.onCrafting(stack); 42 | super.onTake(player, stack); 43 | return stack; 44 | } 45 | 46 | @Override 47 | protected void onCrafting(ItemStack stack, int amount) { 48 | this.removeCount += amount; 49 | this.onCrafting(stack); 50 | } 51 | 52 | @Override 53 | protected void onCrafting(ItemStack stack) { 54 | stack.onCrafting(this.player.world, this.player, this.removeCount); 55 | 56 | if (!this.player.world.isRemote) { 57 | int i = this.removeCount; 58 | float f = FurnaceRecipes.instance().getSmeltingExperience(stack); 59 | 60 | if (f == 0.0F) { 61 | i = 0; 62 | } else if (f < 1.0F) { 63 | int j = MathHelper.floor((float) i * f); 64 | 65 | if (j < MathHelper.ceil((float) i * f) && Math.random() < (double) ((float) i * f - (float) j)) 66 | j++; 67 | 68 | i = j; 69 | } 70 | 71 | while (i > 0) { 72 | int k = EntityXPOrb.getXPSplit(i); 73 | i -= k; 74 | this.player.world.spawnEntity(new EntityXPOrb(this.player.world, this.player.posX, 75 | this.player.posY + 0.5D, this.player.posZ + 0.5D, k)); 76 | } 77 | } 78 | 79 | this.removeCount = 0; 80 | 81 | FMLCommonHandler.instance().firePlayerSmeltedEvent(this.player, stack); 82 | 83 | if (stack.getItem() == Items.IRON_INGOT) 84 | this.player.addStat(AchievementList.ACQUIRE_IRON); 85 | else if (stack.getItem() == Items.COOKED_FISH) 86 | this.player.addStat(AchievementList.COOK_FISH); 87 | } 88 | 89 | } 90 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/creativetabs/TabBOEBlocks.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.creativetabs; 2 | 3 | import cjminecraft.bitofeverything.init.ModBlocks; 4 | import net.minecraft.creativetab.CreativeTabs; 5 | import net.minecraft.item.Item; 6 | import net.minecraft.item.ItemStack; 7 | 8 | /** 9 | * The creative tab for blocks from our mod 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class TabBOEBlocks extends CreativeTabs { 14 | 15 | /** 16 | * Just says the unlocalized name of our creative tab 17 | */ 18 | public TabBOEBlocks() { 19 | super("boeblocks"); 20 | } 21 | 22 | /** 23 | * Gets the item that will appear as the tabs icon 24 | */ 25 | @Override 26 | public ItemStack getTabIconItem() { 27 | return new ItemStack(ModBlocks.tinOre); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/creativetabs/TabBOEItems.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.creativetabs; 2 | 3 | import cjminecraft.bitofeverything.init.ModItems; 4 | import net.minecraft.creativetab.CreativeTabs; 5 | import net.minecraft.item.Item; 6 | import net.minecraft.item.ItemStack; 7 | 8 | /** 9 | * The creative tab for items from our mod 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class TabBOEItems extends CreativeTabs { 14 | 15 | /** 16 | * Just says the unlocalized name of our creative tab 17 | */ 18 | public TabBOEItems() { 19 | super("boeitems"); 20 | } 21 | 22 | /** 23 | * Gets the item that will appear as the tabs icon 24 | */ 25 | @Override 26 | public ItemStack getTabIconItem() { 27 | return new ItemStack(ModItems.tinIngot); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/events/PlayerEvents.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.events; 2 | 3 | /** 4 | * An event handler for all the player related events 5 | * 6 | * @author CJMinecraft 7 | * 8 | */ 9 | public class PlayerEvents { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/events/SoulStealerEvents.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.events; 2 | 3 | import cjminecraft.bitofeverything.init.ModItems; 4 | import cjminecraft.bitofeverything.init.ModTools; 5 | import cjminecraft.bitofeverything.items.ItemHeart; 6 | import cjminecraft.bitofeverything.items.ItemSoulStealer; 7 | import cjminecraft.bitofeverything.util.Utils; 8 | import net.minecraft.entity.Entity; 9 | import net.minecraft.entity.item.EntityItem; 10 | import net.minecraft.entity.player.EntityPlayer; 11 | import net.minecraft.item.ItemStack; 12 | import net.minecraft.util.math.BlockPos; 13 | import net.minecraftforge.event.entity.living.LivingHurtEvent; 14 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 15 | 16 | /** 17 | * This class just drops an {@link ItemHeart} when you hit an {@link Entity} with the {@link ItemSoulStealer} 18 | * @author CJMinecraft 19 | * 20 | */ 21 | public class SoulStealerEvents { 22 | 23 | /** 24 | * Says that this will be called when the {@link LivingHurtEvent} is called 25 | * @param event The {@link LivingHurtEvent} 26 | */ 27 | @SubscribeEvent 28 | public void onEvent(LivingHurtEvent event) { 29 | if(event.getSource().getTrueSource() instanceof EntityPlayer) { //Checks the person who dealt the damage is a player 30 | EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource(); //Gets the player who dealt the damage 31 | if(player.getHeldItemMainhand().getItem() == ModTools.soulStealer) { //Checks they were holding a soul stealer 32 | BlockPos pos = event.getEntity().getPosition(); //Get the entity they hurt's position 33 | EntityItem item = new EntityItem(player.getEntityWorld(), pos.getX(), pos.getY(), pos.getZ(), new ItemStack(ModItems.heart)); //Creates a new EntityItem 34 | player.getEntityWorld().spawnEntity(item); //Spawns the item in the world. THIS METHOD WAS RENAMED IN 1.11.2 to spawnEntity not spawnEntityInWorld 35 | } 36 | } 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/events/TooltipEvents.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.events; 2 | 3 | import cjminecraft.bitofeverything.init.ModBlocks; 4 | import cjminecraft.bitofeverything.init.ModItems; 5 | import net.minecraft.client.resources.I18n; 6 | import net.minecraft.item.Item; 7 | import net.minecraft.item.ItemStack; 8 | import net.minecraft.nbt.NBTTagCompound; 9 | import net.minecraft.util.text.TextFormatting; 10 | import net.minecraftforge.event.entity.player.ItemTooltipEvent; 11 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 12 | 13 | /** 14 | * Handles all of our tooltip events 15 | * @author CJMinecraft 16 | * 17 | */ 18 | public class TooltipEvents { 19 | 20 | /** 21 | * Used to make sure every items have the correct tooltip 22 | * @param event The tooltip event 23 | */ 24 | @SubscribeEvent 25 | public void onEvent(ItemTooltipEvent event) { 26 | ItemStack stack = event.getItemStack(); 27 | if(stack.getItem() == ModItems.paintBrush || stack.getItem() == Item.getItemFromBlock(ModBlocks.canvas)) { //For updating the colour tag of paint brushes if they don't have the colour tag 28 | boolean setTag = false; 29 | if(!stack.hasTagCompound()) 30 | setTag = true; 31 | else if(!stack.getTagCompound().hasKey("colour")) 32 | setTag = true; 33 | if(setTag) { 34 | NBTTagCompound nbt = new NBTTagCompound(); 35 | nbt.setInteger("colour", 0xFFFFFF); 36 | stack.setTagCompound(nbt); 37 | } 38 | if(event.getToolTip().size() == 0) { //Make sure they have the tooltip 39 | event.getToolTip().add(TextFormatting.GRAY + I18n.format(stack.getItem().getUnlocalizedName() + ".tooltip", (0xFFFFFF & stack.getTagCompound().getInteger("colour")))); 40 | } 41 | } 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/handlers/AchievementHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.handlers; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import cjminecraft.bitofeverything.Reference; 7 | import cjminecraft.bitofeverything.init.ModArmour; 8 | import net.minecraft.block.Block; 9 | import net.minecraft.item.Item; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.stats.Achievement; 12 | import net.minecraftforge.common.AchievementPage; 13 | 14 | /** 15 | * Handles all of the achievements 16 | * @author CJMinecraft 17 | * 18 | */ 19 | public class AchievementHandler { 20 | 21 | /** 22 | * A list of all of our achievements 23 | */ 24 | private static List achievements = new ArrayList(); 25 | 26 | /** 27 | * State each achievement and use the createAchievement method to register the achievement 28 | */ 29 | public static Achievement achievementTinMan = createAchievement("tinman", 0, 0, ModArmour.tinHelmet); 30 | 31 | /** 32 | * Registers the achievements 33 | */ 34 | public static void registerAchievements() { 35 | Achievement[] achievementArray = new Achievement[achievements.size()]; //Converts the list to an array 36 | for(Achievement achievement : achievements) { 37 | achievement.registerStat(); //Registers the achievement 38 | achievementArray[achievements.indexOf(achievement)] = achievement; //Adds it to the array 39 | } 40 | AchievementPage.registerAchievementPage(new AchievementPage(Reference.NAME, achievementArray)); //Adds the array to our achievement page 41 | } 42 | 43 | private static Achievement createAchievement(String name, int column, int row, Item item) { 44 | Achievement acheivement = new Achievement("achievement." + name, name, column, row, item, (Achievement)null); //The null is for the parent this is if one achievement requires another to unlock it 45 | achievements.add(acheivement); 46 | return acheivement; 47 | } 48 | 49 | private static Achievement createAchievement(String name, int column, int row, Block block) { 50 | Achievement acheivement = new Achievement("achievement." + name, name, column, row, block, (Achievement)null); 51 | achievements.add(acheivement); 52 | return acheivement; 53 | } 54 | 55 | private static Achievement createAchievement(String name, int column, int row, ItemStack stack) { 56 | Achievement acheivement = new Achievement("achievement." + name, name, column, row, stack, (Achievement)null); 57 | achievements.add(acheivement); 58 | return acheivement; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/handlers/BoeSoundHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.handlers; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.util.Utils; 5 | import net.minecraft.util.ResourceLocation; 6 | import net.minecraft.util.SoundEvent; 7 | 8 | /** 9 | * A handler for all of BitOfEverything's sounds 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class BoeSoundHandler { 15 | 16 | /** 17 | * The number of sounds registered in total 18 | */ 19 | private static int size = 0; 20 | 21 | public static SoundEvent TIN_FENCE_GATE_OPEN; 22 | public static SoundEvent TIN_FENCE_GATE_CLOSE; 23 | public static SoundEvent TIN_BUTTON_CLICK_ON; 24 | public static SoundEvent TIN_BUTTON_CLICK_OFF; 25 | 26 | /** 27 | * Initialise all of our sounds 28 | */ 29 | public static void init() { 30 | size = SoundEvent.REGISTRY.getKeys().size(); 31 | 32 | TIN_FENCE_GATE_OPEN = register("block.tin_fence_gate.open"); 33 | TIN_FENCE_GATE_CLOSE = register("block.tin_fence_gate.close"); 34 | TIN_BUTTON_CLICK_ON = register("block.tin_button.click_on"); 35 | TIN_BUTTON_CLICK_OFF = register("block.tin_button.click_off"); 36 | } 37 | 38 | /** 39 | * Register a sound event 40 | * 41 | * @param name 42 | * The name of the sound (for use in the sounds.json file) 43 | * @return The registered sound event 44 | */ 45 | public static SoundEvent register(String name) { 46 | ResourceLocation location = new ResourceLocation(Reference.MODID, name); 47 | SoundEvent e = new SoundEvent(location); 48 | 49 | SoundEvent.REGISTRY.register(size, location, e); 50 | size++; 51 | Utils.getLogger().info("Registered sound: " + name); 52 | return e; 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/handlers/EnumHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.handlers; 2 | 3 | import cjminecraft.bitofeverything.blocks.BlockBreaker; 4 | import cjminecraft.bitofeverything.blocks.BlockTinOre; 5 | import cjminecraft.bitofeverything.items.ItemChip; 6 | import net.minecraft.util.IStringSerializable; 7 | 8 | /** 9 | * Handles all of our enums which me use for meta data blocks and items 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class EnumHandler { 15 | 16 | /** 17 | * This is used by the {@link BlockBreaker} and the {@link ItemChip} 18 | * 19 | * @author CJMinecraft 20 | * 21 | */ 22 | public static enum ChipTypes implements IStringSerializable { 23 | BASIC("basic", 0), ADVANCED("advanced", 1); 24 | 25 | private int ID; 26 | private String name; 27 | 28 | private ChipTypes(String name, int ID) { 29 | this.ID = ID; 30 | this.name = name; 31 | } 32 | 33 | @Override 34 | public String getName() { 35 | return this.name; 36 | } 37 | 38 | public int getID() { 39 | return ID; 40 | } 41 | 42 | @Override 43 | public String toString() { 44 | return getName(); 45 | } 46 | 47 | } 48 | 49 | /** 50 | * This is used by {@link BlockTinOre} 51 | * 52 | * @author CJMinecraft 53 | * 54 | */ 55 | public static enum OreType implements IStringSerializable { 56 | OVERWORLD("overworld", 0), NETHER("nether", 1), END("end", 2); 57 | 58 | private int ID; 59 | private String name; 60 | 61 | private OreType(String name, int ID) { 62 | this.ID = ID; 63 | this.name = name; 64 | } 65 | 66 | @Override 67 | public String getName() { 68 | return this.name; 69 | } 70 | 71 | public int getID() { 72 | return ID; 73 | } 74 | 75 | @Override 76 | public String toString() { 77 | return getName(); 78 | } 79 | } 80 | 81 | public static enum EnergyConnectionType implements IStringSerializable { 82 | NONE("none", 0), NORMAL("normal", 1), IN("in", 2), OUT("out", 3); 83 | 84 | private int ID; 85 | private String name; 86 | 87 | private EnergyConnectionType(String name, int ID) { 88 | this.ID = ID; 89 | this.name = name; 90 | } 91 | 92 | @Override 93 | public String getName() { 94 | return this.name; 95 | } 96 | 97 | public int getID() { 98 | return ID; 99 | } 100 | 101 | @Override 102 | public String toString() { 103 | return getName(); 104 | } 105 | } 106 | 107 | } 108 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/handlers/EventHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.handlers; 2 | 3 | import cjminecraft.bitofeverything.events.PlayerEvents; 4 | import cjminecraft.bitofeverything.events.SoulStealerEvents; 5 | import cjminecraft.bitofeverything.events.TooltipEvents; 6 | import net.minecraftforge.common.MinecraftForge; 7 | 8 | /** 9 | * This class handles the registration of our events 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class EventHandler { 15 | 16 | /** 17 | * Registers our events 18 | */ 19 | public void registerEvents() { 20 | MinecraftForge.EVENT_BUS.register(new SoulStealerEvents()); 21 | MinecraftForge.EVENT_BUS.register(new TooltipEvents()); 22 | MinecraftForge.EVENT_BUS.register(new PlayerEvents()); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/handlers/FuelHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.handlers; 2 | 3 | import cjminecraft.bitofeverything.init.ModItems; 4 | import net.minecraft.item.ItemStack; 5 | import net.minecraftforge.fml.common.IFuelHandler; 6 | 7 | /** 8 | * This class handles how long our items will burn in a furnace 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class FuelHandler implements IFuelHandler { 14 | 15 | /** 16 | * Inherited from {@link IFuelHandler} This method returns how long an item 17 | * will burn in ticks There are 20 ticks per second 18 | */ 19 | @Override 20 | public int getBurnTime(ItemStack fuel) { 21 | if (fuel.getItem() == ModItems.niceBiscuit) 22 | return 100; // This will smelt half an item. A full item would be 200 ticks 23 | if (fuel.getItem() == ModItems.infinityFlame) { 24 | return (int) Math.pow(2, 31); // This is a very big number which will work on both 32 and 64 bit computers 25 | } 26 | return 0; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/handlers/OreDictionaryHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.handlers; 2 | 3 | import cjminecraft.bitofeverything.init.ModBlocks; 4 | import cjminecraft.bitofeverything.init.ModItems; 5 | import net.minecraft.item.ItemStack; 6 | import net.minecraftforge.oredict.OreDictionary; 7 | 8 | /** 9 | * This class handles the registration of our ores to the {@link OreDictionary} 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class OreDictionaryHandler { 15 | 16 | /** 17 | * Register the ores 18 | */ 19 | public static void registerOreDictionary() { 20 | OreDictionary.registerOre("oreTin", ModBlocks.tinOre); 21 | OreDictionary.registerOre("ingotTin", ModItems.tinIngot); 22 | OreDictionary.registerOre("nuggetTin", ModItems.tinNugget); 23 | OreDictionary.registerOre("blockTin", ModBlocks.tinBlock); 24 | OreDictionary.registerOre("chipBasic", new ItemStack(ModItems.chip, 1, 0)); //Basic Chip 25 | OreDictionary.registerOre("chipAdvanced", new ItemStack(ModItems.chip, 1, 1)); //Advanced Chip 26 | OreDictionary.registerOre("fabric", new ItemStack(ModItems.fabric)); 27 | OreDictionary.registerOre("stickTin", ModItems.tinStick); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/init/ModArmour.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.init; 2 | 3 | import cjminecraft.bitofeverything.BitOfEverything; 4 | import cjminecraft.bitofeverything.Reference; 5 | import cjminecraft.bitofeverything.items.ItemModArmour; 6 | import cjminecraft.bitofeverything.util.Utils; 7 | import net.minecraft.client.renderer.block.model.ModelResourceLocation; 8 | import net.minecraft.init.SoundEvents; 9 | import net.minecraft.inventory.EntityEquipmentSlot; 10 | import net.minecraft.item.Item; 11 | import net.minecraft.item.ItemArmor; 12 | import net.minecraft.item.ItemArmor.ArmorMaterial; 13 | import net.minecraft.util.ResourceLocation; 14 | import net.minecraftforge.client.model.ModelLoader; 15 | import net.minecraftforge.common.util.EnumHelper; 16 | import net.minecraftforge.fml.common.registry.GameRegistry; 17 | 18 | /** 19 | * This class handles all of our armour registration and render 20 | * 21 | * @author CJMinecraft 22 | * 23 | */ 24 | public class ModArmour { 25 | 26 | /** 27 | * The armour material 28 | */ 29 | public static ArmorMaterial tinMaterial = EnumHelper.addArmorMaterial("tin", Reference.MODID + ":tin", 15, 30 | new int[] { 2, 6, 5, 2 }, 9, SoundEvents.ITEM_ARMOR_EQUIP_IRON, 2.0F); 31 | 32 | /** 33 | * Each armour piece 34 | */ 35 | public static ItemArmor tinHelmet; 36 | public static ItemArmor tinChestplate; 37 | public static ItemArmor tinLeggings; 38 | public static ItemArmor tinBoots; 39 | 40 | /** 41 | * Initializes our armour 42 | */ 43 | public static void init() { 44 | tinHelmet = new ItemModArmour(tinMaterial, 1, EntityEquipmentSlot.HEAD, "tin_helmet"); 45 | tinChestplate = new ItemModArmour(tinMaterial, 1, EntityEquipmentSlot.CHEST, "tin_chestplate"); 46 | tinLeggings = new ItemModArmour(tinMaterial, 2, EntityEquipmentSlot.LEGS, "tin_leggings"); 47 | tinBoots = new ItemModArmour(tinMaterial, 1, EntityEquipmentSlot.FEET, "tin_boots"); 48 | } 49 | 50 | /** 51 | * Registers our armour 52 | */ 53 | public static void register() { 54 | registerItem(tinHelmet); 55 | registerItem(tinChestplate); 56 | registerItem(tinLeggings); 57 | registerItem(tinBoots); 58 | } 59 | 60 | /** 61 | * Registers the render for the armour 62 | */ 63 | public static void registerRenders() { 64 | registerRender(tinHelmet); 65 | registerRender(tinChestplate); 66 | registerRender(tinLeggings); 67 | registerRender(tinBoots); 68 | } 69 | 70 | /** 71 | * Registers a item and logs that it has been registered to the console 72 | * 73 | * @param item 74 | * The item to register 75 | */ 76 | public static void registerItem(Item item) { 77 | item.setCreativeTab(BitOfEverything.items); 78 | GameRegistry.register(item); 79 | Utils.getLogger().info("Registered Item: " + item.getUnlocalizedName().substring(5)); 80 | } 81 | 82 | /** 83 | * Registers an item render and logs that is has been registered to the 84 | * console 85 | * 86 | * @param item 87 | * The item to register the render for 88 | */ 89 | public static void registerRender(Item item) { 90 | ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation( 91 | new ResourceLocation(Reference.MODID, item.getUnlocalizedName().substring(5)), "inventory")); 92 | Utils.getLogger().info("Registered render for " + item.getUnlocalizedName().substring(5)); 93 | } 94 | 95 | } 96 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/init/ModCapabilities.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.init; 2 | 3 | import cjminecraft.bitofeverything.capabilties.IWork; 4 | import cjminecraft.bitofeverything.capabilties.Worker; 5 | import net.minecraft.nbt.NBTBase; 6 | import net.minecraft.nbt.NBTTagCompound; 7 | import net.minecraft.util.EnumFacing; 8 | import net.minecraftforge.common.capabilities.Capability; 9 | import net.minecraftforge.common.capabilities.Capability.IStorage; 10 | import net.minecraftforge.common.capabilities.CapabilityInject; 11 | import net.minecraftforge.common.capabilities.CapabilityManager; 12 | import net.minecraftforge.common.capabilities.ICapabilityProvider; 13 | 14 | /** 15 | * A class which holds all capabilities 16 | * 17 | * @author CJMinecraft 18 | * 19 | */ 20 | public class ModCapabilities { 21 | 22 | /** 23 | * The reference for use in 24 | * {@link ICapabilityProvider#getCapability(Capability, EnumFacing)} and 25 | * {@link ICapabilityProvider#hasCapability(Capability, EnumFacing)} 26 | */ 27 | @CapabilityInject(IWork.class) 28 | public static Capability CAPABILITY_WORKER = null; 29 | 30 | /** 31 | * Register all of the capabilities 32 | */ 33 | public static void registerCapabilities() { 34 | CapabilityManager.INSTANCE.register(IWork.class, new CapabilityWorker(), Worker.class); 35 | } 36 | 37 | /** 38 | * The capability for the {@link IWork} interface 39 | * 40 | * @author CJMinecraft 41 | * 42 | */ 43 | public static class CapabilityWorker implements IStorage { 44 | 45 | @Override 46 | public NBTBase writeNBT(Capability capability, IWork instance, EnumFacing side) { 47 | return null; 48 | } 49 | 50 | @Override 51 | public void readNBT(Capability capability, IWork instance, EnumFacing side, NBTBase nbt) { 52 | } 53 | 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/init/ModTools.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.init; 2 | 3 | import cjminecraft.bitofeverything.BitOfEverything; 4 | import cjminecraft.bitofeverything.Reference; 5 | import cjminecraft.bitofeverything.items.ItemModAxe; 6 | import cjminecraft.bitofeverything.items.ItemModHoe; 7 | import cjminecraft.bitofeverything.items.ItemModPickaxe; 8 | import cjminecraft.bitofeverything.items.ItemModShovel; 9 | import cjminecraft.bitofeverything.items.ItemModSword; 10 | import cjminecraft.bitofeverything.items.ItemSoulStealer; 11 | import cjminecraft.bitofeverything.util.Utils; 12 | import net.minecraft.client.renderer.block.model.ModelResourceLocation; 13 | import net.minecraft.item.Item; 14 | import net.minecraft.item.Item.ToolMaterial; 15 | import net.minecraft.item.crafting.CraftingManager; 16 | import net.minecraft.item.crafting.RecipesTools; 17 | import net.minecraft.item.ItemHoe; 18 | import net.minecraft.item.ItemPickaxe; 19 | import net.minecraft.item.ItemSpade; 20 | import net.minecraft.item.ItemSword; 21 | import net.minecraft.util.ResourceLocation; 22 | import net.minecraftforge.client.model.ModelLoader; 23 | import net.minecraftforge.common.util.EnumHelper; 24 | import net.minecraftforge.fml.common.registry.GameRegistry; 25 | 26 | /** 27 | * Handles the tool registration and render 28 | * 29 | * @author CJMinecraft 30 | * 31 | */ 32 | public class ModTools { 33 | 34 | /** 35 | * The tool material (Ours is like Iron) 36 | */ 37 | public static final ToolMaterial tinMaterial = EnumHelper.addToolMaterial(Reference.MODID + ":tin", 2, 300, 5.0F, 38 | 2.0F, 12); 39 | 40 | /** 41 | * State the individual tools 42 | */ 43 | public static ItemPickaxe tinPickaxe; 44 | public static ItemModAxe tinAxe; // NOTICE WE USE THE ITEMMODAXE NOT ITEMAXE 45 | public static ItemHoe tinHoe; 46 | public static ItemSpade tinShovel; 47 | public static ItemSword tinSword; 48 | 49 | public static ItemSoulStealer soulStealer; // Custom tool 50 | 51 | /** 52 | * Initialize the tools 53 | */ 54 | public static void init() { 55 | tinPickaxe = new ItemModPickaxe(tinMaterial, "tin_pickaxe"); 56 | tinAxe = new ItemModAxe(tinMaterial, "tin_axe"); 57 | tinHoe = new ItemModHoe(tinMaterial, "tin_hoe"); 58 | tinShovel = new ItemModShovel(tinMaterial, "tin_shovel"); 59 | tinSword = new ItemModSword(tinMaterial, "tin_sword"); 60 | 61 | soulStealer = new ItemSoulStealer("soul_stealer"); 62 | } 63 | 64 | /** 65 | * Register the tools 66 | */ 67 | public static void register() { 68 | registerItem(tinPickaxe); 69 | registerItem(tinAxe); 70 | registerItem(tinHoe); 71 | registerItem(tinShovel); 72 | registerItem(tinSword); 73 | registerItem(soulStealer); 74 | } 75 | 76 | /** 77 | * Register the tools render 78 | */ 79 | public static void registerRenders() { 80 | registerRender(tinPickaxe); 81 | registerRender(tinAxe); 82 | registerRender(tinHoe); 83 | registerRender(tinShovel); 84 | registerRender(tinSword); 85 | registerRender(soulStealer); 86 | } 87 | 88 | /** 89 | * Register the item 90 | * 91 | * @param item 92 | * The item 93 | */ 94 | public static void registerItem(Item item) { 95 | item.setCreativeTab(BitOfEverything.items); 96 | GameRegistry.register(item); 97 | Utils.getLogger().info("Registered Item: " + item.getUnlocalizedName().substring(5)); 98 | } 99 | 100 | /** 101 | * Register the items render 102 | * 103 | * @param item 104 | * The item 105 | */ 106 | public static void registerRender(Item item) { 107 | ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation( 108 | new ResourceLocation(Reference.MODID, item.getUnlocalizedName().substring(5)), "inventory")); 109 | Utils.getLogger().info("Registered render for " + item.getUnlocalizedName().substring(5)); 110 | } 111 | 112 | } 113 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemChip.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.blocks.BlockBreaker; 5 | import cjminecraft.bitofeverything.blocks.BlockMachine; 6 | import cjminecraft.bitofeverything.handlers.EnumHandler.ChipTypes; 7 | import cjminecraft.bitofeverything.init.ModBlocks; 8 | import net.minecraft.block.state.IBlockState; 9 | import net.minecraft.creativetab.CreativeTabs; 10 | import net.minecraft.entity.player.EntityPlayer; 11 | import net.minecraft.item.Item; 12 | import net.minecraft.item.ItemStack; 13 | import net.minecraft.util.EnumActionResult; 14 | import net.minecraft.util.EnumFacing; 15 | import net.minecraft.util.EnumHand; 16 | import net.minecraft.util.NonNullList; 17 | import net.minecraft.util.ResourceLocation; 18 | import net.minecraft.util.math.BlockPos; 19 | import net.minecraft.world.World; 20 | 21 | /** 22 | * This class makes our chip item have metadata 23 | * 24 | * @author CJMinecraft 25 | * 26 | */ 27 | public class ItemChip extends Item { 28 | 29 | /** 30 | * Default constructor just sets the unlocalized name and the registry name 31 | * 32 | * @param unlocalizedName 33 | */ 34 | public ItemChip(String unlocalizedName) { 35 | this.setUnlocalizedName(unlocalizedName); 36 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 37 | this.setHasSubtypes(true); // This just says the item has metadata 38 | } 39 | 40 | /** 41 | * Adds all the different versions of the item 42 | */ 43 | @Override 44 | public void getSubItems(Item item, CreativeTabs tab, NonNullList items) { 45 | for (int i = 0; i < ChipTypes.values().length; i++) { 46 | items.add(new ItemStack(item, 1, i)); 47 | } 48 | } 49 | 50 | /** 51 | * Gets the correct unlocalized name using the {@link ChipTypes} enum 52 | */ 53 | @Override 54 | public String getUnlocalizedName(ItemStack stack) { 55 | for (int i = 0; i < ChipTypes.values().length; i++) { 56 | if (stack.getItemDamage() == i) { 57 | return this.getUnlocalizedName() + "." + ChipTypes.values()[i].getName(); 58 | } else { 59 | continue; 60 | } 61 | } 62 | return this.getUnlocalizedName() + "." + ChipTypes.BASIC.getName(); 63 | } 64 | 65 | /** 66 | * Upgrades machines to the next tier of machine 67 | */ 68 | @Override 69 | public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, 70 | float hitX, float hitY, float hitZ) { 71 | IBlockState state = world.getBlockState(pos); 72 | if (state != null) { 73 | if (state.getBlock() instanceof BlockMachine) { 74 | BlockMachine machine = (BlockMachine) state.getBlock(); 75 | ItemStack heldStack = player.getHeldItem(hand); 76 | machine.updateMachineTier(world, player, hand, pos, heldStack); 77 | } 78 | } 79 | return EnumActionResult.PASS; 80 | } 81 | 82 | } 83 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemHeart.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import java.util.List; 4 | 5 | import cjminecraft.bitofeverything.Reference; 6 | import cjminecraft.bitofeverything.util.Utils; 7 | import net.minecraft.entity.player.EntityPlayer; 8 | import net.minecraft.init.SoundEvents; 9 | import net.minecraft.item.Item; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.util.ActionResult; 12 | import net.minecraft.util.EnumHand; 13 | import net.minecraft.util.ResourceLocation; 14 | import net.minecraft.util.SoundCategory; 15 | import net.minecraft.util.text.TextFormatting; 16 | import net.minecraft.world.World; 17 | 18 | /** 19 | * This item heals the player by one heart when right clicked 20 | * 21 | * @author CJMinecraft 22 | * 23 | */ 24 | public class ItemHeart extends Item { 25 | 26 | /** 27 | * As with every item 28 | */ 29 | public ItemHeart(String unlocalizedName) { 30 | this.setUnlocalizedName(unlocalizedName); 31 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 32 | } 33 | 34 | /** 35 | * Increases the player health when right clicked if they aren't at full 36 | * health 37 | */ 38 | @Override 39 | public ActionResult onItemRightClick(World world, EntityPlayer player, EnumHand hand) { 40 | if (player.getHealth() < player.getMaxHealth()) { 41 | player.heal(2); // Heals them 2 HP or 1 heart 42 | player.inventory.decrStackSize(player.inventory.currentItem, 1); // NEW 1.11 43 | world.playSound(player, player.getPosition(), SoundEvents.ENTITY_PLAYER_BURP, SoundCategory.PLAYERS, 0.5F, 44 | world.rand.nextFloat() * 0.1F + 0.9F); 45 | } 46 | return super.onItemRightClick(world, player, hand); 47 | } 48 | 49 | /** 50 | * Adds a tool tip to the item 51 | */ 52 | @Override 53 | public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced) { 54 | super.addInformation(stack, playerIn, tooltip, advanced); 55 | tooltip.add(TextFormatting.AQUA + Utils.getLang().localize("heart.tooltip")); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemModArmour.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import java.util.Iterator; 4 | 5 | import cjminecraft.bitofeverything.Reference; 6 | import cjminecraft.bitofeverything.handlers.AchievementHandler; 7 | import cjminecraft.bitofeverything.init.ModArmour; 8 | import net.minecraft.entity.player.EntityPlayer; 9 | import net.minecraft.inventory.EntityEquipmentSlot; 10 | import net.minecraft.item.ItemArmor; 11 | import net.minecraft.item.ItemStack; 12 | import net.minecraft.util.ResourceLocation; 13 | import net.minecraft.world.World; 14 | 15 | /** 16 | * A simple instance of armour. Will be used for all different types of armour 17 | * 18 | * @author CJMinecraft 19 | * 20 | */ 21 | public class ItemModArmour extends ItemArmor { 22 | 23 | /** 24 | * Create a new piece of armour. 25 | * 26 | * @param materialIn 27 | * The material of the armour 28 | * @param renderIndexIn 29 | * The render index (0 for the helmet, chestplate and boots; 1 30 | * for leggings) 31 | * @param equipmentSlotIn 32 | * The equipment slot (0 for the helmet, 1 for the chestplate, 2 33 | * for the leggings, 3 for the boots) 34 | * @param unlocalizedName 35 | * The unlocalized name of the armour 36 | */ 37 | public ItemModArmour(ArmorMaterial materialIn, int renderIndexIn, EntityEquipmentSlot equipmentSlotIn, 38 | String unlocalizedName) { 39 | super(materialIn, renderIndexIn, equipmentSlotIn); 40 | this.setUnlocalizedName(unlocalizedName); 41 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 42 | } 43 | 44 | /** 45 | * Triggers the tin man achievement when all four pieces are worn 46 | */ 47 | @Override 48 | public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { 49 | int tinArmourPeices = 0; 50 | if (player.getArmorInventoryList() != null) { 51 | Iterator iterator = player.getArmorInventoryList().iterator(); 52 | while (iterator.hasNext()) { 53 | ItemStack stack = iterator.next(); 54 | if (stack != null) { 55 | if (stack.getItem() instanceof ItemModArmour) { 56 | ItemModArmour item = (ItemModArmour) stack.getItem(); 57 | if (item.getArmorMaterial() == ModArmour.tinMaterial) { 58 | tinArmourPeices++; 59 | continue; 60 | } 61 | } 62 | } 63 | } 64 | } 65 | if (tinArmourPeices == 4) 66 | if (!player.hasAchievement(AchievementHandler.achievementTinMan)) 67 | player.addStat(AchievementHandler.achievementTinMan); 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemModAxe.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import java.util.List; 4 | import java.util.Set; 5 | 6 | import com.google.common.collect.Sets; 7 | import cjminecraft.bitofeverything.Reference; 8 | import net.minecraft.block.Block; 9 | import net.minecraft.block.material.Material; 10 | import net.minecraft.block.state.IBlockState; 11 | import net.minecraft.creativetab.CreativeTabs; 12 | import net.minecraft.entity.player.EntityPlayer; 13 | import net.minecraft.init.Blocks; 14 | import net.minecraft.item.Item; 15 | import net.minecraft.item.ItemAxe; 16 | import net.minecraft.item.ItemStack; 17 | import net.minecraft.item.ItemTool; 18 | import net.minecraft.util.ResourceLocation; 19 | import net.minecraft.item.Item.ToolMaterial; 20 | 21 | /** 22 | * This class acts as a tool as in 1.10.2 ItemAxe was not fully functional. All 23 | * the code for this class was copied from the {@link ItemAxe} but with fixes 24 | * 25 | * @author CJMinecraft 26 | * 27 | */ 28 | public class ItemModAxe extends ItemTool { 29 | 30 | private static final Set EFFECTIVE_ON = Sets.newHashSet(new Block[] { Blocks.PLANKS, Blocks.BOOKSHELF, 31 | Blocks.LOG, Blocks.LOG2, Blocks.CHEST, Blocks.PUMPKIN, Blocks.LIT_PUMPKIN, Blocks.MELON_BLOCK, 32 | Blocks.LADDER, Blocks.WOODEN_BUTTON, Blocks.WOODEN_PRESSURE_PLATE }); 33 | private static final float[] ATTACK_DAMAGES = new float[] { 6.0F, 8.0F, 8.0F, 8.0F, 6.0F }; 34 | private static final float[] ATTACK_SPEEDS = new float[] { -3.2F, -3.2F, -3.1F, -3.0F, -3.0F }; 35 | 36 | /** 37 | * Create a new instance of an axe 38 | * 39 | * @param material 40 | * The tool material of the axe 41 | * @param unlocalizedName 42 | * The unlocalized name of the axe 43 | */ 44 | public ItemModAxe(ToolMaterial material, String unlocalizedName) { 45 | super(material, EFFECTIVE_ON); 46 | this.setUnlocalizedName(unlocalizedName); 47 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 48 | } 49 | 50 | public float getStrVsBlock(ItemStack stack, IBlockState state) { 51 | Material material = state.getMaterial(); 52 | return material != Material.WOOD && material != Material.PLANTS && material != Material.VINE 53 | ? super.getStrVsBlock(stack, state) : this.efficiencyOnProperMaterial; 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemModFood.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.entity.player.EntityPlayer; 5 | import net.minecraft.item.ItemFood; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.potion.PotionEffect; 8 | import net.minecraft.util.ResourceLocation; 9 | import net.minecraft.world.World; 10 | 11 | /** 12 | * A simple instance of a food item 13 | * 14 | * @author CJMinecraft 15 | * 16 | */ 17 | public class ItemModFood extends ItemFood { 18 | 19 | /** 20 | * This just holds the potion effects our item will give 21 | */ 22 | private PotionEffect[] effects; 23 | 24 | /** 25 | * This creates a new food item 26 | * 27 | * @param unlocalizedName 28 | * The unlocalized and registry name 29 | * @param amount 30 | * How many hunger points the food will refill 31 | * @param isWolfFood 32 | * If the food can be ate by a wolf 33 | * @param potionEffects 34 | * Potion effects that will be given to the player upon eating it 35 | */ 36 | public ItemModFood(String unlocalizedName, int amount, boolean isWolfFood, PotionEffect... potionEffects) { 37 | super(amount, isWolfFood); 38 | this.setUnlocalizedName(unlocalizedName); 39 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 40 | this.effects = potionEffects; 41 | } 42 | 43 | /** 44 | * This creates a new food item 45 | * 46 | * @param unlocalizedName 47 | * The unlocalized and registry name 48 | * @param amount 49 | * How many hunger points the food will refill 50 | * @param saturation 51 | * How long the food will last after it has been ate 52 | * @param isWolfFood 53 | * If the food can be ate by a wolf 54 | * @param potionEffects 55 | * Potion effects that will be given to the player upon eating it 56 | */ 57 | public ItemModFood(String unlocalizedName, int amount, float saturation, boolean isWolfFood, 58 | PotionEffect... potionEffects) { 59 | super(amount, saturation, isWolfFood); 60 | this.setUnlocalizedName(unlocalizedName); 61 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 62 | this.effects = potionEffects; 63 | } 64 | 65 | /** 66 | * Called when the player eats the food. This just adds all of the potion 67 | * effects to the player 68 | */ 69 | @Override 70 | protected void onFoodEaten(ItemStack stack, World worldIn, EntityPlayer player) { 71 | for (PotionEffect effect : this.effects) { 72 | player.addPotionEffect(new PotionEffect(effect)); 73 | } 74 | } 75 | 76 | } 77 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemModHoe.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.item.ItemHoe; 5 | import net.minecraft.util.ResourceLocation; 6 | 7 | /** 8 | * A simple instance of a hoe 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class ItemModHoe extends ItemHoe { 14 | 15 | /** 16 | * Initialise a hoe 17 | * 18 | * @param material 19 | * The tool material of the hoe 20 | * @param unlocalizedName 21 | * The unlocalized name of the hoe 22 | */ 23 | public ItemModHoe(ToolMaterial material, String unlocalizedName) { 24 | super(material); 25 | this.setUnlocalizedName(unlocalizedName); 26 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemModPickaxe.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.item.ItemPickaxe; 5 | import net.minecraft.util.ResourceLocation; 6 | 7 | /** 8 | * A simple instance of a pickaxe 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class ItemModPickaxe extends ItemPickaxe { 14 | 15 | /** 16 | * Initialise a new pickaxe 17 | * 18 | * @param material 19 | * The tool material of the pickaxe 20 | * @param unlocalizedName 21 | * The unlocalized name of the pickaxe 22 | */ 23 | public ItemModPickaxe(ToolMaterial material, String unlocalizedName) { 24 | super(material); 25 | this.setUnlocalizedName(unlocalizedName); 26 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemModShovel.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.item.ItemSpade; 5 | import net.minecraft.util.ResourceLocation; 6 | 7 | /** 8 | * A simple instance of a spade 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class ItemModShovel extends ItemSpade { 14 | 15 | /** 16 | * Initialise a spade / shovel 17 | * 18 | * @param material 19 | * The tool material of the shovel 20 | * @param unlocalizedName 21 | * The unlocalized name of the shovel 22 | */ 23 | public ItemModShovel(ToolMaterial material, String unlocalizedName) { 24 | super(material); 25 | this.setUnlocalizedName(unlocalizedName); 26 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemModSword.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.item.ItemSword; 5 | import net.minecraft.util.ResourceLocation; 6 | 7 | /** 8 | * A simple instance of a sword class 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class ItemModSword extends ItemSword { 14 | 15 | /** 16 | * Initialise a custom sword 17 | * 18 | * @param material 19 | * The tool material of the sword 20 | * @param unlocalizedName 21 | * The unlocalized name of the sword 22 | */ 23 | public ItemModSword(ToolMaterial material, String unlocalizedName) { 24 | super(material); 25 | this.setUnlocalizedName(unlocalizedName); 26 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemPaintBrush.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import java.util.List; 4 | 5 | import cjminecraft.bitofeverything.Reference; 6 | import cjminecraft.bitofeverything.init.ModItems; 7 | import net.minecraft.client.resources.I18n; 8 | import net.minecraft.creativetab.CreativeTabs; 9 | import net.minecraft.entity.player.EntityPlayer; 10 | import net.minecraft.item.Item; 11 | import net.minecraft.item.ItemStack; 12 | import net.minecraft.nbt.NBTTagCompound; 13 | import net.minecraft.util.NonNullList; 14 | import net.minecraft.util.ResourceLocation; 15 | import net.minecraft.util.text.TextFormatting; 16 | import net.minecraft.world.World; 17 | 18 | /** 19 | * The paint brush item class 20 | * 21 | * @author CJMinecraft 22 | * 23 | */ 24 | public class ItemPaintBrush extends Item { 25 | 26 | /** 27 | * Default item constructor 28 | * 29 | * @param unlocalizedName 30 | * The name of the item 31 | */ 32 | public ItemPaintBrush(String unlocalizedName) { 33 | this.setUnlocalizedName(unlocalizedName); 34 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 35 | this.setMaxStackSize(1); 36 | } 37 | 38 | /** 39 | * Says the colour of item on the tooltip 40 | */ 41 | @Override 42 | public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced) { 43 | if (stack.hasTagCompound()) 44 | if (stack.getTagCompound().hasKey("colour")) 45 | tooltip.add(TextFormatting.GRAY + I18n.format(getUnlocalizedName() + ".tooltip", 46 | String.format("#%06X", (0xFFFFFF & stack.getTagCompound().getInteger("colour"))))); 47 | } 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemSoulStealer.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import java.util.List; 4 | import java.util.Set; 5 | 6 | import com.google.common.collect.Sets; 7 | 8 | import cjminecraft.bitofeverything.Reference; 9 | import cjminecraft.bitofeverything.events.SoulStealerEvents; 10 | import cjminecraft.bitofeverything.util.Utils; 11 | import net.minecraft.block.Block; 12 | import net.minecraft.entity.player.EntityPlayer; 13 | import net.minecraft.item.ItemStack; 14 | import net.minecraft.item.ItemTool; 15 | import net.minecraft.util.ResourceLocation; 16 | import net.minecraft.util.text.TextFormatting; 17 | import net.minecraftforge.common.util.EnumHelper; 18 | 19 | /** 20 | * This is a custom tool which when you hit a mob causes them to drop a 21 | * {@link ItemHeart} Refer to {@link SoulStealerEvents} 22 | * 23 | * @author CJMinecraft 24 | * 25 | */ 26 | public class ItemSoulStealer extends ItemTool { 27 | 28 | /** 29 | * Says that the tool is not effective on any blocks 30 | */ 31 | private static final Set EFFECTIVE_BLOCKS = Sets.newHashSet(new Block[] {}); 32 | 33 | /** 34 | * A custom tool which drops hearts when hitting a mob 35 | * 36 | * @param unlocalizedName 37 | * The unlocalized name of the item 38 | */ 39 | public ItemSoulStealer(String unlocalizedName) { 40 | super(EnumHelper.addToolMaterial(Reference.MODID + ":soul_stealer", 0, 100, 0, 1, 0), EFFECTIVE_BLOCKS); 41 | this.setUnlocalizedName(unlocalizedName); 42 | this.setRegistryName(new ResourceLocation(Reference.MODID, unlocalizedName)); 43 | } 44 | 45 | /** 46 | * Tool tip 47 | */ 48 | @Override 49 | public void addInformation(ItemStack stack, EntityPlayer playerIn, List tooltip, boolean advanced) { 50 | super.addInformation(stack, playerIn, tooltip, advanced); 51 | tooltip.add(TextFormatting.BLUE + Utils.getLang().localize("soul_stealer.tooltip")); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/items/ItemTinIngot.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.items; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import net.minecraft.item.Item; 5 | import net.minecraft.util.ResourceLocation; 6 | 7 | /** 8 | * A basic item 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class ItemTinIngot extends Item { 14 | 15 | /** 16 | * Initialise a simple item 17 | * 18 | * @param unlocalizedName 19 | * The unlocalized name of the item 20 | * @param registryName 21 | * The registry name of the item 22 | */ 23 | public ItemTinIngot(String unlocalizedName, String registryName) { 24 | this.setUnlocalizedName(unlocalizedName); 25 | this.setRegistryName(new ResourceLocation(Reference.MODID, registryName)); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/network/PacketHandler.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.network; 2 | 3 | import net.minecraftforge.fml.common.network.NetworkRegistry; 4 | import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; 5 | import net.minecraftforge.fml.relauncher.Side; 6 | 7 | /** 8 | * Handles all of our network messages 9 | * 10 | * @author CJMinecraft 11 | * 12 | */ 13 | public class PacketHandler { 14 | 15 | /** 16 | * The instance of packet handler, for use to be able to send messages 17 | */ 18 | public static SimpleNetworkWrapper INSTANCE; 19 | 20 | /** 21 | * The unique ID tracker for our packets 22 | */ 23 | private static int ID = 0; 24 | 25 | /** 26 | * Get the next id 27 | * 28 | * @return The next id 29 | */ 30 | private static int nextID() { 31 | return ID++; 32 | } 33 | 34 | /** 35 | * Register all of our network messages on their appropriate side 36 | * 37 | * @param channelName 38 | * The name of the network channel 39 | */ 40 | public static void registerMessages(String channelName) { 41 | INSTANCE = NetworkRegistry.INSTANCE.newSimpleChannel(channelName); 42 | 43 | // Server packets 44 | INSTANCE.registerMessage(PacketGetWorker.Handler.class, PacketGetWorker.class, nextID(), Side.SERVER); 45 | INSTANCE.registerMessage(PacketGetEnergyDifference.Handler.class, PacketGetEnergyDifference.class, nextID(), 46 | Side.SERVER); 47 | 48 | // Client packets 49 | INSTANCE.registerMessage(PacketReturnWorker.Handler.class, PacketReturnWorker.class, nextID(), Side.CLIENT); 50 | INSTANCE.registerMessage(PacketReturnEnergyDifference.Handler.class, PacketReturnEnergyDifference.class, 51 | nextID(), Side.CLIENT); 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/proxy/ClientProxy.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.proxy; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.config.BoeConfig; 5 | import cjminecraft.bitofeverything.init.ModArmour; 6 | import cjminecraft.bitofeverything.init.ModBlocks; 7 | import cjminecraft.bitofeverything.init.ModItems; 8 | import cjminecraft.bitofeverything.init.ModTools; 9 | import net.minecraft.client.renderer.block.model.ModelBakery; 10 | import net.minecraft.item.Item; 11 | import net.minecraft.util.ResourceLocation; 12 | 13 | /** 14 | * This class handles everything on the client side like the {@link ModelBakery} 15 | * and the render of items 16 | * 17 | * @author CJMinecraft 18 | * 19 | */ 20 | public class ClientProxy extends CommonProxy { 21 | 22 | /** 23 | * Everything that should be ran client side only in the pre initialization 24 | * phase 25 | */ 26 | @Override 27 | public void preInit() { 28 | super.preInit(); 29 | ModBlocks.createStateMappers(); 30 | BoeConfig.clientPreInit(); 31 | } 32 | 33 | /** 34 | * Everything that should be ran client side only in the initialization 35 | * phase 36 | */ 37 | @Override 38 | public void init() { 39 | super.init(); 40 | ModBlocks.registerBlockColours(); 41 | ModItems.registerItemColours(); 42 | } 43 | 44 | /** 45 | * Registers the renders 46 | */ 47 | @Override 48 | public void registerRenders() { 49 | ModItems.registerRenders(); 50 | ModBlocks.registerRenders(); 51 | ModTools.registerRenders(); 52 | ModArmour.registerRenders(); 53 | } 54 | 55 | /** 56 | * Adds the item variant renders 57 | */ 58 | @Override 59 | public void registerModelBakeryStuff() { 60 | ModelBakery.registerItemVariants(ModItems.chip, new ResourceLocation(Reference.MODID, "chip_basic"), 61 | new ResourceLocation(Reference.MODID, "chip_advanced")); 62 | ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.breaker), 63 | new ResourceLocation(Reference.MODID, "block_breaker_basic"), 64 | new ResourceLocation(Reference.MODID, "block_breaker_advanced")); 65 | ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.tinOre), 66 | new ResourceLocation(Reference.MODID, "tin_ore_overworld"), 67 | new ResourceLocation(Reference.MODID, "tin_ore_nether"), 68 | new ResourceLocation(Reference.MODID, "tin_ore_end")); 69 | ModelBakery.registerItemVariants(Item.getItemFromBlock(ModBlocks.machineFrame), 70 | new ResourceLocation(Reference.MODID, "machine_frame_basic"), 71 | new ResourceLocation(Reference.MODID, "machine_frame_advanced")); 72 | } 73 | 74 | } 75 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/proxy/CommonProxy.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.proxy; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.network.PacketHandler; 5 | import cjminecraft.bitofeverything.tileentity.TileEntityBlockBreaker; 6 | import cjminecraft.bitofeverything.tileentity.TileEntityCanvas; 7 | import cjminecraft.bitofeverything.tileentity.TileEntityDoubleFurnace; 8 | import cjminecraft.bitofeverything.tileentity.TileEntityEnergyCell; 9 | import cjminecraft.bitofeverything.tileentity.TileEntityFurnaceGenerator; 10 | import cjminecraft.core.energy.compat.TileEntityEnergy; 11 | import cjminecraft.core.energy.compat.TileEntityEnergyProducer; 12 | import net.minecraftforge.fml.common.registry.GameRegistry; 13 | 14 | /** 15 | * This class handles everything on the server side 16 | * 17 | * @author CJMinecraft 18 | * 19 | */ 20 | public class CommonProxy { 21 | 22 | /** 23 | * Called on the pre initialization phase of the game loading 24 | */ 25 | public void preInit() { 26 | PacketHandler.registerMessages(Reference.MODID); 27 | } 28 | 29 | /** 30 | * Called on the initialization phase of the game loading 31 | */ 32 | public void init() { 33 | // MOVED THESE TO MAIN CLASS - FIX FOR MC 1.11.2 34 | } 35 | 36 | /** 37 | * Registers our tile entities 38 | */ 39 | public void registerTileEntities() { 40 | GameRegistry.registerTileEntity(TileEntityBlockBreaker.class, Reference.MODID + ":block_breaker"); 41 | GameRegistry.registerTileEntity(TileEntityCanvas.class, Reference.MODID + ":canvas"); 42 | GameRegistry.registerTileEntity(TileEntityEnergyCell.class, Reference.MODID + ":energy_cell"); 43 | GameRegistry.registerTileEntity(TileEntityFurnaceGenerator.class, Reference.MODID + ":furnace_generator"); 44 | GameRegistry.registerTileEntity(TileEntityDoubleFurnace.class, Reference.MODID + ":double_furnace"); 45 | } 46 | 47 | /** 48 | * Registers the renders - refer to the 49 | * {@link ClientProxy#registerRenders()} 50 | */ 51 | public void registerRenders() { 52 | 53 | } 54 | 55 | public void registerModelBakeryStuff() { 56 | 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/proxy/ServerProxy.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.proxy; 2 | 3 | import cjminecraft.bitofeverything.Reference; 4 | import cjminecraft.bitofeverything.tileentity.TileEntityBlockBreaker; 5 | import cjminecraft.bitofeverything.tileentity.TileEntityCanvas; 6 | import net.minecraftforge.fml.common.registry.GameRegistry; 7 | 8 | /** 9 | * For all things on the Server side 10 | * 11 | * @author CJMinecraft 12 | * 13 | */ 14 | public class ServerProxy extends CommonProxy { 15 | 16 | @Override 17 | public void preInit() { 18 | super.preInit(); 19 | } 20 | 21 | @Override 22 | public void init() { 23 | super.init(); 24 | } 25 | 26 | @Override 27 | public void registerTileEntities() { 28 | super.registerTileEntities(); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/tileentity/TileEntityCanvas.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.tileentity; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.nbt.NBTTagCompound; 5 | import net.minecraft.network.NetworkManager; 6 | import net.minecraft.network.play.server.SPacketUpdateTileEntity; 7 | import net.minecraft.tileentity.TileEntity; 8 | import net.minecraft.util.math.BlockPos; 9 | import net.minecraft.world.World; 10 | 11 | /** 12 | * The canvas tile entity which stores the blocks colour 13 | * 14 | * @author CJMinecraft 15 | * 16 | */ 17 | public class TileEntityCanvas extends TileEntity { 18 | 19 | /** 20 | * The colour as an int 21 | */ 22 | private int colour; 23 | 24 | /** 25 | * Initialise the colour to be white 26 | */ 27 | public TileEntityCanvas() { 28 | this.colour = 0xFFFFFF; 29 | } 30 | 31 | /** 32 | * Read the colour from NBT data 33 | */ 34 | @Override 35 | public void readFromNBT(NBTTagCompound nbt) { 36 | super.readFromNBT(nbt); 37 | this.colour = nbt.getInteger("colour"); 38 | } 39 | 40 | /** 41 | * Write the correct NBT data 42 | */ 43 | @Override 44 | public NBTTagCompound writeToNBT(NBTTagCompound nbt) { 45 | nbt.setInteger("colour", this.colour); 46 | return super.writeToNBT(nbt); 47 | } 48 | 49 | /** 50 | * Get the colour of the canvas 51 | * 52 | * @return The colour of the canvas 53 | */ 54 | public int getColour() { 55 | return colour; 56 | } 57 | 58 | /** 59 | * Set the colour of the canvas 60 | * 61 | * @param colour 62 | * The new colour of the canvas 63 | */ 64 | public void setColour(int colour) { 65 | this.colour = colour; 66 | } 67 | 68 | /** 69 | * The packet which is used to update the tile entity which holds all of the 70 | * tileentities data 71 | */ 72 | @Override 73 | public SPacketUpdateTileEntity getUpdatePacket() { 74 | NBTTagCompound nbt = new NBTTagCompound(); 75 | this.writeToNBT(nbt); 76 | int metadata = getBlockMetadata(); 77 | return new SPacketUpdateTileEntity(this.pos, metadata, nbt); 78 | } 79 | 80 | /** 81 | * Reads the nbt when it receives a packet 82 | */ 83 | @Override 84 | public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt) { 85 | this.readFromNBT(pkt.getNbtCompound()); 86 | } 87 | 88 | /** 89 | * Gets the nbt for a new packet 90 | */ 91 | @Override 92 | public NBTTagCompound getUpdateTag() { 93 | NBTTagCompound nbt = new NBTTagCompound(); 94 | this.writeToNBT(nbt); 95 | return nbt; 96 | } 97 | 98 | /** 99 | * Handles when you get an update 100 | */ 101 | @Override 102 | public void handleUpdateTag(NBTTagCompound tag) { 103 | this.readFromNBT(tag); 104 | } 105 | 106 | /** 107 | * Gets the tile entities nbt with all of the data stored in it 108 | */ 109 | @Override 110 | public NBTTagCompound getTileData() { 111 | NBTTagCompound nbt = new NBTTagCompound(); 112 | this.writeToNBT(nbt); 113 | return nbt; 114 | } 115 | 116 | } 117 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/util/DummyBlockProperty.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.util; 2 | 3 | import java.util.Collection; 4 | 5 | import com.google.common.base.Optional; 6 | import com.google.common.collect.ImmutableSet; 7 | 8 | import net.minecraft.block.properties.PropertyHelper; 9 | 10 | /** 11 | * Used purely for the slabs. Every slab requires a variant so this is a great 12 | * class to use if you have no variant 13 | * 14 | * @author CJMinecraft 15 | * 16 | */ 17 | public class DummyBlockProperty extends PropertyHelper { 18 | 19 | /** 20 | * Initialise the dummy property 21 | * 22 | * @param name 23 | * The name of the property 24 | */ 25 | protected DummyBlockProperty(String name) { 26 | super(name, Boolean.class); 27 | } 28 | 29 | /** 30 | * Say that we only allow false as a valid value 31 | */ 32 | @Override 33 | public Collection getAllowedValues() { 34 | return ImmutableSet.of(Boolean.valueOf(false)); 35 | } 36 | 37 | /** 38 | * Parse a value. Will always be false 39 | */ 40 | @Override 41 | public Optional parseValue(String value) { 42 | return Optional.of(Boolean.valueOf(false)); 43 | } 44 | 45 | /** 46 | * The name from the value. Will always be false 47 | */ 48 | @Override 49 | public String getName(Boolean value) { 50 | return "false"; 51 | } 52 | 53 | /** 54 | * Create a new dummy property 55 | * 56 | * @param name 57 | * The name of the property 58 | * @return the new dummy property 59 | */ 60 | public static DummyBlockProperty create(String name) { 61 | return new DummyBlockProperty(name); 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/util/Lang.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.util; 2 | 3 | import java.util.List; 4 | 5 | import com.google.common.collect.Lists; 6 | 7 | import net.minecraft.util.text.translation.I18n; 8 | 9 | /** 10 | * This class handles using the language file to get a string for a different 11 | * language 12 | * 13 | * @author CJMinecraft 14 | * 15 | */ 16 | public class Lang { 17 | 18 | private static final String REGEX = "\\|"; 19 | public static final char CHAR = '|'; 20 | private final String prefix; 21 | 22 | public Lang(String locKey) { 23 | this.prefix = locKey.concat("."); 24 | } 25 | 26 | public String getPrefix() { 27 | return prefix; 28 | } 29 | 30 | public String addPrefix(String suffix) { 31 | return this.prefix.concat(suffix); 32 | } 33 | 34 | public String localize(String unloc, Object... args) { 35 | return localizeExact(addPrefix(unloc), args); 36 | } 37 | 38 | public String localize(String unloc) { 39 | return localizeExact(addPrefix(unloc)); 40 | } 41 | 42 | public String localizeExact(String unloc, Object... args) { 43 | return I18n.translateToLocalFormatted(unloc, args); 44 | } 45 | 46 | public String localizeExact(String unloc) { 47 | return I18n.translateToLocal(unloc); 48 | } 49 | 50 | public String[] localizeList(String unloc, String... args) { 51 | return splitList(localize(unloc, (Object[]) args)); 52 | } 53 | 54 | public String[] localizeList(String unloc) { 55 | return splitList(localize(unloc)); 56 | } 57 | 58 | public List localizeAll(List unloc) { 59 | List ret = Lists.newArrayList(); 60 | for (String s : unloc) { 61 | ret.add(localize(s)); 62 | } 63 | return ret; 64 | } 65 | 66 | public String[] localizeAll(Lang lang, String... unloc) { 67 | String[] ret = new String[unloc.length]; 68 | for (int i = 0; i < ret.length; i++) { 69 | ret[i] = lang.localize(unloc[i]); 70 | } 71 | return ret; 72 | } 73 | 74 | public String[] splitList(String list) { 75 | return list.split("\\|"); 76 | } 77 | 78 | public String[] splitList(String list, String split) { 79 | return list.split(split); 80 | } 81 | 82 | public boolean canLocalize(String unloc) { 83 | return canLocalizeExact(addPrefix(unloc)); 84 | } 85 | 86 | public boolean canLocalizeExact(String unloc) { 87 | return I18n.canTranslate(unloc); 88 | } 89 | } -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/util/RecipeClearColour.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.util; 2 | 3 | import net.minecraft.init.Blocks; 4 | import net.minecraft.inventory.InventoryCrafting; 5 | import net.minecraft.item.Item; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.item.crafting.IRecipe; 8 | import net.minecraft.util.NonNullList; 9 | import net.minecraft.world.World; 10 | 11 | /** 12 | * A custom recipe which allows the player to clear the colour (which it gets 13 | * from {@link RecipeItemColour}) of the {@link ItemStack} provided and default 14 | * the colour to white 15 | * 16 | * @author CJMinecraft 17 | * 18 | */ 19 | public class RecipeClearColour implements IRecipe { 20 | 21 | /** 22 | * The {@link ItemStack} to reset the colour 23 | */ 24 | private ItemStack targetItemStack; 25 | 26 | /** 27 | * A custom recipe which allows the player to clear the colour of the stack 28 | * 29 | * @param targetItemStack 30 | * The {@link ItemStack} which will be able to clear its colour 31 | */ 32 | public RecipeClearColour(ItemStack targetItemStack) { 33 | this.targetItemStack = targetItemStack; 34 | } 35 | 36 | /** 37 | * Does the inventory match what is required? 38 | */ 39 | @Override 40 | public boolean matches(InventoryCrafting inv, World world) { 41 | boolean randomItemDetected = false; 42 | boolean stackFound = false; 43 | for (int slot = 0; slot < inv.getSizeInventory(); slot++) { 44 | if (inv.getStackInSlot(slot).getItem() == targetItemStack.getItem()) 45 | if (inv.getStackInSlot(slot).hasTagCompound() 46 | && (inv.getStackInSlot(slot).getTagCompound().hasKey("colour") 47 | || inv.getStackInSlot(slot).getTagCompound().hasKey("color"))) 48 | stackFound = true; 49 | if (inv.getStackInSlot(slot).getItem() != Item.getItemFromBlock(Blocks.AIR) 50 | && inv.getStackInSlot(slot).getItem() != targetItemStack.getItem()) 51 | randomItemDetected = true; 52 | } 53 | return stackFound && !randomItemDetected; 54 | } 55 | 56 | /** 57 | * Get the crafting result. I.e. the blank coloured item 58 | */ 59 | @Override 60 | public ItemStack getCraftingResult(InventoryCrafting inv) { 61 | ItemStack toClear = ItemStack.EMPTY; 62 | for (int slot = 0; slot < inv.getSizeInventory(); slot++) 63 | if (inv.getStackInSlot(slot).getItem() == targetItemStack.getItem()) 64 | if (inv.getStackInSlot(slot).hasTagCompound() 65 | && (inv.getStackInSlot(slot).getTagCompound().hasKey("colour") 66 | || inv.getStackInSlot(slot).getTagCompound().hasKey("color"))) 67 | toClear = inv.getStackInSlot(slot).copy(); 68 | if (toClear.getTagCompound().hasKey("colour")) 69 | toClear.getTagCompound().setInteger("colour", 0xFFFFFF); 70 | if (toClear.getTagCompound().hasKey("color")) 71 | toClear.getTagCompound().setInteger("color", 0xFFFFFF); 72 | return toClear; 73 | } 74 | 75 | /** 76 | * How many slots are involved? 10 because the output classes as a slot 77 | */ 78 | @Override 79 | public int getRecipeSize() { 80 | return 10; 81 | } 82 | 83 | /** 84 | * The recipe output is nothing 85 | */ 86 | @Override 87 | public ItemStack getRecipeOutput() { 88 | return ItemStack.EMPTY; 89 | } 90 | 91 | /** 92 | * Get the remaining items (which is none) 93 | */ 94 | @Override 95 | public NonNullList getRemainingItems(InventoryCrafting inv) { 96 | return NonNullList.withSize(inv.getSizeInventory(), ItemStack.EMPTY); 97 | } 98 | 99 | } 100 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/worldgen/EndGenPredicate.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.worldgen; 2 | 3 | import com.google.common.base.Predicate; 4 | 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.init.Blocks; 7 | 8 | /** 9 | * This class is used for world generation in the end Refer to {@link OreGen} as 10 | * a guide 11 | * 12 | * @author CJMinecraft 13 | * 14 | */ 15 | public class EndGenPredicate implements Predicate { 16 | 17 | /** 18 | * Says that it will only replace end stone 19 | */ 20 | @Override 21 | public boolean apply(IBlockState input) { 22 | return input != null && input.getBlock() == Blocks.END_STONE; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/worldgen/NetherGenPredicate.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.worldgen; 2 | 3 | import com.google.common.base.Predicate; 4 | 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.init.Blocks; 7 | 8 | /** 9 | * This class is used for world generation in the nether Refer to {@link OreGen} 10 | * as a guide 11 | * 12 | * @author CJMinecraft 13 | * 14 | */ 15 | public class NetherGenPredicate implements Predicate { 16 | 17 | /** 18 | * Says that it will only replace netherrack 19 | */ 20 | @Override 21 | public boolean apply(IBlockState input) { 22 | return input != null && input.getBlock() == Blocks.NETHERRACK; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/cjminecraft/bitofeverything/worldgen/StructureGen.java: -------------------------------------------------------------------------------- 1 | package cjminecraft.bitofeverything.worldgen; 2 | 3 | import java.util.Random; 4 | 5 | import net.minecraft.util.math.BlockPos; 6 | import net.minecraft.world.World; 7 | import net.minecraft.world.chunk.IChunkGenerator; 8 | import net.minecraft.world.chunk.IChunkProvider; 9 | import net.minecraftforge.fml.common.IWorldGenerator; 10 | 11 | public class StructureGen implements IWorldGenerator { 12 | 13 | private StructureGenerator cabinGenerator; 14 | 15 | public StructureGen() { 16 | this.cabinGenerator = new StructureGenerator("cabin"); 17 | } 18 | 19 | @Override 20 | public void generate(Random random, int chunkX, int chunkZ, World world, IChunkGenerator chunkGenerator, 21 | IChunkProvider chunkProvider) { 22 | int blockX = chunkX * 16 + random.nextInt(16); 23 | int blockZ = chunkZ * 16 + random.nextInt(16); 24 | 25 | switch (world.provider.getDimension()) { 26 | case 0: 27 | // The overworld 28 | runGenerator(this.cabinGenerator, world, blockX, blockZ, 50, random); 29 | break; 30 | case -1: 31 | // The nether 32 | break; 33 | case 1: 34 | // The end 35 | break; 36 | } 37 | } 38 | 39 | private void runGenerator(StructureGenerator generator, World world, int blockX, int blockZ, int chance, 40 | Random random) { 41 | if ((int) (Math.random() * chance) == 0) { 42 | generator.generate(world, random, 43 | new BlockPos(blockX, StructureGenerator.getGroundFromAbove(world, blockX, blockZ), blockZ)); 44 | } 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/block_breaker.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "activated=false,facing=north,type=basic": { "model": "boe:block_breaker_basic" }, 4 | "activated=false,facing=south,type=basic": { "model": "boe:block_breaker_basic", "y": 180 }, 5 | "activated=false,facing=east,type=basic": { "model": "boe:block_breaker_basic", "y": 90 }, 6 | "activated=false,facing=west,type=basic": { "model": "boe:block_breaker_basic", "y": 270 }, 7 | "activated=false,facing=up,type=basic": { "model": "boe:block_breaker_basic", "x": 270 }, 8 | "activated=false,facing=down,type=basic": { "model": "boe:block_breaker_basic", "x": 90 }, 9 | "activated=true,facing=north,type=basic": { "model": "boe:block_breaker_basic_activated" }, 10 | "activated=true,facing=south,type=basic": { "model": "boe:block_breaker_basic_activated", "y": 180 }, 11 | "activated=true,facing=east,type=basic": { "model": "boe:block_breaker_basic_activated", "y": 90 }, 12 | "activated=true,facing=west,type=basic": { "model": "boe:block_breaker_basic_activated", "y": 270 }, 13 | "activated=true,facing=up,type=basic": { "model": "boe:block_breaker_basic_activated", "x": 270 }, 14 | "activated=true,facing=down,type=basic": { "model": "boe:block_breaker_basic_activated", "x": 90 }, 15 | "activated=false,facing=north,type=advanced": { "model": "boe:block_breaker_advanced" }, 16 | "activated=false,facing=south,type=advanced": { "model": "boe:block_breaker_advanced", "y": 180 }, 17 | "activated=false,facing=east,type=advanced": { "model": "boe:block_breaker_advanced", "y": 90 }, 18 | "activated=false,facing=west,type=advanced": { "model": "boe:block_breaker_advanced", "y": 270 }, 19 | "activated=false,facing=up,type=advanced": { "model": "boe:block_breaker_advanced", "x": 270 }, 20 | "activated=false,facing=down,type=advanced": { "model": "boe:block_breaker_advanced", "x": 90 }, 21 | "activated=true,facing=north,type=advanced": { "model": "boe:block_breaker_advanced_activated" }, 22 | "activated=true,facing=south,type=advanced": { "model": "boe:block_breaker_advanced_activated", "y": 180 }, 23 | "activated=true,facing=east,type=advanced": { "model": "boe:block_breaker_advanced_activated", "y": 90 }, 24 | "activated=true,facing=west,type=advanced": { "model": "boe:block_breaker_advanced_activated", "y": 270 }, 25 | "activated=true,facing=up,type=advanced": { "model": "boe:block_breaker_advanced_activated", "x": 270 }, 26 | "activated=true,facing=down,type=advanced": { "model": "boe:block_breaker_advanced_activated", "x": 90 } 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/canvas.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "normal": { "model": "boe:canvas" } 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/cotton.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "age=0": { "model": "boe:cotton_stage0" }, 4 | "age=1": { "model": "boe:cotton_stage1" }, 5 | "age=2": { "model": "boe:cotton_stage2" }, 6 | "age=3": { "model": "boe:cotton_stage3" }, 7 | "age=4": { "model": "boe:cotton_stage4" }, 8 | "age=5": { "model": "boe:cotton_stage5" }, 9 | "age=6": { "model": "boe:cotton_stage6" }, 10 | "age=7": { "model": "boe:cotton_stage7" } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/double_furnace.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "activated=false,facing=north": { "model": "boe:double_furnace" }, 4 | "activated=false,facing=south": { "model": "boe:double_furnace", "y": 180 }, 5 | "activated=false,facing=east": { "model": "boe:double_furnace", "y": 90 }, 6 | "activated=false,facing=west": { "model": "boe:double_furnace", "y": 270 }, 7 | "activated=false,facing=up": { "model": "boe:double_furnace", "x": 270 }, 8 | "activated=false,facing=down": { "model": "boe:double_furnace", "x": 90 }, 9 | "activated=true,facing=north": { "model": "boe:double_furnace_activated" }, 10 | "activated=true,facing=south": { "model": "boe:double_furnace_activated", "y": 180 }, 11 | "activated=true,facing=east": { "model": "boe:double_furnace_activated", "y": 90 }, 12 | "activated=true,facing=west": { "model": "boe:double_furnace_activated", "y": 270 }, 13 | "activated=true,facing=up": { "model": "boe:double_furnace_activated", "x": 270 }, 14 | "activated=true,facing=down": { "model": "boe:double_furnace_activated", "x": 90 } 15 | } 16 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/furnace_generator.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "activated=false,facing=north,type=basic": { "model": "boe:furnace_generator_basic" }, 4 | "activated=false,facing=south,type=basic": { "model": "boe:furnace_generator_basic", "y": 180 }, 5 | "activated=false,facing=east,type=basic": { "model": "boe:furnace_generator_basic", "y": 90 }, 6 | "activated=false,facing=west,type=basic": { "model": "boe:furnace_generator_basic", "y": 270 }, 7 | "activated=false,facing=up,type=basic": { "model": "boe:furnace_generator_basic", "x": 270 }, 8 | "activated=false,facing=down,type=basic": { "model": "boe:furnace_generator_basic", "x": 90 }, 9 | "activated=true,facing=north,type=basic": { "model": "boe:furnace_generator_basic_activated" }, 10 | "activated=true,facing=south,type=basic": { "model": "boe:furnace_generator_basic_activated", "y": 180 }, 11 | "activated=true,facing=east,type=basic": { "model": "boe:furnace_generator_basic_activated", "y": 90 }, 12 | "activated=true,facing=west,type=basic": { "model": "boe:furnace_generator_basic_activated", "y": 270 }, 13 | "activated=true,facing=up,type=basic": { "model": "boe:furnace_generator_basic_activated", "x": 270 }, 14 | "activated=true,facing=down,type=basic": { "model": "boe:furnace_generator_basic_activated", "x": 90 }, 15 | "activated=false,facing=north,type=advanced": { "model": "boe:furnace_generator_advanced" }, 16 | "activated=false,facing=south,type=advanced": { "model": "boe:furnace_generator_advanced", "y": 180 }, 17 | "activated=false,facing=east,type=advanced": { "model": "boe:furnace_generator_advanced", "y": 90 }, 18 | "activated=false,facing=west,type=advanced": { "model": "boe:furnace_generator_advanced", "y": 270 }, 19 | "activated=false,facing=up,type=advanced": { "model": "boe:furnace_generator_advanced", "x": 270 }, 20 | "activated=false,facing=down,type=advanced": { "model": "boe:furnace_generator_advanced", "x": 90 }, 21 | "activated=true,facing=north,type=advanced": { "model": "boe:furnace_generator_advanced_activated" }, 22 | "activated=true,facing=south,type=advanced": { "model": "boe:furnace_generator_advanced_activated", "y": 180 }, 23 | "activated=true,facing=east,type=advanced": { "model": "boe:furnace_generator_advanced_activated", "y": 90 }, 24 | "activated=true,facing=west,type=advanced": { "model": "boe:furnace_generator_advanced_activated", "y": 270 }, 25 | "activated=true,facing=up,type=advanced": { "model": "boe:furnace_generator_advanced_activated", "x": 270 }, 26 | "activated=true,facing=down,type=advanced": { "model": "boe:furnace_generator_advanced_activated", "x": 90 } 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/gamemode_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "normal": { "model": "boe:gamemode_detector" } 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/machine_frame.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "type=basic": { "model": "boe:machine_frame_basic" }, 4 | "type=advanced": { "model": "boe:machine_frame_advanced" } 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "normal": { "model": "boe:tin_block" } 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_button.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "facing=up,powered=false": { "model": "boe:tin_button", "uvlock": true }, 4 | "facing=down,powered=false": { "model": "boe:tin_button", "uvlock": true, "x": 180 }, 5 | "facing=east,powered=false": { "model": "boe:tin_button", "uvlock": true, "x": 90, "y": 90 }, 6 | "facing=west,powered=false": { "model": "boe:tin_button", "uvlock": true, "x": 90, "y": 270 }, 7 | "facing=south,powered=false": { "model": "boe:tin_button", "uvlock": true, "x": 90, "y": 180 }, 8 | "facing=north,powered=false": { "model": "boe:tin_button", "uvlock": true, "x": 90 }, 9 | "facing=up,powered=true": { "model": "boe:tin_button_pressed", "uvlock": true }, 10 | "facing=down,powered=true": { "model": "boe:tin_button_pressed", "uvlock": true, "x": 180 }, 11 | "facing=east,powered=true": { "model": "boe:tin_button_pressed", "uvlock": true, "x": 90, "y": 90 }, 12 | "facing=west,powered=true": { "model": "boe:tin_button_pressed", "uvlock": true, "x": 90, "y": 270 }, 13 | "facing=south,powered=true": { "model": "boe:tin_button_pressed", "uvlock": true, "x": 90, "y": 180 }, 14 | "facing=north,powered=true": { "model": "boe:tin_button_pressed", "uvlock": true, "x": 90 } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_door.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "facing=east,half=lower,hinge=left,open=false": { "model": "boe:tin_door_bottom" }, 4 | "facing=south,half=lower,hinge=left,open=false": { "model": "boe:tin_door_bottom", "y": 90 }, 5 | "facing=west,half=lower,hinge=left,open=false": { "model": "boe:tin_door_bottom", "y": 180 }, 6 | "facing=north,half=lower,hinge=left,open=false": { "model": "boe:tin_door_bottom", "y": 270 }, 7 | "facing=east,half=lower,hinge=right,open=false": { "model": "boe:tin_door_bottom_rh" }, 8 | "facing=south,half=lower,hinge=right,open=false": { "model": "boe:tin_door_bottom_rh", "y": 90 }, 9 | "facing=west,half=lower,hinge=right,open=false": { "model": "boe:tin_door_bottom_rh", "y": 180 }, 10 | "facing=north,half=lower,hinge=right,open=false": { "model": "boe:tin_door_bottom_rh", "y": 270 }, 11 | "facing=east,half=lower,hinge=left,open=true": { "model": "boe:tin_door_bottom_rh", "y": 90 }, 12 | "facing=south,half=lower,hinge=left,open=true": { "model": "boe:tin_door_bottom_rh", "y": 180 }, 13 | "facing=west,half=lower,hinge=left,open=true": { "model": "boe:tin_door_bottom_rh", "y": 270 }, 14 | "facing=north,half=lower,hinge=left,open=true": { "model": "boe:tin_door_bottom_rh" }, 15 | "facing=east,half=lower,hinge=right,open=true": { "model": "boe:tin_door_bottom", "y": 270 }, 16 | "facing=south,half=lower,hinge=right,open=true": { "model": "boe:tin_door_bottom" }, 17 | "facing=west,half=lower,hinge=right,open=true": { "model": "boe:tin_door_bottom", "y": 90 }, 18 | "facing=north,half=lower,hinge=right,open=true": { "model": "boe:tin_door_bottom", "y": 180 }, 19 | "facing=east,half=upper,hinge=left,open=false": { "model": "boe:tin_door_top" }, 20 | "facing=south,half=upper,hinge=left,open=false": { "model": "boe:tin_door_top", "y": 90 }, 21 | "facing=west,half=upper,hinge=left,open=false": { "model": "boe:tin_door_top", "y": 180 }, 22 | "facing=north,half=upper,hinge=left,open=false": { "model": "boe:tin_door_top", "y": 270 }, 23 | "facing=east,half=upper,hinge=right,open=false": { "model": "boe:tin_door_top_rh" }, 24 | "facing=south,half=upper,hinge=right,open=false": { "model": "boe:tin_door_top_rh", "y": 90 }, 25 | "facing=west,half=upper,hinge=right,open=false": { "model": "boe:tin_door_top_rh", "y": 180 }, 26 | "facing=north,half=upper,hinge=right,open=false": { "model": "boe:tin_door_top_rh", "y": 270 }, 27 | "facing=east,half=upper,hinge=left,open=true": { "model": "boe:tin_door_top_rh", "y": 90 }, 28 | "facing=south,half=upper,hinge=left,open=true": { "model": "boe:tin_door_top_rh", "y": 180 }, 29 | "facing=west,half=upper,hinge=left,open=true": { "model": "boe:tin_door_top_rh", "y": 270 }, 30 | "facing=north,half=upper,hinge=left,open=true": { "model": "boe:tin_door_top_rh" }, 31 | "facing=east,half=upper,hinge=right,open=true": { "model": "boe:tin_door_top", "y": 270 }, 32 | "facing=south,half=upper,hinge=right,open=true": { "model": "boe:tin_door_top" }, 33 | "facing=west,half=upper,hinge=right,open=true": { "model": "boe:tin_door_top", "y": 90 }, 34 | "facing=north,half=upper,hinge=right,open=true": { "model": "boe:tin_door_top", "y": 180 } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_fence.json: -------------------------------------------------------------------------------- 1 | { 2 | "multipart": [ 3 | { "apply": { "model": "boe:tin_fence_post" } }, 4 | { "when": { "north": "true" }, 5 | "apply": { "model": "boe:tin_fence_side", "y": 0, "uvlock": true} 6 | }, 7 | { "when": { "east": "true" }, 8 | "apply": { "model": "boe:tin_fence_side", "y": 90, "uvlock": true} 9 | }, 10 | { "when": { "south": "true" }, 11 | "apply": { "model": "boe:tin_fence_side", "y": 180, "uvlock": true} 12 | }, 13 | { "when": { "west": "true" }, 14 | "apply": { "model": "boe:tin_fence_side", "y": 270, "uvlock": true} 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_fence_gate.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "facing=south,in_wall=false,open=false": { "model": "boe:tin_fence_gate_closed", "uvlock": true }, 4 | "facing=west,in_wall=false,open=false": { "model": "boe:tin_fence_gate_closed", "uvlock": true, "y": 90 }, 5 | "facing=north,in_wall=false,open=false": { "model": "boe:tin_fence_gate_closed", "uvlock": true, "y": 180 }, 6 | "facing=east,in_wall=false,open=false": { "model": "boe:tin_fence_gate_closed", "uvlock": true, "y": 270 }, 7 | "facing=south,in_wall=false,open=true": { "model": "boe:tin_fence_gate_open", "uvlock": true }, 8 | "facing=west,in_wall=false,open=true": { "model": "boe:tin_fence_gate_open", "uvlock": true, "y": 90 }, 9 | "facing=north,in_wall=false,open=true": { "model": "boe:tin_fence_gate_open", "uvlock": true, "y": 180 }, 10 | "facing=east,in_wall=false,open=true": { "model": "boe:tin_fence_gate_open", "uvlock": true, "y": 270 }, 11 | "facing=south,in_wall=true,open=false": { "model": "boe:tin_wall_gate_closed", "uvlock": true }, 12 | "facing=west,in_wall=true,open=false": { "model": "boe:tin_wall_gate_closed", "uvlock": true, "y": 90 }, 13 | "facing=north,in_wall=true,open=false": { "model": "boe:tin_wall_gate_closed", "uvlock": true, "y": 180 }, 14 | "facing=east,in_wall=true,open=false": { "model": "boe:tin_wall_gate_closed", "uvlock": true, "y": 270 }, 15 | "facing=south,in_wall=true,open=true": { "model": "boe:tin_wall_gate_open", "uvlock": true }, 16 | "facing=west,in_wall=true,open=true": { "model": "boe:tin_wall_gate_open", "uvlock": true, "y": 90 }, 17 | "facing=north,in_wall=true,open=true": { "model": "boe:tin_wall_gate_open", "uvlock": true, "y": 180 }, 18 | "facing=east,in_wall=true,open=true": { "model": "boe:tin_wall_gate_open", "uvlock": true, "y": 270 } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_ore.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "type=overworld": { "model": "boe:tin_ore_overworld" }, 4 | "type=nether": { "model": "boe:tin_ore_nether" }, 5 | "type=end": { "model": "boe:tin_ore_end" } 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_pressure_plate.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "power=0": { "model": "boe:tin_pressure_plate_up" }, 4 | "power=1": { "model": "boe:tin_pressure_plate_down" }, 5 | "power=2": { "model": "boe:tin_pressure_plate_down" }, 6 | "power=3": { "model": "boe:tin_pressure_plate_down" }, 7 | "power=4": { "model": "boe:tin_pressure_plate_down" }, 8 | "power=5": { "model": "boe:tin_pressure_plate_down" }, 9 | "power=6": { "model": "boe:tin_pressure_plate_down" }, 10 | "power=7": { "model": "boe:tin_pressure_plate_down" }, 11 | "power=8": { "model": "boe:tin_pressure_plate_down" }, 12 | "power=9": { "model": "boe:tin_pressure_plate_down" }, 13 | "power=10": { "model": "boe:tin_pressure_plate_down" }, 14 | "power=11": { "model": "boe:tin_pressure_plate_down" }, 15 | "power=12": { "model": "boe:tin_pressure_plate_down" }, 16 | "power=13": { "model": "boe:tin_pressure_plate_down" }, 17 | "power=14": { "model": "boe:tin_pressure_plate_down" }, 18 | "power=15": { "model": "boe:tin_pressure_plate_down" } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_slab_double.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "dummy=false,half=top": { "model": "boe:tin_block" }, 4 | "dummy=false,half=bottom": { "model": "boe:tin_block" } 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/blockstates/tin_slab_half.json: -------------------------------------------------------------------------------- 1 | { 2 | "variants": { 3 | "dummy=false,half=bottom": { "model": "boe:tin_slab_bottom" }, 4 | "dummy=false,half=top": { "model": "boe:tin_slab_top" } 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/lang/en_US.lang: -------------------------------------------------------------------------------- 1 | tile.tin_ore.overworld.name=Tin Ore 2 | tile.tin_ore.nether.name=Tin Ore 3 | tile.tin_ore.end.name=Tin Ore 4 | tile.tin_block.name=Block of Tin 5 | tile.tin_slab_half.name=Tin Slab 6 | tile.tin_stairs.name=Tin Stairs 7 | tile.tin_fence.name=Tin Fence 8 | tile.tin_fence_gate.name=Tin Fence Gate 9 | tile.block_breaker.basic.name=Block Breaker (Basic) 10 | tile.block_breaker.advanced.name=Block Breaker (Advanced) 11 | tile.gamemode_detector.name=Gamemode Detector 12 | tile.machine_frame.basic.name=Machine Frame (Basic) 13 | tile.machine_frame.advanced.name=Machine Frame (Advanced) 14 | tile.tin_button.name=Tin Button 15 | tile.tin_pressure_plate.name=Tin Pressure Plate 16 | tile.tin_door.name=Tin Door 17 | tile.double_furnace.name=Double Furnace 18 | 19 | item.tin_ingot.name=Tin Ingot 20 | item.tin_nugget.name=Tin Nugget 21 | item.tin_pickaxe.name=Tin Pickaxe 22 | item.tin_axe.name=Tin Axe 23 | item.tin_hoe.name=Tin Hoe 24 | item.tin_shovel.name=Tin Shovel 25 | item.tin_sword.name=Tin Sword 26 | 27 | item.heart.name=Heart 28 | item.soul_stealer.name=Soul Stealer 29 | 30 | item.tin_apple.name=Tin Apple 31 | item.nice_biscuit.name=Nice Biscuit 32 | 33 | item.infinity_flame.name=Infinity Flame 34 | 35 | item.tin_helmet.name=Tin Helmet 36 | item.tin_chestplate.name=Tin Chestplate 37 | item.tin_leggings.name=Tin Leggings 38 | item.tin_boots.name=Tin Boots 39 | item.tin_stick.name=Tin Stick 40 | 41 | item.chip.basic.name=Basic Chip 42 | item.chip.advanced.name=Advanced Chip 43 | 44 | item.paint_brush.name=Paint Brush 45 | item.paint_brush.tooltip=Color: %s 46 | tile.canvas.name=Canvas 47 | tile.canvas.tooltip=Color: %s 48 | item.fabric.name=Fabric 49 | 50 | item.cotton.name=Cotton 51 | tile.cotton.name=Cotton 52 | 53 | tile.energy_cell.basic.name=Energy Cell (Basic) 54 | tile.energy_cell.advanced.name=Energy Cell (Advanced) 55 | tile.furnace_generator.basic.name=Furnace Generator (Basic) 56 | tile.furnace_generator.advanced.name=Furnace Generator (Advanced) 57 | 58 | itemGroup.boeblocks=BitOfEverything Blocks 59 | itemGroup.boeitems=BitOfEverything Items 60 | 61 | boe.heart.tooltip=Heals the player 62 | boe.soul_stealer.tooltip=Steals the hearts of entities 63 | 64 | achievement.tinman=Tin Man 65 | achievement.tinman.desc=Wear all tin armour 66 | 67 | container.block_breaker=Block Breaker 68 | container.energy_cell=Energy Cell 69 | container.furnace_generator=Furnace Generator 70 | container.double_furnace=Double Furnace 71 | 72 | gui.block_breaker.enchanted_book.tooltip=Enchanted book goes here 73 | 74 | block.tin_fence_gate.open=Tin Fence Gate Opened 75 | block.tin_fence_gate.close=Tin Fence Gate Closed 76 | block.tin_button.click_on=Tin Button Clicked 77 | block.tin_button.click_off=Tin Button Released 78 | 79 | gui.config.main_title=BitOfEverything Configuration 80 | gui.config.category.blocks=Blocks 81 | gui.config.category.blocks.tooltip=All block settings 82 | gui.config.blocks.machine_cooldown_basic.name=Basic Machine Cooldown 83 | gui.config.blocks.machine_cooldown_basic.comment=The cooldown for the basic tier of machine 84 | gui.config.blocks.machine_cooldown_advanced.name=Advanced Machine Cooldown 85 | gui.config.blocks.machine_cooldown_advanced.comment=The cooldown for the advanced tier of machine -------------------------------------------------------------------------------- /src/main/resources/assets/boe/lang/fr_FR.lang: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/lang/fr_FR.lang -------------------------------------------------------------------------------- /src/main/resources/assets/boe/lang/sv_SE.lang: -------------------------------------------------------------------------------- 1 | ############################# 2 | ## Lang- Swedish(SE) ## 3 | ## Made By- DrSteam1111 ## 4 | ############################# 5 | 6 | tile.tin_ore.overworld.name=Tennmalm 7 | tile.tin_ore.nether.name=Tennmalm 8 | tile.tin_ore.end.name=Tennmalm 9 | tile.tin_block.name=Tennblock 10 | tile.tin_slab_half.name=Tennplatta 11 | tile.tin_stairs.name=Tenntrappa 12 | tile.tin_fence.name=Tennstaket 13 | tile.tin_fence_gate.name=Tennstaketgring 14 | tile.block_breaker.basic.name=Block Förstörare (Grundläggande) 15 | tile.block_breaker.advanced.name=Block Förstörare (Avancerad) 16 | tile.gamemode_detector.name=Spellägeupptäckare 17 | tile.machine_frame.basic.name=Maskinchassi (Grundläggande) 18 | tile.machine_frame.advanced.name=Maskinchassi (Avancerad) 19 | tile.tin_button.name=Tennknapp 20 | tile.tin_pressure_plate.name=Tenntryckplatta 21 | tile.tin_door.name=Tenndörr 22 | 23 | item.tin_ingot.name=Tenntacka 24 | item.tin_nugget.name=Tennklimp 25 | item.tin_pickaxe.name=Tennhacka 26 | item.tin_axe.name=Tennyxa 27 | item.tin_hoe.name=Tennflåhacka 28 | item.tin_shovel.name=Tennspade 29 | item.tin_sword.name=Tennsvärd 30 | 31 | item.heart.name=Hjärta 32 | item.soul_stealer.name=Själstjälare 33 | 34 | item.tin_apple.name=Tennäpple 35 | item.nice_biscuit.name=Trevligsmåkaka 36 | 37 | item.infinity_flame.name=Oändlighetsflamma 38 | 39 | item.tin_helmet.name=Tennhjälm 40 | item.tin_chestplate.name=Tennharnesk 41 | item.tin_leggings.name=Tennbyxor 42 | item.tin_boots.name=Tennstövlar 43 | item.tin_stick.name=Tennpinne 44 | 45 | item.chip.basic.name=Grundchip 46 | item.chip.advanced.name=Avanceratchip 47 | 48 | item.paint_brush.name=Målarpensel 49 | item.paint_brush.tooltip=Färg: %s 50 | tile.canvas.name=Målarduk 51 | tile.canvas.tooltip=Färg: %s 52 | item.fabric.name=Tyg 53 | 54 | item.cotton.name=Bomull 55 | tile.cotton.name=Bomull 56 | 57 | itemGroup.boeblocks=BitOfEverything Blocks 58 | itemGroup.boeitems=BitOfEverything Saker 59 | 60 | boe.heart.tooltip=Helar spelaren 61 | boe.soul_stealer.tooltip=Stjäl hjärtan från entiteter 62 | 63 | achievement.tinman=Tennmannen 64 | achievement.tinman.desc=Klä dig i all tenn rustning 65 | 66 | container.block_breaker=Block Förstörare 67 | 68 | gui.block_breaker.enchanted_book.tooltip=Förtrollad bok här 69 | 70 | block.tin_fence_gate.open=Tennstaketgring Öppnad 71 | block.tin_fence_gate.close=Tennstaketgring Stängd 72 | block.tin_button.click_on=Tennknapp Tryckt 73 | block.tin_button.click_off=Tennknapp Släppt 74 | 75 | gui.config.main_title=BitOfEverything Konfiguration 76 | gui.config.category.blocks=Blocks 77 | gui.config.category.blocks.tooltip=Alla block inställningar 78 | gui.config.blocks.machine_cooldown_basic.name=Grundmaskin Nerräkning 79 | gui.config.blocks.machine_cooldown_basic.comment=Nerräkningen för grundnivån av maskinerna 80 | gui.config.blocks.machine_cooldown_advanced.name=Avanceradmaskin Nerräkning 81 | gui.config.blocks.machine_cooldown_advanced.comment=Nerräkningen för avanceradnivån av maskinerna 82 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/block_breaker_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/block_breaker_side_advanced", 5 | "front": "boe:blocks/block_breaker_front_advanced", 6 | "alt": "boe:blocks/machine_advanced" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/block_breaker_advanced_activated.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/block_breaker_side_advanced", 5 | "front": "boe:blocks/block_breaker_front_advanced_activated", 6 | "alt": "boe:blocks/machine_advanced" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/block_breaker_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/block_breaker_side_basic", 5 | "front": "boe:blocks/block_breaker_front_basic", 6 | "alt": "boe:blocks/machine_basic" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/block_breaker_basic_activated.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/block_breaker_side_basic", 5 | "front": "boe:blocks/block_breaker_front_basic_activated", 6 | "alt": "boe:blocks/machine_basic" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/canvas.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/block", 3 | "textures": { 4 | "all": "boe:blocks/canvas", 5 | "particle": "boe:blocks/canvas" 6 | }, 7 | "elements": [ 8 | { "from": [ 0, 0, 0 ], 9 | "to": [ 16, 16, 16 ], 10 | "faces": { 11 | "down": { "texture": "#all", "cullface": "down", "tintindex": 0 }, 12 | "up": { "texture": "#all", "cullface": "up", "tintindex": 0 }, 13 | "north": { "texture": "#all", "cullface": "north", "tintindex": 0 }, 14 | "south": { "texture": "#all", "cullface": "south", "tintindex": 0 }, 15 | "west": { "texture": "#all", "cullface": "west", "tintindex": 0 }, 16 | "east": { "texture": "#all", "cullface": "east", "tintindex": 0 } 17 | } 18 | } 19 | ], 20 | "ctm": { 21 | "model": { "model": "cube" }, 22 | "face": "boe:ctm/canvas.cf" 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage0.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_0" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage1.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_1" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage2.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_2" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage3.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_3" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage4.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_4" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage5.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_5" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage6.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_6" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/cotton_stage7.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/crop", 3 | "textures": { 4 | "crop": "boe:blocks/cotton_stage_7" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/ctm/canvas.cf: -------------------------------------------------------------------------------- 1 | { 2 | "textures": [ 3 | "boe:ctm/canvas.ctx" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/ctm/machine_advanced.cf: -------------------------------------------------------------------------------- 1 | { 2 | "textures": [ 3 | "boe:ctm/machine_advanced.ctx" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/ctm/machine_basic.cf: -------------------------------------------------------------------------------- 1 | { 2 | "textures": [ 3 | "boe:ctm/machine_basic.ctx" 4 | ] 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/double_furnace.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/orientable", 3 | "textures": { 4 | "top": "blocks/furnace_top", 5 | "front": "boe:blocks/double_furnace_front_off", 6 | "side": "blocks/furnace_side" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/double_furnace_activated.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/orientable", 3 | "textures": { 4 | "top": "blocks/furnace_top", 5 | "front": "boe:blocks/double_furnace_front_on", 6 | "side": "blocks/furnace_side" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/energy_cell_connection_in_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | "particle": "boe:blocks/machine_advanced", 4 | "0": "boe:blocks/energy_cell_strip_in", 5 | "3": "boe:blocks/machine_advanced" 6 | }, 7 | "elements": [ 8 | { 9 | "name": "Connection Base", 10 | "from": [ 7.0, 7.0, 1.0 ], 11 | "to": [ 9.0, 9.0, 4.0 ], 12 | "faces": { 13 | "north": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 14 | "east": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 180 }, 15 | "south": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 16 | "west": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 17 | "up": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 90 }, 18 | "down": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 270 } 19 | } 20 | }, 21 | { 22 | "name": "Connection", 23 | "from": [ 6.0, 6.0, 0.0 ], 24 | "to": [ 10.0, 10.0, 1.0 ], 25 | "faces": { 26 | "north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 27 | "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 28 | "south": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 29 | "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 30 | "up": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] }, 31 | "down": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] } 32 | } 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/energy_cell_connection_in_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | "particle": "boe:blocks/machine_basic", 4 | "0": "boe:blocks/energy_cell_strip_in", 5 | "3": "boe:blocks/machine_basic" 6 | }, 7 | "elements": [ 8 | { 9 | "name": "Connection Base", 10 | "from": [ 7.0, 7.0, 1.0 ], 11 | "to": [ 9.0, 9.0, 4.0 ], 12 | "faces": { 13 | "north": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 14 | "east": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 180 }, 15 | "south": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 16 | "west": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 17 | "up": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 90 }, 18 | "down": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 270 } 19 | } 20 | }, 21 | { 22 | "name": "Connection", 23 | "from": [ 6.0, 6.0, 0.0 ], 24 | "to": [ 10.0, 10.0, 1.0 ], 25 | "faces": { 26 | "north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 27 | "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 28 | "south": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 29 | "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 30 | "up": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] }, 31 | "down": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] } 32 | } 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/energy_cell_connection_normal_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | "particle": "boe:blocks/machine_advanced", 4 | "0": "boe:blocks/energy_cell_strip_normal", 5 | "3": "boe:blocks/machine_advanced" 6 | }, 7 | "elements": [ 8 | { 9 | "name": "Connection Base", 10 | "from": [ 7.0, 7.0, 1.0 ], 11 | "to": [ 9.0, 9.0, 4.0 ], 12 | "faces": { 13 | "north": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 14 | "east": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 15 | "south": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 16 | "west": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 17 | "up": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 18 | "down": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] } 19 | } 20 | }, 21 | { 22 | "name": "Connection", 23 | "from": [ 6.0, 6.0, 0.0 ], 24 | "to": [ 10.0, 10.0, 1.0 ], 25 | "faces": { 26 | "north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 27 | "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 28 | "south": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 29 | "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 30 | "up": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] }, 31 | "down": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] } 32 | } 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/energy_cell_connection_normal_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | "particle": "boe:blocks/machine_basic", 4 | "0": "boe:blocks/energy_cell_strip_normal", 5 | "3": "boe:blocks/machine_basic" 6 | }, 7 | "elements": [ 8 | { 9 | "name": "Connection Base", 10 | "from": [ 7.0, 7.0, 1.0 ], 11 | "to": [ 9.0, 9.0, 4.0 ], 12 | "faces": { 13 | "north": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 14 | "east": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 15 | "south": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 16 | "west": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 17 | "up": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] }, 18 | "down": { "texture": "#0", "uv": [ 0.0, 6.0, 4.0, 10.0 ] } 19 | } 20 | }, 21 | { 22 | "name": "Connection", 23 | "from": [ 6.0, 6.0, 0.0 ], 24 | "to": [ 10.0, 10.0, 1.0 ], 25 | "faces": { 26 | "north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 27 | "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 28 | "south": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 29 | "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 30 | "up": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] }, 31 | "down": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] } 32 | } 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/energy_cell_connection_out_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | "particle": "boe:blocks/machine_advanced", 4 | "0": "boe:blocks/energy_cell_strip_out", 5 | "3": "boe:blocks/machine_advanced" 6 | }, 7 | "elements": [ 8 | { 9 | "name": "Connection Base", 10 | "from": [ 7.0, 7.0, 1.0 ], 11 | "to": [ 9.0, 9.0, 4.0 ], 12 | "faces": { 13 | "north": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 14 | "east": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 180 }, 15 | "south": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 16 | "west": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 17 | "up": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 90 }, 18 | "down": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 270 } 19 | } 20 | }, 21 | { 22 | "name": "Connection", 23 | "from": [ 6.0, 6.0, 0.0 ], 24 | "to": [ 10.0, 10.0, 1.0 ], 25 | "faces": { 26 | "north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 27 | "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 28 | "south": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 29 | "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 30 | "up": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] }, 31 | "down": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] } 32 | } 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/energy_cell_connection_out_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "textures": { 3 | "particle": "boe:blocks/machine_basic", 4 | "0": "boe:blocks/energy_cell_strip_out", 5 | "3": "boe:blocks/machine_basic" 6 | }, 7 | "elements": [ 8 | { 9 | "name": "Connection Base", 10 | "from": [ 7.0, 7.0, 1.0 ], 11 | "to": [ 9.0, 9.0, 4.0 ], 12 | "faces": { 13 | "north": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 14 | "east": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 180 }, 15 | "south": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 16 | "west": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ] }, 17 | "up": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 90 }, 18 | "down": { "texture": "#0", "uv": [ 0.0, 6.0, 8.0, 10.0 ], "rotation": 270 } 19 | } 20 | }, 21 | { 22 | "name": "Connection", 23 | "from": [ 6.0, 6.0, 0.0 ], 24 | "to": [ 10.0, 10.0, 1.0 ], 25 | "faces": { 26 | "north": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 27 | "east": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 28 | "south": { "texture": "#3", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, 29 | "west": { "texture": "#3", "uv": [ 0.0, 0.0, 1.0, 4.0 ] }, 30 | "up": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] }, 31 | "down": { "texture": "#3", "uv": [ 0.0, 0.0, 4.0, 1.0 ] } 32 | } 33 | } 34 | ] 35 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/furnace_generator_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/machine_advanced", 5 | "front": "boe:blocks/furnace_generator_front_advanced", 6 | "alt": "boe:blocks/machine_advanced" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/furnace_generator_advanced_activated.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/machine_advanced", 5 | "front": "boe:blocks/furnace_generator_front_advanced_activated", 6 | "alt": "boe:blocks/machine_advanced" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/furnace_generator_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/machine_basic", 5 | "front": "boe:blocks/furnace_generator_front_basic", 6 | "alt": "boe:blocks/machine_basic" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/furnace_generator_basic_activated.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/machine", 3 | "textures": { 4 | "side": "boe:blocks/machine_basic", 5 | "front": "boe:blocks/furnace_generator_front_basic_activated", 6 | "alt": "boe:blocks/machine_basic" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/gamemode_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/gamemode_detector" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/machine.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube", 3 | "textures": { 4 | "particle": "#side", 5 | "north": "#front", 6 | "south": "#side", 7 | "east": "#side", 8 | "west": "#side", 9 | "up": "#alt", 10 | "down": "#alt" 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/machine_frame_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/machine_advanced" 5 | }, 6 | "ctm": { 7 | "model": { "model": "cube" }, 8 | "face": "boe:ctm/machine_advanced.cf" 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/machine_frame_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/machine_basic" 5 | }, 6 | "ctm": { 7 | "model": { "model": "cube" }, 8 | "face": "boe:ctm/machine_basic.cf" 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/tin_block" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_button.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/button", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_button_inventory.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/button_inventory", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_button_pressed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/button_pressed", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_door_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/door_bottom", 3 | "textures": { 4 | "bottom": "boe:blocks/door_tin_lower", 5 | "top": "boe:blocks/door_tin_upper" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_door_bottom_rh.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/door_bottom_rh", 3 | "textures": { 4 | "bottom": "boe:blocks/door_tin_lower", 5 | "top": "boe:blocks/door_tin_upper" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_door_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/door_top", 3 | "textures": { 4 | "bottom": "boe:blocks/door_tin_lower", 5 | "top": "boe:blocks/door_tin_upper" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_door_top_rh.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/door_top_rh", 3 | "textures": { 4 | "bottom": "boe:blocks/door_tin_lower", 5 | "top": "boe:blocks/door_tin_upper" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_fence_gate_closed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/fence_gate_closed", 3 | "textures": { 4 | "texture": "blocks/iron_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_fence_gate_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/fence_gate_open", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_fence_post.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/fence_post", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_fence_side.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/fence_side", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_inner_stairs.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/inner_stairs", 3 | "textures": { 4 | "bottom": "boe:blocks/tin_block", 5 | "top": "boe:blocks/tin_block", 6 | "side": "boe:blocks/tin_block" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_ore.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/tin_ore" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_ore_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/tin_ore_end" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_ore_nether.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/tin_ore_nether" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_ore_overworld.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/tin_ore" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_outer_stairs.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/outer_stairs", 3 | "textures": { 4 | "bottom": "boe:blocks/tin_block", 5 | "top": "boe:blocks/tin_block", 6 | "side": "boe:blocks/tin_block" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_pressure_plate_down.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/pressure_plate_down", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_pressure_plate_up.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/pressure_plate_up", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_slab_bottom.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/half_slab", 3 | "textures": { 4 | "bottom": "boe:blocks/tin_block", 5 | "top": "boe:blocks/tin_block", 6 | "side": "boe:blocks/tin_block" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_slab_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/upper_slab", 3 | "textures": { 4 | "bottom": "boe:blocks/tin_block", 5 | "top": "boe:blocks/tin_block", 6 | "side": "boe:blocks/tin_block" 7 | } 8 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_stairs.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/stairs", 3 | "textures": { 4 | "bottom": "boe:blocks/tin_block", 5 | "top": "boe:blocks/tin_block", 6 | "side": "boe:blocks/tin_block" 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_wall_gate_closed.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/wall_gate_closed", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/block/tin_wall_gate_open.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/wall_gate_open", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/block_breaker_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/block_breaker_advanced" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/block_breaker_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/block_breaker_basic" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/canvas.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/block", 3 | "textures": { 4 | "all": "boe:blocks/canvas" 5 | }, 6 | "elements": [ 7 | { "from": [ 0, 0, 0 ], 8 | "to": [ 16, 16, 16 ], 9 | "faces": { 10 | "down": { "texture": "#all", "cullface": "down", "tintindex": 0 }, 11 | "up": { "texture": "#all", "cullface": "up", "tintindex": 0 }, 12 | "north": { "texture": "#all", "cullface": "north", "tintindex": 0 }, 13 | "south": { "texture": "#all", "cullface": "south", "tintindex": 0 }, 14 | "west": { "texture": "#all", "cullface": "west", "tintindex": 0 }, 15 | "east": { "texture": "#all", "cullface": "east", "tintindex": 0 } 16 | } 17 | } 18 | ] 19 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/chip_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/chip_advanced" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/chip_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/chip_basic" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/cotton.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/cotton" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/double_furnace.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/double_furnace" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/fabric.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/fabric" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/furnace_generator_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/furnace_generator_advanced" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/furnace_generator_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/furnace_generator_basic" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/gamemode_detector.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/gamemode_detector" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/heart.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/heart" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/infinity_flame.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/infinity_flame" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/machine_frame_advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/machine_advanced" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/machine_frame_basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/cube_all", 3 | "textures": { 4 | "all": "boe:blocks/machine_basic" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/nice_biscuit.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/nice_biscuit" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/paint_brush.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "boe:items/paint_brush_0", 5 | "layer1": "boe:items/paint_brush_1" 6 | } 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/soul_stealer.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "boe:items/soul_stealer" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_apple.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_apple" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_axe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "boe:items/tin_axe" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_block.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_block" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_boots.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_boots" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_button.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_button_inventory" 3 | } 4 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_chestplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_chestplate" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_door.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/door_tin" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_fence.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "block/fence_inventory", 3 | "textures": { 4 | "texture": "boe:blocks/tin_block" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_fence_gate.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_fence_gate_closed" 3 | } 4 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_helmet.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_helmet" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_hoe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "boe:items/tin_hoe" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_ingot.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_ingot" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_leggings.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_leggings" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_nugget.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_nugget" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_ore.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_ore" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_ore_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_ore_end" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_ore_nether.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_ore_nether" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_ore_overworld.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_ore_overworld" 3 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_pickaxe.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "boe:items/tin_pickaxe" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_pressure_plate.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_pressure_plate_up" 3 | } 4 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_shovel.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "boe:items/tin_shovel" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_slab_half.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_slab_bottom", 3 | "display": { 4 | "thirdperson": { 5 | "rotation": [ 10, -45, 170 ], 6 | "translation": [ 0, 1.5, -2.75 ], 7 | "scale": [ 0.375, 0.375, 0.375 ] 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_stairs.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "boe:block/tin_stairs", 3 | "display": { 4 | "thirdperson": { 5 | "rotation": [ 10, -45, 170 ], 6 | "translation": [ 0, 1.5, -2.75 ], 7 | "scale": [ 0.375, 0.375, 0.375 ] 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_stick.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/generated", 3 | "textures": { 4 | "layer0": "boe:items/tin_stick" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/models/item/tin_sword.json: -------------------------------------------------------------------------------- 1 | { 2 | "parent": "item/handheld", 3 | "textures": { 4 | "layer0": "boe:items/tin_sword" 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/sounds.json: -------------------------------------------------------------------------------- 1 | { 2 | "block.tin_fence_gate.open": { 3 | "category": "block", 4 | "subtitle": "block.tin_fence_gate.open", 5 | "sounds": [ { "name": "boe:block/tin_fence_gate/open", "stream": true } ] 6 | }, 7 | "block.tin_fence_gate.close": { 8 | "category": "block", 9 | "subtitle": "block.tin_fence_gate.close", 10 | "sounds": [ { "name": "boe:block/tin_fence_gate/close", "stream": true } ] 11 | }, 12 | "block.tin_button.click_on": { 13 | "category": "block", 14 | "subtitle": "block.tin_button.click_on", 15 | "sounds": [ { "name": "boe:block/tin_button/click_on", "stream": true } ] 16 | }, 17 | "block.tin_button.click_off": { 18 | "category": "block", 19 | "subtitle": "block.tin_button.click_off", 20 | "sounds": [ { "name": "boe:block/tin_button/click_off", "stream": true } ] 21 | } 22 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/sounds/block/tin_button/click_off.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/sounds/block/tin_button/click_off.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/boe/sounds/block/tin_button/click_on.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/sounds/block/tin_button/click_on.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/boe/sounds/block/tin_fence_gate/close.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/sounds/block/tin_fence_gate/close.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/boe/sounds/block/tin_fence_gate/open.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/sounds/block/tin_fence_gate/open.ogg -------------------------------------------------------------------------------- /src/main/resources/assets/boe/structures/cabin.nbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/structures/cabin.nbt -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_advanced_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_advanced_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_advanced_front_activated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_advanced_front_activated.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_advanced_front_activated.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 12 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_basic_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_basic_front.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_basic_front_activated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_basic_front_activated.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_basic_front_activated.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 12 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_front_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_front_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_front_advanced_activated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_front_advanced_activated.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_front_advanced_activated.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 12 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_front_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_front_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_front_basic_activated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_front_basic_activated.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_front_basic_activated.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 12 4 | } 5 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_side_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_side_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_breaker_side_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_breaker_side_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_placer_side_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_placer_side_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/block_placer_side_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/block_placer_side_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/canvas.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/canvas_core.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/canvas_core.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_0.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_3.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_4.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_5.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_6.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/cotton_stage_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/cotton_stage_7.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/ctm/canvas.ctx: -------------------------------------------------------------------------------- 1 | { 2 | "type": "CTM", 3 | "textures": [ 4 | "blocks/canvas", 5 | "./canvas" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/ctm/canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/ctm/canvas.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/ctm/machine_advanced.ctx: -------------------------------------------------------------------------------- 1 | { 2 | "type": "CTM", 3 | "textures": [ 4 | "blocks/machine_advanced", 5 | "./machine_advanced" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/ctm/machine_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/ctm/machine_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/ctm/machine_basic.ctx: -------------------------------------------------------------------------------- 1 | { 2 | "type": "CTM", 3 | "textures": [ 4 | "blocks/machine_basic", 5 | "./machine_basic" 6 | ] 7 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/ctm/machine_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/ctm/machine_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/door_tin_lower.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/door_tin_lower.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/door_tin_upper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/door_tin_upper.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/double_furnace_front_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/double_furnace_front_off.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/double_furnace_front_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/double_furnace_front_on.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/energy_cell.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": true, 4 | "frametime": 5 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_centre_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/energy_cell_centre_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_centre_advanced.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": true, 4 | "frametime": 5 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_centre_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/energy_cell_centre_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_centre_basic.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": true, 4 | "frametime": 5 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_strip_in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/energy_cell_strip_in.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_strip_in.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": true, 4 | "frametime": 5 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_strip_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/energy_cell_strip_normal.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_strip_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/energy_cell_strip_out.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/energy_cell_strip_out.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "interpolate": true, 4 | "frametime": 5 5 | } 6 | } -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/furnace_generator_front_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/furnace_generator_front_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/furnace_generator_front_advanced_activated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/furnace_generator_front_advanced_activated.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/furnace_generator_front_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/furnace_generator_front_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/furnace_generator_front_basic_activated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/furnace_generator_front_basic_activated.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/gamemode_detector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/gamemode_detector.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/machine_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/machine_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/machine_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/machine_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/tin_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/tin_block.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/tin_ore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/tin_ore.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/tin_ore_end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/tin_ore_end.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/blocks/tin_ore_nether.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/blocks/tin_ore_nether.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/gui/container/block_breaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/gui/container/block_breaker.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/gui/container/double_furnace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/gui/container/double_furnace.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/gui/container/energy_cell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/gui/container/energy_cell.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/gui/container/furnace_generator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/gui/container/furnace_generator.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/chip_advanced.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/chip_advanced.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/chip_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/chip_basic.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/cotton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/cotton.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/door_tin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/door_tin.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/fabric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/fabric.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/heart.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/infinity_flame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/infinity_flame.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/nice_biscuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/nice_biscuit.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/paint_brush_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/paint_brush_0.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/paint_brush_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/paint_brush_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/soul_stealer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/soul_stealer.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_apple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_apple.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_axe.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_boots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_boots.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_chestplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_chestplate.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_helmet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_helmet.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_hoe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_hoe.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_ingot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_ingot.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_leggings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_leggings.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_nugget.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_nugget.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_pickaxe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_pickaxe.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_shovel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_shovel.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_stick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_stick.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/items/tin_sword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/items/tin_sword.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/models/armor/tin_layer_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/models/armor/tin_layer_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/boe/textures/models/armor/tin_layer_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CJMinecraft01/BitOfEverything/6ab40135d1c4f9e97e898925d85a33334b13036e/src/main/resources/assets/boe/textures/models/armor/tin_layer_2.png -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "modid": "boe", 4 | "name": "BitOfEverything", 5 | "description": "Add a bit of everything.", 6 | "version": "${version}", 7 | "mcversion": "${mcversion}", 8 | "url": "http://cjminecraft.theclever.me", 9 | "updateUrl": "", 10 | "authorList": ["CJMinecraft"], 11 | "credits": "Me because I am a boss!", 12 | "logoFile": "", 13 | "screenshots": [], 14 | "useDependencyInformation": true, 15 | "requiredMods": ["cjcore"], 16 | "dependencies": ["cjcore"] 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /update.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BitOfEverything", 3 | "version": "0.0.1", 4 | "changelog": [ 5 | "+Added update checker" 6 | ], 7 | "download": "" 8 | } --------------------------------------------------------------------------------