From 61c7815f3bca66099832fb6b102ce1272f6568ce Mon Sep 17 00:00:00 2001
From: modmuss50 <modmuss50@gmail.com>
Date: Sun, 24 Apr 2016 21:49:22 +0100
Subject: [PATCH] Initial json's for machines, gui blocks are broken

---
 basejsons/machineBase.json                    | 35 ++++++++++++
 basejsons/machineModelBase.json               |  9 +++
 .../command/TechRebornDevCommand.java         |  6 ++
 .../java/techreborn/dev/JsonGenerator.java    | 57 +++++++++++++++----
 .../techreborn/blockstates/alloySmelter.json  | 35 ++++++++++++
 .../techreborn/blockstates/alloyfurnace.json  | 35 ++++++++++++
 .../blockstates/assemblymachine.json          | 35 ++++++++++++
 .../techreborn/blockstates/blastFurnace.json  | 35 ++++++++++++
 .../techreborn/blockstates/chargebench.json   | 35 ++++++++++++
 .../blockstates/chemicalreactor.json          | 35 ++++++++++++
 .../techreborn/blockstates/chunkloader.json   | 35 ++++++++++++
 .../techreborn/blockstates/computercube.json  | 35 ++++++++++++
 .../blockstates/dieselgenerator.json          | 35 ++++++++++++
 .../blockstates/distillationtower.json        | 35 ++++++++++++
 .../blockstates/dragoneggenergsiphon.json     | 35 ++++++++++++
 .../blockstates/electriccraftingtable.json    | 35 ++++++++++++
 .../techreborn/blockstates/fusioncoil.json    | 35 ++++++++++++
 .../blockstates/fusioncontrolcomputer.json    | 35 ++++++++++++
 .../techreborn/blockstates/gasturbine.json    | 35 ++++++++++++
 .../techreborn/blockstates/grinder.json       | 35 ++++++++++++
 .../techreborn/blockstates/heatgenerator.json | 35 ++++++++++++
 .../blockstates/implosioncompressor.json      | 35 ++++++++++++
 .../blockstates/industrialSawmill.json        | 35 ++++++++++++
 .../blockstates/industrialelectrolyzer.json   | 35 ++++++++++++
 .../techreborn/blockstates/ironfurnace.json   | 35 ++++++++++++
 .../techreborn/blockstates/lesustorage.json   | 35 ++++++++++++
 .../techreborn/blockstates/lightningrod.json  | 35 ++++++++++++
 .../blockstates/magicenergyconverter.json     | 35 ++++++++++++
 .../blockstates/magicrnergyabsorber.json      | 35 ++++++++++++
 .../blockstates/matterfabricator.json         | 35 ++++++++++++
 .../blockstates/plasmagenerator.json          | 35 ++++++++++++
 .../blockstates/playerDetector.json           | 35 ++++++++++++
 .../techreborn/blockstates/recycler.json      | 35 ++++++++++++
 .../blockstates/rollingmachine.json           | 35 ++++++++++++
 .../blockstates/scrapboxinator.json           | 35 ++++++++++++
 .../blockstates/semifluidgenerator.json       | 35 ++++++++++++
 .../blockstates/supercondensator.json         | 35 ++++++++++++
 .../blockstates/techreborn.centrifuge.json    | 35 ++++++++++++
 .../blockstates/techreborn.compressor.json    | 35 ++++++++++++
 .../blockstates/techreborn.digitalChest.json  | 35 ++++++++++++
 .../techreborn.electricfurnace.json           | 35 ++++++++++++
 .../blockstates/techreborn.extractor.json     | 35 ++++++++++++
 .../blockstates/techreborn.generator.json     | 35 ++++++++++++
 .../blockstates/techreborn.grinder.json       | 35 ++++++++++++
 .../blockstates/techreborn.quantumChest.json  | 35 ++++++++++++
 .../blockstates/techreborn.quantumTank.json   | 35 ++++++++++++
 .../techreborn.thermalGenerator.json          | 35 ++++++++++++
 .../techreborn/blockstates/vacuumfreezer.json | 35 ++++++++++++
 .../block/tile.techreborn.alloyfurnace.json   |  9 +++
 .../block/tile.techreborn.alloysmelter.json   |  9 +++
 .../tile.techreborn.assemblingmachine.json    |  9 +++
 .../block/tile.techreborn.blastfurnace.json   |  9 +++
 .../block/tile.techreborn.centrifuge.json     |  9 +++
 .../block/tile.techreborn.chargebench.json    |  9 +++
 .../tile.techreborn.chemicalreactor.json      |  9 +++
 .../block/tile.techreborn.chunkloader.json    |  9 +++
 .../block/tile.techreborn.compressor.json     |  9 +++
 .../block/tile.techreborn.computercube.json   |  9 +++
 .../tile.techreborn.dieselgenerator.json      |  9 +++
 .../block/tile.techreborn.digitalChest.json   |  9 +++
 .../tile.techreborn.distillationtower.json    |  9 +++
 .../tile.techreborn.dragoneggsiphoner.json    |  9 +++
 ...tile.techreborn.electriccraftingtable.json |  9 +++
 .../tile.techreborn.electricfurnace.json      |  9 +++
 .../block/tile.techreborn.extractor.json      |  9 +++
 .../block/tile.techreborn.fusioncoil.json     |  9 +++
 ...tile.techreborn.fusioncontrolcomputer.json |  9 +++
 .../block/tile.techreborn.gasTurbine.json     |  9 +++
 .../block/tile.techreborn.generator.json      |  9 +++
 .../models/block/tile.techreborn.grinder.json |  9 +++
 .../block/tile.techreborn.heatgenerator.json  |  9 +++
 .../tile.techreborn.implosioncompressor.json  |  9 +++
 ...ile.techreborn.industrialelectrolyzer.json |  9 +++
 .../tile.techreborn.industrialgrinder.json    |  9 +++
 .../tile.techreborn.industrialsawmill.json    |  9 +++
 .../block/tile.techreborn.ironfurnace.json    |  9 +++
 .../block/tile.techreborn.lesustorage.json    |  9 +++
 .../block/tile.techreborn.lightningrod.json   |  9 +++
 .../tile.techreborn.magicenergyabsorber.json  |  9 +++
 .../tile.techreborn.magicenergyconverter.json |  9 +++
 .../tile.techreborn.matterfabricator.json     |  9 +++
 .../tile.techreborn.plasmagenerator.json      |  9 +++
 .../block/tile.techreborn.playerDetector.json |  9 +++
 .../block/tile.techreborn.quantumChest.json   |  9 +++
 .../block/tile.techreborn.quantumTank.json    |  9 +++
 .../block/tile.techreborn.recycler.json       |  9 +++
 .../block/tile.techreborn.rollingmachine.json |  9 +++
 .../block/tile.techreborn.scrapboxinator.json |  9 +++
 .../tile.techreborn.semifluidgenerator.json   |  9 +++
 .../tile.techreborn.supercondensator.json     |  9 +++
 .../tile.techreborn.thermalGenerator.json     |  9 +++
 .../block/tile.techreborn.vacuumfreezer.json  |  9 +++
 92 files changed, 2032 insertions(+), 11 deletions(-)
 create mode 100644 basejsons/machineBase.json
 create mode 100644 basejsons/machineModelBase.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/alloySmelter.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/alloyfurnace.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/assemblymachine.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/blastFurnace.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/chargebench.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/chemicalreactor.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/chunkloader.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/computercube.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/dieselgenerator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/distillationtower.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/dragoneggenergsiphon.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/electriccraftingtable.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/fusioncoil.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/fusioncontrolcomputer.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/gasturbine.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/grinder.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/heatgenerator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/implosioncompressor.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/industrialSawmill.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/industrialelectrolyzer.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/ironfurnace.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/lesustorage.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/lightningrod.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/magicenergyconverter.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/magicrnergyabsorber.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/matterfabricator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/plasmagenerator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/playerDetector.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/recycler.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/rollingmachine.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/scrapboxinator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/semifluidgenerator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/supercondensator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.centrifuge.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.compressor.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.digitalChest.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.electricfurnace.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.extractor.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.generator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.grinder.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.quantumChest.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.quantumTank.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/techreborn.thermalGenerator.json
 create mode 100644 src/main/resources/assets/techreborn/blockstates/vacuumfreezer.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.alloyfurnace.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.alloysmelter.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.assemblingmachine.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.blastfurnace.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.centrifuge.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.chargebench.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.chemicalreactor.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.chunkloader.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.compressor.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.computercube.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.dieselgenerator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.digitalChest.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.distillationtower.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.dragoneggsiphoner.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.electriccraftingtable.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.electricfurnace.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.extractor.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncoil.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncontrolcomputer.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.gasTurbine.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.generator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.grinder.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.heatgenerator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.implosioncompressor.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialelectrolyzer.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialgrinder.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialsawmill.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.ironfurnace.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.lesustorage.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.lightningrod.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyabsorber.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyconverter.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.matterfabricator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.plasmagenerator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.playerDetector.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumChest.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumTank.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.recycler.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.rollingmachine.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.scrapboxinator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.semifluidgenerator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.supercondensator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.thermalGenerator.json
 create mode 100644 src/main/resources/assets/techreborn/models/block/tile.techreborn.vacuumfreezer.json

