From f575e5c4094dc7f0f5a49529d63890ec9b3137b1 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 15 Jul 2020 01:04:22 +0200 Subject: [PATCH] fusion GUI general redesgin, microwave memery --- .../assets/hbm/models/machines/microwave.obj | 1623 +++++++++++++++++ .../textures/gui/processing/gui_microwave.png | Bin 0 -> 1841 bytes .../gui/reactors/gui_fusion_heater.png | Bin 0 -> 2234 bytes .../gui/reactors/gui_fusion_multiblock.png | Bin 4026 -> 4166 bytes .../textures/models/machines/microwave.png | Bin 0 -> 32640 bytes src/main/java/com/hbm/blocks/ModBlocks.java | 7 +- .../hbm/blocks/machine/MachineMicrowave.java | 36 + src/main/java/com/hbm/handler/GUIHandler.java | 18 + .../container/ContainerMicrowave.java | 77 + .../com/hbm/inventory/gui/GUIMicrowave.java | 70 + src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/main/CraftingManager.java | 24 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/main/ResourceManager.java | 6 + .../tileentity/RenderITERMultiblock.java | 54 +- .../render/tileentity/RenderMicrowave.java | 45 + .../java/com/hbm/render/util/IconUtil.java | 27 + .../hbm/render/util/SmallBlockPronter.java | 68 + .../machine/TileEntityITERStruct.java | 55 + .../machine/TileEntityMicrowave.java | 165 ++ 20 files changed, 2260 insertions(+), 17 deletions(-) create mode 100644 src/main/java/assets/hbm/models/machines/microwave.obj create mode 100644 src/main/java/assets/hbm/textures/gui/processing/gui_microwave.png create mode 100644 src/main/java/assets/hbm/textures/gui/reactors/gui_fusion_heater.png create mode 100644 src/main/java/assets/hbm/textures/models/machines/microwave.png create mode 100644 src/main/java/com/hbm/blocks/machine/MachineMicrowave.java create mode 100644 src/main/java/com/hbm/inventory/container/ContainerMicrowave.java create mode 100644 src/main/java/com/hbm/inventory/gui/GUIMicrowave.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderMicrowave.java create mode 100644 src/main/java/com/hbm/render/util/IconUtil.java create mode 100644 src/main/java/com/hbm/render/util/SmallBlockPronter.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java diff --git a/src/main/java/assets/hbm/models/machines/microwave.obj b/src/main/java/assets/hbm/models/machines/microwave.obj new file mode 100644 index 000000000..2f258c742 --- /dev/null +++ b/src/main/java/assets/hbm/models/machines/microwave.obj @@ -0,0 +1,1623 @@ +# Blender v2.82 (sub 7) OBJ File: 'microwave.blend' +# www.blender.org +mtllib microwave.mtl +o mainbody_Cube.001 +v 0.238197 1.183358 -0.728996 +v 0.234821 1.183358 -0.728996 +v 0.238197 1.183358 -0.735637 +v 0.234821 1.183358 -0.735637 +v 0.238197 0.787154 -0.728996 +v 0.234821 0.787154 -0.728996 +v 0.234338 0.840926 -0.735637 +v 0.234821 1.127133 -0.735637 +v 0.238197 1.127133 -0.735637 +v 0.238197 0.840926 -0.735637 +v 0.155271 1.127133 -0.735637 +v 0.149897 1.125951 -0.735637 +v 0.838582 1.118357 -0.735637 +v 0.836356 1.121211 -0.735637 +v 0.827432 1.125951 -0.735637 +v 0.822058 1.127133 -0.735637 +v 0.826572 0.842109 -0.735637 +v 0.821198 0.840926 -0.735637 +v 0.837722 0.849703 -0.735637 +v 0.835496 0.846848 -0.735637 +v 0.140113 0.846848 -0.735637 +v 0.137887 0.849703 -0.735637 +v 0.154411 0.840926 -0.735637 +v 0.149037 0.842109 -0.735637 +v 0.138747 1.118357 -0.735637 +v 0.140973 1.121211 -0.735637 +v 0.234338 0.840926 -0.731795 +v 0.234821 1.127133 -0.731795 +v 0.140973 1.121211 -0.731795 +v 0.138747 1.118357 -0.731795 +v 0.149897 1.125951 -0.731795 +v 0.155271 1.127133 -0.731795 +v 0.137887 0.849703 -0.731795 +v 0.140113 0.846848 -0.731795 +v 0.149037 0.842109 -0.731795 +v 0.154411 0.840926 -0.731795 +v 0.303131 1.127133 -0.732176 +v 0.303131 0.840926 -0.732176 +v 0.820933 1.127133 -0.732176 +v 0.826308 1.125951 -0.732176 +v 0.835231 1.121211 -0.732176 +v 0.837458 1.118357 -0.732176 +v 0.836597 0.849703 -0.732176 +v 0.834371 0.846848 -0.732176 +v 0.825447 0.842109 -0.732176 +v 0.820073 0.840926 -0.732176 +v 0.234821 0.787154 -0.735637 +v 0.238197 0.787154 -0.735637 +v 0.114423 1.183358 -0.161513 +v 0.117047 1.181387 -0.156304 +v 0.127829 1.183358 -0.151007 +v 0.121182 1.181387 -0.153063 +v 0.127829 1.183358 -0.735637 +v 0.121182 1.181387 -0.733581 +v 0.117047 1.181387 -0.730340 +v 0.114423 1.183358 -0.725132 +v 0.862732 0.787154 -0.159690 +v 0.857794 0.789125 -0.156304 +v 0.849338 0.787154 -0.151007 +v 0.853658 0.789125 -0.153063 +v 0.847012 1.183358 -0.151007 +v 0.853658 1.181387 -0.153063 +v 0.857794 1.181387 -0.156304 +v 0.860417 1.183358 -0.161513 +v 0.853658 0.789125 -0.733581 +v 0.857794 0.789125 -0.730340 +v 0.860417 0.787154 -0.726955 +v 0.848027 0.787154 -0.735637 +v 0.860417 1.183358 -0.725132 +v 0.857794 1.181387 -0.730340 +v 0.853658 1.181387 -0.733581 +v 0.847012 1.183358 -0.735637 +v 0.112109 0.787154 -0.726955 +v 0.115750 0.789125 -0.732973 +v 0.120534 0.789125 -0.735475 +v 0.126814 0.787154 -0.735637 +v 0.125502 0.787154 -0.149193 +v 0.121182 0.789125 -0.153063 +v 0.117047 0.789125 -0.156304 +v 0.114423 0.787154 -0.159690 +v 0.246749 0.852258 -0.727568 +v 0.246749 1.118254 -0.727568 +v 0.246749 0.852258 -0.734150 +v 0.246749 1.118254 -0.734150 +v 0.282202 0.852258 -0.727568 +v 0.282202 1.118254 -0.727568 +v 0.282202 0.852258 -0.734150 +v 0.282202 1.118254 -0.734150 +v 0.246749 0.985256 -0.755632 +v 0.246749 0.985256 -0.762214 +v 0.264475 0.852258 -0.734150 +v 0.264475 1.118254 -0.734150 +v 0.282202 0.985256 -0.762214 +v 0.282202 0.985256 -0.755632 +v 0.264475 0.852258 -0.727568 +v 0.264475 1.118254 -0.727568 +v 0.264475 0.985256 -0.755632 +v 0.264475 0.985256 -0.762214 +v 0.246749 0.852258 -0.730859 +v 0.246749 1.051755 -0.751094 +v 0.246749 1.118254 -0.730859 +v 0.246749 0.918757 -0.754385 +v 0.255612 0.852258 -0.734150 +v 0.273339 1.118254 -0.734150 +v 0.282202 0.918757 -0.754385 +v 0.282202 0.852258 -0.730859 +v 0.282202 1.118254 -0.730859 +v 0.282202 0.918757 -0.747802 +v 0.273339 0.852258 -0.727568 +v 0.255612 1.118254 -0.727568 +v 0.246749 0.918757 -0.747802 +v 0.246749 1.051755 -0.757676 +v 0.273339 0.852258 -0.734150 +v 0.255612 1.118254 -0.734150 +v 0.282202 1.051755 -0.757676 +v 0.282202 1.051755 -0.751094 +v 0.255612 0.852258 -0.727568 +v 0.273339 1.118254 -0.727568 +v 0.264475 1.118254 -0.730849 +v 0.264475 0.852258 -0.730849 +v 0.255612 0.985256 -0.755632 +v 0.273339 0.985256 -0.755632 +v 0.264475 0.918757 -0.747802 +v 0.264475 1.051755 -0.751094 +v 0.282202 0.985256 -0.758923 +v 0.273339 0.985256 -0.762214 +v 0.255612 0.985256 -0.762214 +v 0.264475 0.918757 -0.754385 +v 0.264475 1.051755 -0.757676 +v 0.246749 0.985256 -0.758923 +v 0.246749 0.918757 -0.751094 +v 0.255612 1.051755 -0.757676 +v 0.255612 0.918757 -0.754385 +v 0.273339 0.918757 -0.754385 +v 0.282202 0.918757 -0.751094 +v 0.273339 1.051755 -0.751094 +v 0.273339 0.918757 -0.747802 +v 0.255612 0.918757 -0.747802 +v 0.255612 0.852258 -0.730849 +v 0.273339 1.118254 -0.730849 +v 0.255612 1.118254 -0.730849 +v 0.273339 0.852258 -0.730849 +v 0.255612 1.051755 -0.751094 +v 0.282202 1.051755 -0.754385 +v 0.273339 1.051755 -0.757676 +v 0.246749 1.051755 -0.754385 +v 0.303131 1.127133 -0.208209 +v 0.303131 0.840926 -0.208209 +v 0.820933 1.127133 -0.208209 +v 0.826308 1.125951 -0.208209 +v 0.835231 1.121211 -0.208209 +v 0.837458 1.118357 -0.208209 +v 0.836597 0.849703 -0.208209 +v 0.834371 0.846848 -0.208209 +v 0.825447 0.842109 -0.208209 +v 0.820073 0.840926 -0.208209 +v 0.339101 1.091541 -0.732176 +v 0.339101 0.874846 -0.732176 +v 0.796813 1.091541 -0.732176 +v 0.800847 1.090653 -0.732176 +v 0.807544 1.087096 -0.732176 +v 0.809215 1.084954 -0.732176 +v 0.808569 0.881432 -0.732176 +v 0.806898 0.879290 -0.732176 +v 0.800201 0.875733 -0.732176 +v 0.796168 0.874846 -0.732176 +v 0.238197 0.840926 -0.731795 +v 0.238197 1.127133 -0.731795 +v 0.415576 0.913412 -0.000812 +v 0.415576 1.057100 -0.000812 +v 0.415576 0.913412 -0.157633 +v 0.415576 1.057100 -0.157633 +v 0.559264 0.913412 -0.000812 +v 0.559264 1.057100 -0.000812 +v 0.559264 0.913412 -0.157633 +v 0.559264 1.057100 -0.157633 +vt 0.187756 0.185116 +vt 0.190250 0.359586 +vt 0.187359 0.359553 +vt 0.184816 0.183014 +vt 0.011904 0.361665 +vt 0.011410 0.182951 +vt 0.434160 0.035160 +vt 0.437617 0.233175 +vt 0.433848 0.233203 +vt 0.421314 0.234632 +vt 0.421314 0.024505 +vt 0.424461 0.141338 +vt 0.180342 0.556180 +vt 0.006258 0.555192 +vt 0.180341 0.553216 +vt 0.619010 0.294600 +vt 0.615336 0.293939 +vt 0.618997 0.293255 +vt 0.560911 0.771909 +vt 0.499383 0.771947 +vt 0.573681 0.763070 +vt 0.551781 0.278506 +vt 0.554882 0.277399 +vt 0.554849 0.278591 +vt 0.477598 0.276038 +vt 0.480699 0.274931 +vt 0.480666 0.276123 +vt 0.456844 0.275464 +vt 0.476217 0.274807 +vt 0.476184 0.275999 +vt 0.556296 0.277438 +vt 0.556263 0.278630 +vt 0.477631 0.274846 +vt 0.575727 0.277976 +vt 0.575694 0.279168 +vt 0.550366 0.278467 +vt 0.551814 0.277314 +vt 0.482080 0.276163 +vt 0.550399 0.277275 +vt 0.482113 0.274971 +vt 0.529499 0.294540 +vt 0.531162 0.293570 +vt 0.531174 0.294916 +vt 0.615349 0.295285 +vt 0.613628 0.294117 +vt 0.536559 0.295677 +vt 0.613641 0.295463 +vt 0.534848 0.295531 +vt 0.536546 0.294332 +vt 0.620678 0.294193 +vt 0.620665 0.292848 +vt 0.534835 0.294186 +vt 0.390231 0.176341 +vt 0.365296 0.176585 +vt 0.365277 0.174628 +vt 0.008379 0.053132 +vt 0.010531 0.175541 +vt 0.008501 0.175525 +vt 0.678815 0.051868 +vt 0.681765 0.009865 +vt 0.681766 0.212069 +vt 0.191651 0.177060 +vt 0.014270 0.002844 +vt 0.192984 0.003659 +vt 0.661827 0.216665 +vt 0.508504 0.216408 +vt 0.472754 0.213047 +vt 0.182461 0.549659 +vt 0.002549 0.378060 +vt 0.181254 0.376258 +vt 0.008747 0.359552 +vt 0.004975 0.185105 +vt 0.008120 0.184943 +vt 0.006284 0.051542 +vt 0.010601 0.053093 +vt 0.004000 0.561180 +vt 0.003756 0.551834 +vt 0.006284 0.177060 +vt 0.012743 0.177034 +vt 0.012878 0.051518 +vt 0.184195 0.361727 +vt 0.193393 0.361723 +vt 0.190903 0.184977 +vt 0.194207 0.183009 +vt 0.182571 0.559338 +vt 0.182461 0.550031 +vt 0.006443 0.558120 +vt 0.002020 0.183025 +vt 0.004195 0.360497 +vt 0.005856 0.359540 +vt 0.363575 0.189539 +vt 0.388348 0.187899 +vt 0.391408 0.191039 +vt 0.913862 0.374962 +vt 0.932207 0.411652 +vt 0.913862 0.411652 +vt 0.947121 0.484382 +vt 0.928948 0.502555 +vt 0.928948 0.484382 +vt 0.922832 0.558833 +vt 0.904487 0.595522 +vt 0.904487 0.558833 +vt 0.904487 0.650556 +vt 0.922832 0.668901 +vt 0.904487 0.668901 +vt 0.831108 0.558833 +vt 0.849453 0.595522 +vt 0.831108 0.595522 +vt 0.977866 0.558833 +vt 0.996210 0.595522 +vt 0.977866 0.595522 +vt 0.959521 0.558833 +vt 0.941176 0.595522 +vt 0.941176 0.558833 +vt 0.812764 0.558833 +vt 0.794419 0.595522 +vt 0.794419 0.558833 +vt 0.886142 0.650556 +vt 0.867798 0.668901 +vt 0.867798 0.650556 +vt 0.867798 0.613867 +vt 0.886142 0.632212 +vt 0.867798 0.632212 +vt 0.922832 0.613867 +vt 0.904487 0.632212 +vt 0.904487 0.613867 +vt 0.867798 0.558833 +vt 0.886142 0.595522 +vt 0.867798 0.595522 +vt 0.899580 0.488095 +vt 0.881478 0.506196 +vt 0.881478 0.488095 +vt 0.899580 0.451892 +vt 0.881478 0.469993 +vt 0.881478 0.451892 +vt 0.947121 0.448035 +vt 0.928948 0.466208 +vt 0.928948 0.448035 +vt 0.895517 0.374962 +vt 0.877173 0.411652 +vt 0.877173 0.374962 +vt 0.858828 0.411652 +vt 0.858828 0.374962 +vt 0.877173 0.338273 +vt 0.858828 0.338273 +vt 0.895517 0.338273 +vt 0.917681 0.451892 +vt 0.899580 0.469993 +vt 0.917681 0.433790 +vt 0.899580 0.433790 +vt 0.947121 0.429861 +vt 0.928948 0.429861 +vt 0.867173 0.448727 +vt 0.848828 0.467071 +vt 0.848828 0.448727 +vt 0.867173 0.430382 +vt 0.848828 0.430382 +vt 0.881478 0.433790 +vt 0.867173 0.485416 +vt 0.848828 0.503761 +vt 0.848828 0.485416 +vt 0.867173 0.467071 +vt 0.849453 0.558833 +vt 0.849453 0.522144 +vt 0.867798 0.522144 +vt 0.886142 0.558833 +vt 0.886142 0.613867 +vt 0.922832 0.595522 +vt 0.849453 0.632212 +vt 0.849453 0.613867 +vt 0.849453 0.668901 +vt 0.849453 0.650556 +vt 0.776074 0.595522 +vt 0.776074 0.558833 +vt 0.794419 0.522144 +vt 0.776074 0.522144 +vt 0.812764 0.522144 +vt 0.941176 0.522144 +vt 0.922832 0.522144 +vt 0.959521 0.522144 +vt 0.959521 0.595522 +vt 0.977866 0.522144 +vt 0.996210 0.558833 +vt 0.812764 0.595522 +vt 0.831108 0.522144 +vt 0.886142 0.668901 +vt 0.922832 0.632212 +vt 0.904487 0.522144 +vt 0.886142 0.522144 +vt 0.917681 0.488095 +vt 0.899580 0.506196 +vt 0.917681 0.469993 +vt 0.947121 0.466208 +vt 0.895517 0.411652 +vt 0.913862 0.338273 +vt 0.932207 0.374962 +vt 0.002361 0.690819 +vt 0.139582 0.797050 +vt 0.002382 0.797077 +vt 0.002401 0.574653 +vt 0.139602 0.577216 +vt 0.002401 0.577243 +vt 0.002381 0.685835 +vt 0.139582 0.688398 +vt 0.002381 0.688425 +vt 0.002381 0.579638 +vt 0.139602 0.683414 +vt 0.002401 0.683441 +vt 0.142087 0.686223 +vt 0.139686 0.823759 +vt 0.139686 0.686202 +vt 0.139581 0.685808 +vt 0.139686 0.574626 +vt 0.278011 0.686118 +vt 0.139686 0.686118 +vt 0.248444 0.686223 +vt 0.142087 0.823780 +vt 0.139581 0.579611 +vt 0.139561 0.690792 +vt 0.250041 0.742196 +vt 0.249216 0.741377 +vt 0.249011 0.740883 +vt 0.774121 0.040412 +vt 0.741243 0.024151 +vt 0.740050 0.027021 +vt 0.969467 0.033059 +vt 0.943495 0.044419 +vt 0.971709 0.034142 +vt 0.946381 0.253662 +vt 0.739889 0.270791 +vt 0.975938 0.269283 +vt 0.769234 0.254505 +vt 0.778655 0.034951 +vt 0.748853 0.018299 +vt 0.746005 0.019438 +vt 0.975297 0.038147 +vt 0.946804 0.049219 +vt 0.976119 0.040486 +vt 0.775156 0.037976 +vt 0.946189 0.047450 +vt 0.941812 0.043603 +vt 0.456798 0.276753 +vt 0.529486 0.293195 +vt 0.696767 0.284505 +vt 0.696612 0.283178 +vt 0.740071 0.299235 +vt 0.431207 0.203196 +vt 0.430221 0.118309 +vt 0.434139 0.035214 +vt 0.688985 0.442006 +vt 0.730728 0.480254 +vt 0.688985 0.480254 +vt 0.730728 0.556749 +vt 0.688985 0.518501 +vt 0.730728 0.518501 +vt 0.754269 0.654412 +vt 0.666048 0.576401 +vt 0.754269 0.576401 +vt 0.730728 0.442006 +vt 0.688985 0.403759 +vt 0.730728 0.403759 +vt 0.437617 0.035132 +vt 0.428782 0.141338 +vt 0.428782 0.234632 +vt 0.422863 0.024375 +vt 0.423529 0.042958 +vt 0.424425 0.042882 +vt 0.499383 0.483956 +vt 0.561202 0.483917 +vt 0.573995 0.492741 +vt 0.572269 0.489869 +vt 0.565361 0.485105 +vt 0.571963 0.765944 +vt 0.565067 0.770717 +vt 0.456877 0.274272 +vt 0.362261 0.174619 +vt 0.362252 0.177081 +vt 0.221168 0.176128 +vt 0.218310 0.173556 +vt 0.218310 0.006092 +vt 0.221417 0.003539 +vt 0.388881 0.003540 +vt 0.391433 0.006646 +vt 0.393601 0.173750 +vt 0.525055 0.212989 +vt 0.674718 0.186092 +vt 0.524902 0.186971 +vt 0.472754 0.045915 +vt 0.472804 0.009580 +vt 0.673151 0.046188 +vt 0.676096 0.185512 +vt 0.678376 0.183205 +vt 0.674995 0.046955 +vt 0.678054 0.050022 +vt 0.678940 0.181820 +vt 0.012947 0.175130 +vt 0.698934 0.213354 +vt 0.698934 0.245794 +vt 0.666837 0.221675 +vt 0.666837 0.245794 +vt 0.503488 0.245686 +vt 0.472755 0.245833 +vt 0.503488 0.221424 +vt 0.666162 0.220045 +vt 0.663456 0.217340 +vt 0.504163 0.219793 +vt 0.506872 0.217084 +vt 0.004989 0.551834 +vt 0.390747 0.356145 +vt 0.386158 0.360486 +vt 0.360628 0.189572 +vt 0.219798 0.360486 +vt 0.216697 0.357385 +vt 0.216697 0.191025 +vt 0.219798 0.187924 +vt 0.360628 0.187426 +vt 0.363600 0.187579 +vt 0.947121 0.502555 +vt 0.922832 0.650556 +vt 0.867173 0.503761 +vt 0.996210 0.522144 +vt 0.917681 0.506196 +vt 0.932207 0.338273 +vt 0.139601 0.574626 +vt 0.278011 0.574626 +vt 0.248444 0.823780 +vt 0.249011 0.687906 +vt 0.294366 0.687906 +vt 0.294366 0.740616 +vt 0.294160 0.741111 +vt 0.292839 0.742143 +vt 0.250538 0.742399 +vt 0.293336 0.741935 +vt 0.781306 0.033891 +vt 0.457098 0.275488 +vt 0.976119 0.297728 +vt 0.433827 0.231012 +vt 0.431907 0.231171 +vt 0.429916 0.203288 +vt 0.426195 0.118261 +vt 0.427181 0.035132 +vt 0.688985 0.556749 +vt 0.666048 0.654412 +vn 0.6168 0.0000 0.7871 +vn 0.0025 0.0046 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn -0.6168 0.0073 -0.7871 +vn -0.4637 -0.8731 -0.1506 +vn 0.4691 0.8832 0.0000 +vn 0.4691 -0.8832 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.2148 0.9766 0.0000 +vn 0.2148 -0.9766 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7885 0.6150 0.0000 +vn 1.0000 -0.0032 0.0000 +vn 0.7885 -0.6150 0.0000 +vn -0.2143 0.9743 -0.0697 +vn -0.7638 -0.5958 -0.2482 +vn -0.9511 0.0030 -0.3090 +vn -0.7639 0.5958 -0.2482 +vn -0.2143 -0.9743 -0.0696 +vn -0.4637 0.8731 -0.1507 +vn 0.6168 0.0000 -0.7871 +vn 1.0000 0.0058 -0.0041 +vn -1.0000 0.0058 0.0041 +vn -0.6168 0.0000 0.7871 +vn 0.5448 -0.4689 -0.6952 +vn -0.2589 -0.8607 -0.4385 +vn 0.3836 0.7831 -0.4895 +vn 0.8931 0.0000 -0.4499 +vn 0.3427 0.0009 -0.9394 +vn 0.3836 0.7831 0.4895 +vn 0.2955 0.0000 0.9553 +vn 0.5448 -0.4690 0.6952 +vn 0.5674 0.0071 0.8234 +vn -0.3836 0.7831 -0.4895 +vn -0.2969 0.0051 -0.9549 +vn -0.8565 0.0063 -0.5161 +vn -0.5448 -0.4689 0.6952 +vn -0.6654 0.0073 0.7465 +vn -0.3836 0.7831 0.4895 +vn -0.8931 0.0000 0.4499 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.3335 -0.9427 +vn 0.0000 -0.3335 0.9427 +vn 0.0000 0.1169 0.9931 +vn 0.0000 -0.1169 -0.9931 +vn 0.0000 0.0681 -0.9977 +vn 0.0000 -0.2911 -0.9567 +vn 0.0000 -0.0681 0.9977 +vn 0.0000 0.2911 0.9567 +vn -0.4691 0.8832 0.0000 +vn -0.4691 -0.8832 0.0000 +vn -1.0000 0.0032 0.0000 +vn -0.2149 0.9766 0.0000 +vn -0.7885 -0.6150 0.0000 +vn -0.7886 0.6150 0.0000 +vn -0.2148 -0.9766 0.0000 +vn -0.0059 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0090 0.0000 +vn 0.9796 -0.0017 -0.2012 +vn -0.4635 0.0050 -0.8861 +vn -0.4637 -0.8731 -0.1507 +vn -0.2143 0.9743 -0.0696 +vn -0.7639 -0.5957 -0.2482 +vn -0.7639 0.5957 -0.2482 +vn 0.4513 -0.6177 -0.6440 +vn -0.2689 -0.8145 -0.5141 +vn 0.7912 0.0028 -0.6115 +vn 0.2956 0.0000 -0.9553 +vn 0.3836 0.7831 0.4894 +vn 0.4288 0.0025 0.9034 +vn 0.5423 -0.0782 0.8365 +vn 0.8931 0.0000 0.4499 +vn -0.3836 0.7831 -0.4894 +vn -0.0258 0.0001 -0.9997 +vn -0.8920 0.0073 -0.4520 +vn -0.6855 -0.0817 0.7235 +vn -0.2955 0.0000 0.9553 +vn -0.7912 0.0028 0.6115 +vn -0.7885 0.6150 0.0000 +usemtl Material.002 +s off +f 60/1/1 63/2/1 62/3/1 +f 59/4/2 51/5/2 77/6/2 +f 5/7/3 2/8/3 1/9/3 +f 2/10/4 6/11/4 28/12/4 +f 54/13/5 74/14/5 55/15/5 +f 15/16/6 41/17/6 40/18/6 +f 32/19/3 28/20/3 30/21/3 +f 21/22/7 35/23/7 24/24/7 +f 12/25/8 29/26/8 26/27/8 +f 8/28/9 32/29/9 11/30/9 +f 24/24/10 36/31/10 23/32/10 +f 11/30/11 31/33/11 12/25/11 +f 23/32/12 27/34/12 7/35/12 +f 22/36/13 34/37/13 21/22/13 +f 25/38/14 33/39/14 22/36/14 +f 26/27/15 30/40/15 25/38/15 +f 18/41/16 45/42/16 17/43/16 +f 14/44/17 42/45/17 41/17/17 +f 19/46/18 42/45/18 13/47/18 +f 20/48/19 43/49/19 19/46/19 +f 16/50/20 40/18/20 39/51/20 +f 17/43/21 44/52/21 20/48/21 +f 76/53/9 47/54/9 6/55/9 +f 66/56/22 71/57/22 70/58/22 +f 13/59/3 72/60/3 68/61/3 +f 67/62/23 64/63/23 57/64/23 +f 25/65/3 22/66/3 76/67/3 +f 80/68/24 56/69/24 73/70/24 +f 52/71/25 79/72/25 78/73/25 +f 67/74/26 65/75/26 66/56/26 +f 74/14/27 76/76/27 73/77/27 +f 69/78/28 71/57/28 72/79/28 +f 69/78/29 66/56/29 70/58/29 +f 72/79/30 65/75/30 68/80/30 +f 61/81/31 63/2/31 64/82/31 +f 61/81/32 60/1/32 62/3/32 +f 59/4/33 58/83/33 60/1/33 +f 64/82/34 58/83/34 57/84/34 +f 53/85/35 55/15/35 56/86/35 +f 53/85/36 75/87/36 54/13/36 +f 73/77/37 55/15/37 74/14/37 +f 80/88/38 78/73/38 79/72/38 +f 51/5/39 78/73/39 77/6/39 +f 49/89/40 52/71/40 51/5/40 +f 49/89/41 79/72/41 50/90/41 +f 2/91/12 53/92/12 56/93/12 +f 146/94/42 84/95/42 112/96/42 +f 104/97/43 115/98/43 145/99/43 +f 107/100/4 116/101/4 144/102/4 +f 143/103/44 82/104/44 100/105/44 +f 142/106/9 85/107/9 109/108/9 +f 141/109/12 82/110/12 110/111/12 +f 119/112/12 118/113/12 140/114/12 +f 120/115/9 117/116/9 139/117/9 +f 121/118/45 111/119/45 138/120/45 +f 137/121/45 97/122/45 123/123/45 +f 118/124/44 124/125/44 136/126/44 +f 135/127/4 94/128/4 108/129/4 +f 126/130/46 105/131/46 134/132/46 +f 127/133/46 128/134/46 133/135/46 +f 114/136/43 129/137/43 132/138/43 +f 130/139/42 102/140/42 131/141/42 +f 131/141/42 83/142/42 99/143/42 +f 111/144/42 99/143/42 81/145/42 +f 89/146/42 131/141/42 111/144/42 +f 132/147/47 98/148/47 127/133/47 +f 112/149/47 127/133/47 90/150/47 +f 84/151/43 132/138/43 112/152/43 +f 133/153/48 91/154/48 103/155/48 +f 102/156/48 103/155/48 83/157/48 +f 90/150/46 133/135/46 102/158/46 +f 134/159/48 87/160/48 113/161/48 +f 128/162/48 113/161/48 91/154/48 +f 98/148/46 134/132/46 128/134/46 +f 106/163/4 108/129/4 85/107/4 +f 87/164/4 135/127/4 106/163/4 +f 105/165/4 125/166/4 135/127/4 +f 136/126/49 97/122/49 122/167/49 +f 116/101/49 122/167/49 94/128/49 +f 86/168/44 136/126/44 116/101/44 +f 137/121/50 95/169/50 109/170/50 +f 108/129/50 109/170/50 85/107/50 +f 94/128/45 137/121/45 108/129/45 +f 138/120/50 81/171/50 117/172/50 +f 123/123/50 117/172/50 95/169/50 +f 97/122/45 138/120/45 123/123/45 +f 139/117/9 81/173/9 99/174/9 +f 103/175/9 99/174/9 83/176/9 +f 91/177/9 139/117/9 103/175/9 +f 140/114/12 86/168/12 107/100/12 +f 104/178/12 107/100/12 88/179/12 +f 92/180/12 140/114/12 104/178/12 +f 141/109/12 96/181/12 119/112/12 +f 114/182/12 119/112/12 92/180/12 +f 114/182/12 101/183/12 141/109/12 +f 142/106/9 95/184/9 120/115/9 +f 113/185/9 120/115/9 91/177/9 +f 113/185/9 106/163/9 142/106/9 +f 143/103/49 89/186/49 121/118/49 +f 124/125/49 121/118/49 97/122/49 +f 96/187/44 143/103/44 124/125/44 +f 144/102/4 94/128/4 125/166/4 +f 115/188/4 125/166/4 93/189/4 +f 88/179/4 144/102/4 115/188/4 +f 145/190/47 93/191/47 126/130/47 +f 129/192/47 126/130/47 98/148/47 +f 92/193/43 145/99/43 129/137/43 +f 130/139/42 112/96/42 90/194/42 +f 89/146/42 146/94/42 130/139/42 +f 100/195/42 101/196/42 146/94/42 +f 39/197/9 147/198/9 37/199/9 +f 45/200/51 154/201/51 44/202/51 +f 41/203/52 150/204/52 40/205/52 +f 43/206/53 152/207/53 42/208/53 +f 46/209/54 155/210/54 45/211/54 +f 42/208/55 151/212/55 41/203/55 +f 37/213/4 148/214/4 38/215/4 +f 38/216/12 156/217/12 46/209/12 +f 44/202/56 153/218/56 43/206/56 +f 40/205/57 149/219/57 39/197/57 +f 154/220/3 155/221/3 156/222/3 +f 166/223/3 45/224/3 46/225/3 +f 42/226/3 161/227/3 41/228/3 +f 157/229/3 38/230/3 37/231/3 +f 158/232/3 46/225/3 38/230/3 +f 164/233/3 43/234/3 44/235/3 +f 40/236/3 159/237/3 39/238/3 +f 39/238/3 157/229/3 37/231/3 +f 165/239/3 44/235/3 45/224/3 +f 41/228/3 160/240/3 40/236/3 +f 43/234/3 162/241/3 42/226/3 +f 10/242/12 46/243/12 18/41/12 +f 9/244/9 39/51/9 168/245/9 +f 167/246/58 37/231/58 38/230/58 +f 168/247/42 167/248/42 5/249/42 +f 170/250/42 171/251/42 169/252/42 +f 176/253/4 173/254/4 175/255/4 +f 174/256/59 169/257/59 173/258/59 +f 175/255/9 169/252/9 171/251/9 +f 172/259/12 174/260/12 176/261/12 +f 60/1/1 58/83/1 63/2/1 +f 59/4/59 61/81/59 51/5/59 +f 5/7/3 6/262/3 2/8/3 +f 8/263/4 4/264/4 28/12/4 +f 4/264/4 2/10/4 28/12/4 +f 6/11/60 47/265/60 27/266/60 +f 47/265/60 7/267/60 27/266/60 +f 6/11/61 27/266/61 28/12/61 +f 54/13/62 75/87/62 74/14/62 +f 15/16/63 14/44/63 41/17/63 +f 28/20/3 27/268/3 30/21/3 +f 27/268/3 36/269/3 33/270/3 +f 33/270/3 36/269/3 34/271/3 +f 36/269/3 35/272/3 34/271/3 +f 33/270/3 30/21/3 27/268/3 +f 30/21/3 29/273/3 31/274/3 +f 31/274/3 32/19/3 30/21/3 +f 21/22/7 34/37/7 35/23/7 +f 12/25/8 31/33/8 29/26/8 +f 8/28/9 28/275/9 32/29/9 +f 24/24/10 35/23/10 36/31/10 +f 11/30/11 32/29/11 31/33/11 +f 23/32/12 36/31/12 27/34/12 +f 22/36/13 33/39/13 34/37/13 +f 25/38/14 30/40/14 33/39/14 +f 26/27/15 29/26/15 30/40/15 +f 18/41/64 46/243/64 45/42/64 +f 14/44/65 13/47/65 42/45/65 +f 19/46/18 43/49/18 42/45/18 +f 20/48/66 44/52/66 43/49/66 +f 16/50/20 15/16/20 40/18/20 +f 17/43/21 45/42/21 44/52/21 +f 5/276/9 48/277/9 68/278/9 +f 68/278/9 67/279/9 5/276/9 +f 67/279/9 57/280/9 59/281/9 +f 5/276/9 67/279/9 59/281/9 +f 59/281/9 77/282/9 80/283/9 +f 5/276/9 59/281/9 80/283/9 +f 80/283/9 73/284/9 6/55/9 +f 5/276/9 80/283/9 6/55/9 +f 73/284/9 76/53/9 6/55/9 +f 66/56/22 65/75/22 71/57/22 +f 68/61/3 48/285/3 18/286/3 +f 48/285/3 10/287/3 18/286/3 +f 9/288/3 3/289/3 16/290/3 +f 3/289/3 72/60/3 16/290/3 +f 68/61/3 18/286/3 17/291/3 +f 68/61/3 17/291/3 20/292/3 +f 15/293/3 16/290/3 72/60/3 +f 14/294/3 15/293/3 72/60/3 +f 68/61/3 20/292/3 19/295/3 +f 13/59/3 14/294/3 72/60/3 +f 68/61/3 19/295/3 13/59/3 +f 67/62/4 69/296/4 64/63/4 +f 53/297/3 4/298/3 11/299/3 +f 4/298/3 8/300/3 11/299/3 +f 7/301/3 47/302/3 23/303/3 +f 47/302/3 76/67/3 23/303/3 +f 53/297/3 11/299/3 12/304/3 +f 53/297/3 12/304/3 26/305/3 +f 24/306/3 23/303/3 76/67/3 +f 21/307/3 24/306/3 76/67/3 +f 53/297/3 26/305/3 25/65/3 +f 22/66/3 21/307/3 76/67/3 +f 53/297/3 25/65/3 76/67/3 +f 80/68/42 49/308/42 56/69/42 +f 52/71/25 50/90/25 79/72/25 +f 67/74/67 68/80/67 65/75/67 +f 74/14/68 75/87/68 76/76/68 +f 69/78/28 70/58/28 71/57/28 +f 69/78/69 67/74/69 66/56/69 +f 72/79/70 71/57/70 65/75/70 +f 61/81/71 62/3/71 63/2/71 +f 61/81/72 59/4/72 60/1/72 +f 59/4/73 57/84/73 58/83/73 +f 64/82/74 63/2/74 58/83/74 +f 53/85/75 54/13/75 55/15/75 +f 53/85/76 76/76/76 75/87/76 +f 73/77/77 56/86/77 55/15/77 +f 80/88/78 77/6/78 78/73/78 +f 51/5/79 52/71/79 78/73/79 +f 49/89/40 50/90/40 52/71/40 +f 49/89/80 80/88/80 79/72/80 +f 56/93/12 49/309/12 2/91/12 +f 49/309/12 51/310/12 1/311/12 +f 2/91/12 49/309/12 1/311/12 +f 51/310/12 61/312/12 1/311/12 +f 61/312/12 64/313/12 1/311/12 +f 64/313/12 69/314/12 1/311/12 +f 69/314/12 72/315/12 1/311/12 +f 72/315/12 3/316/12 1/311/12 +f 2/91/12 4/317/12 53/92/12 +f 146/94/42 101/196/42 84/95/42 +f 104/97/43 88/318/43 115/98/43 +f 107/100/4 86/168/4 116/101/4 +f 143/103/44 110/319/44 82/104/44 +f 142/106/9 106/163/9 85/107/9 +f 141/109/12 101/183/12 82/110/12 +f 119/112/12 96/181/12 118/113/12 +f 120/115/9 95/184/9 117/116/9 +f 121/118/45 89/186/45 111/119/45 +f 137/121/45 122/167/45 97/122/45 +f 118/124/44 96/187/44 124/125/44 +f 135/127/4 125/166/4 94/128/4 +f 126/130/46 93/191/46 105/131/46 +f 127/133/46 98/148/46 128/134/46 +f 114/136/43 92/193/43 129/137/43 +f 130/139/42 90/194/42 102/140/42 +f 131/141/42 102/140/42 83/142/42 +f 111/144/42 131/141/42 99/143/42 +f 89/146/42 130/139/42 131/141/42 +f 132/147/47 129/192/47 98/148/47 +f 112/149/47 132/147/47 127/133/47 +f 84/151/43 114/136/43 132/138/43 +f 133/153/48 128/162/48 91/154/48 +f 102/156/48 133/153/48 103/155/48 +f 90/150/46 127/133/46 133/135/46 +f 134/159/48 105/320/48 87/160/48 +f 128/162/48 134/159/48 113/161/48 +f 98/148/46 126/130/46 134/132/46 +f 106/163/4 135/127/4 108/129/4 +f 87/164/4 105/165/4 135/127/4 +f 105/165/4 93/189/4 125/166/4 +f 136/126/49 124/125/49 97/122/49 +f 116/101/49 136/126/49 122/167/49 +f 86/168/44 118/124/44 136/126/44 +f 137/121/50 123/123/50 95/169/50 +f 108/129/50 137/121/50 109/170/50 +f 94/128/45 122/167/45 137/121/45 +f 138/120/50 111/119/50 81/171/50 +f 123/123/50 138/120/50 117/172/50 +f 97/122/45 121/118/45 138/120/45 +f 139/117/9 117/116/9 81/173/9 +f 103/175/9 139/117/9 99/174/9 +f 91/177/9 120/115/9 139/117/9 +f 140/114/12 118/113/12 86/168/12 +f 104/178/12 140/114/12 107/100/12 +f 92/180/12 119/112/12 140/114/12 +f 141/109/12 110/111/12 96/181/12 +f 114/182/12 141/109/12 119/112/12 +f 114/182/12 84/321/12 101/183/12 +f 142/106/9 109/108/9 95/184/9 +f 113/185/9 142/106/9 120/115/9 +f 113/185/9 87/164/9 106/163/9 +f 143/103/49 100/105/49 89/186/49 +f 124/125/49 143/103/49 121/118/49 +f 96/187/44 110/319/44 143/103/44 +f 144/102/4 116/101/4 94/128/4 +f 115/188/4 144/102/4 125/166/4 +f 88/179/4 107/100/4 144/102/4 +f 145/190/47 115/322/47 93/191/47 +f 129/192/47 145/190/47 126/130/47 +f 92/193/43 104/97/43 145/99/43 +f 130/139/42 146/94/42 112/96/42 +f 89/146/42 100/195/42 146/94/42 +f 100/195/42 82/323/42 101/196/42 +f 39/197/9 149/219/9 147/198/9 +f 45/200/51 155/324/51 154/201/51 +f 41/203/52 151/212/52 150/204/52 +f 43/206/53 153/218/53 152/207/53 +f 46/209/54 156/217/54 155/210/54 +f 42/208/55 152/207/55 151/212/55 +f 37/213/4 147/325/4 148/214/4 +f 38/216/12 148/326/12 156/217/12 +f 44/202/81 154/201/81 153/218/81 +f 40/205/57 150/204/57 149/219/57 +f 156/222/3 148/327/3 147/328/3 +f 147/328/3 149/329/3 156/222/3 +f 149/329/3 150/330/3 152/331/3 +f 156/222/3 149/329/3 153/332/3 +f 150/330/3 151/333/3 152/331/3 +f 152/331/3 153/332/3 149/329/3 +f 153/332/3 154/220/3 156/222/3 +f 166/223/3 165/239/3 45/224/3 +f 42/226/3 162/241/3 161/227/3 +f 157/229/3 158/232/3 38/230/3 +f 158/232/3 166/223/3 46/225/3 +f 164/233/3 163/334/3 43/234/3 +f 40/236/3 160/240/3 159/237/3 +f 39/238/3 159/237/3 157/229/3 +f 165/239/3 164/233/3 44/235/3 +f 41/228/3 161/227/3 160/240/3 +f 43/234/3 163/334/3 162/241/3 +f 10/242/12 167/335/12 46/243/12 +f 9/244/9 16/50/9 39/51/9 +f 167/246/58 168/336/58 37/231/58 +f 1/337/42 3/338/42 168/247/42 +f 3/338/42 9/339/42 168/247/42 +f 10/340/42 48/341/42 167/248/42 +f 48/341/42 5/249/42 167/248/42 +f 1/337/42 168/247/42 5/249/42 +f 170/250/42 172/259/42 171/251/42 +f 176/253/4 174/342/4 173/254/4 +f 174/256/59 170/343/59 169/257/59 +f 175/255/9 173/254/9 169/252/9 +f 172/259/12 170/250/12 174/260/12 +o window_Cube.002 +v 0.809482 1.091828 -0.732264 +v 0.338840 1.091828 -0.732264 +v 0.338840 0.874469 -0.732264 +v 0.809482 0.874469 -0.732264 +vt 0.978282 0.984581 +vt 0.711622 0.781054 +vt 0.978133 0.780594 +vt 0.713513 0.984128 +vn 0.0000 0.0000 -1.0000 +usemtl Material.002 +s off +f 178/344/82 180/345/82 179/346/82 +f 178/344/82 177/347/82 180/345/82 +o plate_Cylinder +v 0.573046 0.817783 -0.643769 +v 0.573046 0.868036 -0.643769 +v 0.729762 0.817783 -0.568299 +v 0.729762 0.868036 -0.568299 +v 0.768467 0.817783 -0.398719 +v 0.768467 0.868036 -0.398719 +v 0.660017 0.817783 -0.262726 +v 0.660017 0.868036 -0.262726 +v 0.486075 0.817783 -0.262726 +v 0.486075 0.868036 -0.262726 +v 0.377625 0.817783 -0.398719 +v 0.377625 0.868036 -0.398719 +v 0.416330 0.817783 -0.568299 +v 0.416330 0.868036 -0.568299 +v 0.572966 0.867427 -0.529802 +v 0.572966 0.983075 -0.566974 +v 0.647860 0.867427 -0.486562 +v 0.680052 0.983075 -0.505148 +v 0.647860 0.867427 -0.400082 +v 0.680052 0.983075 -0.381496 +v 0.572966 0.867427 -0.356843 +v 0.572966 0.983075 -0.319670 +v 0.498072 0.867427 -0.400082 +v 0.465880 0.983075 -0.381496 +v 0.498072 0.867427 -0.486562 +v 0.465880 0.983075 -0.505148 +v 0.610413 0.867427 -0.508182 +v 0.626509 0.983075 -0.536061 +v 0.572966 0.941312 -0.556665 +v 0.671124 0.941312 -0.499994 +v 0.647860 0.867427 -0.443322 +v 0.680052 0.983075 -0.443322 +v 0.671124 0.941312 -0.386651 +v 0.610413 0.867427 -0.378463 +v 0.626509 0.983075 -0.350583 +v 0.572966 0.941312 -0.329980 +v 0.535519 0.867427 -0.378463 +v 0.519423 0.983075 -0.350583 +v 0.474808 0.941312 -0.386651 +v 0.498072 0.867427 -0.443322 +v 0.465880 0.983075 -0.443322 +v 0.474808 0.941312 -0.499994 +v 0.535519 0.867427 -0.508182 +v 0.519423 0.983075 -0.536061 +v 0.523887 0.941312 -0.528329 +v 0.474808 0.941312 -0.443322 +v 0.523887 0.941312 -0.358315 +v 0.622045 0.941312 -0.358315 +v 0.671124 0.941312 -0.443322 +v 0.622045 0.941312 -0.528329 +v 0.572966 0.983075 -0.539121 +v 0.655930 0.983075 -0.491222 +v 0.655930 0.983075 -0.395423 +v 0.572966 0.983075 -0.347524 +v 0.490002 0.983075 -0.395423 +v 0.490002 0.983075 -0.491222 +v 0.614448 0.983075 -0.515171 +v 0.655930 0.983075 -0.443322 +v 0.614448 0.983075 -0.371474 +v 0.531484 0.983075 -0.371474 +v 0.490002 0.983075 -0.443322 +v 0.531484 0.983075 -0.515171 +v 0.572966 0.962908 -0.514054 +v 0.634221 0.962908 -0.478688 +v 0.634221 0.962908 -0.407956 +v 0.572966 0.962908 -0.372591 +v 0.511710 0.962908 -0.407956 +v 0.511710 0.962908 -0.478688 +v 0.603594 0.962908 -0.496371 +v 0.634221 0.962908 -0.443322 +v 0.603594 0.962908 -0.390274 +v 0.542338 0.962908 -0.390274 +v 0.511710 0.962908 -0.443322 +v 0.542338 0.962908 -0.496371 +v 0.595406 0.982933 -0.519550 +v 0.702492 0.982933 -0.457724 +v 0.702492 0.982933 -0.334072 +v 0.595406 0.982933 -0.272246 +v 0.488321 0.982933 -0.334072 +v 0.488321 0.982933 -0.457724 +v 0.648949 0.982933 -0.488637 +v 0.702492 0.982933 -0.395898 +v 0.648949 0.982933 -0.303159 +v 0.541863 0.982933 -0.303159 +v 0.488321 0.982933 -0.395898 +v 0.541863 0.982933 -0.488637 +v 0.678370 0.982933 -0.347999 +v 0.512442 0.982933 -0.347999 +v 0.553924 0.982933 -0.324049 +v 0.553924 0.982933 -0.467747 +v 0.648949 0.999716 -0.488637 +v 0.595406 0.999716 -0.519550 +v 0.702492 0.999716 -0.395898 +v 0.702492 0.999716 -0.457724 +v 0.648949 0.999716 -0.303159 +v 0.702492 0.999716 -0.334072 +v 0.541863 0.999716 -0.303159 +v 0.595406 0.999716 -0.272246 +v 0.488321 0.999716 -0.395898 +v 0.488321 0.999716 -0.334072 +v 0.541863 0.999716 -0.488637 +v 0.488321 0.999716 -0.457724 +v 0.595406 0.999716 -0.491697 +v 0.636888 0.999716 -0.324049 +v 0.553924 0.999716 -0.324049 +v 0.512442 0.999716 -0.395898 +v 0.553924 0.999716 -0.467747 +v 0.595406 0.982933 -0.491697 +v 0.678370 0.982933 -0.443797 +v 0.595406 0.982933 -0.300100 +v 0.512442 0.982933 -0.443797 +v 0.636888 0.982933 -0.467747 +v 0.678370 0.982933 -0.395898 +v 0.636888 0.982933 -0.324049 +v 0.512442 0.982933 -0.395898 +v 0.636888 0.999716 -0.467747 +v 0.678370 0.999716 -0.395898 +v 0.678370 0.999716 -0.443797 +v 0.678370 0.999716 -0.347999 +v 0.595406 0.999716 -0.300100 +v 0.512442 0.999716 -0.347999 +v 0.512442 0.999716 -0.443797 +v 0.556395 0.998139 -0.385001 +v 0.526238 0.998974 -0.385001 +v 0.556395 0.998139 -0.406796 +v 0.526238 0.998974 -0.406796 +v 0.634417 0.998139 -0.385001 +v 0.667116 0.998562 -0.385001 +v 0.634417 0.998139 -0.406796 +v 0.667116 0.998562 -0.406796 +v 0.556395 0.998139 -0.395898 +v 0.526238 0.998974 -0.395898 +v 0.595406 1.026090 -0.406796 +v 0.595406 1.052068 -0.406796 +v 0.634417 0.998139 -0.395898 +v 0.667116 0.998562 -0.395898 +v 0.595406 1.026090 -0.385001 +v 0.595406 1.052068 -0.385001 +v 0.595406 1.052068 -0.395898 +v 0.595406 1.026090 -0.395898 +vt 0.516568 0.925663 +vt 0.501815 0.874025 +vt 0.516568 0.874025 +vt 0.501815 0.925663 +vt 0.487061 0.874025 +vt 0.487061 0.925663 +vt 0.472307 0.874025 +vt 0.472307 0.925663 +vt 0.457554 0.874025 +vt 0.457554 0.925663 +vt 0.442800 0.874025 +vt 0.459903 0.824286 +vt 0.479257 0.833668 +vt 0.449027 0.871375 +vt 0.442800 0.925663 +vt 0.428046 0.874025 +vt 0.428046 0.925663 +vt 0.413293 0.874025 +vt 0.394628 0.988826 +vt 0.380910 0.947670 +vt 0.394628 0.947670 +vt 0.367191 0.988826 +vt 0.353472 0.947670 +vt 0.367191 0.947670 +vt 0.339754 0.988826 +vt 0.326035 0.947670 +vt 0.339754 0.947670 +vt 0.312317 0.988826 +vt 0.298598 0.947670 +vt 0.312317 0.947670 +vt 0.326035 0.988826 +vt 0.312317 0.988826 +vt 0.284879 0.988826 +vt 0.271161 0.947670 +vt 0.284879 0.947670 +vt 0.257442 0.988826 +vt 0.243724 0.947670 +vt 0.257442 0.947670 +vt 0.243724 0.906514 +vt 0.257442 0.906514 +vt 0.271161 0.906514 +vt 0.284879 0.906514 +vt 0.298598 0.906514 +vt 0.312317 0.906514 +vt 0.326035 0.906514 +vt 0.339754 0.906514 +vt 0.353472 0.906514 +vt 0.367191 0.906514 +vt 0.380910 0.906514 +vt 0.394628 0.906514 +vt 0.408347 0.906514 +vt 0.408347 0.947670 +vt 0.187756 0.889440 +vt 0.202236 0.894831 +vt 0.193585 0.899689 +vt 0.243724 0.988826 +vt 0.243724 0.988826 +vt 0.408347 0.988826 +vt 0.394628 0.988826 +vt 0.353472 0.988826 +vt 0.339754 0.988826 +vt 0.271161 0.988826 +vt 0.271161 0.988826 +vt 0.380910 0.988826 +vt 0.367191 0.988826 +vt 0.298598 0.988826 +vt 0.298598 0.988826 +vt 0.380910 0.988826 +vt 0.326035 0.988826 +vt 0.353472 0.988826 +vt 0.257442 0.988826 +vt 0.284879 0.988826 +vt 0.340515 0.867561 +vt 0.353416 0.845216 +vt 0.379218 0.845216 +vt 0.172967 0.914653 +vt 0.184800 0.924725 +vt 0.173659 0.931108 +vt 0.231171 0.914901 +vt 0.219392 0.904908 +vt 0.230487 0.898593 +vt 0.184896 0.904682 +vt 0.184810 0.914715 +vt 0.187500 0.940008 +vt 0.202093 0.934779 +vt 0.202082 0.947578 +vt 0.219317 0.924810 +vt 0.219445 0.914858 +vt 0.216816 0.889691 +vt 0.202347 0.882053 +vt 0.193437 0.929782 +vt 0.216635 0.940021 +vt 0.230372 0.931207 +vt 0.210879 0.899812 +vt 0.173819 0.898191 +vt 0.210758 0.929842 +vt 0.222290 0.971049 +vt 0.222980 0.958974 +vt 0.229262 0.958974 +vt 0.179771 0.958974 +vt 0.180461 0.971049 +vt 0.173490 0.958974 +vt 0.180461 0.946899 +vt 0.222290 0.946899 +vt 0.212178 0.940264 +vt 0.215319 0.934824 +vt 0.190574 0.977684 +vt 0.201376 0.983124 +vt 0.187433 0.983124 +vt 0.201376 0.934824 +vt 0.190574 0.940264 +vt 0.187433 0.934824 +vt 0.212178 0.977684 +vt 0.215319 0.983124 +vt 0.199801 0.853297 +vt 0.209866 0.858366 +vt 0.199801 0.858366 +vt 0.180313 0.887051 +vt 0.189735 0.893234 +vt 0.186809 0.898303 +vt 0.199801 0.898303 +vt 0.199801 0.893234 +vt 0.219289 0.864548 +vt 0.219932 0.875800 +vt 0.214899 0.867083 +vt 0.180313 0.864548 +vt 0.179670 0.875800 +vt 0.173817 0.875800 +vt 0.219289 0.887051 +vt 0.209866 0.893234 +vt 0.214899 0.884517 +vt 0.189735 0.858366 +vt 0.186809 0.853297 +vt 0.212793 0.898303 +vt 0.212793 0.853297 +vt 0.225785 0.875800 +vt 0.184703 0.884517 +vt 0.184703 0.867083 +vt 0.237579 0.887340 +vt 0.234161 0.874746 +vt 0.237579 0.874746 +vt 0.237579 0.849556 +vt 0.234161 0.836962 +vt 0.237579 0.836962 +vt 0.237579 0.975504 +vt 0.234161 0.962909 +vt 0.237579 0.962909 +vt 0.237579 0.862151 +vt 0.234161 0.849556 +vt 0.237579 0.950314 +vt 0.234161 0.937720 +vt 0.237579 0.937720 +vt 0.237579 0.988098 +vt 0.234161 0.975504 +vt 0.237579 0.925125 +vt 0.234161 0.912530 +vt 0.237579 0.912530 +vt 0.234161 0.950314 +vt 0.237579 0.899935 +vt 0.234161 0.887340 +vt 0.234161 0.925125 +vt 0.234161 0.862151 +vt 0.234161 0.899935 +vt 0.200279 0.898850 +vt 0.179584 0.886901 +vt 0.179584 0.863004 +vt 0.425271 0.939130 +vt 0.434186 0.970789 +vt 0.425668 0.959676 +vt 0.487707 0.937141 +vt 0.457142 0.945965 +vt 0.467168 0.937819 +vt 0.439271 0.943501 +vt 0.443539 0.964137 +vt 0.438874 0.964047 +vt 0.457142 0.950632 +vt 0.494480 0.945965 +vt 0.494480 0.950632 +vt 0.457121 0.970789 +vt 0.452455 0.932477 +vt 0.457121 0.932477 +vt 0.434186 0.932477 +vt 0.438853 0.970789 +vt 0.420605 0.975477 +vt 0.457943 0.970810 +vt 0.457943 0.975477 +vt 0.487553 0.932477 +vt 0.467014 0.933155 +vt 0.451170 0.984301 +vt 0.430477 0.988287 +vt 0.430631 0.983624 +vt 0.420605 0.939220 +vt 0.443936 0.943591 +vt 0.202248 0.984067 +vt 0.180121 0.971292 +vt 0.180121 0.945742 +vt 0.483989 0.854650 +vt 0.470535 0.871431 +vt 0.435660 0.854525 +vt 0.440500 0.833568 +vt 0.413293 0.925663 +vt 0.408347 0.988826 +vt 0.392119 0.852664 +vt 0.392119 0.867561 +vt 0.392119 0.882458 +vt 0.379218 0.889906 +vt 0.366317 0.897354 +vt 0.353416 0.889906 +vt 0.340515 0.882458 +vt 0.340515 0.852664 +vt 0.366317 0.837768 +vt 0.217579 0.968329 +vt 0.185172 0.968329 +vt 0.185172 0.949619 +vt 0.217579 0.949619 +vt 0.201376 0.977684 +vt 0.201376 0.940264 +vt 0.234161 0.988098 +vt 0.186482 0.851055 +vt 0.200279 0.851055 +vt 0.214076 0.851055 +vt 0.220975 0.863004 +vt 0.227874 0.874952 +vt 0.220975 0.886901 +vt 0.214076 0.898850 +vt 0.186482 0.898850 +vt 0.172685 0.874952 +vt 0.452455 0.970789 +vt 0.438853 0.932477 +vt 0.420605 0.970810 +vt 0.451016 0.988965 +vt 0.421002 0.959766 +vt 0.187497 0.932967 +vt 0.202248 0.932967 +vt 0.216999 0.932967 +vt 0.224375 0.945742 +vt 0.231750 0.958517 +vt 0.224375 0.971292 +vt 0.216999 0.984067 +vt 0.187497 0.984067 +vt 0.172746 0.958517 +vn 0.4339 0.0000 -0.9010 +vn 0.9749 0.0000 -0.2225 +vn 0.7818 0.0000 0.6235 +vn 0.0000 0.0000 1.0000 +vn -0.7818 0.0000 0.6235 +vn 0.0000 1.0000 0.0000 +vn -0.9749 0.0000 -0.2225 +vn -0.4339 0.0000 -0.9010 +vn 0.4890 -0.2091 -0.8469 +vn 0.9779 -0.2091 0.0000 +vn 0.4890 -0.2091 0.8469 +vn -0.4890 -0.2091 0.8469 +vn -0.9779 -0.2091 0.0000 +vn -0.4889 -0.2091 -0.8469 +vn -0.4769 -0.3003 -0.8260 +vn -0.4890 -0.2091 -0.8469 +vn -0.9538 -0.3003 0.0000 +vn -0.4769 -0.3003 0.8260 +vn 0.4769 -0.3003 0.8260 +vn 0.9538 -0.3003 0.0000 +vn 0.4769 -0.3003 -0.8260 +vn 0.4889 -0.2091 -0.8469 +vn -0.3403 0.7326 -0.5894 +vn 0.3403 0.7326 -0.5894 +vn -0.3403 0.7326 0.5894 +vn 0.6806 0.7326 0.0000 +vn -0.6806 0.7326 0.0000 +vn 0.3403 0.7326 0.5894 +vn 0.0000 -1.0000 0.0000 +vn -0.5000 0.0000 -0.8660 +vn 0.5000 0.0000 -0.8660 +vn 1.0000 0.0000 0.0000 +vn 0.5000 0.0000 0.8660 +vn -0.5000 0.0000 0.8660 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -0.5824 -0.8129 0.0000 +vn -0.6089 0.7933 0.0000 +vn 0.5980 0.8015 0.0000 +vn 0.5824 -0.8129 0.0000 +vn -0.6089 0.7932 0.0000 +usemtl Material.002 +s off +f 182/348/83 183/349/83 181/350/83 +f 184/351/84 185/352/84 183/349/84 +f 186/353/85 187/354/85 185/352/85 +f 188/355/86 189/356/86 187/354/86 +f 190/357/87 191/358/87 189/356/87 +f 190/359/88 188/360/88 182/361/88 +f 192/362/89 193/363/89 191/358/89 +f 194/364/90 181/365/90 193/363/90 +f 208/366/91 210/367/91 230/368/91 +f 212/369/92 213/370/92 229/371/92 +f 215/372/93 216/373/93 228/374/93 +f 218/375/94 219/376/94 227/377/94 +f 218/375/88 234/378/88 240/379/88 +f 221/380/95 222/381/95 226/382/95 +f 224/383/96 209/384/96 225/385/96 +f 225/385/97 195/386/97 223/387/97 +f 205/388/97 225/385/97 223/387/97 +f 222/381/98 224/383/98 225/385/98 +f 226/382/99 205/388/99 220/389/99 +f 203/390/99 226/382/99 220/389/99 +f 219/376/95 221/380/95 226/382/95 +f 227/377/100 203/390/100 217/391/100 +f 201/392/100 227/377/100 217/391/100 +f 216/373/94 218/375/94 227/377/94 +f 228/374/101 201/392/101 214/393/101 +f 199/394/101 228/374/101 214/393/101 +f 213/370/93 215/372/93 228/374/93 +f 229/371/102 199/394/102 211/395/102 +f 197/396/102 229/371/102 211/395/102 +f 210/367/92 212/369/92 229/371/92 +f 230/368/103 197/396/103 207/397/103 +f 195/398/103 230/368/103 207/397/103 +f 209/399/104 208/366/104 230/368/104 +f 239/400/105 245/401/105 251/402/105 +f 224/383/88 231/403/88 196/404/88 +f 208/366/88 231/405/88 237/406/88 +f 215/372/88 233/407/88 239/408/88 +f 221/380/88 236/409/88 206/410/88 +f 212/369/88 232/411/88 238/412/88 +f 218/375/88 235/413/88 204/414/88 +f 208/366/88 232/411/88 198/415/88 +f 215/372/88 234/378/88 202/416/88 +f 212/369/88 233/407/88 200/417/88 +f 224/383/88 236/409/88 242/418/88 +f 221/380/88 235/413/88 241/419/88 +f 252/420/88 251/421/88 250/422/88 +f 240/423/106 247/424/106 235/425/106 +f 237/426/107 244/427/107 232/428/107 +f 240/423/106 246/429/106 252/430/106 +f 241/431/108 248/432/108 236/433/108 +f 237/426/107 243/434/107 249/435/107 +f 238/436/109 245/401/109 233/437/109 +f 241/431/108 247/424/108 253/438/108 +f 242/439/110 243/434/110 231/440/110 +f 238/436/109 244/427/109 250/441/109 +f 239/400/105 246/429/105 234/442/105 +f 242/439/110 248/432/110 254/443/110 +f 264/444/111 290/445/111 258/446/111 +f 288/447/111 266/448/111 255/449/111 +f 261/450/111 288/447/111 255/449/111 +f 263/451/111 267/452/111 257/453/111 +f 291/454/111 265/455/111 260/456/111 +f 262/457/111 289/458/111 256/459/111 +f 268/460/111 264/444/111 259/461/111 +f 289/458/111 261/450/111 256/459/111 +f 290/445/111 263/451/111 258/446/111 +f 267/452/111 262/457/111 257/453/111 +f 266/448/111 291/454/111 260/456/111 +f 265/455/111 268/460/111 259/461/111 +f 277/462/88 300/463/88 285/464/88 +f 281/465/88 283/466/88 272/467/88 +f 271/468/88 283/466/88 296/469/88 +f 275/470/88 299/471/88 284/472/88 +f 279/473/88 302/474/88 282/475/88 +f 273/476/88 298/477/88 297/478/88 +f 277/462/88 301/479/88 280/480/88 +f 271/468/88 298/477/88 274/481/88 +f 275/470/88 300/463/88 278/482/88 +f 273/476/88 299/471/88 276/483/88 +f 281/465/88 302/474/88 287/484/88 +f 279/473/88 301/479/88 286/485/88 +f 260/486/112 281/487/112 266/488/112 +f 261/489/113 274/490/113 256/491/113 +f 262/492/114 276/493/114 257/494/114 +f 255/495/113 271/496/113 261/489/113 +f 263/497/115 278/498/115 258/499/115 +f 256/500/114 273/501/114 262/492/114 +f 264/502/116 280/503/116 259/504/116 +f 257/494/115 275/505/115 263/497/115 +f 265/506/117 282/507/117 260/486/117 +f 258/499/116 277/508/116 264/502/116 +f 266/488/112 272/509/112 255/495/112 +f 259/504/117 279/510/117 265/506/117 +f 285/511/88 284/512/88 297/513/88 +f 313/514/118 310/515/118 309/516/118 +f 317/517/86 304/518/86 303/519/86 +f 315/520/119 317/521/119 320/522/119 +f 312/523/120 318/524/120 319/525/120 +f 319/526/121 308/527/121 316/528/121 +f 314/529/121 316/530/121 310/515/121 +f 306/531/120 319/532/120 314/533/120 +f 320/534/122 303/519/122 311/535/122 +f 313/536/122 311/537/122 305/538/122 +f 309/516/119 320/539/119 313/514/119 +f 308/527/86 317/521/86 307/540/86 +f 306/531/118 313/536/118 305/538/118 +f 269/541/88 294/542/88 293/543/88 +f 182/348/83 184/351/83 183/349/83 +f 184/351/84 186/353/84 185/352/84 +f 186/353/85 188/355/85 187/354/85 +f 188/355/86 190/357/86 189/356/86 +f 190/357/87 192/362/87 191/358/87 +f 186/544/88 184/545/88 188/360/88 +f 184/545/88 182/361/88 188/360/88 +f 182/361/88 194/546/88 192/547/88 +f 192/547/88 190/359/88 182/361/88 +f 192/362/89 194/364/89 193/363/89 +f 194/364/90 182/548/90 181/365/90 +f 208/366/91 198/415/91 210/367/91 +f 212/369/92 200/417/92 213/370/92 +f 215/372/93 202/416/93 216/373/93 +f 218/375/94 204/414/94 219/376/94 +f 218/375/88 202/416/88 234/378/88 +f 221/380/95 206/410/95 222/381/95 +f 224/383/98 196/404/98 209/384/98 +f 225/385/97 209/384/97 195/386/97 +f 205/388/97 222/381/97 225/385/97 +f 222/381/98 206/410/98 224/383/98 +f 226/382/99 222/381/99 205/388/99 +f 203/390/99 219/376/99 226/382/99 +f 219/376/95 204/414/95 221/380/95 +f 227/377/100 219/376/100 203/390/100 +f 201/392/100 216/373/100 227/377/100 +f 216/373/94 202/416/94 218/375/94 +f 228/374/101 216/373/101 201/392/101 +f 199/394/101 213/370/101 228/374/101 +f 213/370/93 200/417/93 215/372/93 +f 229/371/102 213/370/102 199/394/102 +f 197/396/102 210/367/102 229/371/102 +f 210/367/92 198/415/92 212/369/92 +f 230/368/103 210/367/103 197/396/103 +f 195/398/103 209/399/103 230/368/103 +f 209/399/91 196/549/91 208/366/91 +f 239/400/105 233/437/105 245/401/105 +f 224/383/88 242/418/88 231/403/88 +f 208/366/88 196/549/88 231/405/88 +f 215/372/88 200/417/88 233/407/88 +f 221/380/88 241/419/88 236/409/88 +f 212/369/88 198/415/88 232/411/88 +f 218/375/88 240/379/88 235/413/88 +f 208/366/88 237/406/88 232/411/88 +f 215/372/88 239/408/88 234/378/88 +f 212/369/88 238/412/88 233/407/88 +f 224/383/88 206/410/88 236/409/88 +f 221/380/88 204/414/88 235/413/88 +f 250/422/88 244/550/88 249/551/88 +f 249/551/88 243/552/88 254/553/88 +f 254/553/88 248/554/88 253/555/88 +f 253/555/88 247/556/88 252/420/88 +f 252/420/88 246/557/88 251/421/88 +f 251/421/88 245/558/88 250/422/88 +f 250/422/88 249/551/88 252/420/88 +f 249/551/88 254/553/88 252/420/88 +f 254/553/88 253/555/88 252/420/88 +f 240/423/106 252/430/106 247/424/106 +f 237/426/107 249/435/107 244/427/107 +f 240/423/106 234/442/106 246/429/106 +f 241/431/108 253/438/108 248/432/108 +f 237/426/107 231/440/107 243/434/107 +f 238/436/109 250/441/109 245/401/109 +f 241/431/108 235/425/108 247/424/108 +f 242/439/110 254/443/110 243/434/110 +f 238/436/109 232/428/109 244/427/109 +f 239/400/105 251/402/105 246/429/105 +f 242/439/110 236/433/110 248/432/110 +f 264/444/111 269/559/111 290/445/111 +f 288/447/111 270/560/111 266/448/111 +f 261/450/111 292/561/111 288/447/111 +f 263/451/111 294/562/111 267/452/111 +f 291/454/111 295/563/111 265/455/111 +f 262/457/111 293/564/111 289/458/111 +f 268/460/111 269/559/111 264/444/111 +f 289/458/111 292/561/111 261/450/111 +f 290/445/111 294/562/111 263/451/111 +f 267/452/111 293/564/111 262/457/111 +f 266/448/111 270/560/111 291/454/111 +f 265/455/111 295/563/111 268/460/111 +f 277/462/88 278/482/88 300/463/88 +f 281/465/88 287/484/88 283/466/88 +f 271/468/88 272/467/88 283/466/88 +f 275/470/88 276/483/88 299/471/88 +f 279/473/88 286/485/88 302/474/88 +f 273/476/88 274/481/88 298/477/88 +f 277/462/88 285/464/88 301/479/88 +f 271/468/88 296/469/88 298/477/88 +f 275/470/88 284/472/88 300/463/88 +f 273/476/88 297/478/88 299/471/88 +f 281/465/88 282/475/88 302/474/88 +f 279/473/88 280/480/88 301/479/88 +f 260/486/112 282/507/112 281/487/112 +f 261/489/113 271/496/113 274/490/113 +f 262/492/114 273/501/114 276/493/114 +f 255/495/113 272/509/113 271/496/113 +f 263/497/115 275/505/115 278/498/115 +f 256/500/114 274/565/114 273/501/114 +f 264/502/116 277/508/116 280/503/116 +f 257/494/115 276/493/115 275/505/115 +f 265/506/117 279/510/117 282/507/117 +f 258/499/116 278/498/116 277/508/116 +f 266/488/112 281/487/112 272/509/112 +f 259/504/117 280/503/117 279/510/117 +f 297/513/88 298/566/88 296/567/88 +f 296/567/88 283/568/88 287/569/88 +f 287/569/88 302/570/88 286/571/88 +f 286/571/88 301/572/88 285/511/88 +f 285/511/88 300/573/88 284/512/88 +f 284/512/88 299/574/88 297/513/88 +f 297/513/88 296/567/88 285/511/88 +f 296/567/88 287/569/88 285/511/88 +f 287/569/88 286/571/88 285/511/88 +f 313/514/118 314/529/118 310/515/118 +f 317/517/86 318/524/86 304/518/86 +f 315/520/119 307/540/119 317/521/119 +f 312/523/123 304/518/123 318/524/123 +f 319/526/121 318/575/121 308/527/121 +f 314/529/121 319/576/121 316/530/121 +f 306/531/123 312/577/123 319/532/123 +f 320/534/122 317/517/122 303/519/122 +f 313/536/122 320/578/122 311/537/122 +f 309/516/119 315/579/119 320/539/119 +f 308/527/86 318/575/86 317/521/86 +f 306/531/118 314/533/118 313/536/118 +f 293/543/88 289/580/88 292/581/88 +f 292/581/88 288/582/88 270/583/88 +f 270/583/88 291/584/88 295/585/88 +f 295/585/88 268/586/88 269/541/88 +f 269/541/88 290/587/88 294/542/88 +f 294/542/88 267/588/88 293/543/88 +f 293/543/88 292/581/88 269/541/88 +f 292/581/88 270/583/88 269/541/88 +f 270/583/88 295/585/88 269/541/88 +l 289 298 diff --git a/src/main/java/assets/hbm/textures/gui/processing/gui_microwave.png b/src/main/java/assets/hbm/textures/gui/processing/gui_microwave.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4bb0b067cf20e8c80e037121755acb0a351931 GIT binary patch literal 1841 zcmcIlYgp1}6o3CngbpSytWZo#)2xlmE?&AorZF#}NoFfeY^i0MrjXVYuAfp$RtIzOw_VnAS~+5@kwv5@;hs*3 zs_%!8>V#^{WNiVDr*rn2-eJ4w&cFk5dRLW}^}}>~MJh99&AgI#BV8j?Q@clBzENnG zMLh3gO%rmw$9!=cFDe|b8V&Y@>5Si9S_QAWoHW%q(X(Q7fj!eGp2gxnij-VxUo zQswLMm|Nv*9B-KL8BJz)Zzrwu9eGykee>qc2X9r6ON}EYd<5Iyvd{;e$%keG4!<|4 zLD|Q!hEw?7GhI3jvGkr?97+BlR_g>UtgFuqboFeAz0L2a&YO5oSd9g=E$9s#;axd@_zeZ-zp~23C6CxfnvW; zdZtLZV#@NOKr~GBQUhkw!_YNLrq00u>cVR?Qi3SNi9;-YcvYPD6*w2&VlRerfJk^l zLv=J@ufHM(h{f70o`nAsV6VR(1dqC0rJ=f}r;@Hcy)rh-r=*F_U_3sIZyh`zT)fFP zQ)+(9F0(U7n@!ACgnU1OqPg;_4j)mg_c`Gd{QBj*ef&EpP}vfPXw3JCFZI$7YP%0? z_K@cc{if(`=#n9ne4-k8KbF>+l9*;CRd2q1Z-0c;0n*J8g*r%IfIPf*oP{ z5|0_;{4Q3^TB$5Qe}$;JRa1lZK7OBp$WVm_n3@9nwWhJ=^^@--ykffcN5xi#miozd zBJh#FI5eH|3^)J*dDQ9|&SMM3=k$meen@|Up~J%EZ0a^%yWG;!H^~Mi-P*mi!4^E3 zGaf!?j+?+BxC33|tCq9`Rls&1-WCvH0@}BZ9Va=pJ^Oec7zk~*Uk9F?W(B+|t1wIf zZ5>~B^zRCt554Mbp4lj^>aAejiasdD9ZFCZ9;=IEh<$;6kM{{-szOGP$V=tSaGB(#-d#C9T1 zW-udNKFHTR{SDy|b@B>UFB_x9)-$zEQpad96C6RYUl@`{R+uGt$0xydNS7gq1;jhjo+ zY{{;(vrl`J*$tE_AJ(N2CtMMXp25NUBE!wsYt2*Qh7vO$4P)kB(DdN3^$5Rca9Pt6 zn|c!#=!@14TZTmJ7$Hi!3RkARX;}pHeYlj85I5S`0m6KNMiiQ=oU}+b5|%Z#81!s; zk)F=6Ol#bOrs=X+ric;(vpX@B0#((v^*b1Vw5CLpSJ?iEU5$6Ek7mv+IMQZfk7SY%&dfhbMHgQhp5q*qL zC>od9|5KO00km4h81Kg`GfFml?fo@~K=s;t@%523lJs6^K_pr5KB>^(OEo^es<>qO z&Wa-Ij02UHWU^pto58$KtWPgKiTXK3{l-2|sf?lu zUdqlBYhYA-aEeHY{kYX!AXrqUB6cR``J1I~yx6DH)e;HtYh37zZRR~sV|ZF9Bs70a n>>jltLo({5{(Jg=tl&HgS{GnTF5^Pg9}qk}DDLHMv?G52Zn^2` literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/gui/reactors/gui_fusion_heater.png b/src/main/java/assets/hbm/textures/gui/reactors/gui_fusion_heater.png new file mode 100644 index 0000000000000000000000000000000000000000..03abf02aa93a7efdbc4da5ae4d5888546343ff3b GIT binary patch literal 2234 zcmcImdsGr=7XLuXN2%G4mW@s|Gc{S7Y^LUez)JHK7%09Ujj17N8j9uvsLqVzROV*o zBQ<&eGWqDCQD}l|javd%DyE|5k`NYZsbLVXbhdNaIj6I`|IGd4-h0k>U%%gXzjMCg z5cFZ33*r6-8;s-0Iu)3LbCb)G$v=%+{5kf7Pkiw~nM2>Ij{w zEkn#$lMnNkH06r9weM$oD_AU6R(AHh6D*EW$*pEKJoNzuT6H!zm0mQTSAz{yjE}En zQ1ytW8}WLA>2+x*h7^ZH$NKa-(hm%G_h_l^b1~FvKu?R^4K~Sdi>yGiGMjG&rcJ=m zdT`UA-~IFZ1Pcgi7>2Sj=$OTVZ^41#2XYXz);|C|=Hh}tImkDprRh!hMHILprWz)A zY700V&Y*J!iB#6u)O2e&fE|OlAY}S`ku*8NhT6TOa-PJvRQlSAFBI+(FOiIlSZmMh zEzWbhut(iB&CAh^vNRfZs(!Y+oTKzcuF&Q<-KZ5NA&t!m$ zE_14)Ut=&Ab)FBcQ0IMNr~$Asb0v3L6P%M1-aHc25`lT5Zl3O6 zMO6@3p}*C3XeWkgk(4Sf4g1d0C8$ZG(!QVQ)(ocaXb|J-d2vXY7B=w03dN4pE)S|X z66Ar$^y^mLT(@$1t1T!h5w2kv#}J8AH_X|r1Jud~w;aC(B8R^kwZMDP?EQ%2YU0Zz z)DKI>BJO+85{($*xAcBjRfM_^*UXEfQ1r7yZ)V@VQDQQLi}~aCWE!J7+1;ZUmFiYi zVKmz?^gYT4viox#CLGx5V4S*j{BhLABd+ubSJleRY?eRuuJyL=%TT(^K7~}3gp2Y+ z_^P|ZXpTZ-KD+Z#R8*Ua5-gu|7>#d)?k9KxiSc7RB22wW{)*r3{1^`;63Nxp;$-f+ z`nyC=e9s20tAW@c+VoayFfcGshUmD%s3eL{s2TE1#r(7+}N@2!R=jwJNT z?f4a1U*sNRe%?K_Ve_Zklkn2TWl=7AhNvGm=}&LkKHc*%LO5o8J+A5W)b}_dd?HT1 z8PS^E@A4oxZ%S+1%6loEv*L@!1y~YXn09LTM?~Vg6(crQz(Kn*w5O-1KUwF#s!i3- zyfoi8<*bej23P0OLMq?0G6N8!Zc zWwpy=1}F%Ix;v>OPqZ0w7zt-!X3o~h&x8;Qg|WlzJeeCMm$+9B$f@3|6GSdbyBB@9 z*&`NNt=oXCj}Y5(w!kwaa5h?cJK`e}&IxFO>V-HqC9F`VDIOSePhM~&$Qs5Y5Tq){ zTw(^OR?|=0L%ZTqkfnjdBq8D)Y5wF${9IW!?D5|(MY9u9_c3d*?7ZJ={V%s}02Zs~ z3nula2>KSH1>I&qlK5#kPGF$u!F@Q`70IF0!rR+$e@jW1lAVp9?_mJ89;|^wz)@3R5)4oYPyqc4SXKdO z{Le?(l&`P%No#^$&t0y$qs;ZrMO^XzrtN;Z&rtDj$sx8l(e%Hjf2p$DBWXv=6?++b z_RVuL?5W6Z$U|cF4{1mDjqggy$zvtsX}SYbw4o5c?lMYkq(z&FX7Bnn`yy!6%+sM|j;j)b&u2 z=Lq>9s!(}Q>i_I_*-;EUeXxFg}%zW|Bw B-3I^w literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/gui/reactors/gui_fusion_multiblock.png b/src/main/java/assets/hbm/textures/gui/reactors/gui_fusion_multiblock.png index 21857d774832a3f3dcf064f135532e0ab90db966..90c0d7b57597c44d48c5ee212b569b55f1132495 100644 GIT binary patch literal 4166 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 diff --git a/src/main/java/assets/hbm/textures/models/machines/microwave.png b/src/main/java/assets/hbm/textures/models/machines/microwave.png new file mode 100644 index 0000000000000000000000000000000000000000..d82d3149add2c4840264d285ec4c6106e2016258 GIT binary patch literal 32640 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�d_#NP9B3CL<|w9PiyL2~%qhp0edy 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 z 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 literal 0 HcmV?d00001 diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 05d4c5303..07cb54c22 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -347,7 +347,7 @@ public class ModBlocks { public static Block nuke_n45; public static final int guiID_nuke_n45 = 77; public static Block nuke_fstbmb; - public static final int guiID_nuke_fstbmb = 0000; + public static final int guiID_nuke_fstbmb = 96; public static Block bomb_multi; public static final int guiID_bomb_multi = 10; @@ -401,6 +401,9 @@ public class ModBlocks { public static Block machine_electric_furnace_off; public static Block machine_electric_furnace_on; public static final int guiID_electric_furnace = 16; + + public static Block machine_microwave; + public static final int guiID_microwave = 97; public static Block machine_arc_furnace_off; public static Block machine_arc_furnace_on; @@ -1060,6 +1063,7 @@ public class ModBlocks { machine_electric_furnace_on = new MachineElectricFurnace(true).setBlockName("machine_electric_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); machine_arc_furnace_off = new MachineArcFurnace(false).setBlockName("machine_arc_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_arc_furnace_on = new MachineArcFurnace(true).setBlockName("machine_arc_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); //machine_deuterium = new MachineDeuterium(Material.iron).setBlockName("machine_deuterium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1772,6 +1776,7 @@ public class ModBlocks { GameRegistry.registerBlock(machine_electric_furnace_on, machine_electric_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_arc_furnace_off, machine_arc_furnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_arc_furnace_on, machine_arc_furnace_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_microwave, machine_microwave.getUnlocalizedName()); GameRegistry.registerBlock(machine_assembler, machine_assembler.getUnlocalizedName()); GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); GameRegistry.registerBlock(machine_fluidtank, machine_fluidtank.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/machine/MachineMicrowave.java b/src/main/java/com/hbm/blocks/machine/MachineMicrowave.java new file mode 100644 index 000000000..89cf34604 --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineMicrowave.java @@ -0,0 +1,36 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.tileentity.machine.TileEntityMicrowave; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineMicrowave extends BlockMachineBase { + + public MachineMicrowave(Material mat) { + super(mat, ModBlocks.guiID_microwave); + this.rotatable = true; + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMicrowave(); + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } +} diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index ce8e93f54..0513d7b4b 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -869,6 +869,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_microwave: + { + if(entity instanceof TileEntityMicrowave) + { + return new ContainerMicrowave(player.inventory, (TileEntityMicrowave) entity); + } + return null; + } } } else { //NON-TE CONTAINERS @@ -1735,6 +1744,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_microwave: + { + if(entity instanceof TileEntityMicrowave) + { + return new GUIMicrowave(player.inventory, (TileEntityMicrowave) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/src/main/java/com/hbm/inventory/container/ContainerMicrowave.java b/src/main/java/com/hbm/inventory/container/ContainerMicrowave.java new file mode 100644 index 000000000..d60826d4a --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerMicrowave.java @@ -0,0 +1,77 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.tileentity.machine.TileEntityMicrowave; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMicrowave extends Container { + +private TileEntityMicrowave microwave; + + public ContainerMicrowave(InventoryPlayer invPlayer, TileEntityMicrowave tedf) { + + microwave = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 80, 35)); + this.addSlotToContainer(new SlotMachineOutput(tedf, 1, 140, 35)); + this.addSlotToContainer(new Slot(tedf, 2, 8, 53)); + + for(int i = 0; i < 3; i++) + { + for(int j = 0; j < 9; j++) + { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) + { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) + { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if (var4 != null && var4.getHasStack()) + { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if (par2 <= 2) { + if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) + { + return null; + } + } else { + if (!this.mergeItemStack(var5, 0, 1, true)) + if (!this.mergeItemStack(var5, 2, 3, true)) + return null; + } + + if (var5.stackSize == 0) + { + var4.putStack((ItemStack) null); + } + else + { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return microwave.isUseableByPlayer(player); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java b/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java new file mode 100644 index 000000000..d6079bbea --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIMicrowave.java @@ -0,0 +1,70 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMicrowave; +import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.machine.TileEntityMicrowave; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMicrowave extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_microwave.png"); + private TileEntityMicrowave microwave; + + public GUIMicrowave(InventoryPlayer invPlayer, TileEntityMicrowave microwave) { + super(new ContainerMicrowave(invPlayer, microwave)); + this.microwave = microwave; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 51 - 34, 16, 34, microwave.power, microwave.maxPower); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 43 <= x && guiLeft + 43 + 18 > x && guiTop + 25 < y && guiTop + 25 + 18 >= y) { + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(microwave.xCoord, microwave.yCoord, microwave.zCoord, 0, 0)); + } + if(guiLeft + 43 <= x && guiLeft + 43 + 18 > x && guiTop + 43 < y && guiTop + 43 + 18 >= y) { + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(microwave.xCoord, microwave.yCoord, microwave.zCoord, 1, 0)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.microwave.hasCustomInventoryName() ? this.microwave.getInventoryName() : I18n.format(this.microwave.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int)microwave.getPowerScaled(34); + drawTexturedModalRect(guiLeft + 8, guiTop + 51 - i, 176, 34 - i, 16, i); + + int j = microwave.getProgressScaled(23); + drawTexturedModalRect(guiLeft + 104, guiTop + 34, 192, 0, j, 16); + + int k = microwave.getSpeedScaled(34); + drawTexturedModalRect(guiLeft + 62, guiTop + 60 - k, 214, 34 - k, 4, k); + } +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ae221d139..4c3c1cc89 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -146,6 +146,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTesla.class, new RenderTesla()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBarrel.class, new RenderFluidBarrel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineCrystallizer.class, new RenderCrystallizer()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMicrowave.class, new RenderMicrowave()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityVaultDoor.class, new RenderVaultDoor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlastDoor.class, new RenderBlastDoor()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 81339f2f2..40518fa02 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -544,12 +544,12 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.missile_anti_ballistic, 1), new Object[] { ModItems.missile_generic, ModItems.circuit_targeting_tier3 }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 1), new Object[] { "T T", "PHP", "TFT", 'T', "ingotTungsten", 'P', ModItems.board_copper, 'H', Blocks.hopper, 'F', Blocks.furnace })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', "plateIron", 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', "ingotRedstoneAlloy" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', "plateSteel", 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', "ingotRedstoneAlloy" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_uf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', "plateIron", 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', "ingotRedCopperAlloy" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_puf6_tank), 1), new Object[] { "WTW", "WTW", "SRS", 'S', "plateSteel", 'W', ModItems.coil_tungsten, 'T', ModItems.tank_steel, 'W', ModItems.coil_tungsten,'R', "ingotRedCopperAlloy" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_nuke_furnace_off), 1), new Object[] { "SSS", "LFL", "CCC", 'S', "plateSteel", 'C', ModItems.board_copper, 'L', "plateLead", 'F', Item.getItemFromBlock(Blocks.furnace) })); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 1), new Object[] { "BBB", "WFW", "RRR", 'B', ModItems.ingot_beryllium, 'R', ModItems.coil_tungsten, 'W', ModItems.board_copper, 'F', Item.getItemFromBlock(Blocks.furnace) }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_arc_furnace_off, 1), new Object[] { "ITI", "PFP", "ITI", 'I', "ingotTungsten", 'T', ModBlocks.machine_transformer, 'P', ModItems.board_copper, 'F', Blocks.furnace })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.red_wire_coated), 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', "ingotRedstoneAlloy", 'R', ModItems.wire_red_copper })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.red_wire_coated), 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', "ingotRedCopperAlloy", 'R', ModItems.wire_red_copper })); GameRegistry.addRecipe(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.red_pylon), 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper_torus, 'W', "plankWood", 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated })); @@ -558,7 +558,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.gas_duct_solid), 16), new Object[] { "SPS", "P P", "SPS", 'S', "ingotSteel", 'P', "plateCopper" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.gas_duct), 16), new Object[] { "SIS", " ", "SIS", 'S', "plateSteel", 'I', "plateCopper" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_battery_potato, 1), new Object[] { "PCP", "WRW", "PCP", 'P', ItemBattery.getEmptyBattery(ModItems.battery_potato), 'C', "ingotCopper", 'R', Blocks.redstone_block, 'W', "plankWood" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', "ingotSteel", 'T', ModItems.tank_steel, 'C', "ingotRedstoneAlloy", 'F', Blocks.furnace })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_coal_off, 1), new Object[] { "STS", "SCS", "SFS", 'S', "ingotSteel", 'T', ModItems.tank_steel, 'C', "ingotRedCopperAlloy", 'F', Blocks.furnace })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_boiler_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', "ingotSteel", 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', Blocks.furnace })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_boiler_electric_off, 1), new Object[] { "SPS", "TFT", "SPS", 'S', "ingotDesh", 'P', ModItems.board_copper, 'T', ModItems.tank_steel, 'F', ModBlocks.machine_electric_furnace_off })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_turbine, 1), new Object[] { "PTP", "BMB", "PTP", 'P', "plateTitanium", 'T', ModItems.turbine_titanium, 'B', ModItems.tank_steel, 'M', ModItems.motor })); @@ -626,7 +626,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.mechanism_revolver_2, 1), new Object[] { " II", "ICA", "IKW", 'I', "plateAdvanced", 'C', "ingotDuraSteel", 'A', "ingotTungsten", 'K', ModItems.bolt_dura_steel, 'W', ModItems.bolt_tungsten })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.mechanism_rifle_1, 1), new Object[] { "ICI", "CMA", "IAM", 'I', "plateIron", 'C', "ingotCopper", 'A', "ingotAluminum", 'M', ModItems.mechanism_revolver_1 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.mechanism_rifle_2, 1), new Object[] { "ICI", "CMA", "IAM", 'I', "plateAdvanced", 'C', "ingotDuraSteel", 'A', "ingotTungsten", 'M', ModItems.mechanism_revolver_2 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', "plateTitanium", 'S', "ingotSteel", 'B', ModItems.bolt_tungsten, 'I', "ingotRedstoneAlloy" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.mechanism_launcher_1, 1), new Object[] { "TTT", "SSS", "BBI", 'T', "plateTitanium", 'S', "ingotSteel", 'B', ModItems.bolt_tungsten, 'I', "ingotRedCopperAlloy" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.mechanism_launcher_2, 1), new Object[] { "TTT", "SSS", "BBI", 'T', "plateAdvanced", 'S', "ingotPolymer", 'B', ModItems.bolt_dura_steel, 'I', "ingotDesh" })); GameRegistry.addRecipe(new ItemStack(ModItems.mechanism_special, 1), new Object[] { "PCI", "ISS", "PCI", 'P', ModItems.plate_desh, 'C', ModItems.coil_advanced_alloy, 'I', ModItems.ingot_starmetal, 'S', ModItems.circuit_targeting_tier3 }); @@ -669,7 +669,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.tape_recorder), 4), new Object[] { "TST", "SSS", 'T', "ingotTungsten", 'S', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_poles), 16), new Object[] { "S S", "SSS", "S S", 'S', "ingotSteel" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_top), 1), new Object[] { "T T", "TRT", "BBB", 'T', "ingotTungsten", 'B', ModItems.ingot_beryllium, 'R', "ingotRedstoneAlloy" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_top), 1), new Object[] { "T T", "TRT", "BBB", 'T', "ingotTungsten", 'B', ModItems.ingot_beryllium, 'R', "ingotRedCopperAlloy" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.pole_satellite_receiver), 1), new Object[] { "SS ", "SCR", "SS ", 'S', "ingotSteel", 'C', ModItems.circuit_red_copper, 'R', ModItems.wire_red_copper })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_beam), 8), new Object[] { "S", "S", "S", 'S', "ingotSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.steel_wall), 4), new Object[] { "SSS", "SSS", 'S', "ingotSteel" })); @@ -1027,7 +1027,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.book_guide), 1), new Object[] { "IBI", "LBL", "IBI", 'B', Items.book, 'I', new ItemStack(Items.dye, 1, 0), 'L', new ItemStack(Items.dye, 1, 4) }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.rail_highspeed), 16), new Object[] { "S S", "SIS", "S S", 'S', "ingotSteel", 'I', "plateIron" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.rail_booster), 6), new Object[] { "S S", "CIC", "SRS", 'S', "ingotSteel", 'I', "plateIron", 'R', "ingotRedstoneAlloy", 'C', ModItems.coil_copper })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.rail_booster), 6), new Object[] { "S S", "CIC", "SRS", 'S', "ingotSteel", 'I', "plateIron", 'R', "ingotRedCopperAlloy", 'C', ModItems.coil_copper })); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.bomb_multi), 1), new Object[] { "AAD", "CHF", "AAD", 'A', ModItems.wire_aluminium, 'C', ModItems.circuit_aluminium, 'H', ModItems.hull_small_aluminium, 'F', ModItems.fins_quad_titanium, 'D', new ItemStack(Items.dye, 1, 15) }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_ice, 4), new Object[] { Items.snowball, "dustNiter", "dustRedstone" })); @@ -1275,9 +1275,9 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.record_vc, 1), new Object[] { " S ", "SDS", " S ", 'S', "ingotPolymer", 'D', "dustCMBSteel" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 4), new Object[] { "dustRedstone", "dustIron", "dustCoal", "dustCopper" })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 3), new Object[] { "dustIron", "dustCoal", "dustRedstoneAlloy" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 3), new Object[] { "dustIron", "dustCoal", "dustRedCopperAlloy" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 3), new Object[] { "dustRedstone", "dustSteel", "dustCopper" })); - GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 2), new Object[] { "dustRedstoneAlloy", "dustSteel" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_advanced_alloy, 2), new Object[] { "dustRedCopperAlloy", "dustSteel" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_magnetized_tungsten, 1), new Object[] { "dustTungsten", "nuggetSchrabidium" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_red_copper, 2), new Object[] { "dustRedstone", "dustCopper" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_steel, 2), new Object[] { "dustIron", "dustCoal" })); @@ -1317,7 +1317,7 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.powder_desh_mix, 9), new Object[] { ModItems.powder_actinium, ModItems.powder_actinium, ModItems.powder_lanthanium, ModItems.powder_lanthanium, ModItems.powder_cerium, ModItems.powder_cobalt, ModItems.powder_lithium, ModItems.powder_neodymium, ModItems.powder_niobium }); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.dynosphere_base), new Object[] { "RPR", "PBP", "RPR", 'R', "dustRedstoneAlloy", 'P', "plateSteel", 'B', "blockRedstone" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.dynosphere_base), new Object[] { "RPR", "PBP", "RPR", 'R', "dustRedCopperAlloy", 'P', "plateSteel", 'B', "blockRedstone" })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.dynosphere_desh), new Object[] { "RPR", "PBP", "RPR", 'R', ModItems.powder_desh_mix, 'P', "ingotDesh", 'B', ModItems.dynosphere_base })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.dynosphere_schrabidium), new Object[] { "RPR", "PBP", "RPR", 'R', ModItems.powder_power, 'P', "ingotSchrabidium", 'B', ModItems.dynosphere_desh_charged })); GameRegistry.addRecipe(new ShapedOreRecipe(ItemBattery.getEmptyBattery(ModItems.dynosphere_euphemium), new Object[] { "RPR", "PBP", "RPR", 'R', ModItems.powder_nitan_mix, 'P', "ingotEuphemium", 'B', ModItems.dynosphere_schrabidium_charged })); @@ -1370,8 +1370,8 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.machine_spp_bottom), new Object[] { ModBlocks.machine_spp_top }); GameRegistry.addShapelessRecipe(new ItemStack(ModBlocks.machine_spp_top), new Object[] { ModBlocks.machine_spp_bottom }); GameRegistry.addRecipe(new ItemStack(ModItems.gun_b93), new Object[] { "PCE", "SEB", "PCE", 'P', ModItems.plate_dineutronium, 'C', ModItems.weaponized_starblaster_cell, 'E', ModItems.component_emitter, 'B', ModItems.gun_b92, 'S', ModItems.singularity_spark }); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SDS", "MCM", "MCM", 'S', "ingotIron", 'D', "ingotRedstoneAlloy", 'M',ModItems.coil_advanced_alloy, 'C', ModItems.circuit_copper })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer_20), new Object[] { "SDS", "MCM", "MCM", 'S', "ingotIron", 'D', "ingotRedstoneAlloy", 'M', ModItems.coil_copper, 'C', ModItems.circuit_copper })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer), new Object[] { "SDS", "MCM", "MCM", 'S', "ingotIron", 'D', "ingotRedCopperAlloy", 'M',ModItems.coil_advanced_alloy, 'C', ModItems.circuit_copper })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer_20), new Object[] { "SDS", "MCM", "MCM", 'S', "ingotIron", 'D', "ingotRedCopperAlloy", 'M', ModItems.coil_copper, 'C', ModItems.circuit_copper })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer_dnt), new Object[] { "SDS", "MCM", "MCM", 'S', ModItems.ingot_starmetal, 'D', "ingotDesh", 'M', ModBlocks.fwatz_conductor, 'C', ModItems.circuit_targeting_tier6 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_transformer_dnt_20), new Object[] { "SDS", "MCM", "MCM", 'S', ModItems.ingot_starmetal, 'D', "ingotDesh", 'M', ModBlocks.fusion_conductor, 'C', ModItems.circuit_targeting_tier6 })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bottle_sparkle), new Object[] { ModItems.bottle_nuka, Items.carrot, Items.gold_nugget }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 1249161bf..93b8c4abc 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -570,6 +570,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityProxyEnergy.class, "tileentity_proxy_power"); GameRegistry.registerTileEntity(TileEntityNukeBalefire.class, "tileentity_nuke_fstbmb"); GameRegistry.registerTileEntity(TileEntityProxyCombo.class, "tileentity_proxy_combo"); + GameRegistry.registerTileEntity(TileEntityMicrowave.class, "tileentity_microwave"); 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/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 5a0f43151..6df83561d 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -69,6 +69,9 @@ public class ResourceManager { //Centrifuge public static final IModelCustom centrifuge_new = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/centrifuge_new.obj")); + //Magnusson Device + public static final IModelCustom microwave = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/microwave.obj")); + //Laser Miner public static final IModelCustom mining_laser = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mining_laser.obj")); @@ -223,6 +226,9 @@ public class ResourceManager { //Centrifuge public static final ResourceLocation centrifuge_new_tex = new ResourceLocation(RefStrings.MODID, "textures/models/centrifuge_new.png"); public static final ResourceLocation centrifuge_gas_tex = new ResourceLocation(RefStrings.MODID, "textures/models/centrifuge_gas.png"); + + //Magnusson Device + public static final ResourceLocation microwave_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/microwave.png"); //Laser Miner public static final ResourceLocation mining_laser_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mining_laser_base.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java b/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java index 6f7a1b768..fe2780bfc 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java +++ b/src/main/java/com/hbm/render/tileentity/RenderITERMultiblock.java @@ -2,10 +2,15 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; -import com.hbm.main.ResourceManager; +import com.hbm.blocks.ModBlocks; +import com.hbm.render.util.IconUtil; +import com.hbm.render.util.SmallBlockPronter; +import com.hbm.tileentity.machine.TileEntityITERStruct; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; public class RenderITERMultiblock extends TileEntitySpecialRenderer { @@ -14,9 +19,16 @@ public class RenderITERMultiblock extends TileEntitySpecialRenderer { GL11.glPushMatrix(); - GL11.glTranslatef((float)x + 0.5F, (float)y, (float)z + 0.5F); + GL11.glTranslatef((float)x, (float)y, (float)z); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_CULL_FACE); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.75F); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(false); - GL11.glShadeModel(GL11.GL_SMOOTH); + /*GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.iter_glass); ResourceManager.iter.renderPart("Windows"); bindTexture(ResourceManager.iter_motor); @@ -40,7 +52,41 @@ public class RenderITERMultiblock extends TileEntitySpecialRenderer { bindTexture(ResourceManager.iter_plasma); ResourceManager.iter.renderPart("Plasma"); GL11.glShadeModel(GL11.GL_FLAT); - GL11.glPopMatrix(); + GL11.glPopMatrix();*/ + + ResourceLocation magnet = IconUtil.getTextureFromBlockAndSide(ModBlocks.fusion_conductor, 2); + ResourceLocation solenoid = IconUtil.getTextureFromBlockAndSide(ModBlocks.fusion_center, 2); + ResourceLocation motor = IconUtil.getTextureFromBlock(ModBlocks.fusion_motor); + ResourceLocation glass = IconUtil.getTextureFromBlock(ModBlocks.reinforced_glass); + + int[][][] layout = TileEntityITERStruct.layout; + + for(int iy = -2; iy <= 2; iy ++) { + + int iny = 2 - Math.abs(iy); + + for(int ix = 0; ix < layout[0].length; ix++) { + + for(int iz = 0; iz < layout[0][0].length; iz++) { + + int block = layout[iny][ix][iz]; + + switch(block) { + case 0: continue; + case 1: bindTexture(magnet); break; + case 2: bindTexture(solenoid); break; + case 3: bindTexture(motor); break; + case 4: bindTexture(glass); break; + } + + SmallBlockPronter.renderSmolBlockAt(ix - 6F, iy + 3, iz - 7F); + } + } + } + + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glDepthMask(true); GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java b/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java new file mode 100644 index 000000000..cfdc25b26 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderMicrowave.java @@ -0,0 +1,45 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMicrowave; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderMicrowave extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y - 0.75, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + + switch(tileEntity.getBlockMetadata()) { + case 2: GL11.glRotatef(0, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(270, 0F, 1F, 0F); break; + } + GL11.glTranslated(-0.5D, 0.0D, 0.5D); + + TileEntityMicrowave mic = (TileEntityMicrowave)tileEntity; + + bindTexture(ResourceManager.microwave_tex); + ResourceManager.microwave.renderPart("mainbody_Cube.001"); + ResourceManager.microwave.renderPart("window_Cube.002"); + + double rot = (System.currentTimeMillis() * mic.speed / 10D) % 360; + + if(mic.time > 0) { + GL11.glTranslated(0.575D, 0.0D, -0.45D); + GL11.glRotated(rot, 0F, 1F, 0F); + GL11.glTranslated(-0.575D, 0.0D, 0.45D); + } + ResourceManager.microwave.renderPart("plate_Cylinder"); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/util/IconUtil.java b/src/main/java/com/hbm/render/util/IconUtil.java new file mode 100644 index 000000000..44ae7f3c2 --- /dev/null +++ b/src/main/java/com/hbm/render/util/IconUtil.java @@ -0,0 +1,27 @@ +package com.hbm.render.util; + +import com.hbm.lib.RefStrings; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; + +public class IconUtil { + + public static ResourceLocation getTextureFromBlock(Block b) { + return getTextureFromBlockAndSide(b, 1); + } + + public static ResourceLocation getTextureFromBlockAndSide(Block b, int side) { + + + RenderBlocks rb = RenderBlocks.getInstance(); + + IIcon icon = rb.getBlockIconFromSide(b, side); + ResourceLocation loc = new ResourceLocation(RefStrings.MODID + ":textures/blocks/" + icon.getIconName().substring(4, icon.getIconName().length()) + ".png"); + + return loc; + } + +} diff --git a/src/main/java/com/hbm/render/util/SmallBlockPronter.java b/src/main/java/com/hbm/render/util/SmallBlockPronter.java new file mode 100644 index 000000000..21aac836f --- /dev/null +++ b/src/main/java/com/hbm/render/util/SmallBlockPronter.java @@ -0,0 +1,68 @@ +package com.hbm.render.util; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.renderer.Tessellator; + +public class SmallBlockPronter { + + static float pixel = 1F/16F; + + /** + * Bind the required texture yourself bruh + * @param loc + * @param x + * @param y + * @param z + */ + public static void renderSmolBlockAt(float x, float y, float z) { + GL11.glPushMatrix(); + GL11.glTranslatef(x, y, z); + GL11.glRotatef(180, 0F, 0F, 1F); + + Tessellator tesseract = Tessellator.instance; + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 0); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 0); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 0); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 1); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 0); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 1); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 1, 0); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0, 0); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); + tesseract.draw(); + + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 1, 0); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0, 0); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0, 1); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 1, 1); + tesseract.draw(); + GL11.glPopMatrix(); + + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java index ade8487ad..446901e47 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java @@ -7,6 +7,61 @@ import net.minecraft.util.AxisAlignedBB; public class TileEntityITERStruct extends TileEntity { + public static int[][][] layout = new int[][][] { + + new int[][] { + new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + new int[] {0,0,0,0,0,1,1,1,1,1,0,0,0,0,0}, + new int[] {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0}, + new int[] {0,0,0,1,1,0,0,0,0,0,1,1,0,0,0}, + new int[] {0,0,1,1,0,0,0,0,0,0,0,1,1,0,0}, + new int[] {0,1,1,0,0,0,0,0,0,0,0,0,1,1,0}, + new int[] {0,1,1,0,0,0,0,0,0,0,0,0,1,1,0}, + new int[] {0,1,1,0,0,0,0,3,0,0,0,0,1,1,0}, + new int[] {0,1,1,0,0,0,0,0,0,0,0,0,1,1,0}, + new int[] {0,1,1,0,0,0,0,0,0,0,0,0,1,1,0}, + new int[] {0,0,1,1,0,0,0,0,0,0,0,1,1,0,0}, + new int[] {0,0,0,1,1,0,0,0,0,0,1,1,0,0,0}, + new int[] {0,0,0,0,1,1,1,1,1,1,1,0,0,0,0}, + new int[] {0,0,0,0,0,1,1,1,1,1,0,0,0,0,0}, + new int[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, + }, + new int[][] { + new int[] {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0}, + new int[] {0,0,0,0,1,1,0,0,0,1,1,0,0,0,0}, + new int[] {0,0,0,1,0,0,0,0,0,0,0,1,0,0,0}, + new int[] {0,0,1,0,0,1,1,1,1,1,0,0,1,0,0}, + new int[] {0,1,0,0,1,0,2,2,2,0,1,0,0,1,0}, + new int[] {0,1,0,1,0,2,0,2,0,2,0,1,0,1,0}, + new int[] {1,0,0,1,2,0,0,2,0,0,2,1,0,0,1}, + new int[] {1,0,0,1,2,2,2,3,2,2,2,1,0,0,1}, + new int[] {1,0,0,1,2,0,0,2,0,0,2,1,0,0,1}, + new int[] {0,1,0,1,0,2,0,2,0,2,0,1,0,1,0}, + new int[] {0,1,0,0,1,0,2,2,2,0,1,0,0,1,0}, + new int[] {0,0,1,0,0,1,1,1,1,1,0,0,1,0,0}, + new int[] {0,0,0,1,0,0,0,0,0,0,0,1,0,0,0}, + new int[] {0,0,0,0,1,1,0,0,0,1,1,0,0,0,0}, + new int[] {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0} + }, + new int[][] { + new int[] {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0}, + new int[] {0,0,0,0,1,1,0,0,0,1,1,0,0,0,0}, + new int[] {0,0,0,4,0,0,0,0,0,0,0,4,0,0,0}, + new int[] {0,0,4,0,0,1,1,1,1,1,0,0,4,0,0}, + new int[] {0,1,0,0,1,0,2,2,2,0,1,0,0,1,0}, + new int[] {0,1,0,1,0,2,0,0,0,2,0,1,0,1,0}, + new int[] {1,0,0,1,2,0,0,0,0,0,2,1,0,0,1}, + new int[] {1,0,0,1,2,0,0,3,0,0,2,1,0,0,1}, + new int[] {1,0,0,1,2,0,0,0,0,0,2,1,0,0,1}, + new int[] {0,1,0,1,0,2,0,0,0,2,0,1,0,1,0}, + new int[] {0,1,0,0,1,0,2,2,2,0,1,0,0,1,0}, + new int[] {0,0,4,0,0,1,1,1,1,1,0,0,4,0,0}, + new int[] {0,0,0,4,0,0,0,0,0,0,0,4,0,0,0}, + new int[] {0,0,0,0,1,1,0,0,0,1,1,0,0,0,0}, + new int[] {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0} + } + }; + int age; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java new file mode 100644 index 000000000..988033a27 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMicrowave.java @@ -0,0 +1,165 @@ +package com.hbm.tileentity.machine; + +import com.hbm.interfaces.IConsumer; +import com.hbm.lib.Library; +import com.hbm.tileentity.TileEntityMachineBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityMicrowave extends TileEntityMachineBase implements IConsumer { + + public long power; + public static final long maxPower = 50000; + public static final int consumption = 50; + public static final int maxTime = 300; + public int time; + public int speed; + public static final int maxSpeed = 5; + + public TileEntityMicrowave() { + super(3); + } + + @Override + public String getName() { + return "container.microwave"; + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + this.power = Library.chargeTEFromItems(slots, 2, power, maxPower); + + if(canProcess()) { + + if(speed == maxSpeed) { + worldObj.func_147480_a(xCoord, yCoord, zCoord, false); + worldObj.newExplosion(null, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 7.5F, true, true); + return; + } + + power -= consumption; + time += speed; + + if(time >= maxTime) { + process(); + time = 0; + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", power); + data.setInteger("time", time); + data.setInteger("speed", speed); + networkPack(data, 50); + } + } + + public void networkUnpack(NBTTagCompound data) { + power = data.getLong("power"); + time = data.getInteger("time"); + speed = data.getInteger("speed"); + } + + public void handleButtonPacket(int value, int meta) { + + if(value == 0) + speed++; + + if(value == 1) + speed--; + + if(speed < 0) + speed = 0; + + if(speed > maxSpeed) + speed = maxSpeed; + } + + private void process() { + + ItemStack stack = FurnaceRecipes.smelting().getSmeltingResult(slots[0]).copy(); + + if(slots[1] == null) { + slots[1] = stack; + } else { + slots[1].stackSize += stack.stackSize; + } + + this.decrStackSize(0, 1); + + this.markDirty(); + } + + private boolean canProcess() { + + if(speed == 0) + return false; + + if(power < consumption) + return false; + + if(slots[0] != null && FurnaceRecipes.smelting().getSmeltingResult(slots[0]) != null) { + + ItemStack stack = FurnaceRecipes.smelting().getSmeltingResult(slots[0]); + + if(slots[1] == null) + return true; + + if(!stack.isItemEqual(slots[1])) + return false; + + return stack.stackSize + slots[1].stackSize <= stack.getMaxStackSize(); + } + + return false; + } + + public long getPowerScaled(int i) { + return (power * i) / maxPower; + } + + public int getProgressScaled(int i) { + return (time * i) / maxTime; + } + + public int getSpeedScaled(int i) { + return (speed * i) / maxSpeed; + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + +}