aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/tectech/thing/block
diff options
context:
space:
mode:
authorNotAPenguin <michiel.vandeginste@gmail.com>2024-09-02 23:17:17 +0200
committerGitHub <noreply@github.com>2024-09-02 23:17:17 +0200
commit1b820de08a05070909a267e17f033fcf58ac8710 (patch)
tree02831a025986a06b20f87e5bcc69d1e0c639a342 /src/main/java/tectech/thing/block
parentafd3fd92b6a6ab9ab0d0dc3214e6bc8ff7a86c9b (diff)
downloadGT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.gz
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.tar.bz2
GT5-Unofficial-1b820de08a05070909a267e17f033fcf58ac8710.zip
The Great Renaming (#3014)
* move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names
Diffstat (limited to 'src/main/java/tectech/thing/block')
-rw-r--r--src/main/java/tectech/thing/block/BlockEOHRender.java78
-rw-r--r--src/main/java/tectech/thing/block/BlockForgeOfGods.java71
-rw-r--r--src/main/java/tectech/thing/block/BlockGodforgeGlass.java106
-rw-r--r--src/main/java/tectech/thing/block/BlockQuantumGlass.java110
-rw-r--r--src/main/java/tectech/thing/block/BlockQuantumStuff.java103
-rw-r--r--src/main/java/tectech/thing/block/BlockReactorSim.java94
-rw-r--r--src/main/java/tectech/thing/block/ItemGodForgeGlass.java31
-rw-r--r--src/main/java/tectech/thing/block/ItemQuantumGlass.java34
-rw-r--r--src/main/java/tectech/thing/block/ItemReactorSim.java37
-rw-r--r--src/main/java/tectech/thing/block/RenderForgeOfGods.java65
-rw-r--r--src/main/java/tectech/thing/block/RenderGodforgeGlass.java122
-rw-r--r--src/main/java/tectech/thing/block/RenderQuantumGlass.java129
-rw-r--r--src/main/java/tectech/thing/block/RenderQuantumStuff.java103
-rw-r--r--src/main/java/tectech/thing/block/TileEntityEyeOfHarmony.java200
-rw-r--r--src/main/java/tectech/thing/block/TileEntityForgeOfGods.java82
15 files changed, 1365 insertions, 0 deletions
diff --git a/src/main/java/tectech/thing/block/BlockEOHRender.java b/src/main/java/tectech/thing/block/BlockEOHRender.java
new file mode 100644
index 0000000000..db70a4a956
--- /dev/null
+++ b/src/main/java/tectech/thing/block/BlockEOHRender.java
@@ -0,0 +1,78 @@
+package tectech.thing.block;
+
+import java.util.ArrayList;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import tectech.TecTech;
+
+public class BlockEOHRender extends Block {
+
+ public BlockEOHRender() {
+ super(Material.iron);
+ this.setResistance(20f);
+ this.setHardness(-1.0f);
+ this.setCreativeTab(TecTech.creativeTabTecTech);
+ this.setBlockName("Eye of Harmony Renderer");
+ this.setLightLevel(100.0f);
+ registerOther(this);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister iconRegister) {
+ blockIcon = iconRegister.registerIcon("gregtech:iconsets/TRANSPARENT");
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ public boolean canRenderInPass(int a) {
+ return true;
+ }
+
+ @Override
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ @Override
+ public boolean hasTileEntity(int metadata) {
+ return true;
+ }
+
+ @Override
+ public TileEntity createTileEntity(World world, int metadata) {
+ return new TileEntityEyeOfHarmony();
+ }
+
+ public static void registerOther(Block block) {
+ String name = block.getUnlocalizedName()
+ .substring(
+ block.getUnlocalizedName()
+ .indexOf(".") + 1);
+ GameRegistry.registerBlock(block, name.substring(name.indexOf(":") + 1));
+ }
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public boolean isCollidable() {
+ return false;
+ }
+
+}
diff --git a/src/main/java/tectech/thing/block/BlockForgeOfGods.java b/src/main/java/tectech/thing/block/BlockForgeOfGods.java
new file mode 100644
index 0000000000..a53299f229
--- /dev/null
+++ b/src/main/java/tectech/thing/block/BlockForgeOfGods.java
@@ -0,0 +1,71 @@
+package tectech.thing.block;
+
+import java.util.ArrayList;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemStack;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import tectech.TecTech;
+
+public class BlockForgeOfGods extends Block {
+
+ public BlockForgeOfGods() {
+ super(Material.iron);
+ this.setResistance(20f);
+ this.setHardness(-1.0f);
+ this.setCreativeTab(TecTech.creativeTabTecTech);
+ this.setBlockName("Forge of the Gods Renderer");
+ this.setLightLevel(100.0f);
+ if (TecTech.configTecTech.ENABLE_GOD_FORGE) {
+ registerOther(this);
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister iconRegister) {
+ blockIcon = iconRegister.registerIcon("gregtech:iconsets/TRANSPARENT");
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ public boolean canRenderInPass(int a) {
+ return true;
+ }
+
+ @Override
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ @Override
+ public boolean hasTileEntity(int metadata) {
+ return true;
+ }
+
+ @Override
+ public TileEntity createTileEntity(World world, int metadata) {
+ return new TileEntityForgeOfGods();
+ }
+
+ public static void registerOther(Block block) {
+ GameRegistry.registerBlock(block, "ForgeOfGodsRenderBlock");
+ }
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) {
+ return new ArrayList<>();
+ }
+
+}
diff --git a/src/main/java/tectech/thing/block/BlockGodforgeGlass.java b/src/main/java/tectech/thing/block/BlockGodforgeGlass.java
new file mode 100644
index 0000000000..e29e815212
--- /dev/null
+++ b/src/main/java/tectech/thing/block/BlockGodforgeGlass.java
@@ -0,0 +1,106 @@
+package tectech.thing.block;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import eu.usrv.yamcore.blocks.BlockBase;
+import gregtech.api.GregTechAPI;
+import tectech.Reference;
+import tectech.TecTech;
+
+public class BlockGodforgeGlass extends BlockBase {
+
+ public static IIcon Icon;
+ public static int renderID;
+ public static BlockGodforgeGlass INSTANCE;
+
+ public BlockGodforgeGlass() {
+ super(Material.iron);
+ setBlockBounds(0, 0, 0, 1, 1, 1);
+ setBlockName("spatiallyTranscendentGravitationalLens");
+ setHarvestLevel("wrench", 3);
+ setHardness(50);
+ setResistance(30);
+ setLightOpacity(0);
+ setStepSound(Block.soundTypeGlass);
+ setBlockTextureName(Reference.MODID + ":blockSpatiallyTranscendentGravitationalLens");
+ setCreativeTab(TecTech.creativeTabTecTech);
+ }
+
+ @Override
+ public boolean isBeaconBase(IBlockAccess worldObj, int x, int y, int z, int beaconX, int beaconY, int beaconZ) {
+ return true;
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ public boolean getCanBlockGrass() {
+ return false;
+ }
+
+ @Override
+ public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getRenderBlockPass() {
+ return 1;
+ }
+
+ @Override
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean shouldSideBeRendered(IBlockAccess worldIn, int x, int y, int z, int side) {
+ Block block = worldIn.getBlock(x, y, z);
+ return block != this;
+ }
+
+ @Override
+ public int getRenderType() {
+ return renderID;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister reg) {
+ super.registerBlockIcons(reg);
+ Icon = blockIcon;
+ }
+
+ public static void run() {
+ INSTANCE = new BlockGodforgeGlass();
+ GameRegistry.registerBlock(INSTANCE, ItemGodForgeGlass.class, INSTANCE.getUnlocalizedName());
+ GregTechAPI.registerMachineBlock(INSTANCE, -1);
+ }
+
+ @Override
+ public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMeta) {
+ if (GregTechAPI.isMachineBlock(this, aMeta)) {
+ GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ);
+ }
+ }
+
+ @Override
+ public void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
+ if (GregTechAPI.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) {
+ GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ);
+ }
+ }
+}
diff --git a/src/main/java/tectech/thing/block/BlockQuantumGlass.java b/src/main/java/tectech/thing/block/BlockQuantumGlass.java
new file mode 100644
index 0000000000..fa0b6c4681
--- /dev/null
+++ b/src/main/java/tectech/thing/block/BlockQuantumGlass.java
@@ -0,0 +1,110 @@
+package tectech.thing.block;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import eu.usrv.yamcore.blocks.BlockBase;
+import gregtech.api.GregTechAPI;
+import tectech.Reference;
+import tectech.TecTech;
+
+/**
+ * Created by danie_000 on 17.12.2016.
+ */
+public final class BlockQuantumGlass extends BlockBase {
+
+ public static IIcon stuff;
+ public static int renderID;
+ public static BlockQuantumGlass INSTANCE;
+
+ public BlockQuantumGlass() {
+ super(Material.iron);
+ setBlockBounds(0, 0, 0, 1, 1, 1);
+ setBlockName("quantumGlass");
+ setHarvestLevel("wrench", 3);
+ setHardness(50);
+ setResistance(30);
+ setLightOpacity(0);
+ setStepSound(Block.soundTypeMetal);
+ setBlockTextureName(Reference.MODID + ":blockQuantumGlass");
+ setCreativeTab(TecTech.creativeTabTecTech);
+ }
+
+ @Override
+ public boolean isBeaconBase(IBlockAccess worldObj, int x, int y, int z, int beaconX, int beaconY, int beaconZ) {
+ return true;
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ public boolean getCanBlockGrass() {
+ return false;
+ }
+
+ @Override
+ public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getRenderBlockPass() {
+ return 1;
+ }
+
+ @Override
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean shouldSideBeRendered(IBlockAccess worldIn, int x, int y, int z, int side) {
+ Block block = worldIn.getBlock(x, y, z);
+ return block != this; // && super.shouldSideBeRendered(worldIn, x, y, z,
+ // side);
+ }
+
+ @Override
+ public int getRenderType() {
+ return renderID;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister reg) {
+ super.registerBlockIcons(reg);
+ stuff = blockIcon;
+ }
+
+ public static void run() {
+ INSTANCE = new BlockQuantumGlass();
+ GameRegistry.registerBlock(INSTANCE, ItemQuantumGlass.class, INSTANCE.getUnlocalizedName());
+ GregTechAPI.registerMachineBlock(INSTANCE, -1);
+ }
+
+ @Override
+ public void breakBlock(World aWorld, int aX, int aY, int aZ, Block aBlock, int aMeta) {
+ if (GregTechAPI.isMachineBlock(this, aMeta)) {
+ GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ);
+ }
+ }
+
+ @Override
+ public void onBlockAdded(World aWorld, int aX, int aY, int aZ) {
+ if (GregTechAPI.isMachineBlock(this, aWorld.getBlockMetadata(aX, aY, aZ))) {
+ GregTechAPI.causeMachineUpdate(aWorld, aX, aY, aZ);
+ }
+ }
+}
diff --git a/src/main/java/tectech/thing/block/BlockQuantumStuff.java b/src/main/java/tectech/thing/block/BlockQuantumStuff.java
new file mode 100644
index 0000000000..bdbdb35510
--- /dev/null
+++ b/src/main/java/tectech/thing/block/BlockQuantumStuff.java
@@ -0,0 +1,103 @@
+package tectech.thing.block;
+
+import java.util.ArrayList;
+import java.util.Random;
+
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import eu.usrv.yamcore.blocks.BlockBase;
+import tectech.Reference;
+
+/**
+ * Created by danie_000 on 17.12.2016.
+ */
+public final class BlockQuantumStuff extends BlockBase {
+
+ public static IIcon stuff;
+ public static int renderID;
+ public static BlockQuantumStuff INSTANCE;
+
+ public BlockQuantumStuff() {
+ super(Material.iron);
+ setBlockBounds(0, 0, 0, 1, 1, 1);
+ setBlockName("quantumStuff");
+ setHarvestLevel("wrench", 0);
+ setHardness(500);
+ setResistance(1);
+ setLightOpacity(0);
+ setBlockTextureName(Reference.MODID + ":blockQuantumStuff");
+ }
+
+ @Override
+ public boolean isBeaconBase(IBlockAccess worldObj, int x, int y, int z, int beaconX, int beaconY, int beaconZ) {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister reg) {
+ super.registerBlockIcons(reg);
+ stuff = blockIcon;
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return false;
+ }
+
+ @Override
+ public boolean getCanBlockGrass() {
+ return false;
+ }
+
+ @Override
+ public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getRenderBlockPass() {
+ return 1;
+ }
+
+ @Override
+ public boolean renderAsNormalBlock() {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean shouldSideBeRendered(IBlockAccess worldIn, int x, int y, int z, int side) {
+ return false;
+ }
+
+ @Override
+ public int getRenderType() {
+ return renderID;
+ }
+
+ public static void run() {
+ INSTANCE = new BlockQuantumStuff();
+ GameRegistry.registerBlock(INSTANCE, INSTANCE.getUnlocalizedName());
+ }
+
+ @Override
+ public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
+ return new ArrayList<>();
+ }
+
+ @Override
+ public Item getItemDropped(int meta, Random random, int fortune) {
+ return null;
+ }
+}
diff --git a/src/main/java/tectech/thing/block/BlockReactorSim.java b/src/main/java/tectech/thing/block/BlockReactorSim.java
new file mode 100644
index 0000000000..745db9084f
--- /dev/null
+++ b/src/main/java/tectech/thing/block/BlockReactorSim.java
@@ -0,0 +1,94 @@
+package tectech.thing.block;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.ITileEntityProvider;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import ic2.core.IC2;
+import ic2.core.IHasGui;
+import ic2.core.block.TileEntityBlock;
+import tectech.Reference;
+import tectech.thing.tileEntity.TileEntityReactorSim;
+
+/**
+ * Created by danie_000 on 30.09.2017.
+ */
+public class BlockReactorSim extends Block implements ITileEntityProvider {
+
+ public static BlockReactorSim INSTANCE;
+ public static IIcon stuff;
+
+ public BlockReactorSim() {
+ super(Material.iron);
+ setBlockBounds(0, 0, 0, 1, 1, 1);
+ setBlockName("reactorSim");
+ setHarvestLevel("wrench", 3);
+ setHardness(50);
+ setResistance(30);
+ setLightOpacity(0);
+ setStepSound(Block.soundTypeMetal);
+ setBlockTextureName(Reference.MODID + ":blockReactorSimulator");
+ }
+
+ @Override
+ public boolean isOpaqueCube() {
+ return true;
+ }
+
+ @Override
+ public boolean getCanBlockGrass() {
+ return true;
+ }
+
+ @Override
+ public boolean canBeReplacedByLeaves(IBlockAccess world, int x, int y, int z) {
+ return false;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister reg) {
+ super.registerBlockIcons(reg);
+ stuff = blockIcon;
+ }
+
+ public static void run() {
+ INSTANCE = new BlockReactorSim();
+ GameRegistry.registerBlock(INSTANCE, ItemReactorSim.class, INSTANCE.getUnlocalizedName());
+ GameRegistry.registerTileEntity(TileEntityReactorSim.class, Reference.MODID + "_reactorSim");
+ }
+
+ @Override
+ public TileEntity createNewTileEntity(World worldIn, int meta) {
+ return new TileEntityReactorSim();
+ }
+
+ @Override
+ public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float a,
+ float b, float c) {
+ if (entityPlayer.isSneaking()) {
+ return false;
+ } else {
+ TileEntity te = world.getTileEntity(x, y, z);
+ return te instanceof IHasGui
+ && (!IC2.platform.isSimulating() || IC2.platform.launchGui(entityPlayer, (IHasGui) te));
+ }
+ }
+
+ @Override
+ public void onNeighborBlockChange(World world, int x, int y, int z, Block srcBlock) {
+ TileEntity te = world.getTileEntity(x, y, z);
+ if (te instanceof TileEntityBlock) {
+ ((TileEntityBlock) te).onNeighborUpdate(srcBlock);
+ }
+ }
+}
diff --git a/src/main/java/tectech/thing/block/ItemGodForgeGlass.java b/src/main/java/tectech/thing/block/ItemGodForgeGlass.java
new file mode 100644
index 0000000000..c4c355cc19
--- /dev/null
+++ b/src/main/java/tectech/thing/block/ItemGodForgeGlass.java
@@ -0,0 +1,31 @@
+package tectech.thing.block;
+
+import static net.minecraft.util.StatCollector.translateToLocal;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+
+import tectech.util.CommonValues;
+
+public class ItemGodForgeGlass extends ItemBlock {
+
+ public static ItemGodForgeGlass INSTANCE;
+
+ public ItemGodForgeGlass(Block block) {
+ super(block);
+ }
+
+ @Override
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List<String> aList, boolean aF3_H) {
+ aList.add(CommonValues.GODFORGE_MARK);
+ aList.add(translateToLocal("tile.godforgeGlass.desc.0"));
+ aList.add(
+ EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD
+ + translateToLocal("tile.godforgeGlass.desc.1"));
+ }
+}
diff --git a/src/main/java/tectech/thing/block/ItemQuantumGlass.java b/src/main/java/tectech/thing/block/ItemQuantumGlass.java
new file mode 100644
index 0000000000..441c7363e4
--- /dev/null
+++ b/src/main/java/tectech/thing/block/ItemQuantumGlass.java
@@ -0,0 +1,34 @@
+package tectech.thing.block;
+
+import static net.minecraft.util.StatCollector.translateToLocal;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+
+import tectech.util.CommonValues;
+
+/**
+ * Created by Tec on 11.04.2017.
+ */
+public class ItemQuantumGlass extends ItemBlock {
+
+ public static ItemQuantumGlass INSTANCE;
+
+ public ItemQuantumGlass(Block block) {
+ super(block);
+ }
+
+ @Override
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List<String> aList, boolean aF3_H) {
+ aList.add(CommonValues.TEC_MARK_EM);
+ aList.add(translateToLocal("tile.quantumGlass.desc.0")); // Dense yet transparent
+ aList.add(
+ EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD
+ + translateToLocal("tile.quantumGlass.desc.1")); // Glassy & Classy
+ }
+}
diff --git a/src/main/java/tectech/thing/block/ItemReactorSim.java b/src/main/java/tectech/thing/block/ItemReactorSim.java
new file mode 100644
index 0000000000..bd4bcffde2
--- /dev/null
+++ b/src/main/java/tectech/thing/block/ItemReactorSim.java
@@ -0,0 +1,37 @@
+package tectech.thing.block;
+
+import static net.minecraft.util.StatCollector.translateToLocal;
+
+import java.util.List;
+
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+
+import tectech.util.CommonValues;
+
+/**
+ * Created by danie_000 on 30.09.2017.
+ */
+public class ItemReactorSim extends ItemBlock {
+
+ public static ItemQuantumGlass INSTANCE;
+
+ public ItemReactorSim(Block block) {
+ super(block);
+ }
+
+ @Override
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List<String> aList, boolean aF3_H) {
+ aList.add(CommonValues.TEC_MARK_GENERAL);
+ aList.add(translateToLocal("tile.reactorSim.desc.0")); // Fission Reaction Uncertainty Resolver 9001
+ aList.add(
+ EnumChatFormatting.AQUA.toString() + EnumChatFormatting.BOLD + translateToLocal("tile.reactorSim.desc.1")); // Explodes,
+ // but
+ // not
+ // as
+ // much...
+ }
+}
diff --git a/src/main/java/tectech/thing/block/RenderForgeOfGods.java b/src/main/java/tectech/thing/block/RenderForgeOfGods.java
new file mode 100644
index 0000000000..976dd6da8e
--- /dev/null
+++ b/src/main/java/tectech/thing/block/RenderForgeOfGods.java
@@ -0,0 +1,65 @@
+package tectech.thing.block;
+
+import static tectech.Reference.MODID;
+import static tectech.rendering.EOH.EOHRenderingUtils.renderStarLayer;
+import static tectech.rendering.EOH.EOHTileEntitySR.STAR_LAYER_0;
+import static tectech.rendering.EOH.EOHTileEntitySR.STAR_LAYER_1;
+import static tectech.rendering.EOH.EOHTileEntitySR.STAR_LAYER_2;
+
+import java.awt.Color;
+
+import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
+import net.minecraft.tileentity.TileEntity;
+import net.minecraft.util.ResourceLocation;
+import net.minecraftforge.client.model.AdvancedModelLoader;
+import net.minecraftforge.client.model.IModelCustom;
+
+import org.lwjgl.opengl.GL11;
+
+public class RenderForgeOfGods extends TileEntitySpecialRenderer {
+
+ public static IModelCustom starModel;
+
+ public RenderForgeOfGods() {
+ starModel = AdvancedModelLoader.loadModel(new ResourceLocation(MODID, "models/Star.obj"));
+ }
+
+ @Override
+ public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float timeSinceLastTick) {
+ if (!(tile instanceof TileEntityForgeOfGods)) return;
+
+ {
+ GL11.glPushMatrix();
+ GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5);
+ GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
+ GL11.glDisable(GL11.GL_LIGHTING);
+ GL11.glDisable(GL11.GL_BLEND);
+
+ // Innermost layer should be opaque
+ enableOpaqueColorInversion();
+ renderStarLayer(0, STAR_LAYER_0, new Color(1.0f, 0.4f, 0.05f, 1.0f), 1.0f, 25);
+ disableOpaqueColorInversion();
+
+ enablePseudoTransparentColorInversion();
+ renderStarLayer(1, STAR_LAYER_1, new Color(1.0f, 0.4f, 0.05f, 1.0f), 0.4f, 25);
+ renderStarLayer(2, STAR_LAYER_2, new Color(1.0f, 0.4f, 0.05f, 1.0f), 0.2f, 25);
+
+ GL11.glPopAttrib();
+ GL11.glPopMatrix();
+ }
+ }
+
+ public static void enablePseudoTransparentColorInversion() {
+ GL11.glEnable(GL11.GL_COLOR_LOGIC_OP);
+ GL11.glLogicOp(GL11.GL_OR_INVERTED);
+ }
+
+ public static void enableOpaqueColorInversion() {
+ GL11.glEnable(GL11.GL_COLOR_LOGIC_OP);
+ GL11.glLogicOp(GL11.GL_COPY_INVERTED);
+ }
+
+ public static void disableOpaqueColorInversion() {
+ GL11.glDisable(GL11.GL_COLOR_LOGIC_OP);
+ }
+}
diff --git a/src/main/java/tectech/thing/block/RenderGodforgeGlass.java b/src/main/java/tectech/thing/block/RenderGodforgeGlass.java
new file mode 100644
index 0000000000..12c0327f65
--- /dev/null
+++ b/src/main/java/tectech/thing/block/RenderGodforgeGlass.java
@@ -0,0 +1,122 @@
+package tectech.thing.block;
+
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.RenderBlocks;
+import net.minecraft.client.renderer.Tessellator;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+
+import org.lwjgl.opengl.GL11;
+
+import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
+
+public class RenderGodforgeGlass implements ISimpleBlockRenderingHandler {
+
+ @Override
+ public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) {
+ GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
+ Tessellator tessellator = Tessellator.instance;
+ GL11.glPushMatrix();
+ // Get icons from custom register (useful for renderers and fluids)
+ IIcon side = BlockGodforgeGlass.Icon;
+ tessellator.startDrawingQuads();
+ tessellator.setNormal(0.0F, -1.0F, 0.0F);
+ renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, side);
+ tessellator.draw();
+ tessellator.startDrawingQuads();
+ tessellator.setNormal(0.0F, 0.0F, -1.0F);
+ renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, side);
+ tessellator.draw();
+ tessellator.startDrawingQuads();
+ tessellator.setNormal(0.0F, 0.0F, 1.0F);
+ renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, side);
+ tessellator.draw();
+ tessellator.startDrawingQuads();
+ tessellator.setNormal(-1.0F, 0.0F, 0.0F);
+ renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, side);
+ tessellator.draw();
+ tessellator.startDrawingQuads();
+ tessellator.setNormal(1.0F, 0.0F, 0.0F);
+ renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, side);
+ tessellator.draw();
+ tessellator.startDrawingQuads();
+ tessellator.setNormal(0.0F, 1.0F, 0.0F);
+ renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, side);
+ tessellator.draw();
+ GL11.glTranslatef(0.5F, 0.5F, 0.5F);
+ GL11.glPopMatrix();
+ }
+
+ @Override
+ public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId,
+ RenderBlocks renderer) {
+
+ renderer.renderStandardBlock(block, x, y, z);
+ Tessellator tes = Tessellator.instance;
+ tes.setNormal(0F, 1F, 0F);
+ tes.setBrightness(15728880);
+ tes.setColorOpaque_F(0F, 1F, 1F);
+ IIcon side = BlockGodforgeGlass.Icon;
+
+ // South
+ if (world.getBlock(x, y, z + 1)
+ .getClass() != BlockGodforgeGlass.class) {
+ tes.addVertexWithUV(x, y, z + 0.999, side.getMinU(), side.getMaxV()); // 0.999 instead of 1 for fighting
+ // (textures overlapping)
+ tes.addVertexWithUV(x, y + 1, z + 0.999, side.getMinU(), side.getMinV());
+ tes.addVertexWithUV(x + 1, y + 1, z + 0.999, side.getMaxU(), side.getMinV());
+ tes.addVertexWithUV(x + 1, y, z + 0.999, side.getMaxU(), side.getMaxV());
+ }
+ // East
+ if (world.getBlock(x + 1, y, z)
+ .getClass() != BlockGodforgeGlass.class) {
+ tes.addVertexWithUV(x + 0.999, y, z + 1, side.getMinU(), side.getMaxV());
+ tes.addVertexWithUV(x + 0.999, y + 1, z + 1, side.getMinU(), side.getMinV());
+ tes.addVertexWithUV(x + 0.999, y + 1, z, side.getMaxU(), side.getMinV());
+ tes.addVertexWithUV(x + 0.999, y, z, side.getMaxU(), side.getMaxV());
+ }
+ // North
+ if (world.getBlock(x, y, z - 1)
+ .getClass() != BlockGodforgeGlass.class) {
+ tes.addVertexWithUV(x + 1, y, z + 0.001, side.getMinU(), side.getMaxV());
+ tes.addVertexWithUV(x + 1, y + 1, z + 0.001, side.getMinU(), side.getMinV());
+ tes.addVertexWithUV(x, y + 1, z + 0.001, side.getMaxU(), side.getMinV());
+ tes.addVertexWithUV(x, y, z + 0.001, side.getMaxU(), side.getMaxV());
+ }
+ // West
+ if (world.getBlock(x - 1, y, z)
+ .getClass() != BlockGodforgeGlass.class) {
+ tes.addVertexWithUV(x + 0.001, y, z, side.getMinU(), side.getMaxV());
+