From 58d9266775bf19cd5b8ce61905355e3f9706cf97 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Wed, 16 Aug 2017 21:51:31 +0200 Subject: [PATCH] Added crappy pumpjack model, template folder item with gui screen --- assets/hbm/models/pumpjack_base.obj | 787 ++++++++++++++++++ assets/hbm/models/pumpjack_head.obj | 342 ++++++++ assets/hbm/models/pumpjack_rotor.obj | 248 ++++++ assets/hbm/textures/gui/gui_planner_alt.png | Bin 0 -> 1741 bytes assets/hbm/textures/items/template_folder.png | Bin 0 -> 366 bytes com/hbm/blocks/ModBlocks.java | 5 + com/hbm/blocks/machine/MachinePumpjack.java | 36 + com/hbm/handler/GUIHandler.java | 10 + .../handler/nei/ChemplantRecipeHandler.java | 223 +++++ .../handler/nei/RefineryRecipeHandler.java | 7 +- com/hbm/inventory/MachineRecipes.java | 47 ++ .../gui/GUIScreenTemplateFolder.java | 215 +++++ com/hbm/items/ModItems.java | 5 + com/hbm/items/special/ItemBattery.java | 12 + com/hbm/items/tool/ItemFluidIcon.java | 15 +- com/hbm/items/tool/ItemTemplateFolder.java | 24 + com/hbm/main/ClientProxy.java | 3 + com/hbm/main/CraftingManager.java | 4 +- com/hbm/main/MainRegistry.java | 2 + com/hbm/main/NEIConfig.java | 3 + com/hbm/main/ResourceManager.java | 5 + com/hbm/packet/ItemFolderPacket.java | 95 +++ com/hbm/packet/PacketDispatcher.java | 2 + com/hbm/render/tileentity/RenderPumpjack.java | 120 +++ .../tileentity/TileEntityMachinePumpjack.java | 7 + 25 files changed, 2211 insertions(+), 6 deletions(-) create mode 100644 assets/hbm/models/pumpjack_base.obj create mode 100644 assets/hbm/models/pumpjack_head.obj create mode 100644 assets/hbm/models/pumpjack_rotor.obj create mode 100644 assets/hbm/textures/gui/gui_planner_alt.png create mode 100644 assets/hbm/textures/items/template_folder.png create mode 100644 com/hbm/blocks/machine/MachinePumpjack.java create mode 100644 com/hbm/handler/nei/ChemplantRecipeHandler.java create mode 100644 com/hbm/inventory/gui/GUIScreenTemplateFolder.java create mode 100644 com/hbm/items/tool/ItemTemplateFolder.java create mode 100644 com/hbm/packet/ItemFolderPacket.java create mode 100644 com/hbm/render/tileentity/RenderPumpjack.java create mode 100644 com/hbm/tileentity/TileEntityMachinePumpjack.java diff --git a/assets/hbm/models/pumpjack_base.obj b/assets/hbm/models/pumpjack_base.obj new file mode 100644 index 000000000..5f737a734 --- /dev/null +++ b/assets/hbm/models/pumpjack_base.obj @@ -0,0 +1,787 @@ +# Blender v2.76 (sub 0) OBJ File: 'pumpjack_base.blend' +# www.blender.org +o Plane +v -1.500000 0.000000 0.500000 +v 1.500000 0.000000 0.500000 +v -1.500000 0.000000 -6.500000 +v 1.500000 0.000000 -6.500000 +v 0.000000 0.000000 -0.100000 +v 0.000000 0.500000 -0.100000 +v 0.070711 0.000000 -0.070711 +v 0.070711 0.500000 -0.070711 +v 0.100000 0.000000 0.000000 +v 0.100000 0.500000 0.000000 +v 0.070711 0.000000 0.070711 +v 0.070711 0.500000 0.070711 +v -0.000000 0.000000 0.100000 +v -0.000000 0.500000 0.100000 +v -0.070711 0.000000 0.070711 +v -0.070711 0.500000 0.070711 +v -0.100000 0.000000 -0.000000 +v -0.100000 0.500000 -0.000000 +v -0.070711 0.000000 -0.070711 +v -0.070711 0.500000 -0.070711 +v -1.000000 0.000000 -0.500000 +v -1.000000 0.150000 -0.500000 +v -1.000000 0.000000 -6.500000 +v -1.000000 0.150000 -6.500000 +v 1.000000 0.000000 -0.500000 +v 1.000000 0.150000 -0.500000 +v 1.000000 0.000000 -6.500000 +v 1.000000 0.150000 -6.500000 +v -0.750000 0.150000 -1.000000 +v -0.750000 0.500000 -1.000000 +v -0.750000 0.150000 -4.000000 +v -0.750000 0.500000 -4.000000 +v 0.750000 0.150000 -1.000000 +v 0.750000 0.500000 -1.000000 +v 0.750000 0.150000 -4.000000 +v 0.750000 0.500000 -4.000000 +v -0.500000 4.000000 -2.125000 +v -0.500000 4.000000 -2.875000 +v 0.500000 4.000000 -2.125000 +v 0.500000 4.000000 -2.875000 +v 0.250000 3.250000 -2.125000 +v 0.500000 3.250000 -2.125000 +v 0.250000 3.250000 -2.375000 +v 0.500000 3.250000 -2.375000 +v 0.500000 0.500000 -1.625000 +v 0.750000 0.500000 -1.625000 +v 0.500000 0.500000 -1.875000 +v 0.750000 0.500000 -1.875000 +v 0.250000 3.250000 -2.625000 +v 0.500000 3.250000 -2.625000 +v 0.250000 3.250000 -2.875000 +v 0.500000 3.250000 -2.875000 +v -0.500000 3.250000 -2.125000 +v -0.250000 3.250000 -2.125000 +v -0.500000 3.250000 -2.375000 +v -0.250000 3.250000 -2.375000 +v -0.500000 3.250000 -2.625000 +v -0.250000 3.250000 -2.625000 +v -0.500000 3.250000 -2.875000 +v -0.250000 3.250000 -2.875000 +v 0.500000 0.500000 -3.125000 +v 0.750000 0.500000 -3.125000 +v 0.500000 0.500000 -3.375000 +v 0.750000 0.500000 -3.375000 +v -0.750000 0.500000 -1.625000 +v -0.500000 0.500000 -1.625000 +v -0.750000 0.500000 -1.875000 +v -0.500000 0.500000 -1.875000 +v -0.750000 0.500000 -3.125000 +v -0.500000 0.500000 -3.125000 +v -0.750000 0.500000 -3.375000 +v -0.500000 0.500000 -3.375000 +v 0.625000 1.875000 -2.875000 +v 0.625000 1.875000 -3.125000 +v 0.375000 1.875000 -3.125000 +v 0.375000 1.875000 -2.875000 +v 0.625000 1.875000 -1.875000 +v 0.625000 1.875000 -2.125000 +v 0.375000 1.875000 -1.875000 +v 0.375000 1.875000 -2.125000 +v 0.562500 2.562500 -2.000000 +v 0.562500 2.562500 -2.250000 +v 0.312500 2.562500 -2.000000 +v 0.312500 2.562500 -2.250000 +v 0.562500 2.562500 -2.750000 +v 0.562500 2.562500 -3.000000 +v 0.312500 2.562500 -3.000000 +v 0.312500 2.562500 -2.750000 +v 0.687500 1.187500 -1.750000 +v 0.687500 1.187500 -2.000000 +v 0.437500 1.187500 -1.750000 +v 0.437500 1.187500 -2.000000 +v 0.687500 1.187500 -3.000000 +v 0.687500 1.187500 -3.250000 +v 0.437500 1.187500 -3.250000 +v 0.437500 1.187500 -3.000000 +v -0.625000 1.875000 -3.125000 +v -0.625000 1.875000 -2.875000 +v -0.375000 1.875000 -3.125000 +v -0.375000 1.875000 -2.875000 +v -0.687500 1.187500 -3.250000 +v -0.687500 1.187500 -3.000000 +v -0.437500 1.187500 -3.250000 +v -0.437500 1.187500 -3.000000 +v -0.562500 2.562500 -3.000000 +v -0.562500 2.562500 -2.750000 +v -0.312500 2.562500 -3.000000 +v -0.312500 2.562500 -2.750000 +v -0.625000 1.875000 -2.125000 +v -0.625000 1.875000 -1.875000 +v -0.375000 1.875000 -1.875000 +v -0.375000 1.875000 -2.125000 +v -0.562500 2.562500 -2.250000 +v -0.562500 2.562500 -2.000000 +v -0.312500 2.562500 -2.000000 +v -0.312500 2.562500 -2.250000 +v -0.687500 1.187500 -2.000000 +v -0.687500 1.187500 -1.750000 +v -0.437500 1.187500 -1.750000 +v -0.437500 1.187500 -2.000000 +v -0.500000 1.500000 -6.500000 +v 0.500000 1.500000 -6.500000 +v -0.500000 1.000000 -6.366025 +v 0.500000 1.000000 -6.366025 +v -0.500000 0.633974 -6.000000 +v 0.500000 0.633975 -6.000000 +v -0.500000 0.500000 -5.500000 +v 0.500000 0.500000 -5.500000 +v -0.500000 0.633974 -5.000000 +v 0.500000 0.633975 -5.000000 +v -0.500000 1.000000 -4.633975 +v 0.500000 1.000000 -4.633975 +v -0.500000 1.500000 -4.500000 +v 0.500000 1.500000 -4.500000 +v -0.500000 2.000000 -4.633975 +v 0.500000 2.000000 -4.633975 +v -0.500000 2.366025 -5.000000 +v 0.500000 2.366025 -5.000000 +v -0.500000 2.500000 -5.500000 +v 0.500000 2.500000 -5.500000 +v -0.500000 2.366026 -6.000000 +v 0.500000 2.366026 -6.000000 +v -0.500000 2.000000 -6.366025 +v 0.500000 2.000001 -6.366025 +v -0.375000 1.500000 -6.500000 +v 0.375000 1.500000 -6.500000 +v -0.375000 1.500000 -4.500000 +v 0.375000 1.500000 -4.500000 +v -0.375000 0.150000 -6.500000 +v 0.375000 0.150000 -6.500000 +v -0.375000 0.150000 -4.250000 +v 0.375000 0.150000 -4.250000 +v -0.375000 1.150000 -4.250000 +v 0.375000 1.150000 -4.250000 +v -0.375000 1.000000 -6.366025 +v 0.375000 1.000000 -6.366025 +v -0.375000 0.633974 -6.000000 +v 0.375000 0.633975 -6.000000 +v -0.375000 0.500000 -5.500000 +v 0.375000 0.500000 -5.500000 +v -0.375000 0.633974 -5.000000 +v 0.375000 0.633975 -5.000000 +v -0.375000 1.000000 -4.633975 +v 0.375000 1.000000 -4.633975 +v 0.000000 0.400000 -1.000000 +v 0.000000 0.400000 0.150000 +v 0.035355 0.385355 -1.000000 +v 0.035355 0.385355 0.150000 +v 0.050000 0.350000 -1.000000 +v 0.050000 0.350000 0.150000 +v 0.035355 0.314645 -1.000000 +v 0.035355 0.314645 0.150000 +v -0.000000 0.300000 -1.000000 +v -0.000000 0.300000 0.150000 +v -0.035355 0.314645 -1.000000 +v -0.035355 0.314645 0.150000 +v -0.050000 0.350000 -1.000000 +v -0.050000 0.350000 0.150000 +v -0.035355 0.385355 -1.000000 +v -0.035355 0.385355 0.150000 +v 0.150000 0.350000 0.000000 +v 0.150000 0.335355 -0.035355 +v 0.150000 0.300000 -0.050000 +v 0.150000 0.264645 -0.035355 +v 0.150000 0.250000 0.000000 +v 0.150000 0.264645 0.035355 +v 0.150000 0.300000 0.050000 +v 0.150000 0.335355 0.035355 +v 0.070000 0.335355 -0.035355 +v 0.070000 0.350000 -0.000000 +v 0.070000 0.300000 -0.050000 +v 0.070000 0.264645 -0.035355 +v 0.070000 0.250000 -0.000000 +v 0.070000 0.264645 0.035355 +v 0.070000 0.300000 0.050000 +v 0.070000 0.335355 0.035355 +v -0.025000 0.500000 0.000000 +v 0.025000 0.500000 0.000000 +v -0.025000 3.500000 -0.000000 +v 0.025000 3.500000 -0.000000 +v 0.750000 0.343750 -1.843750 +v 0.750000 0.656250 -1.843750 +v 0.750000 0.343750 -2.156250 +v 0.750000 0.656250 -2.156250 +v 1.500000 0.343750 -1.843750 +v 1.500000 0.656250 -1.843750 +v 1.500000 0.343750 -2.156250 +v 1.500000 0.656250 -2.156250 +v 0.750000 0.343750 -2.843750 +v 0.750000 0.656250 -2.843750 +v 0.750000 0.343750 -3.156250 +v 0.750000 0.656250 -3.156250 +v 1.500000 0.343750 -2.843750 +v 1.500000 0.656250 -2.843750 +v 1.500000 0.343750 -3.156250 +v 1.500000 0.656250 -3.156250 +v -1.500000 0.343750 -2.843750 +v -1.500000 0.656250 -2.843750 +v -1.500000 0.343750 -3.156250 +v -1.500000 0.656250 -3.156250 +v -0.750000 0.343750 -2.843750 +v -0.750000 0.656250 -2.843750 +v -0.750000 0.343750 -3.156250 +v -0.750000 0.656250 -3.156250 +v -1.500000 0.343750 -1.843750 +v -1.500000 0.656250 -1.843750 +v -1.500000 0.343750 -2.156250 +v -1.500000 0.656250 -2.156250 +v -0.750000 0.343750 -1.843750 +v -0.750000 0.656250 -1.843750 +v -0.750000 0.343750 -2.156250 +v -0.750000 0.656250 -2.156250 +vn 0.000000 1.000000 0.000000 +vn 0.382700 0.000000 -0.923900 +vn 0.923900 0.000000 -0.382700 +vn 0.923900 0.000000 0.382700 +vn 0.382700 0.000000 0.923900 +vn -0.382700 0.000000 0.923900 +vn -0.923900 0.000000 0.382700 +vn -0.382700 0.000000 -0.923900 +vn -0.923900 0.000000 -0.382700 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.995900 0.090500 0.000000 +vn 0.000000 0.178900 0.983900 +vn 0.000000 0.178900 -0.983900 +vn 0.000000 -0.178900 -0.983900 +vn -0.995900 -0.090500 0.000000 +vn 0.000000 -0.178900 0.983900 +vn -0.995900 0.090500 0.000000 +vn 0.995900 -0.090500 0.000000 +vn 0.000000 -0.853300 0.521500 +vn 0.000000 0.786300 0.617800 +vn 0.000000 0.672700 -0.739900 +vn 0.000000 -0.672700 -0.739900 +vn 0.000000 -0.786300 0.617800 +vn 0.000000 -0.853300 -0.521500 +vn 0.707100 -0.707100 0.000000 +vn 0.645900 0.763400 0.000000 +vn 0.591400 -0.806400 0.000000 +vn -0.591400 -0.806400 0.000000 +vn 0.645900 -0.763400 0.000000 +vn 0.707100 0.707100 0.000000 +vn 0.000000 -0.786300 -0.617800 +vn 0.000000 0.786300 -0.617800 +vn -0.645900 0.763400 0.000000 +vn -0.707100 -0.707100 0.000000 +vn -0.707100 0.707100 0.000000 +vn -0.645900 -0.763400 0.000000 +vn 0.000000 0.258800 -0.965900 +vn 0.000000 0.707100 0.707100 +vn 0.000000 0.965900 0.258800 +vn 0.000000 0.965900 -0.258800 +vn 0.000000 0.258800 0.965900 +vn -0.000000 0.707100 -0.707100 +vn 0.000000 -0.258800 -0.965900 +vn 0.000000 -0.707100 -0.707100 +vn 0.000000 -0.965900 -0.258800 +vn 0.000000 -0.965900 0.258800 +vn 0.000000 -0.707100 0.707100 +vn 0.000000 -0.258800 0.965900 +vn -0.000000 0.581200 0.813700 +vn 0.382700 0.923900 -0.000000 +vn 0.923900 0.382700 0.000000 +vn 0.923900 -0.382700 0.000000 +vn 0.382700 -0.923900 0.000000 +vn -0.382700 -0.923900 0.000000 +vn -0.923900 -0.382700 0.000000 +vn -0.382700 0.923900 -0.000000 +vn -0.923900 0.382700 -0.000000 +vn -0.000000 -0.382700 0.923900 +vn 0.000000 -0.923900 -0.382700 +vn 0.000000 0.382700 -0.923900 +vn -0.000000 0.382700 0.923900 +vn -0.000000 -0.923900 0.382700 +vn 0.000000 -0.382700 -0.923900 +vn 0.000000 0.923900 -0.382700 +vn -0.000000 0.923900 0.382700 +s off +f 2//1 4//1 3//1 +f 6//2 8//2 7//2 +f 8//3 10//3 9//3 +f 10//4 12//4 11//4 +f 12//5 14//5 13//5 +f 14//6 16//6 15//6 +f 16//7 18//7 17//7 +f 18//1 14//1 6//1 +f 20//8 6//8 5//8 +f 18//9 20//9 19//9 +f 11//10 15//10 19//10 +f 24//11 23//11 21//11 +f 26//12 25//12 27//12 +f 22//13 21//13 25//13 +f 33//12 35//12 48//12 +f 36//14 35//14 31//14 +f 30//13 29//13 33//13 +f 60//10 51//10 49//10 +f 50//10 44//10 43//10 +f 58//10 56//10 55//10 +f 56//10 43//10 41//10 +f 46//1 48//1 47//1 +f 40//1 38//1 37//1 +f 49//10 43//10 56//10 +f 50//12 39//12 44//12 +f 60//14 38//14 51//14 +f 57//11 55//11 38//11 +f 41//13 39//13 54//13 +f 62//1 64//1 63//1 +f 66//1 68//1 67//1 +f 70//1 72//1 71//1 +f 89//15 46//15 48//15 +f 89//16 91//16 45//16 +f 94//15 93//15 62//15 +f 94//17 64//17 63//17 +f 90//18 48//18 47//18 +f 91//19 92//19 47//19 +f 93//20 96//20 61//20 +f 95//19 63//19 61//19 +f 101//21 71//21 69//21 +f 118//21 117//21 67//21 +f 118//16 65//16 66//16 +f 117//18 120//18 68//18 +f 119//22 66//22 68//22 +f 101//17 103//17 72//17 +f 102//20 69//20 70//20 +f 103//22 104//22 70//22 +f 68//1 66//1 45//1 +f 72//1 70//1 61//1 +f 31//11 29//11 69//11 +f 72//1 63//1 36//1 +f 45//1 66//1 30//1 +f 47//1 48//1 61//1 +f 87//19 75//19 76//19 +f 85//20 88//20 76//20 +f 86//17 74//17 75//17 +f 86//15 85//15 73//15 +f 83//19 84//19 80//19 +f 82//18 78//18 80//18 +f 81//16 83//16 79//16 +f 81//15 77//15 78//15 +f 42//15 81//15 82//15 +f 42//16 41//16 83//16 +f 44//18 82//18 84//18 +f 41//19 43//19 84//19 +f 52//15 50//15 85//15 +f 52//17 86//17 87//17 +f 50//20 49//20 88//20 +f 51//19 87//19 88//19 +f 79//19 80//19 92//19 +f 78//18 90//18 92//18 +f 77//16 79//16 91//16 +f 77//15 89//15 90//15 +f 75//19 95//19 96//19 +f 73//20 76//20 96//20 +f 74//17 94//17 95//17 +f 74//15 73//15 93//15 +f 107//22 108//22 100//22 +f 106//20 98//20 100//20 +f 105//17 107//17 99//17 +f 105//21 97//21 98//21 +f 99//22 100//22 104//22 +f 98//20 102//20 104//20 +f 97//17 99//17 103//17 +f 97//21 101//21 102//21 +f 59//21 105//21 106//21 +f 59//17 60//17 107//17 +f 57//20 106//20 108//20 +f 60//22 58//22 108//22 +f 115//22 111//22 112//22 +f 113//18 116//18 112//18 +f 114//16 110//16 111//16 +f 114//21 113//21 109//21 +f 53//21 55//21 113//21 +f 53//16 114//16 115//16 +f 55//18 56//18 116//18 +f 54//22 115//22 116//22 +f 111//22 119//22 120//22 +f 109//18 112//18 120//18 +f 110//16 118//16 119//16 +f 110//21 109//21 117//21 +f 61//23 62//23 90//23 +f 92//24 90//24 73//24 +f 82//25 73//25 76//25 +f 84//1 82//1 85//1 +f 108//1 106//1 113//1 +f 88//1 87//1 107//1 +f 116//1 115//1 83//1 +f 85//26 78//26 80//26 +f 96//27 93//27 78//27 +f 93//28 48//28 47//28 +f 87//29 88//29 100//29 +f 96//30 95//30 99//30 +f 95//31 96//31 70//31 +f 103//32 63//32 61//32 +f 75//33 76//33 104//33 +f 76//34 75//34 107//34 +f 100//25 98//25 113//25 +f 120//35 117//35 98//35 +f 117//23 69//23 70//23 +f 68//28 67//28 102//28 +f 109//36 112//36 104//36 +f 106//26 108//26 112//26 +f 119//32 120//32 47//32 +f 79//37 80//37 120//37 +f 80//38 79//38 115//38 +f 83//39 84//39 112//39 +f 92//40 91//40 111//40 +f 91//31 66//31 68//31 +f 145//41 143//41 146//41 +f 136//42 138//42 137//42 +f 138//43 140//43 139//43 +f 140//44 142//44 141//44 +f 148//45 136//45 135//45 +f 142//46 144//46 143//46 +f 127//11 135//11 143//11 +f 142//12 134//12 122//12 +f 156//47 146//47 122//47 +f 124//48 126//48 158//48 +f 160//49 158//49 126//49 +f 162//50 160//50 128//50 +f 164//51 162//51 130//51 +f 134//52 148//52 164//52 +f 154//53 148//53 147//53 +f 154//13 153//13 151//13 +f 150//14 149//14 145//14 +f 149//14 27//14 23//14 +f 121//47 145//47 155//47 +f 123//48 155//48 157//48 +f 125//49 157//49 159//49 +f 127//50 159//50 161//50 +f 129//51 161//51 163//51 +f 131//52 163//52 147//52 +f 155//11 145//11 149//11 +f 157//11 155//11 149//11 +f 159//11 157//11 149//11 +f 153//11 147//11 163//11 +f 153//11 163//11 151//11 +f 163//11 161//11 151//11 +f 161//11 159//11 151//11 +f 149//11 151//11 159//11 +f 150//12 146//12 156//12 +f 156//12 158//12 150//12 +f 160//12 150//12 158//12 +f 154//12 164//12 148//12 +f 154//12 152//12 164//12 +f 164//12 152//12 162//12 +f 162//12 152//12 160//12 +f 150//12 160//12 152//12 +f 33//1 29//1 22//1 +f 26//1 28//1 35//1 +f 22//1 29//1 31//1 +f 152//1 151//1 31//1 +f 24//1 31//1 151//1 +f 152//1 35//1 28//1 +f 166//54 168//54 167//54 +f 168//55 170//55 169//55 +f 170//56 172//56 171//56 +f 172//57 174//57 173//57 +f 174//58 176//58 175//58 +f 176//59 178//59 177//59 +f 176//13 174//13 170//13 +f 180//60 166//60 165//60 +f 178//61 180//61 179//61 +f 186//12 185//12 183//12 +f 198//13 200//13 199//13 +f 187//62 195//62 194//62 +f 184//63 185//63 193//63 +f 183//64 191//64 189//64 +f 188//65 196//65 195//65 +f 185//66 186//66 194//66 +f 183//67 184//67 192//67 +f 182//68 189//68 190//68 +f 181//69 190//69 196//69 +f 204//11 203//11 201//11 +f 208//14 207//14 203//14 +f 206//12 205//12 207//12 +f 202//13 201//13 205//13 +f 203//10 207//10 205//10 +f 208//1 204//1 202//1 +f 212//11 211//11 209//11 +f 216//14 215//14 211//14 +f 214//12 213//12 215//12 +f 210//13 209//13 213//13 +f 211//10 215//10 213//10 +f 216//1 212//1 210//1 +f 220//11 219//11 217//11 +f 224//14 223//14 219//14 +f 222//12 221//12 223//12 +f 218//13 217//13 221//13 +f 219//10 223//10 221//10 +f 224//1 220//1 218//1 +f 228//11 227//11 225//11 +f 232//14 231//14 227//14 +f 230//12 229//12 231//12 +f 226//13 225//13 229//13 +f 227//10 231//10 229//10 +f 232//1 228//1 226//1 +f 1//1 2//1 3//1 +f 5//2 6//2 7//2 +f 7//3 8//3 9//3 +f 9//4 10//4 11//4 +f 11//5 12//5 13//5 +f 13//6 14//6 15//6 +f 15//7 16//7 17//7 +f 10//1 8//1 6//1 +f 6//1 20//1 18//1 +f 18//1 16//1 14//1 +f 14//1 12//1 10//1 +f 10//1 6//1 14//1 +f 19//8 20//8 5//8 +f 17//9 18//9 19//9 +f 19//10 5//10 11//10 +f 7//10 9//10 11//10 +f 11//10 13//10 15//10 +f 15//10 17//10 19//10 +f 5//10 7//10 11//10 +f 22//11 24//11 21//11 +f 28//12 26//12 27//12 +f 26//13 22//13 25//13 +f 64//12 62//12 35//12 +f 48//12 46//12 33//12 +f 34//12 33//12 46//12 +f 35//12 36//12 64//12 +f 62//12 48//12 35//12 +f 32//14 36//14 31//14 +f 34//13 30//13 33//13 +f 58//10 60//10 49//10 +f 49//10 50//10 43//10 +f 57//10 58//10 55//10 +f 54//10 56//10 41//10 +f 45//1 46//1 47//1 +f 39//1 40//1 37//1 +f 58//10 49//10 56//10 +f 42//12 44//12 39//12 +f 50//12 52//12 40//12 +f 40//12 39//12 50//12 +f 52//14 51//14 40//14 +f 60//14 59//14 38//14 +f 38//14 40//14 51//14 +f 37//11 38//11 55//11 +f 59//11 57//11 38//11 +f 55//11 53//11 37//11 +f 53//13 54//13 37//13 +f 41//13 42//13 39//13 +f 39//13 37//13 54//13 +f 61//1 62//1 63//1 +f 65//1 66//1 67//1 +f 69//1 70//1 71//1 +f 90//15 89//15 48//15 +f 46//16 89//16 45//16 +f 64//15 94//15 62//15 +f 95//17 94//17 63//17 +f 92//18 90//18 47//18 +f 45//19 91//19 47//19 +f 62//20 93//20 61//20 +f 96//19 95//19 61//19 +f 102//21 101//21 69//21 +f 65//21 118//21 67//21 +f 119//16 118//16 66//16 +f 67//18 117//18 68//18 +f 120//22 119//22 68//22 +f 71//17 101//17 72//17 +f 104//20 102//20 70//20 +f 72//22 103//22 70//22 +f 47//1 68//1 45//1 +f 63//1 72//1 61//1 +f 65//11 67//11 29//11 +f 69//11 71//11 31//11 +f 32//11 31//11 71//11 +f 29//11 30//11 65//11 +f 67//11 69//11 29//11 +f 36//1 32//1 72//1 +f 71//1 72//1 32//1 +f 63//1 64//1 36//1 +f 30//1 34//1 45//1 +f 46//1 45//1 34//1 +f 66//1 65//1 30//1 +f 61//1 70//1 68//1 +f 69//1 67//1 68//1 +f 68//1 47//1 61//1 +f 48//1 62//1 61//1 +f 70//1 69//1 68//1 +f 88//19 87//19 76//19 +f 73//20 85//20 76//20 +f 87//17 86//17 75//17 +f 74//15 86//15 73//15 +f 79//19 83//19 80//19 +f 84//18 82//18 80//18 +f 77//16 81//16 79//16 +f 82//15 81//15 78//15 +f 44//15 42//15 82//15 +f 81//16 42//16 83//16 +f 43//18 44//18 84//18 +f 83//19 41//19 84//19 +f 86//15 52//15 85//15 +f 51//17 52//17 87//17 +f 85//20 50//20 88//20 +f 49//19 51//19 88//19 +f 91//19 79//19 92//19 +f 80//18 78//18 92//18 +f 89//16 77//16 91//16 +f 78//15 77//15 90//15 +f 76//19 75//19 96//19 +f 93//20 73//20 96//20 +f 75//17 74//17 95//17 +f 94//15 74//15 93//15 +f 99//22 107//22 100//22 +f 108//20 106//20 100//20 +f 97//17 105//17 99//17 +f 106//21 105//21 98//21 +f 103//22 99//22 104//22 +f 100//20 98//20 104//20 +f 101//17 97//17 103//17 +f 98//21 97//21 102//21 +f 57//21 59//21 106//21 +f 105//17 59//17 107//17 +f 58//20 57//20 108//20 +f 107//22 60//22 108//22 +f 116//22 115//22 112//22 +f 109//18 113//18 112//18 +f 115//16 114//16 111//16 +f 110//21 114//21 109//21 +f 114//21 53//21 113//21 +f 54//16 53//16 115//16 +f 113//18 55//18 116//18 +f 56//22 54//22 116//22 +f 112//22 111//22 120//22 +f 117//18 109//18 120//18 +f 111//16 110//16 119//16 +f 118//21 110//21 117//21 +f 92//23 61//23 90//23 +f 76//24 92//24 73//24 +f 84//25 82//25 76//25 +f 88//1 84//1 85//1 +f 116//1 108//1 113//1 +f 108//1 88//1 107//1 +f 84//1 116//1 83//1 +f 88//26 85//26 80//26 +f 80//27 96//27 78//27 +f 96//28 93//28 47//28 +f 99//29 87//29 100//29 +f 100//30 96//30 99//30 +f 72//31 95//31 70//31 +f 104//32 103//32 61//32 +f 103//33 75//33 104//33 +f 108//34 76//34 107//34 +f 116//25 100//25 113//25 +f 100//35 120//35 98//35 +f 120//23 117//23 70//23 +f 104//28 68//28 102//28 +f 102//36 109//36 104//36 +f 109//26 106//26 112//26 +f 45//32 119//32 47//32 +f 119//37 79//37 120//37 +f 116//38 80//38 115//38 +f 111//39 83//39 112//39 +f 112//40 92//40 111//40 +f 92//31 91//31 68//31 +f 122//41 146//41 144//41 +f 145//41 121//41 143//41 +f 143//41 144//41 146//41 +f 135//42 136//42 137//42 +f 137//43 138//43 139//43 +f 139//44 140//44 141//44 +f 135//45 133//45 147//45 +f 148//45 134//45 136//45 +f 135//45 147//45 148//45 +f 141//46 142//46 143//46 +f 143//11 121//11 127//11 +f 123//11 125//11 127//11 +f 127//11 129//11 131//11 +f 131//11 133//11 127//11 +f 135//11 137//11 139//11 +f 139//11 141//11 143//11 +f 121//11 123//11 127//11 +f 127//11 133//11 135//11 +f 135//11 139//11 143//11 +f 126//12 124//12 122//12 +f 122//12 144//12 142//12 +f 142//12 140//12 134//12 +f 138//12 136//12 134//12 +f 134//12 132//12 130//12 +f 130//12 128//12 126//12 +f 126//12 122//12 134//12 +f 140//12 138//12 134//12 +f 134//12 130//12 126//12 +f 124//47 156//47 122//47 +f 156//48 124//48 158//48 +f 128//49 160//49 126//49 +f 130//50 162//50 128//50 +f 132//51 164//51 130//51 +f 132//52 134//52 164//52 +f 153//53 154//53 147//53 +f 152//13 154//13 151//13 +f 146//14 150//14 145//14 +f 23//14 24//14 149//14 +f 149//14 150//14 27//14 +f 28//14 27//14 150//14 +f 123//47 121//47 155//47 +f 125//48 123//48 157//48 +f 127//49 125//49 159//49 +f 129//50 127//50 161//50 +f 131//51 129//51 163//51 +f 133//52 131//52 147//52 +f 26//1 33//1 22//1 +f 33//1 26//1 35//1 +f 24//1 22//1 31//1 +f 35//1 152//1 31//1 +f 149//1 24//1 151//1 +f 150//1 152//1 28//1 +f 165//54 166//54 167//54 +f 167//55 168//55 169//55 +f 169//56 170//56 171//56 +f 171//57 172//57 173//57 +f 173//58 174//58 175//58 +f 175//59 176//59 177//59 +f 170//13 168//13 166//13 +f 166//13 180//13 170//13 +f 178//13 176//13 170//13 +f 174//13 172//13 170//13 +f 170//13 180//13 178//13 +f 179//60 180//60 165//60 +f 177//61 178//61 179//61 +f 183//12 182//12 181//12 +f 181//12 188//12 183//12 +f 187//12 186//12 183//12 +f 185//12 184//12 183//12 +f 183//12 188//12 187//12 +f 197//13 198//13 199//13 +f 186//62 187//62 194//62 +f 192//63 184//63 193//63 +f 182//64 183//64 189//64 +f 187//65 188//65 195//65 +f 193//66 185//66 194//66 +f 191//67 183//67 192//67 +f 181//68 182//68 190//68 +f 188//69 181//69 196//69 +f 202//11 204//11 201//11 +f 204//14 208//14 203//14 +f 208//12 206//12 207//12 +f 206//13 202//13 205//13 +f 201//10 203//10 205//10 +f 206//1 208//1 202//1 +f 210//11 212//11 209//11 +f 212//14 216//14 211//14 +f 216//12 214//12 215//12 +f 214//13 210//13 213//13 +f 209//10 211//10 213//10 +f 214//1 216//1 210//1 +f 218//11 220//11 217//11 +f 220//14 224//14 219//14 +f 224//12 222//12 223//12 +f 222//13 218//13 221//13 +f 217//10 219//10 221//10 +f 222//1 224//1 218//1 +f 226//11 228//11 225//11 +f 228//14 232//14 227//14 +f 232//12 230//12 231//12 +f 230//13 226//13 229//13 +f 225//10 227//10 229//10 +f 230//1 232//1 226//1 diff --git a/assets/hbm/models/pumpjack_head.obj b/assets/hbm/models/pumpjack_head.obj new file mode 100644 index 000000000..9825ccdeb --- /dev/null +++ b/assets/hbm/models/pumpjack_head.obj @@ -0,0 +1,342 @@ +# Blender v2.76 (sub 0) OBJ File: 'pumpjack_head.blend' +# www.blender.org +o Cube_Cube.001 +v -0.250000 0.125000 2.000000 +v -0.250000 0.875000 2.000000 +v -0.250000 0.125000 -3.500000 +v -0.250000 0.875000 -3.500000 +v 0.250000 0.125000 2.000000 +v 0.250000 0.875000 2.000000 +v 0.250000 0.125000 -3.500000 +v 0.250000 0.875000 -3.500000 +v -0.250000 0.637500 1.950000 +v -0.250000 0.637500 -3.450000 +v -0.250000 0.175000 -3.450000 +v -0.250000 0.175000 1.950000 +v 0.250000 0.637500 -3.450000 +v 0.250000 0.637500 1.950000 +v 0.250000 0.175000 1.950000 +v 0.250000 0.175000 -3.450000 +v 0.250000 0.825000 -3.450000 +v 0.250000 0.825000 1.950000 +v 0.250000 0.737500 1.950000 +v 0.250000 0.737500 -3.450000 +v -0.250000 0.825000 1.950000 +v -0.250000 0.825000 -3.450000 +v -0.250000 0.737500 -3.450000 +v -0.250000 0.737500 1.950000 +v 0.200000 0.637500 -3.450000 +v 0.200000 0.637500 1.950000 +v 0.200000 0.175000 1.950000 +v 0.200000 0.175000 -3.450000 +v 0.200000 0.825000 -3.450000 +v 0.200000 0.825000 1.950000 +v 0.200000 0.737500 1.950000 +v 0.200000 0.737500 -3.450000 +v -0.200000 0.637500 1.950000 +v -0.200000 0.637500 -3.450000 +v -0.200000 0.175000 -3.450000 +v -0.200000 0.175000 1.950000 +v -0.200000 0.825000 1.950000 +v -0.200000 0.825000 -3.450000 +v -0.200000 0.737500 -3.450000 +v -0.200000 0.737500 1.950000 +v -0.375000 -1.264213 2.164214 +v 0.375000 -1.264213 2.164214 +v -0.375000 -0.615367 2.597759 +v 0.375000 -0.615367 2.597759 +v -0.375000 0.150000 2.750000 +v 0.375000 0.150000 2.750000 +v -0.375000 0.915367 2.597759 +v 0.375000 0.915367 2.597759 +v -0.375000 1.564213 2.164214 +v 0.375000 1.564213 2.164214 +v -0.375000 0.875000 2.000000 +v 0.375000 0.875000 2.000000 +v -0.375000 0.125000 2.000000 +v 0.375000 0.125000 2.000000 +v -0.375000 -0.815367 2.247759 +v 0.375000 -0.815367 2.247759 +v -0.375000 -0.050000 2.450000 +v 0.375000 -0.050000 2.500000 +v -0.375000 -0.050000 2.150000 +v 0.375000 -0.050000 2.150000 +v -0.375000 0.100000 2.500000 +v 0.375000 0.100000 2.500000 +v -0.375000 0.100000 2.150000 +v 0.375000 0.100000 2.150000 +v -0.375000 0.550000 2.450000 +v 0.375000 0.550000 2.450000 +v -0.375000 0.550000 2.150000 +v 0.375000 0.550000 2.150000 +v -0.375000 0.700000 2.400000 +v 0.375000 0.700000 2.400000 +v -0.375000 1.165367 2.247759 +v 0.375000 1.165367 2.247759 +v -0.375000 0.700000 2.150000 +v 0.375000 0.700000 2.150000 +v 0.325000 -0.815367 2.247759 +v 0.325000 -0.050000 2.150000 +v 0.325000 -0.050000 2.500000 +v 0.325000 0.100000 2.150000 +v 0.325000 0.550000 2.150000 +v 0.325000 0.550000 2.450000 +v 0.325000 0.100000 2.500000 +v 0.325000 0.700000 2.400000 +v 0.325000 0.700000 2.150000 +v 0.325000 1.165367 2.247759 +v -0.325000 -0.050000 2.450000 +v -0.325000 -0.050000 2.150000 +v -0.325000 -0.815367 2.247759 +v -0.325000 0.100000 2.150000 +v -0.325000 0.100000 2.500000 +v -0.325000 0.550000 2.450000 +v -0.325000 0.550000 2.150000 +v -0.325000 1.165367 2.247759 +v -0.325000 0.700000 2.150000 +v -0.325000 0.700000 2.400000 +v -0.375000 0.000000 -2.750000 +v -0.375000 1.000000 -2.750000 +v -0.375000 0.000000 -3.250000 +v -0.375000 1.000000 -3.250000 +v 0.375000 0.000000 -2.750000 +v 0.375000 1.000000 -2.750000 +v 0.375000 0.000000 -3.250000 +v 0.375000 1.000000 -3.250000 +v -0.625000 -0.125000 -2.875000 +v -0.625000 0.125000 -2.875000 +v -0.625000 -0.125000 -3.125000 +v -0.625000 0.125000 -3.125000 +v 0.625000 -0.125000 -2.875000 +v 0.625000 0.125000 -2.875000 +v 0.625000 -0.125000 -3.125000 +v 0.625000 0.125000 -3.125000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -0.555600 0.831500 +vn 0.000000 -0.195100 0.980800 +vn 0.000000 0.195100 0.980800 +vn 0.000000 0.555600 0.831500 +vn 0.000000 0.231800 -0.972800 +vn 0.000000 -0.117400 -0.993100 +vn -0.000000 0.313000 -0.949800 +vn 0.000000 0.126700 0.991900 +vn 0.000000 -0.110400 -0.993900 +vn 0.000000 -0.205600 0.978600 +vn 0.000000 -0.310900 -0.950400 +vn 0.000000 0.255500 -0.966800 +s off +f 3//1 7//1 5//1 +f 8//2 4//2 2//2 +f 12//3 11//3 3//3 +f 7//4 8//4 13//4 +f 16//4 15//4 5//4 +f 19//4 6//4 14//4 +f 18//4 17//4 8//4 +f 19//4 14//4 13//4 +f 2//3 24//3 9//3 +f 23//3 4//3 10//3 +f 22//3 21//3 2//3 +f 9//3 24//3 23//3 +f 8//5 7//5 3//5 +f 26//4 27//4 28//4 +f 26//1 25//1 13//1 +f 27//5 26//5 14//5 +f 28//2 27//2 15//2 +f 25//6 28//6 16//6 +f 30//4 31//4 32//4 +f 30//1 29//1 17//1 +f 31//5 30//5 18//5 +f 32//2 31//2 19//2 +f 29//6 32//6 20//6 +f 34//3 35//3 36//3 +f 34//1 33//1 9//1 +f 35//6 34//6 10//6 +f 36//2 35//2 11//2 +f 33//5 36//5 12//5 +f 38//3 39//3 40//3 +f 38//1 37//1 21//1 +f 39//6 38//6 22//6 +f 40//2 39//2 23//2 +f 37//5 40//5 24//5 +f 41//7 42//7 44//7 +f 44//8 46//8 45//8 +f 46//9 48//9 47//9 +f 48//10 50//10 49//10 +f 49//11 50//11 2//11 +f 1//12 41//12 53//12 +f 54//5 5//5 6//5 +f 1//5 53//5 51//5 +f 75//13 77//13 58//13 +f 77//1 76//1 60//1 +f 76//14 75//14 56//14 +f 75//4 76//4 77//4 +f 68//4 74//4 70//4 +f 64//4 62//4 58//4 +f 67//3 65//3 69//3 +f 57//3 61//3 63//3 +f 51//3 73//3 71//3 +f 53//3 67//3 51//3 +f 63//3 53//3 59//3 +f 53//3 41//3 55//3 +f 43//3 55//3 41//3 +f 55//3 43//3 57//3 +f 45//3 61//3 57//3 +f 65//3 61//3 45//3 +f 65//3 47//3 69//3 +f 71//3 69//3 47//3 +f 52//4 50//4 72//4 +f 68//4 64//4 54//4 +f 64//4 60//4 54//4 +f 54//4 60//4 56//4 +f 42//4 56//4 44//4 +f 56//4 58//4 44//4 +f 46//4 44//4 58//4 +f 46//4 62//4 66//4 +f 66//4 70//4 48//4 +f 48//4 70//4 72//4 +f 78//4 79//4 80//4 +f 79//6 78//6 64//6 +f 80//1 79//1 68//1 +f 81//15 80//15 66//15 +f 78//2 81//2 62//2 +f 82//4 83//4 84//4 +f 83//2 82//2 70//2 +f 72//16 84//16 83//16 +f 82//17 84//17 72//17 +f 85//3 86//3 87//3 +f 86//1 85//1 57//1 +f 87//14 86//14 59//14 +f 85//18 87//18 55//18 +f 88//3 89//3 90//3 +f 89//2 88//2 63//2 +f 90//15 89//15 61//15 +f 91//1 90//1 65//1 +f 88//6 91//6 67//6 +f 92//3 93//3 94//3 +f 73//16 93//16 92//16 +f 94//2 93//2 73//2 +f 92//17 94//17 69//17 +f 98//3 97//3 95//3 +f 102//5 101//5 97//5 +f 100//4 99//4 101//4 +f 96//6 95//6 99//6 +f 97//1 101//1 99//1 +f 102//2 98//2 96//2 +f 106//3 105//3 103//3 +f 110//5 109//5 105//5 +f 108//4 107//4 109//4 +f 104//6 103//6 107//6 +f 105//1 109//1 107//1 +f 110//2 106//2 104//2 +f 1//1 3//1 5//1 +f 6//2 8//2 2//2 +f 1//3 12//3 3//3 +f 20//4 13//4 8//4 +f 16//4 7//4 13//4 +f 8//4 17//4 20//4 +f 7//4 16//4 5//4 +f 15//4 14//4 5//4 +f 19//4 18//4 6//4 +f 6//4 5//4 14//4 +f 6//4 18//4 8//4 +f 20//4 19//4 13//4 +f 9//3 12//3 1//3 +f 1//3 2//3 9//3 +f 21//3 24//3 2//3 +f 11//3 10//3 3//3 +f 23//3 22//3 4//3 +f 4//3 3//3 10//3 +f 4//3 22//3 2//3 +f 10//3 9//3 23//3 +f 4//5 8//5 3//5 +f 25//4 26//4 28//4 +f 14//1 26//1 13//1 +f 15//5 27//5 14//5 +f 16//2 28//2 15//2 +f 13//6 25//6 16//6 +f 29//4 30//4 32//4 +f 18//1 30//1 17//1 +f 19//5 31//5 18//5 +f 20//2 32//2 19//2 +f 17//6 29//6 20//6 +f 33//3 34//3 36//3 +f 10//1 34//1 9//1 +f 11//6 35//6 10//6 +f 12//2 36//2 11//2 +f 9//5 33//5 12//5 +f 37//3 38//3 40//3 +f 22//1 38//1 21//1 +f 23//6 39//6 22//6 +f 24//2 40//2 23//2 +f 21//5 37//5 24//5 +f 43//7 41//7 44//7 +f 43//8 44//8 45//8 +f 45//9 46//9 47//9 +f 47//10 48//10 49//10 +f 6//11 2//11 50//11 +f 51//11 49//11 2//11 +f 50//11 52//11 6//11 +f 53//6 5//6 1//6 +f 1//12 54//12 42//12 +f 42//12 41//12 1//12 +f 54//6 1//6 5//6 +f 6//5 52//5 54//5 +f 51//5 2//5 1//5 +f 1//6 5//6 53//6 +f 56//13 75//13 58//13 +f 58//1 77//1 60//1 +f 60//14 76//14 56//14 +f 66//4 68//4 70//4 +f 60//4 64//4 58//4 +f 73//3 67//3 69//3 +f 59//3 57//3 63//3 +f 49//3 51//3 71//3 +f 73//3 51//3 67//3 +f 53//3 63//3 67//3 +f 59//3 53//3 55//3 +f 43//3 45//3 57//3 +f 47//3 65//3 45//3 +f 49//3 71//3 47//3 +f 74//4 52//4 72//4 +f 54//4 52//4 68//4 +f 74//4 68//4 52//4 +f 42//4 54//4 56//4 +f 62//4 46//4 58//4 +f 48//4 46//4 66//4 +f 50//4 48//4 72//4 +f 81//4 78//4 80//4 +f 68//6 79//6 64//6 +f 66//1 80//1 68//1 +f 62//15 81//15 66//15 +f 64//2 78//2 62//2 +f 74//2 83//2 70//2 +f 74//16 72//16 83//16 +f 70//17 82//17 72//17 +f 59//1 86//1 57//1 +f 55//14 87//14 59//14 +f 57//18 85//18 55//18 +f 91//3 88//3 90//3 +f 61//2 89//2 63//2 +f 65//15 90//15 61//15 +f 67//1 91//1 65//1 +f 63//6 88//6 67//6 +f 71//16 73//16 92//16 +f 69//2 94//2 73//2 +f 71//17 92//17 69//17 +f 96//3 98//3 95//3 +f 98//5 102//5 97//5 +f 102//4 100//4 101//4 +f 100//6 96//6 99//6 +f 95//1 97//1 99//1 +f 100//2 102//2 96//2 +f 104//3 106//3 103//3 +f 106//5 110//5 105//5 +f 110//4 108//4 109//4 +f 108//6 104//6 107//6 +f 103//1 105//1 107//1 +f 108//2 110//2 104//2 diff --git a/assets/hbm/models/pumpjack_rotor.obj b/assets/hbm/models/pumpjack_rotor.obj new file mode 100644 index 000000000..b101880c8 --- /dev/null +++ b/assets/hbm/models/pumpjack_rotor.obj @@ -0,0 +1,248 @@ +# Blender v2.76 (sub 0) OBJ File: 'pumpjack_rotor.blend' +# www.blender.org +o Cylinder +v -0.750000 -0.000000 -0.150000 +v 0.750000 0.000000 -0.150000 +v -0.750000 -0.106066 -0.106066 +v 0.750000 -0.106066 -0.106066 +v -0.750000 -0.150000 0.000000 +v 0.750000 -0.150000 0.000000 +v -0.750000 -0.106066 0.106066 +v 0.750000 -0.106066 0.106066 +v -0.750000 -0.000000 0.150000 +v 0.750000 0.000000 0.150000 +v -0.750000 0.106066 0.106066 +v 0.750000 0.106066 0.106066 +v -0.750000 0.150000 -0.000000 +v 0.750000 0.150000 -0.000000 +v -0.750000 0.106066 -0.106066 +v 0.750000 0.106066 -0.106066 +v 0.500000 -0.550000 0.200000 +v 0.500000 0.900000 0.200000 +v 0.500000 -0.550000 -0.200000 +v 0.500000 0.900000 -0.200000 +v 0.650000 -0.550000 0.200000 +v 0.650000 0.900000 0.200000 +v 0.650000 -0.550000 -0.200000 +v 0.650000 0.900000 -0.200000 +v -0.650000 -0.550000 0.200000 +v -0.650000 0.900000 0.200000 +v -0.650000 -0.550000 -0.200000 +v -0.650000 0.900000 -0.200000 +v -0.500000 -0.550000 0.200000 +v -0.500000 0.900000 0.200000 +v -0.500000 -0.550000 -0.200000 +v -0.500000 0.900000 -0.200000 +v 0.600000 0.546523 0.910660 +v 0.600000 0.660660 0.910660 +v 0.500000 0.660660 -0.910660 +v 0.500000 0.985819 -0.574025 +v 0.500000 1.100000 0.000000 +v 0.500000 0.985819 0.574025 +v 0.500000 0.660660 0.910660 +v 0.600000 0.985819 0.574025 +v 0.600000 1.100000 0.000000 +v 0.600000 0.985819 -0.574025 +v 0.600000 0.660660 -0.910660 +v 0.500000 0.546523 0.910660 +v 0.500000 0.321364 0.574025 +v 0.500000 0.207183 0.000000 +v 0.500000 0.321364 -0.574025 +v 0.500000 0.546523 -0.910660 +v 0.600000 0.321364 0.574025 +v 0.600000 0.207183 0.000000 +v 0.600000 0.321364 -0.574025 +v 0.600000 0.546523 -0.910660 +v -0.500000 0.546523 0.910660 +v -0.500000 0.660660 0.910660 +v -0.600000 0.660660 -0.910660 +v -0.600000 0.985819 -0.574025 +v -0.600000 1.100000 0.000000 +v -0.600000 0.985819 0.574025 +v -0.600000 0.660660 0.910660 +v -0.500000 0.985819 0.574025 +v -0.500000 1.100000 0.000000 +v -0.500000 0.985819 -0.574025 +v -0.500000 0.660660 -0.910660 +v -0.600000 0.546523 0.910660 +v -0.600000 0.321364 0.574025 +v -0.600000 0.207183 0.000000 +v -0.600000 0.321364 -0.574025 +v -0.600000 0.546523 -0.910660 +v -0.500000 0.321364 0.574025 +v -0.500000 0.207183 0.000000 +v -0.500000 0.321364 -0.574025 +v -0.500000 0.546523 -0.910660 +v 0.500000 -0.900000 0.090000 +v 0.500000 -0.900000 -0.090000 +v 0.650000 -0.900000 -0.090000 +v 0.650000 -0.900000 0.090000 +v -0.650000 -0.900000 0.090000 +v -0.650000 -0.900000 -0.090000 +v -0.500000 -0.900000 -0.090000 +v -0.500000 -0.900000 0.090000 +vn 0.000000 -0.382700 -0.923900 +vn 0.000000 -0.923900 -0.382700 +vn 0.000000 -0.923900 0.382700 +vn 0.000000 -0.382700 0.923900 +vn -0.000000 0.382700 0.923900 +vn -0.000000 0.923900 0.382700 +vn 1.000000 0.000000 0.000000 +vn -0.000000 0.382700 -0.923900 +vn -0.000000 0.923900 -0.382700 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.980800 -0.195100 +vn 0.000000 0.719300 -0.694700 +vn -0.000000 -0.831200 -0.556000 +vn 0.000000 -0.980800 -0.195100 +vn 0.000000 -0.980800 0.195100 +vn 0.000000 -0.831200 0.556000 +vn 0.000000 0.719300 0.694700 +vn 0.000000 0.980800 0.195100 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 -0.299800 -0.954000 +vn 0.000000 -0.299800 0.954000 +s off +f 2//1 4//1 3//1 +f 4//2 6//2 5//2 +f 6//3 8//3 7//3 +f 8//4 10//4 9//4 +f 10//5 12//5 11//5 +f 12//6 14//6 13//6 +f 12//7 10//7 6//7 +f 16//8 2//8 1//8 +f 14//9 16//9 15//9 +f 9//10 11//10 15//10 +f 20//10 19//10 17//10 +f 24//11 23//11 19//11 +f 22//7 21//7 23//7 +f 18//12 17//12 21//12 +f 24//13 20//13 18//13 +f 28//10 27//10 25//10 +f 32//11 31//11 27//11 +f 30//7 29//7 31//7 +f 26//12 25//12 29//12 +f 32//13 28//13 26//13 +f 45//10 38//10 37//10 +f 50//7 51//7 41//7 +f 36//14 37//14 41//14 +f 36//15 42//15 43//15 +f 52//11 48//11 35//11 +f 52//16 51//16 47//16 +f 51//17 50//17 46//17 +f 50//18 49//18 45//18 +f 49//19 33//19 44//19 +f 33//12 34//12 39//12 +f 39//20 34//20 40//20 +f 38//21 40//21 41//21 +f 65//10 58//10 57//10 +f 70//7 71//7 61//7 +f 57//14 61//14 62//14 +f 56//15 62//15 63//15 +f 72//11 68//11 55//11 +f 72//16 71//16 67//16 +f 71//17 70//17 66//17 +f 70//18 69//18 65//18 +f 69//19 53//19 64//19 +f 53//12 54//12 59//12 +f 59//20 54//20 60//20 +f 58//21 60//21 61//21 +f 74//22 75//22 76//22 +f 74//10 73//10 17//10 +f 23//23 75//23 74//23 +f 76//7 75//7 23//7 +f 73//24 76//24 21//24 +f 78//22 79//22 80//22 +f 78//10 77//10 25//10 +f 79//23 78//23 27//23 +f 80//7 79//7 31//7 +f 77//24 80//24 29//24 +f 1//1 2//1 3//1 +f 3//2 4//2 5//2 +f 5//3 6//3 7//3 +f 7//4 8//4 9//4 +f 9//5 10//5 11//5 +f 11//6 12//6 13//6 +f 6//7 4//7 2//7 +f 2//7 16//7 6//7 +f 14//7 12//7 6//7 +f 10//7 8//7 6//7 +f 6//7 16//7 14//7 +f 15//8 16//8 1//8 +f 13//9 14//9 15//9 +f 15//10 1//10 3//10 +f 3//10 5//10 7//10 +f 7//10 9//10 15//10 +f 11//10 13//10 15//10 +f 15//10 3//10 7//10 +f 18//10 20//10 17//10 +f 20//11 24//11 19//11 +f 24//7 22//7 23//7 +f 22//12 18//12 21//12 +f 22//13 24//13 18//13 +f 26//10 28//10 25//10 +f 28//11 32//11 27//11 +f 32//7 30//7 31//7 +f 30//12 26//12 29//12 +f 30//13 32//13 26//13 +f 37//10 36//10 47//10 +f 35//10 48//10 47//10 +f 47//10 46//10 37//10 +f 45//10 44//10 39//10 +f 39//10 38//10 45//10 +f 36//10 35//10 47//10 +f 46//10 45//10 37//10 +f 43//7 42//7 51//7 +f 41//7 40//7 49//7 +f 34//7 33//7 49//7 +f 49//7 50//7 41//7 +f 51//7 52//7 43//7 +f 42//7 41//7 51//7 +f 34//7 49//7 40//7 +f 42//14 36//14 41//14 +f 35//15 36//15 43//15 +f 43//11 52//11 35//11 +f 48//16 52//16 47//16 +f 47//17 51//17 46//17 +f 46//18 50//18 45//18 +f 45//19 49//19 44//19 +f 44//12 33//12 39//12 +f 38//20 39//20 40//20 +f 37//21 38//21 41//21 +f 57//10 56//10 67//10 +f 55//10 68//10 67//10 +f 67//10 66//10 57//10 +f 65//10 64//10 59//10 +f 59//10 58//10 65//10 +f 56//10 55//10 67//10 +f 66//10 65//10 57//10 +f 63//7 62//7 71//7 +f 61//7 60//7 69//7 +f 54//7 53//7 69//7 +f 69//7 70//7 61//7 +f 71//7 72//7 63//7 +f 62//7 61//7 71//7 +f 54//7 69//7 60//7 +f 56//14 57//14 62//14 +f 55//15 56//15 63//15 +f 63//11 72//11 55//11 +f 68//16 72//16 67//16 +f 67//17 71//17 66//17 +f 66//18 70//18 65//18 +f 65//19 69//19 64//19 +f 64//12 53//12 59//12 +f 58//20 59//20 60//20 +f 57//21 58//21 61//21 +f 73//22 74//22 76//22 +f 19//10 74//10 17//10 +f 19//23 23//23 74//23 +f 21//7 76//7 23//7 +f 17//24 73//24 21//24 +f 77//22 78//22 80//22 +f 27//10 78//10 25//10 +f 31//23 79//23 27//23 +f 29//7 80//7 31//7 +f 25//24 77//24 29//24 diff --git a/assets/hbm/textures/gui/gui_planner_alt.png b/assets/hbm/textures/gui/gui_planner_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..fde189a338096ec4743ef12096998fcdbff5c7fb GIT binary patch literal 1741 zcmb7_eN@s{7{@Qj9J25w6P@PEYO7IXR;J|}R=Q@UsWI>cm4-noW^ZPi2xu=ZJDcaY zEME}ov~r5}g1MuaVuhB|*v2t+il`Gcd?8Z|lwe?IX=n3nyZ=1*ckaE<{e7SNx!?Ou zP~dJP!WsbpK>B^@69NE4*M$JMp)L@Ql~Qy8c6_HF4z6oy@R%$B4A1!a?7*EW8W(Rm zY_r?yT>sVnJ-%_4kl%jrPl)z*B^6FP_u)cpr6BeipBvlEHYPo`%(>NPejVSRhhFiS zb3pLm#Dzy}c?xI@>U+5s^UUAzUJqKz@Q<$l;+29U1yK#@o{!rw3>94^pxb2L)M{!l zlJ6$!b7i8Kus!)bba#&Mw7BQ%JD>BqxJ2U2{Rp|_!AP=!g$EjiB~OhdpyO}BMuuJx zw9+9VBH3W($kdJRb44Lu3{zHdaoQwXU=m#Hp(Zf#MgV3G;A?>CUf^&AcsoIuBq(Tv zfsA(pW25^F9%i);Pu&g0q)MI%q}#AUNyl|=lnMVPFD z5D*cmrW;$}Ew!B-1z|g^B&-m{xD2O-t1Eo?>p{U_KEoC2eH^0^+YXub$?fMPO;2Od z5_Jqdo@Ypzln)<~LyC%K=CloO;$NFzYPIgblpTe8@5gf#bL!bdMOcF%S}QgK1*@U= z%|XGZ(EGanJv5ZpMUy+wF7O5AE*TEMxotgb9L5|{ys7GAqZqa$IMS*tJ_X7ztyvX> z)rF*#{fXjn3)Y^RQ%T~{d7;XqI7`@a&?K~A)#@@2v|#5ZBS67WoOibo2zWK8734cBMF(~QmZ0hg_bV++gZ^P+euW!eEzML8L*bl7f?im$GCG0ucJ}wbQ+R^7l(Q3l~o&VDc5lAqUzJO zKgmyC?aoSc>NWTq2}>fPAE;<-EpyKj$uxD@tUxNhUQ6t#M2S$p&5 zCsasfWo5mxUT(s6Nhw;%>6Jsc+MojjJ9mWw!Izl?wRN@2$i6U{Y$Y=wo8iVrKwgK_ z)3W$SM^*r#df5(`tlJ%+u)CJCYG)8kfskymTC1!`?4?bs6g4+*3 zgIbi;_co6n;gv33-FFVLkVa=6#>YLGeV<<{~_Tb`3B?Hu2&#*qI`fzGxl zdVZc=TNjbJ$*bDX=HjlUoNR%Z)-r5%+)C&_8Qps_7MH12|95QPuc{5nX*8sZ)&InG zk-s`QCSNuno9^>R=e~-)ixKwDHlKAWx5N?iaz$~;u$h63lFU%;heUjh transferRectsRec = new LinkedList(); + public LinkedList transferRectsGui = new LinkedList(); + public LinkedList> guiRec = new LinkedList>(); + public LinkedList> guiGui = new LinkedList>(); + + public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe + { + PositionedStack input1; + PositionedStack input2; + PositionedStack input3; + PositionedStack input4; + PositionedStack inputF1; + PositionedStack inputF2; + PositionedStack output1; + PositionedStack output2; + PositionedStack output3; + PositionedStack output4; + PositionedStack outputF1; + PositionedStack outputF2; + PositionedStack template; + + public SmeltingSet(ItemStack inputF1, ItemStack inputF2, ItemStack input1, + ItemStack input2, ItemStack input3, ItemStack input4, ItemStack outputF1, + ItemStack outputF2, ItemStack output1, ItemStack output2, ItemStack output3, + ItemStack output4, ItemStack template) { + this.inputF1 = new PositionedStack(inputF1, 30, 6); + this.inputF2 = new PositionedStack(inputF2, 30 + 18, 6); + this.input1 = new PositionedStack(input1, 30, 6 + 18); + this.input2 = new PositionedStack(input2, 30 + 18, 6 + 18); + this.input3 = new PositionedStack(input3, 30, 6 + 36); + this.input4 = new PositionedStack(input4, 30 + 18, 6 + 36); + this.outputF1 = new PositionedStack(outputF1, 120, 6); + this.outputF2 = new PositionedStack(outputF2, 120 + 18, 6); + this.output1 = new PositionedStack(output1, 120, 6 + 18); + this.output2 = new PositionedStack(output2, 120 + 18, 6 + 18); + this.output3 = new PositionedStack(output3, 120, 6 + 36); + this.output4 = new PositionedStack(output4, 120 + 18, 6 + 36); + this.template = new PositionedStack(template, 84, 6); + } + + @Override + public List getIngredients() { + return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input1, input2, input3, input4, inputF1, inputF2, template})); + } + + @Override + public List getOtherStacks() { + List stacks = new ArrayList(); + stacks.add(output1); + stacks.add(output2); + stacks.add(output3); + stacks.add(output4); + stacks.add(outputF1); + stacks.add(outputF2); + return stacks; + } + + @Override + public PositionedStack getResult() { + return output1; + } + } + + @Override + public String getRecipeName() { + return "Chemical Plant"; + } + + @Override + public String getGuiTexture() { + return RefStrings.MODID + ":textures/gui/gui_nei_chemplant.png"; + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + if ((outputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { + Map recipes = MachineRecipes.instance().getChemistryRecipes(); + for (Map.Entry recipe : recipes.entrySet()) { + this.arecipes.add(new SmeltingSet( + (ItemStack)recipe.getKey()[0], + (ItemStack)recipe.getKey()[1], + (ItemStack)recipe.getKey()[2], + (ItemStack)recipe.getKey()[3], + (ItemStack)recipe.getKey()[4], + (ItemStack)recipe.getKey()[5], + (ItemStack)recipe.getValue()[0], + (ItemStack)recipe.getValue()[1], + (ItemStack)recipe.getValue()[2], + (ItemStack)recipe.getValue()[3], + (ItemStack)recipe.getValue()[4], + (ItemStack)recipe.getValue()[5], + (ItemStack)recipe.getKey()[6])); + } + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + Map recipes = MachineRecipes.instance().getChemistryRecipes(); + for (Map.Entry recipe : recipes.entrySet()) { + if (NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[0]) || + NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[1]) || + NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[2]) || + NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[3]) || + NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[4]) || + NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[5])) + this.arecipes.add(new SmeltingSet( + (ItemStack)recipe.getKey()[0], + (ItemStack)recipe.getKey()[1], + (ItemStack)recipe.getKey()[2], + (ItemStack)recipe.getKey()[3], + (ItemStack)recipe.getKey()[4], + (ItemStack)recipe.getKey()[5], + (ItemStack)recipe.getValue()[0], + (ItemStack)recipe.getValue()[1], + (ItemStack)recipe.getValue()[2], + (ItemStack)recipe.getValue()[3], + (ItemStack)recipe.getValue()[4], + (ItemStack)recipe.getValue()[5], + (ItemStack)recipe.getKey()[6])); + } + } + + @Override + public void loadUsageRecipes(String inputId, Object... ingredients) { + if ((inputId.equals("chemistry")) && getClass() == ChemplantRecipeHandler.class) { + loadCraftingRecipes("chemistry", new Object[0]); + } else { + super.loadUsageRecipes(inputId, ingredients); + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + Map recipes = MachineRecipes.instance().getChemistryRecipes(); + for (Map.Entry recipe : recipes.entrySet()) { + if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[0]) || + NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[1]) || + NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[2]) || + NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[3]) || + NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[4]) || + NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[5]) || + NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[6])) + this.arecipes.add(new SmeltingSet( + (ItemStack)recipe.getKey()[0], + (ItemStack)recipe.getKey()[1], + (ItemStack)recipe.getKey()[2], + (ItemStack)recipe.getKey()[3], + (ItemStack)recipe.getKey()[4], + (ItemStack)recipe.getKey()[5], + (ItemStack)recipe.getValue()[0], + (ItemStack)recipe.getValue()[1], + (ItemStack)recipe.getValue()[2], + (ItemStack)recipe.getValue()[3], + (ItemStack)recipe.getValue()[4], + (ItemStack)recipe.getValue()[5], + (ItemStack)recipe.getKey()[6])); + } + } + + @Override + public Class getGuiClass() { + //return GUITestDiFurnace.class; + return null; + } + + @Override + public void loadTransferRects() { + transferRectsGui = new LinkedList(); + guiGui = new LinkedList>(); + + transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 72, 23, 18 * 3, 18), "chemistry")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2, 89 - 7 - 11, 18 * 5 - 4, 18 + 16), "chemistry")); + guiGui.add(GUIMachineChemplant.class); + RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); + RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); + } + + @Override + public void drawExtras(int recipe) { + + drawProgressBar(83 - (18 * 4) - 9 + 1, 6, 0, 86, 16, 18 * 3 - 2, 480, 7); + + drawProgressBar(83 - 3 + 16 + 5 - 36, 5 + 18, 16, 86, 18 * 3, 18, 48, 0); + } + + @Override + public TemplateRecipeHandler newInstance() { + return super.newInstance(); + } +} diff --git a/com/hbm/handler/nei/RefineryRecipeHandler.java b/com/hbm/handler/nei/RefineryRecipeHandler.java index 0cbbebf40..d62dcee49 100644 --- a/com/hbm/handler/nei/RefineryRecipeHandler.java +++ b/com/hbm/handler/nei/RefineryRecipeHandler.java @@ -9,6 +9,7 @@ import java.util.Map; import com.hbm.inventory.MachineRecipes; import com.hbm.inventory.gui.GUIMachineAssembler; +import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.lib.RefStrings; import codechicken.nei.NEIServerUtils; @@ -135,9 +136,9 @@ public class RefineryRecipeHandler extends TemplateRecipeHandler { transferRectsGui = new LinkedList(); guiGui = new LinkedList>(); - transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36, 23, 36, 18), "refinery")); - transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2, 89 - 7 - 11, 18 * 5 - 4, 18 + 16), "refinery")); - guiGui.add(GUIMachineAssembler.class); + transferRects.add(new RecipeTransferRect(new Rectangle(138 - 1 - 36 - 27, 23, 36, 18), "refinery")); + transferRectsGui.add(new RecipeTransferRect(new Rectangle(18 * 2 + 2 + 36, 89 - 7 - 11 - 11, 18 * 4, 18), "refinery")); + guiGui.add(GUIMachineRefinery.class); RecipeTransferRectHandler.registerRectsToGuis(getRecipeTransferRectGuis(), transferRects); RecipeTransferRectHandler.registerRectsToGuis(guiGui, transferRectsGui); } diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index f68de7acb..6f05b3cff 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -1,6 +1,7 @@ package com.hbm.inventory; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -10,6 +11,7 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemAssemblyTemplate; import com.hbm.items.tool.ItemAssemblyTemplate.EnumAssemblyTemplate; import com.hbm.items.tool.ItemChemistryTemplate; +import com.hbm.items.tool.ItemFluidIcon; import com.hbm.main.MainRegistry; import net.minecraft.init.Blocks; @@ -2486,6 +2488,51 @@ public class MachineRecipes { return recipes; } + public Map getChemistryRecipes() { + + Map recipes = new HashMap(); + + for (int i = 0; i < ItemChemistryTemplate.EnumChemistryTemplate.values().length; ++i) + { + ItemStack[] inputs = new ItemStack[7]; + ItemStack[] outputs = new ItemStack[6]; + inputs[6] = new ItemStack(ModItems.chemistry_template, 1, i); + + List listIn = MachineRecipes.getChemInputFromTempate(inputs[6]); + if(listIn != null) + for(int j = 0; j < listIn.size(); j++) + if(listIn.get(j) != null) + inputs[j + 2] = listIn.get(j).copy(); + + FluidStack[] fluidIn = MachineRecipes.getFluidInputFromTempate(inputs[6]); + for(int j = 0; j < fluidIn.length; j++) + if(fluidIn[j] != null) + inputs[j] = ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, Arrays.asList(FluidType.values()).indexOf(fluidIn[j].type)), fluidIn[j].fill); + + ItemStack[] listOut = MachineRecipes.getChemOutputFromTempate(inputs[6]); + for(int j = 0; j < listOut.length; j++) + if(listOut[j] != null) + outputs[j + 2] = listOut[j].copy(); + + FluidStack[] fluidOut = MachineRecipes.getFluidOutputFromTempate(inputs[6]); + for(int j = 0; j < fluidOut.length; j++) + if(fluidOut[j] != null) + outputs[j] = ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, Arrays.asList(FluidType.values()).indexOf(fluidOut[j].type)), fluidOut[j].fill); + + for(int j = 0; j < inputs.length; j++) + if(inputs[j] == null) + inputs[j] = new ItemStack(ModItems.nothing); + + for(int j = 0; j < outputs.length; j++) + if(outputs[j] == null) + outputs[j] = new ItemStack(ModItems.nothing); + + recipes.put(inputs, outputs); + } + + return recipes; + } + public Map getRefineryRecipe() { Map recipes = new HashMap(); diff --git a/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/com/hbm/inventory/gui/GUIScreenTemplateFolder.java new file mode 100644 index 000000000..e8bf6b74a --- /dev/null +++ b/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -0,0 +1,215 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemAssemblyTemplate.EnumAssemblyTemplate; +import com.hbm.items.tool.ItemChemistryTemplate; +import com.hbm.items.tool.ItemFluidIdentifier; +import com.hbm.lib.RefStrings; +import com.hbm.packet.ItemFolderPacket; +import com.hbm.packet.PacketDispatcher; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenTemplateFolder extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_planner.png"); + protected int xSize = 176; + protected int ySize = 229; + protected int guiLeft; + protected int guiTop; + int currentPage = 0; + List stacks = new ArrayList(); + List buttons = new ArrayList(); + private final EntityPlayer player; + + public GUIScreenTemplateFolder(EntityPlayer player) { + + this.player = player; + + //Fluid IDs + for(int i = 1; i < FluidType.values().length; i++) + stacks.add(new ItemStack(ModItems.fluid_identifier, 1, i)); + //Assembly Templates + for(int i = 0; i < EnumAssemblyTemplate.values().length; i++) + stacks.add(new ItemStack(ModItems.assembly_template, 1, i)); + //Chemistry Templates + for(int i = 0; i < ItemChemistryTemplate.EnumChemistryTemplate.values().length; i++) + stacks.add(new ItemStack(ModItems.chemistry_template, 1, i)); + } + + int getPageCount() { + return (int)Math.ceil(stacks.size() / (5 * 7)); + } + + public void updateScreen() { + if(currentPage < 0) + currentPage = 0; + if(currentPage > getPageCount()) + currentPage = getPageCount(); + } + + public void drawScreen(int mouseX, int mouseY, float f) + { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + public void initGui() + { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + + updateButtons(); + } + + protected void updateButtons() { + + if(!buttons.isEmpty()) + buttons.clear(); + + /*for(int u = 0; u < 7; u++) + for(int v = 0; v < 5; v++) + if((currentPage * 35) + (v * 5) + u < stacks.size()) + buttons.add(new FolderButton(guiLeft + 25 + (27 * v), guiTop + 26 + (27 * u), stacks.get((currentPage * 35) + (v * 5) + u)));*/ + + for(int i = currentPage * 35; i < Math.min(currentPage * 35 + 35, stacks.size()); i++) { + buttons.add(new FolderButton(guiLeft + 25 + (27 * (i % 5)), guiTop + 26 + (27 * (int)Math.floor((i / 5D))) - currentPage * 27 * 7, stacks.get(i))); + } + + if(currentPage != 0) + buttons.add(new FolderButton(guiLeft + 25 - 18, guiTop + 26 + (27 * 3), 1, "Previous")); + if(currentPage != getPageCount()) + buttons.add(new FolderButton(guiLeft + 25 + (27 * 4) + 18, guiTop + 26 + (27 * 3), 2, "Next")); + } + + protected void mouseClicked(int i, int j, int k) { + try { + for(FolderButton b : buttons) + if(b.isMouseOnButton(i, j)) + b.executeAction(); + } catch (Exception ex) { + updateButtons(); + } + } + + protected void drawGuiContainerForegroundLayer(int i, int j) { + + this.fontRendererObj.drawString(I18n.format((currentPage + 1) + "/" + (getPageCount() + 1)), + guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(I18n.format((currentPage + 1) + "/" + (getPageCount() + 1))) / 2, guiTop + 10, 4210752); + + for(FolderButton b : buttons) + if(b.isMouseOnButton(i, j)) + b.drawString(i, j); + } + + protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + for(FolderButton b : buttons) + b.drawButton(b.isMouseOnButton(i, j)); + for(FolderButton b : buttons) + b.drawIcon(b.isMouseOnButton(i, j)); + } + + protected void keyTyped(char p_73869_1_, int p_73869_2_) + { + if (p_73869_2_ == 1 || p_73869_2_ == this.mc.gameSettings.keyBindInventory.getKeyCode()) + { + this.mc.thePlayer.closeScreen(); + } + + } + + class FolderButton { + + int xPos; + int yPos; + //0: regular, 1: prev, 2: next + int type; + String info; + ItemStack stack; + + public FolderButton(int x, int y, int t, String i) { + xPos = x; + yPos = y; + type = t; + info = i; + } + + public FolderButton(int x, int y, ItemStack stack) { + xPos = x; + yPos = y; + type = 0; + info = stack.getDisplayName(); + this.stack = stack.copy(); + } + + public void updateButton(int mouseX, int mouseY) { + } + + public boolean isMouseOnButton(int mouseX, int mouseY) { + return xPos <= mouseX && xPos + 18 > mouseX && yPos < mouseY && yPos + 18 >= mouseY; + } + + public void drawButton(boolean b) { + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(xPos, yPos, b ? 176 + 18 : 176, type == 1 ? 18 : (type == 2 ? 36 : 0), 18, 18); + } + + public void drawIcon(boolean b) { + if(stack != null) + itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), stack, xPos + 1, yPos + 1); + } + + public void drawString(int x, int y) { + if(info == null || info.isEmpty()) + return; + + String s = info; + if(stack != null) + if(stack.getItem() instanceof ItemFluidIdentifier) + s += (": " + I18n.format(FluidType.getEnum(stack.getItemDamage()).getUnlocalizedName())); + + func_146283_a(Arrays.asList(new String[] { s }), x, y); + } + + public void executeAction() { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + if(type == 0) { + PacketDispatcher.wrapper.sendToServer(new ItemFolderPacket(stack.copy())); + } else if(type == 1) { + if(currentPage > 0) + currentPage--; + updateButtons(); + } else if(type == 2) { + if(currentPage < getPageCount()) + currentPage++; + updateButtons(); + } + } + + } + +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 482cdaf39..2011088ed 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -535,6 +535,7 @@ public class ModItems { public static Item linker; public static Item oil_detector; + public static Item template_folder; public static Item assembly_template; public static Item chemistry_template; public static Item fluid_identifier; @@ -992,6 +993,8 @@ public class ModItems { public static Item ln2_9; public static Item ln2_10; public static Item nothing; + + public static final int guiID_item_folder = 99; public static void initializeItem() { @@ -1721,6 +1724,7 @@ public class ModItems { oil_detector = new ItemOilDetector().setUnlocalizedName("oil_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":oil_detector"); turret_control = new ItemTurretControl().setUnlocalizedName("turret_control").setFull3D().setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_control"); + template_folder = new ItemTemplateFolder().setUnlocalizedName("template_folder").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":template_folder"); assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":assembly_template"); chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":chemistry_template"); fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":fluid_identifier"); @@ -2374,6 +2378,7 @@ public class ModItems { GameRegistry.registerItem(upgrade_fortune_3, upgrade_fortune_3.getUnlocalizedName()); //Machine Templates + GameRegistry.registerItem(template_folder, template_folder.getUnlocalizedName()); GameRegistry.registerItem(fluid_identifier, fluid_identifier.getUnlocalizedName()); GameRegistry.registerItem(fluid_icon, fluid_icon.getUnlocalizedName()); GameRegistry.registerItem(assembly_template, assembly_template.getUnlocalizedName()); diff --git a/com/hbm/items/special/ItemBattery.java b/com/hbm/items/special/ItemBattery.java index bd69e0a11..9b7a003c3 100644 --- a/com/hbm/items/special/ItemBattery.java +++ b/com/hbm/items/special/ItemBattery.java @@ -116,5 +116,17 @@ public class ItemBattery extends Item { return null; } + + public static ItemStack getFullBattery(Item item) { + + if(item instanceof ItemBattery) { + ItemStack stack = new ItemStack(item); + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("charge", getMaxChargeStatic(stack)); + return stack.copy(); + } + + return null; + } } diff --git a/com/hbm/items/tool/ItemFluidIcon.java b/com/hbm/items/tool/ItemFluidIcon.java index 4051a0e58..ff525b34d 100644 --- a/com/hbm/items/tool/ItemFluidIcon.java +++ b/com/hbm/items/tool/ItemFluidIcon.java @@ -13,6 +13,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; @@ -41,7 +42,19 @@ public class ItemFluidIcon extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - super.addInformation(stack, player, list, bool); + if(stack.hasTagCompound()) + if(stack.getTagCompound().getInteger("fill") > 0) + list.add(stack.getTagCompound().getInteger("fill") + "mB"); + } + + public static ItemStack addQuantity(ItemStack stack, int i) { + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.getTagCompound().setInteger("fill", i); + + return stack.copy(); } public String getItemStackDisplayName(ItemStack stack) diff --git a/com/hbm/items/tool/ItemTemplateFolder.java b/com/hbm/items/tool/ItemTemplateFolder.java new file mode 100644 index 000000000..edb86239f --- /dev/null +++ b/com/hbm/items/tool/ItemTemplateFolder.java @@ -0,0 +1,24 @@ +package com.hbm.items.tool; + +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.ArrowNockEvent; + +public class ItemTemplateFolder extends Item { + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(world.isRemote) + player.openGui(MainRegistry.instance, ModItems.guiID_item_folder, world, 0, 0, 0); + + return stack; + } + +} diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 4eb1c6eed..7059f84da 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -201,6 +201,7 @@ import com.hbm.render.tileentity.RenderOilDuct; import com.hbm.render.tileentity.RenderPoleSatelliteReceiver; import com.hbm.render.tileentity.RenderPoleTop; import com.hbm.render.tileentity.RenderPuF6Tank; +import com.hbm.render.tileentity.RenderPumpjack; import com.hbm.render.tileentity.RenderPylon; import com.hbm.render.tileentity.RenderRedBarrel; import com.hbm.render.tileentity.RenderRefinery; @@ -242,6 +243,7 @@ import com.hbm.tileentity.TileEntityMachineCyclotron; import com.hbm.tileentity.TileEntityMachineFluidTank; import com.hbm.tileentity.TileEntityMachineGasFlare; import com.hbm.tileentity.TileEntityMachinePuF6Tank; +import com.hbm.tileentity.TileEntityMachinePumpjack; import com.hbm.tileentity.TileEntityMachineRefinery; import com.hbm.tileentity.TileEntityMachineUF6Tank; import com.hbm.tileentity.TileEntityNukeBoy; @@ -314,6 +316,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretLight.class, new RenderLightTurret()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretFlamer.class, new RenderFlamerTurret()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretTau.class, new RenderTauTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpjack.class, new RenderPumpjack()); //RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core)); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index ebaba8b8e..e50957932 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -798,8 +798,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.battery_lithium), new Object[] { "A A", "PLP", "PSP", 'A', ModItems.wire_gold, 'P', "plateTitanium", 'S', "dustLithium", 'L', ModItems.powder_cobalt })); GameRegistry.addRecipe(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PNP", "PSP", 'A', ModItems.wire_schrabidium, 'P', ModItems.plate_schrabidium, 'S', ModItems.powder_schrabidium, 'N', ModItems.powder_neptunium }); GameRegistry.addRecipe(ItemBattery.getEmptyBattery(ModItems.battery_schrabidium), new Object[] { " A ", "PSP", "PNP", 'A', ModItems.wire_schrabidium, 'P', ModItems.plate_schrabidium, 'S', ModItems.powder_schrabidium, 'N', ModItems.powder_neptunium }); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ModItems.plate_advanced_alloy, 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', "ingotTungsten" })); - GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ModItems.plate_advanced_alloy, 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', "ingotTungsten" })); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TRD", "PCW", 'P', ModItems.plate_advanced_alloy, 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', "ingotTungsten" })); + GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getFullBattery(ModItems.energy_core), new Object[] { "PCW", "TDR", "PCW", 'P', ModItems.plate_advanced_alloy, 'C', ModItems.coil_advanced_alloy, 'W', ModItems.wire_advanced_alloy, 'R', ModItems.cell_tritium, 'D', ModItems.cell_deuterium, 'T', "ingotTungsten" })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.battery_red_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_aluminium, 'P', "plateAluminum", 'B', ItemBattery.getEmptyBattery(ModItems.battery_generic) })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.battery_advanced_cell), new Object[] { "WBW", "PBP", "WBW", 'W', ModItems.wire_red_copper, 'P', "plateCopper", 'B', ItemBattery.getEmptyBattery(ModItems.battery_advanced) })); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index efaa9bdfa..500346488 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -185,6 +185,7 @@ import com.hbm.tileentity.TileEntityNukeTsar; import com.hbm.tileentity.TileEntityObjTester; import com.hbm.tileentity.TileEntityOilDuct; import com.hbm.tileentity.TileEntityOilDuctSolid; +import com.hbm.tileentity.TileEntityMachinePumpjack; import com.hbm.tileentity.TileEntityPylonRedWire; import com.hbm.tileentity.TileEntityReactorMultiblock; import com.hbm.tileentity.TileEntityRedBarrel; @@ -483,6 +484,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityTurretLight.class, "tileentity_turret_light"); GameRegistry.registerTileEntity(TileEntityTurretFlamer.class, "tileentity_turret_flamer"); GameRegistry.registerTileEntity(TileEntityTurretTau.class, "tileentity_turret_tau"); + GameRegistry.registerTileEntity(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/com/hbm/main/NEIConfig.java b/com/hbm/main/NEIConfig.java index df962b1e2..f657c24b4 100644 --- a/com/hbm/main/NEIConfig.java +++ b/com/hbm/main/NEIConfig.java @@ -5,6 +5,7 @@ import com.hbm.handler.nei.AlloyFurnaceRecipeHandler; import com.hbm.handler.nei.AssemblerRecipeHandler; import com.hbm.handler.nei.CMBFurnaceRecipeHandler; import com.hbm.handler.nei.CentrifugeRecipeHandler; +import com.hbm.handler.nei.ChemplantRecipeHandler; import com.hbm.handler.nei.CyclotronRecipeHandler; import com.hbm.handler.nei.ModInfoHandler; import com.hbm.handler.nei.ReactorRecipeHandler; @@ -40,6 +41,8 @@ public class NEIConfig implements IConfigureNEI { API.registerUsageHandler(new RefineryRecipeHandler()); API.registerRecipeHandler(new ModInfoHandler()); API.registerUsageHandler(new ModInfoHandler()); + API.registerRecipeHandler(new ChemplantRecipeHandler()); + API.registerUsageHandler(new ChemplantRecipeHandler()); //Some things are even beyond my control...or are they? API.hideItem(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_coal_on))); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 42065ba4c..88636ed44 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -19,5 +19,10 @@ public class ResourceManager { public static final IModelCustom turret_light_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_light_gun.obj")); public static final IModelCustom turret_flamer_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_flamer_gun.obj")); public static final IModelCustom turret_tau_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_tau_gun.obj")); + + //Pumpjack + public static final IModelCustom pumpjack_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/pumpjack_base.obj")); + public static final IModelCustom pumpjack_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/pumpjack_head.obj")); + public static final IModelCustom pumpjack_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/pumpjack_rotor.obj")); } diff --git a/com/hbm/packet/ItemFolderPacket.java b/com/hbm/packet/ItemFolderPacket.java new file mode 100644 index 000000000..918aa7049 --- /dev/null +++ b/com/hbm/packet/ItemFolderPacket.java @@ -0,0 +1,95 @@ +package com.hbm.packet; + +import java.util.List; + +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemAssemblyTemplate; +import com.hbm.items.tool.ItemChemistryTemplate; +import com.hbm.items.tool.ItemFluidIdentifier; +import com.hbm.tileentity.TileEntityMachineAssembler; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class ItemFolderPacket implements IMessage { + + int item; + int meta; + + public ItemFolderPacket() + { + + } + + public ItemFolderPacket(ItemStack stack) + { + this.item = Item.getIdFromItem(stack.getItem()); + this.meta = stack.getItemDamage(); + } + + @Override + public void fromBytes(ByteBuf buf) { + item = buf.readInt(); + meta = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(item); + buf.writeInt(meta); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(ItemFolderPacket m, MessageContext ctx) { + + List list = Minecraft.getMinecraft().theWorld.playerEntities; + + //if(!Minecraft.getMinecraft().theWorld.isRemote) + EntityPlayer p = ctx.getServerHandler().playerEntity; + ItemStack stack = new ItemStack(Item.getItemById(m.item), 1, m.meta); + + if(p.capabilities.isCreativeMode) { + p.inventory.addItemStackToInventory(stack.copy()); + return null; + } + + if(stack.getItem() instanceof ItemFluidIdentifier) { + if(p.inventory.hasItem(ModItems.plate_iron) && p.inventory.hasItem(Items.dye)) { + p.inventory.consumeInventoryItem(ModItems.plate_iron); + p.inventory.consumeInventoryItem(Items.dye); + if(!p.inventory.addItemStackToInventory(stack.copy())) + p.dropPlayerItemWithRandomChoice(stack, true); + } + } + if(stack.getItem() instanceof ItemAssemblyTemplate) { + if(p.inventory.hasItem(Items.paper) && p.inventory.hasItem(Items.dye)) { + p.inventory.consumeInventoryItem(Items.paper); + p.inventory.consumeInventoryItem(Items.dye); + if(!p.inventory.addItemStackToInventory(stack.copy())) + p.dropPlayerItemWithRandomChoice(stack, true); + } + } + if(stack.getItem() instanceof ItemChemistryTemplate) { + if(p.inventory.hasItem(Items.paper) && p.inventory.hasItem(Items.dye)) { + p.inventory.consumeInventoryItem(Items.paper); + p.inventory.consumeInventoryItem(Items.dye); + if(!p.inventory.addItemStackToInventory(stack.copy())) + p.dropPlayerItemWithRandomChoice(stack, true); + } + } + //} + + return null; + } + } +} diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 005cbc562..a118911b3 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -41,6 +41,8 @@ public class PacketDispatcher { wrapper.registerMessage(TEChemplantPacket.Handler.class, TEChemplantPacket.class, i++, Side.CLIENT); //Turret rotation for rendering wrapper.registerMessage(TETurretPacket.Handler.class, TETurretPacket.class, i++, Side.CLIENT); + //Signals server to consume items and create template + wrapper.registerMessage(ItemFolderPacket.Handler.class, ItemFolderPacket.class, i++, Side.SERVER); } } diff --git a/com/hbm/render/tileentity/RenderPumpjack.java b/com/hbm/render/tileentity/RenderPumpjack.java new file mode 100644 index 000000000..e11cccb9a --- /dev/null +++ b/com/hbm/render/tileentity/RenderPumpjack.java @@ -0,0 +1,120 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.TileEntityTurretBase; + +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +public class RenderPumpjack extends TileEntitySpecialRenderer { + + public RenderPumpjack() { } + + private ResourceLocation gadgetTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + + int i = 0; + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + i += 2; + if(i >= 360) + i-= 360; + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + this.bindTexture(gadgetTexture); + ResourceManager.pumpjack_base.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt2(tileEntity, x, y, z, f); + } + + public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glTranslated(0, 1.5, 5.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + this.bindTexture(gadgetTexture); + GL11.glRotated(i - 90, 1F, 0F, 0F); + ResourceManager.pumpjack_rotor.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt3(tileEntity, x, y, z, f); + } + + public void renderTileEntityAt3(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 1, z + 0.5D); + GL11.glTranslated(0, 2.5, 2.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + this.bindTexture(gadgetTexture); + float t = (float) Math.sin((i / (180 / Math.PI)))/2 * 25; + GL11.glRotatef(t, 1F, 0F, 0F); + ResourceManager.pumpjack_head.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt4(tileEntity, x, y, z, f); + } + + public void renderTileEntityAt4(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 1, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + float t = (float) Math.sin((i / (180 / Math.PI))); + float u = (float) Math.sin(((i + 90) / (180 / Math.PI))); + drawConnection(0.55, 0.5 + t, -5.5 - u, 0.55, 2.5, -6); + drawConnection(-0.55, 0.5 + t, -5.5 - u, -0.55, 2.5, -6); + + GL11.glPopMatrix(); + } + + public void drawConnection(double x, double y, double z, double a, double b, double c) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawing(5); + tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); + tessellator.addVertex(x + 0.05F, y, z); + tessellator.addVertex(x - 0.05F, y, z); + tessellator.addVertex(a + 0.05F, b, c); + tessellator.addVertex(a - 0.05F, b, c); + tessellator.draw(); + tessellator.startDrawing(5); + tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); + tessellator.addVertex(x, y, z + 0.05F); + tessellator.addVertex(x, y, z - 0.05F); + tessellator.addVertex(a, b, c + 0.05F); + tessellator.addVertex(a, b, c - 0.05F); + tessellator.draw(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_CULL_FACE); + } + +} diff --git a/com/hbm/tileentity/TileEntityMachinePumpjack.java b/com/hbm/tileentity/TileEntityMachinePumpjack.java new file mode 100644 index 000000000..d453b5a15 --- /dev/null +++ b/com/hbm/tileentity/TileEntityMachinePumpjack.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMachinePumpjack extends TileEntity { + +}