diff --git a/basejsons/machineBase.json b/basejsons/machineBase.json
new file mode 100644
index 000000000..4bfbe09a6
--- /dev/null
+++ b/basejsons/machineBase.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "%MODEL%"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "%OFF_TEXTURE%"
+        }
+    },
+    "normal":[{"model": "%MODEL%"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "%ON_TEXTURE%"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "%OFF_TEXTURE%"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/basejsons/machineModelBase.json b/basejsons/machineModelBase.json
new file mode 100644
index 000000000..c03d10f09
--- /dev/null
+++ b/basejsons/machineModelBase.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "%SIDE_TEXTURE%",
+    "top": "%TOP_TEXTURE%",
+    "front": "%OFF_TEXTURE%",
+    "side": "%SIDE_TEXTURE%"
+  }
+}
\ No newline at end of file
diff --git a/src/main/java/techreborn/command/TechRebornDevCommand.java b/src/main/java/techreborn/command/TechRebornDevCommand.java
index b8ce3c19f..636da44d9 100644
--- a/src/main/java/techreborn/command/TechRebornDevCommand.java
+++ b/src/main/java/techreborn/command/TechRebornDevCommand.java
@@ -1,5 +1,6 @@
 package techreborn.command;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -105,7 +106,12 @@ public class TechRebornDevCommand extends CommandBase
 				((EntityPlayer) sender).addChatComponentMessage(new TextComponentString("hold an item!"));
 			}
 		} else if ("gen".equals(args[0])) { //TODO DO NOT SHIP!!!
+			try {
 				new JsonGenerator().generate();
+			} catch (IOException e) {
+				e.printStackTrace();
+				sender.addChatMessage(new TextComponentString(e.getLocalizedMessage()));
+			}
 		}
 	}
 }
diff --git a/src/main/java/techreborn/dev/JsonGenerator.java b/src/main/java/techreborn/dev/JsonGenerator.java
index ea7f6b01b..965fd234c 100644
--- a/src/main/java/techreborn/dev/JsonGenerator.java
+++ b/src/main/java/techreborn/dev/JsonGenerator.java
@@ -1,14 +1,17 @@
 package techreborn.dev;
 
+import com.google.common.base.Charsets;
+import com.google.common.io.Files;
+import net.minecraft.util.EnumFacing;
+import net.minecraftforge.fml.common.registry.GameData;
 import reborncore.RebornCore;
 import reborncore.common.blocks.BlockMachineBase;
+import reborncore.common.util.LogHelper;
+import techreborn.Core;
+import techreborn.api.TechRebornAPI;
 
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
+import java.io.*;
+import java.util.Scanner;
 
 /**
  * Created by Mark on 24/04/2016.
@@ -17,7 +20,7 @@ import java.io.Writer;
 //TODO DO NOT SHIP THIS!
 public class JsonGenerator {
 
-    public void generate(){
+    public void generate() throws IOException {
         File mcDir = new File(".");
         File exportFolder = new File(mcDir, "export");
         if(!exportFolder.exists()){
@@ -47,19 +50,52 @@ public class JsonGenerator {
         if(!itemModles.exists()){
             itemModles.mkdir();
         }
+        File baseJsonFiles = new File(mcDir, "basejsons");
+        if(!baseJsonFiles.exists()){
+            Core.logHelper.error("Could not find base jsons dir!");
+            throw new FileNotFoundException();
+        }
+        File machineBaseFile = new File(baseJsonFiles, "machineBase.json");
+        String machineBase = Files.toString(machineBaseFile, Charsets.UTF_8);
+        File machineModelBaseFile = new File(baseJsonFiles, "machineModelBase.json");
+        String machineModelBase = Files.toString(machineModelBaseFile, Charsets.UTF_8);
         for(Object object : RebornCore.jsonDestroyer.objectsToDestroy){
             if(object instanceof BlockMachineBase){
                 BlockMachineBase base = (BlockMachineBase) object;
-                File state = new File(blockstates, base.getUnlocalizedName() + ".json");
+                String name = GameData.getBlockRegistry().getNameForObject(base).getResourcePath().replace("tile.techreborn.", "");
+                File state = new File(blockstates, name + ".json");
                 if(state.exists()){
                     state.delete();
                 }
+                String output = machineBase;
+                output = output.replaceAll("%MODEL%", "techreborn:" + base.getUnlocalizedName());
+                output = output.replaceAll("%OFF_TEXTURE%", base.getTextureNameFromState(base.getDefaultState(), EnumFacing.NORTH));
+                output = output.replaceAll("%ON_TEXTURE%", base.getTextureNameFromState(base.getDefaultState().withProperty(BlockMachineBase.ACTIVE, true), EnumFacing.NORTH));
                 try {
-                    state.createNewFile();
                     FileOutputStream is = new FileOutputStream(state);
                     OutputStreamWriter osw = new OutputStreamWriter(is);
                     Writer w = new BufferedWriter(osw);
-                    w.write("{");
+                    w.write(output);
+                    w.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+
+                File model = new File(blockModels, base.getUnlocalizedName() + ".json");
+                if(model.exists()){
+                    model.delete();
+                }
+                String modelOutput = machineModelBase;
+                modelOutput = modelOutput.replaceAll("%MODEL%", base.getUnlocalizedName() );
+                modelOutput = modelOutput.replaceAll("%OFF_TEXTURE%", base.getTextureNameFromState(base.getDefaultState(), EnumFacing.NORTH));
+                modelOutput = modelOutput.replaceAll("%ON_TEXTURE%", base.getTextureNameFromState(base.getDefaultState().withProperty(BlockMachineBase.ACTIVE, true), EnumFacing.NORTH));
+                modelOutput = modelOutput.replaceAll("%SIDE_TEXTURE%", base.getTextureNameFromState(base.getDefaultState(), EnumFacing.EAST));
+                modelOutput = modelOutput.replaceAll("%TOP_TEXTURE%", base.getTextureNameFromState(base.getDefaultState(), EnumFacing.UP));
+                try {
+                    FileOutputStream is = new FileOutputStream(model);
+                    OutputStreamWriter osw = new OutputStreamWriter(is);
+                    Writer w = new BufferedWriter(osw);
+                    w.write(modelOutput);
                     w.close();
                 } catch (IOException e) {
                     e.printStackTrace();
@@ -69,5 +105,4 @@ public class JsonGenerator {
     }
 
 
-
 }
diff --git a/src/main/resources/assets/techreborn/blockstates/alloySmelter.json b/src/main/resources/assets/techreborn/blockstates/alloySmelter.json
new file mode 100644
index 000000000..42572e8a8
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/alloySmelter.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.alloysmelter"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/electric_alloy_furnace_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.alloysmelter"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/electric_alloy_furnace_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/electric_alloy_furnace_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/alloyfurnace.json b/src/main/resources/assets/techreborn/blockstates/alloyfurnace.json
new file mode 100644
index 000000000..8899cc5f1
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/alloyfurnace.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.alloyfurnace"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/iron_machines/alloy_furnace_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.alloyfurnace"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/iron_machines/alloy_furnace_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/iron_machines/alloy_furnace_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/assemblymachine.json b/src/main/resources/assets/techreborn/blockstates/assemblymachine.json
new file mode 100644
index 000000000..3097f05e8
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/assemblymachine.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.assemblingmachine"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/assembling_machine_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.assemblingmachine"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/assembling_machine_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/assembling_machine_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/blastFurnace.json b/src/main/resources/assets/techreborn/blockstates/blastFurnace.json
new file mode 100644
index 000000000..1aaec09fc
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/blastFurnace.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.blastfurnace"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_blast_furnace_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.blastfurnace"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_blast_furnace_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_blast_furnace_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/chargebench.json b/src/main/resources/assets/techreborn/blockstates/chargebench.json
new file mode 100644
index 000000000..4ace933bf
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/chargebench.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.chargebench"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/chargeBench_side"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.chargebench"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/chargeBench_side"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/chargeBench_side"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/chemicalreactor.json b/src/main/resources/assets/techreborn/blockstates/chemicalreactor.json
new file mode 100644
index 000000000..b8e87a7d2
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/chemicalreactor.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.chemicalreactor"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/chemical_reactor_side_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.chemicalreactor"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/chemical_reactor_side_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/chemical_reactor_side_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/chunkloader.json b/src/main/resources/assets/techreborn/blockstates/chunkloader.json
new file mode 100644
index 000000000..bb42501f3
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/chunkloader.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.chunkloader"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/industrial_chunk_loader_side"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.chunkloader"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/industrial_chunk_loader_side"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/industrial_chunk_loader_side"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/computercube.json b/src/main/resources/assets/techreborn/blockstates/computercube.json
new file mode 100644
index 000000000..9f73292aa
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/computercube.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.computercube"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/computer_cube"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.computercube"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/computer_cube"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/computer_cube"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/dieselgenerator.json b/src/main/resources/assets/techreborn/blockstates/dieselgenerator.json
new file mode 100644
index 000000000..239e34dd7
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/dieselgenerator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.dieselgenerator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_machine_side"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.dieselgenerator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_machine_side"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_machine_side"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/distillationtower.json b/src/main/resources/assets/techreborn/blockstates/distillationtower.json
new file mode 100644
index 000000000..7a07872a7
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/distillationtower.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.distillationtower"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/distillation_tower_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.distillationtower"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/distillation_tower_front_off"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/distillation_tower_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/dragoneggenergsiphon.json b/src/main/resources/assets/techreborn/blockstates/dragoneggenergsiphon.json
new file mode 100644
index 000000000..d9f8336be
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/dragoneggenergsiphon.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.dragoneggsiphoner"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/dragon_egg_energy_siphon_side_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.dragoneggsiphoner"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/dragon_egg_energy_siphon_side_off"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/dragon_egg_energy_siphon_side_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/electriccraftingtable.json b/src/main/resources/assets/techreborn/blockstates/electriccraftingtable.json
new file mode 100644
index 000000000..30eb4f37b
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/electriccraftingtable.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.electriccraftingtable"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/electric_crafting_table_front"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.electriccraftingtable"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/electric_crafting_table_front"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/electric_crafting_table_front"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/fusioncoil.json b/src/main/resources/assets/techreborn/blockstates/fusioncoil.json
new file mode 100644
index 000000000..ff6e45083
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/fusioncoil.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.fusioncoil"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/fusion_coil"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.fusioncoil"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/fusion_coil"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/fusion_coil"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/fusioncontrolcomputer.json b/src/main/resources/assets/techreborn/blockstates/fusioncontrolcomputer.json
new file mode 100644
index 000000000..a5badbfc9
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/fusioncontrolcomputer.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.fusioncontrolcomputer"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/fusion_control_computer_front"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.fusioncontrolcomputer"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/fusion_control_computer_front"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/fusion_control_computer_front"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/gasturbine.json b/src/main/resources/assets/techreborn/blockstates/gasturbine.json
new file mode 100644
index 000000000..5d386d9dc
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/gasturbine.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.gasTurbine"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_machine_side"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.gasTurbine"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_machine_side"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_machine_side"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/grinder.json b/src/main/resources/assets/techreborn/blockstates/grinder.json
new file mode 100644
index 000000000..90f286421
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/grinder.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.industrialgrinder"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_grinder_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.industrialgrinder"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_grinder_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_grinder_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/heatgenerator.json b/src/main/resources/assets/techreborn/blockstates/heatgenerator.json
new file mode 100644
index 000000000..f3a212c43
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/heatgenerator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.heatgenerator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/heat_generator_side"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.heatgenerator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/heat_generator_side"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/heat_generator_side"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/implosioncompressor.json b/src/main/resources/assets/techreborn/blockstates/implosioncompressor.json
new file mode 100644
index 000000000..de631a06b
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/implosioncompressor.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.implosioncompressor"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/implosion_compressor_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.implosioncompressor"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/implosion_compressor_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/implosion_compressor_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/industrialSawmill.json b/src/main/resources/assets/techreborn/blockstates/industrialSawmill.json
new file mode 100644
index 000000000..891eb93fb
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/industrialSawmill.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.industrialsawmill"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_sawmill_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.industrialsawmill"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_sawmill_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_sawmill_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/industrialelectrolyzer.json b/src/main/resources/assets/techreborn/blockstates/industrialelectrolyzer.json
new file mode 100644
index 000000000..503e0b080
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/industrialelectrolyzer.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.industrialelectrolyzer"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_electrolyzer_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.industrialelectrolyzer"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_electrolyzer_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_electrolyzer_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/ironfurnace.json b/src/main/resources/assets/techreborn/blockstates/ironfurnace.json
new file mode 100644
index 000000000..27b9ebb74
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/ironfurnace.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.ironfurnace"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/iron_machines/iron_furnace_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.ironfurnace"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/iron_machines/iron_furnace_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/iron_machines/iron_furnace_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/lesustorage.json b/src/main/resources/assets/techreborn/blockstates/lesustorage.json
new file mode 100644
index 000000000..61542f3ec
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/lesustorage.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.lesustorage"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/storage/lesu_block"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.lesustorage"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/storage/lesu_block"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/storage/lesu_block"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/lightningrod.json b/src/main/resources/assets/techreborn/blockstates/lightningrod.json
new file mode 100644
index 000000000..c410e0fce
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/lightningrod.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.lightningrod"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/lightning_rod_side_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.lightningrod"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/lightning_rod_side_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/lightning_rod_side_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/magicenergyconverter.json b/src/main/resources/assets/techreborn/blockstates/magicenergyconverter.json
new file mode 100644
index 000000000..618b458dd
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/magicenergyconverter.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.magicenergyconverter"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/magic_energy_converter_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.magicenergyconverter"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/magic_energy_converter_front_off"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/magic_energy_converter_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/magicrnergyabsorber.json b/src/main/resources/assets/techreborn/blockstates/magicrnergyabsorber.json
new file mode 100644
index 000000000..33e1140ae
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/magicrnergyabsorber.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.magicenergyabsorber"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/magic_energy_absorber_side"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.magicenergyabsorber"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/magic_energy_absorber_side"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/magic_energy_absorber_side"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/matterfabricator.json b/src/main/resources/assets/techreborn/blockstates/matterfabricator.json
new file mode 100644
index 000000000..8ddfe3b4d
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/matterfabricator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.matterfabricator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/matter_fabricator_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.matterfabricator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/matter_fabricator_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/matter_fabricator_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/plasmagenerator.json b/src/main/resources/assets/techreborn/blockstates/plasmagenerator.json
new file mode 100644
index 000000000..d7e509fc2
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/plasmagenerator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.plasmagenerator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/plasma_generator_front"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.plasmagenerator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/plasma_generator_front"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/plasma_generator_front"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/playerDetector.json b/src/main/resources/assets/techreborn/blockstates/playerDetector.json
new file mode 100644
index 000000000..be6d214a8
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/playerDetector.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.playerDetector"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/player_detector_all"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.playerDetector"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/player_detector_all"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/player_detector_all"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/recycler.json b/src/main/resources/assets/techreborn/blockstates/recycler.json
new file mode 100644
index 000000000..9495e540f
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/recycler.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.recycler"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/recycler_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.recycler"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/recycler_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/recycler_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/rollingmachine.json b/src/main/resources/assets/techreborn/blockstates/rollingmachine.json
new file mode 100644
index 000000000..bad377cae
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/rollingmachine.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.rollingmachine"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/rolling_machine_side_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.rollingmachine"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/rolling_machine_side_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/rolling_machine_side_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/scrapboxinator.json b/src/main/resources/assets/techreborn/blockstates/scrapboxinator.json
new file mode 100644
index 000000000..a1d00a07a
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/scrapboxinator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.scrapboxinator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/scrapboxinator_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.scrapboxinator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/scrapboxinator_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/scrapboxinator_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/semifluidgenerator.json b/src/main/resources/assets/techreborn/blockstates/semifluidgenerator.json
new file mode 100644
index 000000000..ab70c46bc
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/semifluidgenerator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.semifluidgenerator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/semifluid_generator_side"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.semifluidgenerator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/semifluid_generator_side"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/semifluid_generator_side"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/supercondensator.json b/src/main/resources/assets/techreborn/blockstates/supercondensator.json
new file mode 100644
index 000000000..2f7112394
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/supercondensator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.supercondensator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/supercondensator_front"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.supercondensator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/supercondensator_front"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/supercondensator_front"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.centrifuge.json b/src/main/resources/assets/techreborn/blockstates/techreborn.centrifuge.json
new file mode 100644
index 000000000..c5006e06c
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.centrifuge.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.centrifuge"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_side_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.centrifuge"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_side_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_side_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.compressor.json b/src/main/resources/assets/techreborn/blockstates/techreborn.compressor.json
new file mode 100644
index 000000000..debf600b6
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.compressor.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.compressor"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/compressor_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.compressor"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/compressor_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/compressor_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.digitalChest.json b/src/main/resources/assets/techreborn/blockstates/techreborn.digitalChest.json
new file mode 100644
index 000000000..a6cdc89d1
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.digitalChest.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.digitalChest"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/quantum_chest"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.digitalChest"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/quantum_chest"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/quantum_chest"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.electricfurnace.json b/src/main/resources/assets/techreborn/blockstates/techreborn.electricfurnace.json
new file mode 100644
index 000000000..59d27ddd8
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.electricfurnace.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.electricfurnace"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/electric_furnace_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.electricfurnace"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/electric_furnace_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/electric_furnace_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.extractor.json b/src/main/resources/assets/techreborn/blockstates/techreborn.extractor.json
new file mode 100644
index 000000000..add332d24
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.extractor.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.extractor"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/extractor_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.extractor"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/extractor_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/extractor_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.generator.json b/src/main/resources/assets/techreborn/blockstates/techreborn.generator.json
new file mode 100644
index 000000000..d6a22f8d5
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.generator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.generator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.generator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/generator_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.grinder.json b/src/main/resources/assets/techreborn/blockstates/techreborn.grinder.json
new file mode 100644
index 000000000..49564c321
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.grinder.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.grinder"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/grinder_front_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.grinder"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/grinder_front_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/tier1_machines/grinder_front_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.quantumChest.json b/src/main/resources/assets/techreborn/blockstates/techreborn.quantumChest.json
new file mode 100644
index 000000000..eb5fa71a3
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.quantumChest.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.quantumChest"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/quantum_chest"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.quantumChest"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/quantum_chest"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/quantum_chest"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.quantumTank.json b/src/main/resources/assets/techreborn/blockstates/techreborn.quantumTank.json
new file mode 100644
index 000000000..b295d6e33
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.quantumTank.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.quantumTank"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/thermal_generator_side_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.quantumTank"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/thermal_generator_side_off"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/thermal_generator_side_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/techreborn.thermalGenerator.json b/src/main/resources/assets/techreborn/blockstates/techreborn.thermalGenerator.json
new file mode 100644
index 000000000..acfdf21f8
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/techreborn.thermalGenerator.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.thermalGenerator"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/generators/thermal_generator_side_off"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.thermalGenerator"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/thermal_generator_side_on"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/generators/thermal_generator_side_off"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/blockstates/vacuumfreezer.json b/src/main/resources/assets/techreborn/blockstates/vacuumfreezer.json
new file mode 100644
index 000000000..0a0640614
--- /dev/null
+++ b/src/main/resources/assets/techreborn/blockstates/vacuumfreezer.json
@@ -0,0 +1,35 @@
+{
+  "forge_marker": 1,
+  "defaults": {
+    "model": "techreborn:tile.techreborn.vacuumfreezer"
+  },
+  "variants": {
+     "inventory": {
+       "transform": "forge:default-block",
+       "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/vacuum_freezer_front"
+        }
+    },
+    "normal":[{"model": "techreborn:tile.techreborn.vacuumfreezer"}],
+
+    "facing":{
+      "north": {},
+      "east": {"y": 90},
+      "south": {"y": 180},
+      "west": {"y": 270}
+    },
+
+    "active":{
+      "true":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/vacuum_freezer_front"
+        }
+      },
+      "false":{
+        "textures": {
+          "front": "techreborn:blocks/machine/greg_machines/vacuum_freezer_front"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.alloyfurnace.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.alloyfurnace.json
new file mode 100644
index 000000000..6499fb26f
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.alloyfurnace.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/iron_machines/iron_machine_side",
+    "top": "techreborn:blocks/machine/iron_machines/iron_machine_top",
+    "front": "techreborn:blocks/machine/iron_machines/alloy_furnace_front_off",
+    "side": "techreborn:blocks/machine/iron_machines/iron_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.alloysmelter.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.alloysmelter.json
new file mode 100644
index 000000000..c7af754b7
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.alloysmelter.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/tier1_machines/tier1_machine_side",
+    "top": "techreborn:blocks/machine/tier1_machines/tier1_machine_top",
+    "front": "techreborn:blocks/machine/tier1_machines/electric_alloy_furnace_front_off",
+    "side": "techreborn:blocks/machine/tier1_machines/tier1_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.assemblingmachine.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.assemblingmachine.json
new file mode 100644
index 000000000..cb60b4875
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.assemblingmachine.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/machine_side",
+    "top": "techreborn:blocks/machine/greg_machines/machine_top",
+    "front": "techreborn:blocks/machine/greg_machines/assembling_machine_front_off",
+    "side": "techreborn:blocks/machine/greg_machines/machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.blastfurnace.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.blastfurnace.json
new file mode 100644
index 000000000..0e8d590bf
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.blastfurnace.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/advanced_machines/advanced_machine_side",
+    "top": "techreborn:blocks/machine/advanced_machines/advanced_machine_top",
+    "front": "techreborn:blocks/machine/advanced_machines/industrial_blast_furnace_front_off",
+    "side": "techreborn:blocks/machine/advanced_machines/advanced_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.centrifuge.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.centrifuge.json
new file mode 100644
index 000000000..527af6681
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.centrifuge.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_side_off",
+    "top": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_top_off",
+    "front": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_side_off",
+    "side": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_side_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.chargebench.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.chargebench.json
new file mode 100644
index 000000000..62d1ec093
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.chargebench.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/chargeBench_side",
+    "top": "techreborn:blocks/machine/greg_machines/chargeBench_side",
+    "front": "techreborn:blocks/machine/greg_machines/chargeBench_side",
+    "side": "techreborn:blocks/machine/greg_machines/chargeBench_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.chemicalreactor.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.chemicalreactor.json
new file mode 100644
index 000000000..a0566e52f
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.chemicalreactor.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/machine_side",
+    "top": "techreborn:blocks/machine/greg_machines/machine_top",
+    "front": "techreborn:blocks/machine/greg_machines/chemical_reactor_side_off",
+    "side": "techreborn:blocks/machine/greg_machines/machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.chunkloader.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.chunkloader.json
new file mode 100644
index 000000000..57af9f02b
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.chunkloader.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/industrial_chunk_loader_side",
+    "top": "techreborn:blocks/machine/greg_machines/machine_top",
+    "front": "techreborn:blocks/machine/greg_machines/industrial_chunk_loader_side",
+    "side": "techreborn:blocks/machine/greg_machines/industrial_chunk_loader_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.compressor.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.compressor.json
new file mode 100644
index 000000000..366c4b897
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.compressor.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/tier1_machines/tier1_machine_side",
+    "top": "techreborn:blocks/machine/tier1_machines/tier1_machine_top",
+    "front": "techreborn:blocks/machine/tier1_machines/compressor_front_off",
+    "side": "techreborn:blocks/machine/tier1_machines/tier1_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.computercube.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.computercube.json
new file mode 100644
index 000000000..e45b52cf4
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.computercube.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/computer_cube",
+    "top": "techreborn:blocks/machine/greg_machines/computer_cube",
+    "front": "techreborn:blocks/machine/greg_machines/computer_cube",
+    "side": "techreborn:blocks/machine/greg_machines/computer_cube"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.dieselgenerator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.dieselgenerator.json
new file mode 100644
index 000000000..54411a4cc
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.dieselgenerator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/generator_machine_side",
+    "top": "techreborn:blocks/machine/generators/diesel_generator_top_off",
+    "front": "techreborn:blocks/machine/generators/generator_machine_side",
+    "side": "techreborn:blocks/machine/generators/generator_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.digitalChest.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.digitalChest.json
new file mode 100644
index 000000000..f90131d06
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.digitalChest.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/qchest_side",
+    "top": "techreborn:blocks/machine/greg_machines/quantum_top",
+    "front": "techreborn:blocks/machine/greg_machines/quantum_chest",
+    "side": "techreborn:blocks/machine/greg_machines/qchest_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.distillationtower.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.distillationtower.json
new file mode 100644
index 000000000..6a161613c
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.distillationtower.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/advanced_machines/advanced_machine_side",
+    "top": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_top_off",
+    "front": "techreborn:blocks/machine/advanced_machines/distillation_tower_front_off",
+    "side": "techreborn:blocks/machine/advanced_machines/advanced_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.dragoneggsiphoner.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.dragoneggsiphoner.json
new file mode 100644
index 000000000..56ae08589
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.dragoneggsiphoner.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/dragon_egg_energy_siphon_side_off",
+    "top": "techreborn:blocks/machine/generators/dragon_egg_energy_siphon_top",
+    "front": "techreborn:blocks/machine/generators/dragon_egg_energy_siphon_side_off",
+    "side": "techreborn:blocks/machine/generators/dragon_egg_energy_siphon_side_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.electriccraftingtable.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.electriccraftingtable.json
new file mode 100644
index 000000000..644081d33
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.electriccraftingtable.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/machine_side",
+    "top": "techreborn:blocks/machine/greg_machines/electric_crafting_table_top",
+    "front": "techreborn:blocks/machine/greg_machines/electric_crafting_table_front",
+    "side": "techreborn:blocks/machine/greg_machines/machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.electricfurnace.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.electricfurnace.json
new file mode 100644
index 000000000..0e489b7ad
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.electricfurnace.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/tier1_machines/tier1_machine_side",
+    "top": "techreborn:blocks/machine/tier1_machines/tier1_machine_top",
+    "front": "techreborn:blocks/machine/tier1_machines/electric_furnace_front_off",
+    "side": "techreborn:blocks/machine/tier1_machines/tier1_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.extractor.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.extractor.json
new file mode 100644
index 000000000..c2757e5d2
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.extractor.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/tier1_machines/tier1_machine_side",
+    "top": "techreborn:blocks/machine/tier1_machines/tier1_machine_top",
+    "front": "techreborn:blocks/machine/tier1_machines/extractor_front_off",
+    "side": "techreborn:blocks/machine/tier1_machines/tier1_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncoil.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncoil.json
new file mode 100644
index 000000000..fb8066669
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncoil.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/fusion_coil",
+    "top": "techreborn:blocks/machine/greg_machines/fusion_coil",
+    "front": "techreborn:blocks/machine/greg_machines/fusion_coil",
+    "side": "techreborn:blocks/machine/greg_machines/fusion_coil"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncontrolcomputer.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncontrolcomputer.json
new file mode 100644
index 000000000..d4a3385ce
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.fusioncontrolcomputer.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/machine_side",
+    "top": "techreborn:blocks/machine/greg_machines/machine_side",
+    "front": "techreborn:blocks/machine/greg_machines/fusion_control_computer_front",
+    "side": "techreborn:blocks/machine/greg_machines/machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.gasTurbine.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.gasTurbine.json
new file mode 100644
index 000000000..d3e97a723
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.gasTurbine.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/generator_machine_side",
+    "top": "techreborn:blocks/machine/generators/gas_generator_top",
+    "front": "techreborn:blocks/machine/generators/generator_machine_side",
+    "side": "techreborn:blocks/machine/generators/generator_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.generator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.generator.json
new file mode 100644
index 000000000..1dae57836
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.generator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/generator_machine_side",
+    "top": "techreborn:blocks/machine/generators/generator_machine_top",
+    "front": "techreborn:blocks/machine/generators/generator_front_off",
+    "side": "techreborn:blocks/machine/generators/generator_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.grinder.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.grinder.json
new file mode 100644
index 000000000..f655b98b7
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.grinder.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/tier1_machines/tier1_machine_side",
+    "top": "techreborn:blocks/machine/tier1_machines/grinder_top_off",
+    "front": "techreborn:blocks/machine/tier1_machines/grinder_front_off",
+    "side": "techreborn:blocks/machine/tier1_machines/tier1_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.heatgenerator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.heatgenerator.json
new file mode 100644
index 000000000..729753960
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.heatgenerator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/heat_generator_side",
+    "top": "techreborn:blocks/machine/generators/heat_generator_top",
+    "front": "techreborn:blocks/machine/generators/heat_generator_side",
+    "side": "techreborn:blocks/machine/generators/heat_generator_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.implosioncompressor.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.implosioncompressor.json
new file mode 100644
index 000000000..8332357f4
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.implosioncompressor.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/advanced_machines/advanced_machine_side",
+    "top": "techreborn:blocks/machine/advanced_machines/industrial_centrifuge_top_off",
+    "front": "techreborn:blocks/machine/advanced_machines/implosion_compressor_front_off",
+    "side": "techreborn:blocks/machine/advanced_machines/advanced_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialelectrolyzer.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialelectrolyzer.json
new file mode 100644
index 000000000..818b7072b
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialelectrolyzer.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/advanced_machines/industrial_electrolyzer_front_off",
+    "top": "techreborn:blocks/machine/advanced_machines/machine_top",
+    "front": "techreborn:blocks/machine/advanced_machines/industrial_electrolyzer_front_off",
+    "side": "techreborn:blocks/machine/advanced_machines/industrial_electrolyzer_front_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialgrinder.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialgrinder.json
new file mode 100644
index 000000000..888591c9e
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialgrinder.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/advanced_machines/machine_side",
+    "top": "techreborn:blocks/machine/advanced_machines/industrial_grinder_top_off",
+    "front": "techreborn:blocks/machine/advanced_machines/industrial_grinder_front_off",
+    "side": "techreborn:blocks/machine/advanced_machines/machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialsawmill.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialsawmill.json
new file mode 100644
index 000000000..f5cda800e
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.industrialsawmill.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/advanced_machines/advanced_machine_side",
+    "top": "techreborn:blocks/machine/advanced_machines/advanced_machine_side",
+    "front": "techreborn:blocks/machine/advanced_machines/industrial_sawmill_front_off",
+    "side": "techreborn:blocks/machine/advanced_machines/advanced_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.ironfurnace.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.ironfurnace.json
new file mode 100644
index 000000000..621f838b7
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.ironfurnace.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/iron_machines/iron_machine_side",
+    "top": "techreborn:blocks/machine/iron_machines/iron_machine_top",
+    "front": "techreborn:blocks/machine/iron_machines/iron_furnace_front_off",
+    "side": "techreborn:blocks/machine/iron_machines/iron_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.lesustorage.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.lesustorage.json
new file mode 100644
index 000000000..386a36f41
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.lesustorage.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/storage/lesu_block",
+    "top": "techreborn:blocks/machine/storage/lesu_block",
+    "front": "techreborn:blocks/machine/storage/lesu_block",
+    "side": "techreborn:blocks/machine/storage/lesu_block"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.lightningrod.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.lightningrod.json
new file mode 100644
index 000000000..7d5f0278f
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.lightningrod.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/lightning_rod_side_off",
+    "top": "techreborn:blocks/machine/generators/lightning_rod_top_off",
+    "front": "techreborn:blocks/machine/generators/lightning_rod_side_off",
+    "side": "techreborn:blocks/machine/generators/lightning_rod_side_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyabsorber.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyabsorber.json
new file mode 100644
index 000000000..55bbc3b6a
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyabsorber.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/magic_energy_absorber_side",
+    "top": "techreborn:blocks/machine/generators/magic_energy_absorber_top",
+    "front": "techreborn:blocks/machine/generators/magic_energy_absorber_side",
+    "side": "techreborn:blocks/machine/generators/magic_energy_absorber_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyconverter.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyconverter.json
new file mode 100644
index 000000000..e7fe9cfea
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.magicenergyconverter.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/magic_energy_converter_side",
+    "top": "techreborn:blocks/machine/generators/magic_energy_converter_top",
+    "front": "techreborn:blocks/machine/generators/magic_energy_converter_front_off",
+    "side": "techreborn:blocks/machine/generators/magic_energy_converter_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.matterfabricator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.matterfabricator.json
new file mode 100644
index 000000000..f5b543c9b
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.matterfabricator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/matter_fabricator_off",
+    "top": "techreborn:blocks/machine/greg_machines/matter_fabricator_off",
+    "front": "techreborn:blocks/machine/greg_machines/matter_fabricator_off",
+    "side": "techreborn:blocks/machine/greg_machines/matter_fabricator_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.plasmagenerator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.plasmagenerator.json
new file mode 100644
index 000000000..c2bfe373d
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.plasmagenerator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/plasma_generator_side_off",
+    "top": "techreborn:blocks/machine/generators/plasma_generator_side_off",
+    "front": "techreborn:blocks/machine/generators/plasma_generator_front",
+    "side": "techreborn:blocks/machine/generators/plasma_generator_side_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.playerDetector.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.playerDetector.json
new file mode 100644
index 000000000..6beaeb6e9
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.playerDetector.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/player_detector_all",
+    "top": "techreborn:blocks/machine/greg_machines/player_detector_all",
+    "front": "techreborn:blocks/machine/greg_machines/player_detector_all",
+    "side": "techreborn:blocks/machine/greg_machines/player_detector_all"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumChest.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumChest.json
new file mode 100644
index 000000000..f90131d06
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumChest.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/qchest_side",
+    "top": "techreborn:blocks/machine/greg_machines/quantum_top",
+    "front": "techreborn:blocks/machine/greg_machines/quantum_chest",
+    "side": "techreborn:blocks/machine/greg_machines/qchest_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumTank.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumTank.json
new file mode 100644
index 000000000..f36c895b1
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.quantumTank.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/thermal_generator_side_off",
+    "top": "techreborn:blocks/machine/greg_machines/quantum_top",
+    "front": "techreborn:blocks/machine/generators/thermal_generator_side_off",
+    "side": "techreborn:blocks/machine/generators/thermal_generator_side_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.recycler.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.recycler.json
new file mode 100644
index 000000000..a1cc858af
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.recycler.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/tier1_machines/tier1_machine_side",
+    "top": "techreborn:blocks/machine/tier1_machines/tier1_machine_top",
+    "front": "techreborn:blocks/machine/tier1_machines/recycler_front_off",
+    "side": "techreborn:blocks/machine/tier1_machines/tier1_machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.rollingmachine.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.rollingmachine.json
new file mode 100644
index 000000000..71ddafc6d
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.rollingmachine.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/machine_side",
+    "top": "techreborn:blocks/machine/greg_machines/machine_top",
+    "front": "techreborn:blocks/machine/greg_machines/rolling_machine_side_off",
+    "side": "techreborn:blocks/machine/greg_machines/machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.scrapboxinator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.scrapboxinator.json
new file mode 100644
index 000000000..7b3284cd0
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.scrapboxinator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/machine_side",
+    "top": "techreborn:blocks/machine/greg_machines/machine_top",
+    "front": "techreborn:blocks/machine/greg_machines/scrapboxinator_front_off",
+    "side": "techreborn:blocks/machine/greg_machines/machine_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.semifluidgenerator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.semifluidgenerator.json
new file mode 100644
index 000000000..d12fba1e2
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.semifluidgenerator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/semifluid_generator_side",
+    "top": "techreborn:blocks/machine/generators/generator_machine_top",
+    "front": "techreborn:blocks/machine/generators/semifluid_generator_side",
+    "side": "techreborn:blocks/machine/generators/semifluid_generator_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.supercondensator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.supercondensator.json
new file mode 100644
index 000000000..6940c5745
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.supercondensator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/supercondensator_side",
+    "top": "techreborn:blocks/machine/greg_machines/supercondensator_side",
+    "front": "techreborn:blocks/machine/greg_machines/supercondensator_front",
+    "side": "techreborn:blocks/machine/greg_machines/supercondensator_side"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.thermalGenerator.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.thermalGenerator.json
new file mode 100644
index 000000000..d85a66892
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.thermalGenerator.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/generators/thermal_generator_side_off",
+    "top": "techreborn:blocks/machine/generators/thermal_generator_top_off",
+    "front": "techreborn:blocks/machine/generators/thermal_generator_side_off",
+    "side": "techreborn:blocks/machine/generators/thermal_generator_side_off"
+  }
+}
\ No newline at end of file
diff --git a/src/main/resources/assets/techreborn/models/block/tile.techreborn.vacuumfreezer.json b/src/main/resources/assets/techreborn/models/block/tile.techreborn.vacuumfreezer.json
new file mode 100644
index 000000000..d9a71105c
--- /dev/null
+++ b/src/main/resources/assets/techreborn/models/block/tile.techreborn.vacuumfreezer.json
@@ -0,0 +1,9 @@
+{
+  "parent": "block/orientable",
+  "textures": {
+    "particle": "techreborn:blocks/machine/greg_machines/machine_side",
+    "top": "techreborn:blocks/machine/greg_machines/vacuum_freezer_top",
+    "front": "techreborn:blocks/machine/greg_machines/vacuum_freezer_front",
+    "side": "techreborn:blocks/machine/greg_machines/machine_side"
+  }
+}
\ No newline at end of file