diff --git a/src/main/java/gregtech/api/render/Textures.java b/src/main/java/gregtech/api/render/Textures.java index 6b53aaee539..d5628237c5d 100644 --- a/src/main/java/gregtech/api/render/Textures.java +++ b/src/main/java/gregtech/api/render/Textures.java @@ -61,8 +61,8 @@ public class Textures { public static final SimpleCubeRenderer TITANIUM_FIREBOX_ACTIVE = new FullBrightnessSimpleCubeRenderer("casings/firebox/machine_casing_firebox_titanium_active"); public static final SimpleCubeRenderer TUNGSTENSTEEL_FIREBOX = new SimpleCubeRenderer("casings/firebox/machine_casing_firebox_tungstensteel"); public static final SimpleCubeRenderer TUNGSTENSTEEL_FIREBOX_ACTIVE = new FullBrightnessSimpleCubeRenderer("casings/firebox/machine_casing_firebox_tungstensteel_active"); - public static final SimpleCubeRenderer FUSION_TEXTURE = new SimpleCubeRenderer("casings/fusion/machine_casing_fusion_glass"); - public static final SimpleCubeRenderer ACTIVE_FUSION_TEXTURE = new SimpleCubeRenderer("casings/fusion/machine_casing_fusion_glass_yellow"); + public static final SimpleCubeRenderer FUSION_TEXTURE = new SimpleCubeRenderer("casings/fusion/machine_casing_fusion_hatch"); + public static final SimpleCubeRenderer ACTIVE_FUSION_TEXTURE = new SimpleCubeRenderer("casings/fusion/machine_casing_fusion_hatch_yellow"); // Simple Sided Cube Renderers public static final SimpleSidedCubeRenderer STEAM_CASING_BRONZE = new SimpleSidedCubeRenderer("casings/steam/bronze"); diff --git a/src/main/java/gregtech/common/CommonProxy.java b/src/main/java/gregtech/common/CommonProxy.java index 49e93b36d12..e4d5eb5ad83 100644 --- a/src/main/java/gregtech/common/CommonProxy.java +++ b/src/main/java/gregtech/common/CommonProxy.java @@ -40,7 +40,10 @@ import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; import net.minecraft.enchantment.Enchantment; -import net.minecraft.item.*; +import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemMultiTexture; +import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Config.Type; @@ -89,7 +92,7 @@ public static void registerBlocks(RegistryEvent.Register event) { registry.register(TRANSPARENT_CASING); registry.register(WIRE_COIL); registry.register(WIRE_COIL2); - registry.register(FUSION_COIL); + registry.register(FUSION_CASING); registry.register(WARNING_SIGN); registry.register(GRANITE); registry.register(MINERAL); @@ -139,7 +142,7 @@ public static void registerItems(RegistryEvent.Register event) { registry.register(createItemBlock(TRANSPARENT_CASING, VariantItemBlock::new)); registry.register(createItemBlock(WIRE_COIL, VariantItemBlock::new)); registry.register(createItemBlock(WIRE_COIL2, VariantItemBlock::new)); - registry.register(createItemBlock(FUSION_COIL, VariantItemBlock::new)); + registry.register(createItemBlock(FUSION_CASING, VariantItemBlock::new)); registry.register(createItemBlock(WARNING_SIGN, VariantItemBlock::new)); registry.register(createItemBlock(GRANITE, StoneItemBlock::new)); registry.register(createItemBlock(MINERAL, StoneItemBlock::new)); diff --git a/src/main/java/gregtech/common/blocks/BlockFusionCoil.java b/src/main/java/gregtech/common/blocks/BlockFusionCasing.java similarity index 62% rename from src/main/java/gregtech/common/blocks/BlockFusionCoil.java rename to src/main/java/gregtech/common/blocks/BlockFusionCasing.java index 172740d3597..cf1514de3ba 100644 --- a/src/main/java/gregtech/common/blocks/BlockFusionCoil.java +++ b/src/main/java/gregtech/common/blocks/BlockFusionCasing.java @@ -9,16 +9,16 @@ import javax.annotation.Nonnull; -public class BlockFusionCoil extends VariantBlock { +public class BlockFusionCasing extends VariantActiveBlock { - public BlockFusionCoil() { + public BlockFusionCasing() { super(net.minecraft.block.material.Material.IRON); - setTranslationKey("fusion_coil"); + setTranslationKey("fusion_casing"); setHardness(5.0f); setResistance(10.0f); setSoundType(SoundType.METAL); setHarvestLevel("wrench", 2); - setDefaultState(getState(CoilType.SUPERCONDUCTOR)); + setDefaultState(getState(CasingType.SUPERCONDUCTOR_COIL)); } @Override @@ -26,14 +26,17 @@ public boolean canCreatureSpawn(@Nonnull IBlockState state, @Nonnull IBlockAcces return false; } - public enum CoilType implements IStringSerializable { + public enum CasingType implements IStringSerializable { - SUPERCONDUCTOR("superconductor"), - FUSION_COIL("fusion_coil"); + SUPERCONDUCTOR_COIL("superconductor_coil"), + FUSION_COIL("fusion_coil"), + FUSION_CASING("fusion_casing"), + FUSION_CASING_MK2("fusion_casing_mk2"), + FUSION_CASING_MK3("fusion_casing_mk3"); private final String name; - CoilType(String name) { + CasingType(String name) { this.name = name; } diff --git a/src/main/java/gregtech/common/blocks/BlockMultiblockCasing.java b/src/main/java/gregtech/common/blocks/BlockMultiblockCasing.java index c7880a06655..42409fca880 100644 --- a/src/main/java/gregtech/common/blocks/BlockMultiblockCasing.java +++ b/src/main/java/gregtech/common/blocks/BlockMultiblockCasing.java @@ -32,9 +32,7 @@ public enum MultiblockCasingType implements IStringSerializable { ENGINE_INTAKE_CASING("engine_intake"), GRATE_CASING("grate"), ASSEMBLER_CASING("assembler"), - ASSEMBLY_LINE_CASING("assembly_line"), - FUSION_CASING("fusion"), - FUSION_CASING_MK2("fusion_mk2"); + ASSEMBLY_LINE_CASING("assembly_line"); private final String name; diff --git a/src/main/java/gregtech/common/blocks/BlockTransparentCasing.java b/src/main/java/gregtech/common/blocks/BlockTransparentCasing.java index 0149fb3e13b..d84fdbc64b1 100644 --- a/src/main/java/gregtech/common/blocks/BlockTransparentCasing.java +++ b/src/main/java/gregtech/common/blocks/BlockTransparentCasing.java @@ -17,7 +17,7 @@ import javax.annotation.ParametersAreNonnullByDefault; @ParametersAreNonnullByDefault -public class BlockTransparentCasing extends VariantBlock { +public class BlockTransparentCasing extends VariantActiveBlock { public BlockTransparentCasing() { super(Material.IRON); @@ -57,7 +57,8 @@ public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAc public enum CasingType implements IStringSerializable { - REINFORCED_GLASS("reinforced_glass"); + REINFORCED_GLASS("reinforced_glass"), + FUSION_GLASS("fusion_glass"); private final String name; diff --git a/src/main/java/gregtech/common/blocks/MetaBlocks.java b/src/main/java/gregtech/common/blocks/MetaBlocks.java index edc184d9be4..8d82745e91f 100644 --- a/src/main/java/gregtech/common/blocks/MetaBlocks.java +++ b/src/main/java/gregtech/common/blocks/MetaBlocks.java @@ -91,7 +91,7 @@ private MetaBlocks() { public static BlockTransparentCasing TRANSPARENT_CASING; public static BlockWireCoil WIRE_COIL; public static BlockWireCoil2 WIRE_COIL2; - public static BlockFusionCoil FUSION_COIL; + public static BlockFusionCasing FUSION_CASING; public static BlockWarningSign WARNING_SIGN; public static HermeticCasings HERMETIC_CASING; @@ -153,8 +153,8 @@ public static void init() { WIRE_COIL.setRegistryName("wire_coil"); WIRE_COIL2 = new BlockWireCoil2(); WIRE_COIL2.setRegistryName("wire_coil2"); - FUSION_COIL = new BlockFusionCoil(); - FUSION_COIL.setRegistryName("fusion_coil"); + FUSION_CASING = new BlockFusionCasing(); + FUSION_CASING.setRegistryName("fusion_casing"); WARNING_SIGN = new BlockWarningSign(); WARNING_SIGN.setRegistryName("warning_sign"); HERMETIC_CASING = new HermeticCasings(); @@ -338,7 +338,7 @@ public static void registerItemModels() { registerItemModel(TRANSPARENT_CASING); registerItemModel(WIRE_COIL); registerItemModel(WIRE_COIL2); - registerItemModel(FUSION_COIL); + registerItemModel(FUSION_CASING); registerItemModel(WARNING_SIGN); registerItemModel(HERMETIC_CASING); registerItemModel(GRANITE); diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java index 006b898bb00..c2045a7c84d 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntities.java @@ -466,9 +466,9 @@ public static void init() { COKE_OVEN_HATCH = registerMetaTileEntity(1017, new MetaTileEntityCokeOvenHatch(gregtechId("coke_oven_hatch"))); ASSEMBLY_LINE = registerMetaTileEntity(1018, new MetaTileEntityAssemblyLine(gregtechId("assembly_line"))); - FUSION_REACTOR[0] = registerMetaTileEntity(1019, new MetaTileEntityFusionReactor(gregtechId("fusion_reactor.luv"), 6)); - FUSION_REACTOR[1] = registerMetaTileEntity(1020, new MetaTileEntityFusionReactor(gregtechId("fusion_reactor.zpm"), 7)); - FUSION_REACTOR[2] = registerMetaTileEntity(1021, new MetaTileEntityFusionReactor(gregtechId("fusion_reactor.uv"), 8)); + FUSION_REACTOR[0] = registerMetaTileEntity(1019, new MetaTileEntityFusionReactor(gregtechId("fusion_reactor.luv"), GTValues.LuV)); + FUSION_REACTOR[1] = registerMetaTileEntity(1020, new MetaTileEntityFusionReactor(gregtechId("fusion_reactor.zpm"), GTValues.ZPM)); + FUSION_REACTOR[2] = registerMetaTileEntity(1021, new MetaTileEntityFusionReactor(gregtechId("fusion_reactor.uv"), GTValues.UV)); LARGE_CHEMICAL_REACTOR = registerMetaTileEntity(1022, new MetaTileEntityLargeChemicalReactor(gregtechId("large_chemical_reactor"))); diff --git a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java index 182cf46a546..1274f785f38 100644 --- a/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java +++ b/src/main/java/gregtech/common/metatileentities/multi/electric/MetaTileEntityFusionReactor.java @@ -22,9 +22,11 @@ import gregtech.api.render.OrientedOverlayRenderer; import gregtech.api.render.Textures; import gregtech.api.util.RenderBufferHelper; -import gregtech.core.hooks.BloomRenderLayerHooks; -import gregtech.common.blocks.*; +import gregtech.common.blocks.BlockFusionCasing; +import gregtech.common.blocks.BlockTransparentCasing; +import gregtech.common.blocks.MetaBlocks; import gregtech.common.metatileentities.MetaTileEntities; +import gregtech.core.hooks.BloomRenderLayerHooks; import net.minecraft.block.state.IBlockState; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BufferBuilder; @@ -32,12 +34,17 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; +import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.text.*; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.TextComponentString; +import net.minecraft.util.text.TextComponentTranslation; +import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -45,10 +52,9 @@ import org.lwjgl.opengl.GL11; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.List; -import static gregtech.api.util.RelativeDirection.*; - public class MetaTileEntityFusionReactor extends RecipeMapMultiblockController implements IFastRenderMetaTileEntity { private final int tier; @@ -76,35 +82,36 @@ public MetaTileEntity createMetaTileEntity(MetaTileEntityHolder holder) { @Override protected BlockPattern createStructurePattern() { FactoryBlockPattern.start(); - return FactoryBlockPattern.start(LEFT, DOWN, BACK) - .aisle("###############", "######OGO######", "###############") - .aisle("######ICI######", "####GG###GG####", "######ICI######") - .aisle("####CC###CC####", "###E##OSO##E###", "####CC###CC####") - .aisle("###C#######C###", "##EcEC###CEcE##", "###C#######C###") - .aisle("##C#########C##", "#G#E#######E#G#", "##C#########C##") - .aisle("##C#########C##", "#G#C#######C#G#", "##C#########C##") - .aisle("#I###########I#", "O#O#########O#O", "#I###########I#") - .aisle("#C###########C#", "G#C#########C#G", "#C###########C#") - .aisle("#I###########I#", "O#O#########O#O", "#I###########I#") - .aisle("##C#########C##", "#G#C#######C#G#", "##C#########C##") - .aisle("##C#########C##", "#G#E#######E#G#", "##C#########C##") - .aisle("###C#######C###", "##EcEC###CEcE##", "###C#######C###") - .aisle("####CC###CC####", "###E##OCO##E###", "####CC###CC####") - .aisle("######ICI######", "####GG###GG####", "######ICI######") + return FactoryBlockPattern.start() .aisle("###############", "######OGO######", "###############") + .aisle("######ICI######", "####GGAAAGG####", "######ICI######") + .aisle("####CC###CC####", "###EAAOGOAAE###", "####CC###CC####") + .aisle("###C#######C###", "##EKEG###GEKE##", "###C#######C###") + .aisle("##C#########C##", "#GAE#######EAG#", "##C#########C##") + .aisle("##C#########C##", "#GAG#######GAG#", "##C#########C##") + .aisle("#I###########I#", "OAO#########OAO", "#I###########I#") + .aisle("#C###########C#", "GAG#########GAG", "#C###########C#") + .aisle("#I###########I#", "OAO#########OAO", "#I###########I#") + .aisle("##C#########C##", "#GAG#######GAG#", "##C#########C##") + .aisle("##C#########C##", "#GAE#######EAG#", "##C#########C##") + .aisle("###C#######C###", "##EKEG###GEKE##", "###C#######C###") + .aisle("####CC###CC####", "###EAAOGOAAE###", "####CC###CC####") + .aisle("######ICI######", "####GGAAAGG####", "######ICI######") + .aisle("###############", "######OSO######", "###############") .where('S', selfPredicate()) - .where('G', statePredicate(MetaBlocks.TRANSPARENT_CASING.getState(BlockTransparentCasing.CasingType.REINFORCED_GLASS)).or(statePredicate(getCasingState()))) + .where('G', statePredicate(MetaBlocks.TRANSPARENT_CASING.getState(BlockTransparentCasing.CasingType.FUSION_GLASS)).or(statePredicate(getCasingState()))) .where('C', statePredicate(getCasingState())) - .where('c', statePredicate(getCoilState())) .where('O', statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.EXPORT_FLUIDS))) .where('E', statePredicate(getCasingState()).or(tilePredicate((state, tile) -> { - for (int i = tier; i < GTValues.UV + 1; i++) { + for (int i = tier; i <= GTValues.UV; i++) { if (tile.metaTileEntityId.equals(MetaTileEntities.ENERGY_INPUT_HATCH[i].metaTileEntityId)) return true; } return false; }))) .where('I', statePredicate(getCasingState()).or(abilityPartPredicate(MultiblockAbility.IMPORT_FLUIDS))) + .where('K', statePredicate(getCoilState())) + .where('A', isAirPredicate()) .where('#', (tile) -> true) .build(); } @@ -119,26 +126,19 @@ public ICubeRenderer getBaseTexture(IMultiblockPart sourcePart) { } private IBlockState getCasingState() { - switch (tier) { - case 6: - return MetaBlocks.MACHINE_CASING.getState(BlockMachineCasing.MachineCasingType.LuV); - case 7: - return MetaBlocks.MULTIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.FUSION_CASING); - case 8: - default: - return MetaBlocks.MULTIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.FUSION_CASING_MK2); - } + if (tier == GTValues.LuV) + return MetaBlocks.FUSION_CASING.getState(BlockFusionCasing.CasingType.FUSION_CASING); + if (tier == GTValues.ZPM) + return MetaBlocks.FUSION_CASING.getState(BlockFusionCasing.CasingType.FUSION_CASING_MK2); + + return MetaBlocks.FUSION_CASING.getState(BlockFusionCasing.CasingType.FUSION_CASING_MK3); } private IBlockState getCoilState() { - switch (tier) { - case 6: - return MetaBlocks.FUSION_COIL.getState(BlockFusionCoil.CoilType.SUPERCONDUCTOR); - case 7: - case 8: - default: - return MetaBlocks.FUSION_COIL.getState(BlockFusionCoil.CoilType.FUSION_COIL); - } + if (tier == GTValues.LuV) + return MetaBlocks.FUSION_CASING.getState(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL); + + return MetaBlocks.FUSION_CASING.getState(BlockFusionCasing.CasingType.FUSION_COIL); } @Override @@ -156,7 +156,7 @@ private void initializeAbilities() { this.outputFluidInventory = new FluidTankList(true, getAbilities(MultiblockAbility.EXPORT_FLUIDS)); List energyInputs = getAbilities(MultiblockAbility.INPUT_ENERGY); this.inputEnergyContainers = new EnergyContainerList(energyInputs); - long euCapacity = energyInputs.size() * 10000000L * (long) Math.pow(2, tier - 6); + long euCapacity = calculateEnergyStorageFactor(energyInputs.size()); this.energyContainer = new EnergyContainerHandler(this, euCapacity, GTValues.V[tier], 0, 0, 0) { @Override public String getName() { @@ -165,6 +165,10 @@ public String getName() { }; } + private long calculateEnergyStorageFactor(int energyInputAmount) { + return energyInputAmount * (long) Math.pow(2, tier - 6) * 10000000L; + } + @Override protected void updateFormedValid() { if (!getWorld().isRemote) { @@ -178,35 +182,17 @@ protected void updateFormedValid() { @Override protected void addDisplayText(List textList) { - if (!this.isStructureFormed()) { - textList.add(new TextComponentTranslation("gregtech.multiblock.invalid_structure").setStyle(new Style().setColor(TextFormatting.RED))); - } - if (this.isStructureFormed()) { - if (!this.recipeMapWorkable.isWorkingEnabled()) { - textList.add(new TextComponentTranslation("gregtech.multiblock.work_paused")); - } else if (this.recipeMapWorkable.isActive()) { - textList.add(new TextComponentTranslation("gregtech.multiblock.running")); - int currentProgress; - if (energyContainer.getEnergyCapacity() > 0) { - currentProgress = (int) (this.recipeMapWorkable.getProgressPercent() * 100.0D); - textList.add(new TextComponentTranslation("gregtech.multiblock.progress", currentProgress)); - } else { - currentProgress = -this.recipeMapWorkable.getRecipeEUt(); - textList.add(new TextComponentTranslation("gregtech.multiblock.generation_eu", currentProgress)); - } - } else { - textList.add(new TextComponentTranslation("gregtech.multiblock.idling")); - } - - if (this.recipeMapWorkable.isHasNotEnoughEnergy()) { - textList.add(new TextComponentTranslation("gregtech.multiblock.not_enough_energy").setStyle(new Style().setColor(TextFormatting.RED))); - } - } - + super.addDisplayText(textList); textList.add(new TextComponentString("EU: " + this.energyContainer.getEnergyStored() + " / " + this.energyContainer.getEnergyCapacity())); textList.add(new TextComponentTranslation("gregtech.multiblock.fusion_reactor.heat", heat)); } + @Override + public void addInformation(ItemStack stack, @Nullable World player, List tooltip, boolean advanced) { + super.addInformation(stack, player, tooltip, advanced); + tooltip.add(I18n.format("gregtech.machine.fusion_reactor.capacity", calculateEnergyStorageFactor(16) / 1000000L)); + } + @Nonnull @Override protected OrientedOverlayRenderer getFrontOverlay() { @@ -283,9 +269,9 @@ public void renderMetaTileEntity(double x, double y, double z, float partialTick if (entity != null) { buffer.begin(GL11.GL_QUAD_STRIP, DefaultVertexFormats.POSITION_COLOR); RenderBufferHelper.renderRing(buffer, - x + getFrontFacing().getXOffset() * 5 + 0.5, + x + getFrontFacing().getOpposite().getXOffset() * 7 + 0.5, y + 0.5, - z + getFrontFacing().getZOffset() * 5 + 0.5, + z + getFrontFacing().getOpposite().getZOffset() * 7 + 0.5, 6, 0.2, 10, 20, r, g, b, 1, EnumFacing.Axis.Y); Tessellator.getInstance().draw(); diff --git a/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoCategory.java b/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoCategory.java index 4cb540a1718..a88abf846fd 100644 --- a/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoCategory.java +++ b/src/main/java/gregtech/integration/jei/multiblock/MultiblockInfoCategory.java @@ -52,9 +52,9 @@ public MultiblockInfoCategory(IJeiHelpers helpers) { put("large_gas_turbine", new MultiblockInfoRecipeWrapper(new LargeTurbineInfo(MetaTileEntities.LARGE_GAS_TURBINE))); put("large_plasma_turbine", new MultiblockInfoRecipeWrapper(new LargeTurbineInfo(MetaTileEntities.LARGE_PLASMA_TURBINE))); put("assembly_line", new MultiblockInfoRecipeWrapper(new AssemblyLineInfo())); - put("fusion_reactor_mk1", new MultiblockInfoRecipeWrapper(new FusionReactorInfo(0))); - put("fusion_reactor_mk2", new MultiblockInfoRecipeWrapper(new FusionReactorInfo(1))); - put("fusion_reactor_mk3", new MultiblockInfoRecipeWrapper(new FusionReactorInfo(2))); + put("fusion_reactor_mk1", new MultiblockInfoRecipeWrapper(new FusionReactorInfo(GTValues.LuV))); + put("fusion_reactor_mk2", new MultiblockInfoRecipeWrapper(new FusionReactorInfo(GTValues.ZPM))); + put("fusion_reactor_mk3", new MultiblockInfoRecipeWrapper(new FusionReactorInfo(GTValues.UV))); put("primitive_water_pump", new MultiblockInfoRecipeWrapper(new PrimitivePumpInfo())); put("steam_grinder", new MultiblockInfoRecipeWrapper(new SteamGrinderInfo())); put("steam_oven", new MultiblockInfoRecipeWrapper(new SteamOvenInfo())); diff --git a/src/main/java/gregtech/integration/jei/multiblock/infos/FusionReactorInfo.java b/src/main/java/gregtech/integration/jei/multiblock/infos/FusionReactorInfo.java index 0ab880dc32b..6cb0fa9b191 100644 --- a/src/main/java/gregtech/integration/jei/multiblock/infos/FusionReactorInfo.java +++ b/src/main/java/gregtech/integration/jei/multiblock/infos/FusionReactorInfo.java @@ -1,8 +1,11 @@ package gregtech.integration.jei.multiblock.infos; import com.google.common.collect.Lists; +import gregtech.api.GTValues; import gregtech.api.metatileentity.multiblock.MultiblockControllerBase; -import gregtech.common.blocks.*; +import gregtech.common.blocks.BlockFusionCasing; +import gregtech.common.blocks.BlockTransparentCasing; +import gregtech.common.blocks.MetaBlocks; import gregtech.common.metatileentities.MetaTileEntities; import gregtech.integration.jei.multiblock.MultiblockInfoPage; import gregtech.integration.jei.multiblock.MultiblockShapeInfo; @@ -10,6 +13,10 @@ import net.minecraft.client.resources.I18n; import net.minecraft.init.Blocks; import net.minecraft.util.EnumFacing; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.Style; +import net.minecraft.util.text.TextComponentTranslation; +import net.minecraft.util.text.TextFormatting; import java.util.List; @@ -23,7 +30,7 @@ public FusionReactorInfo(int tier) { @Override public MultiblockControllerBase getController() { - return MetaTileEntities.FUSION_REACTOR[tier]; + return MetaTileEntities.FUSION_REACTOR[tier - GTValues.LuV]; } @Override @@ -31,59 +38,57 @@ public List getMatchingShapes() { MultiblockShapeInfo shapeInfo = MultiblockShapeInfo.builder() .aisle("###############", "######SGS######", "###############") .aisle("######DCD######", "####GG###GG####", "######UCU######") - .aisle("####CC###CC####", "###n##NMN##e###", "####CC###CC####") - .aisle("###C#######C###", "##scwC###Cwcs##", "###C#######C###") + .aisle("####CC###CC####", "###n##NGN##e###", "####CC###CC####") + .aisle("###C#######C###", "##sKwG###GwKs##", "###C#######C###") .aisle("##C#########C##", "#G#e#######n#G#", "##C#########C##") - .aisle("##C#########C##", "#G#C#######C#G#", "##C#########C##") + .aisle("##C#########C##", "#G#G#######G#G#", "##C#########C##") .aisle("#D###########D#", "W#E#########W#E", "#U###########U#") - .aisle("#C###########C#", "G#C#########C#G", "#C###########C#") + .aisle("#C###########C#", "G#G#########G#G", "#C###########C#") .aisle("#D###########D#", "W#E#########W#E", "#U###########U#") - .aisle("##C#########C##", "#G#C#######C#G#", "##C#########C##") + .aisle("##C#########C##", "#G#G#######G#G#", "##C#########C##") .aisle("##C#########C##", "#G#e#######n#G#", "##C#########C##") - .aisle("###C#######C###", "##wcsC###Cscw##", "###C#######C###") - .aisle("####CC###CC####", "###n##SCS##e###", "####CC###CC####") + .aisle("###C#######C###", "##wKsG###GsKw##", "###C#######C###") + .aisle("####CC###CC####", "###n##SGS##e###", "####CC###CC####") .aisle("######DCD######", "####GG###GG####", "######UCU######") - .aisle("###############", "######NGN######", "###############") - .where('M', MetaTileEntities.FUSION_REACTOR[tier], EnumFacing.WEST) - .where('C', getCasing(tier)) - .where('G', MetaBlocks.TRANSPARENT_CASING.getState(BlockTransparentCasing.CasingType.REINFORCED_GLASS)) - .where('c', getCoil(tier)) - .where('W', MetaTileEntities.FLUID_EXPORT_HATCH[6 + tier], EnumFacing.NORTH) - .where('E', MetaTileEntities.FLUID_EXPORT_HATCH[6 + tier], EnumFacing.SOUTH) - .where('S', MetaTileEntities.FLUID_EXPORT_HATCH[6 + tier], EnumFacing.EAST) - .where('N', MetaTileEntities.FLUID_EXPORT_HATCH[6 + tier], EnumFacing.WEST) - .where('w', MetaTileEntities.ENERGY_INPUT_HATCH[6 + tier], EnumFacing.WEST) - .where('e', MetaTileEntities.ENERGY_INPUT_HATCH[6 + tier], EnumFacing.SOUTH) - .where('s', MetaTileEntities.ENERGY_INPUT_HATCH[6 + tier], EnumFacing.EAST) - .where('n', MetaTileEntities.ENERGY_INPUT_HATCH[6 + tier], EnumFacing.NORTH) - .where('U', MetaTileEntities.FLUID_IMPORT_HATCH[6 + tier], EnumFacing.UP) - .where('D', MetaTileEntities.FLUID_IMPORT_HATCH[6 + tier], EnumFacing.DOWN) + .aisle("###############", "######NMN######", "###############") + .where('M', MetaTileEntities.FUSION_REACTOR[tier - GTValues.LuV], EnumFacing.WEST) + .where('C', MetaBlocks.FUSION_CASING.getState(getCasing(tier))) + .where('G', MetaBlocks.TRANSPARENT_CASING.getState(BlockTransparentCasing.CasingType.FUSION_GLASS)) + .where('K', getCoil(tier)) + .where('W', MetaTileEntities.FLUID_EXPORT_HATCH[tier], EnumFacing.NORTH) + .where('E', MetaTileEntities.FLUID_EXPORT_HATCH[tier], EnumFacing.SOUTH) + .where('S', MetaTileEntities.FLUID_EXPORT_HATCH[tier], EnumFacing.EAST) + .where('N', MetaTileEntities.FLUID_EXPORT_HATCH[tier], EnumFacing.WEST) + .where('w', MetaTileEntities.ENERGY_INPUT_HATCH[tier], EnumFacing.WEST) + .where('e', MetaTileEntities.ENERGY_INPUT_HATCH[tier], EnumFacing.SOUTH) + .where('s', MetaTileEntities.ENERGY_INPUT_HATCH[tier], EnumFacing.EAST) + .where('n', MetaTileEntities.ENERGY_INPUT_HATCH[tier], EnumFacing.NORTH) + .where('U', MetaTileEntities.FLUID_IMPORT_HATCH[tier], EnumFacing.UP) + .where('D', MetaTileEntities.FLUID_IMPORT_HATCH[tier], EnumFacing.DOWN) .where('#', Blocks.AIR.getDefaultState()).build(); return Lists.newArrayList(shapeInfo); } - private static IBlockState getCasing(int tier) { - switch (tier) { - case 0: - return MetaBlocks.MACHINE_CASING.getState(BlockMachineCasing.MachineCasingType.LuV); - case 1: - return MetaBlocks.MULTIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.FUSION_CASING); - default: - return MetaBlocks.MULTIBLOCK_CASING.getState(BlockMultiblockCasing.MultiblockCasingType.FUSION_CASING_MK2); - } + private static BlockFusionCasing.CasingType getCasing(int tier) { + if (tier == GTValues.LuV) + return BlockFusionCasing.CasingType.FUSION_CASING; + if (tier == GTValues.ZPM) + return BlockFusionCasing.CasingType.FUSION_CASING_MK2; + + return BlockFusionCasing.CasingType.FUSION_CASING_MK3; } private static IBlockState getCoil(int tier) { - if (tier == 0) - return MetaBlocks.FUSION_COIL.getState(BlockFusionCoil.CoilType.SUPERCONDUCTOR); - return MetaBlocks.FUSION_COIL.getState(BlockFusionCoil.CoilType.FUSION_COIL); + if (tier == GTValues.LuV) + return MetaBlocks.FUSION_CASING.getState(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL); + return MetaBlocks.FUSION_CASING.getState(BlockFusionCasing.CasingType.FUSION_COIL); } @Override public String[] getDescription() { return new String[]{ - I18n.format(String.format("gregtech.multiblock.fusion_reactor_mk%d.description", tier + 1)) + I18n.format(String.format("gregtech.multiblock.fusion_reactor_mk%d.description", tier + 1 - 6)) }; } @@ -91,4 +96,19 @@ public String[] getDescription() { public float getDefaultZoom() { return 0.5f; } + + @Override + protected void generateBlockTooltips() { + super.generateBlockTooltips(); + + ITextComponent tooltip = new TextComponentTranslation("gregtech.multiblock.preview.limit", 48).setStyle(new Style().setColor(TextFormatting.AQUA)); + addBlockTooltip(MetaBlocks.FUSION_CASING.getItemVariant(getCasing(tier)), tooltip); + + ITextComponent tooltip2; + if (tier < GTValues.UV) + tooltip2 = new TextComponentTranslation("gregtech.multiblock.preview.only", String.format("%s-%s", GTValues.VN[tier], GTValues.VN[GTValues.UV])).setStyle(new Style().setColor(TextFormatting.RED)); + else + tooltip2 = new TextComponentTranslation("gregtech.multiblock.preview.only", GTValues.VN[tier]).setStyle(new Style().setColor(TextFormatting.RED)); + addBlockTooltip(MetaTileEntities.ENERGY_INPUT_HATCH[tier].getStackForm(), tooltip2); + } } diff --git a/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java b/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java index 52f3cdadf07..e28223a6511 100644 --- a/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java +++ b/src/main/java/gregtech/loaders/recipe/AssemblyLineLoader.java @@ -1,11 +1,12 @@ package gregtech.loaders.recipe; +import gregtech.api.GTValues; import gregtech.api.recipes.RecipeMaps; import gregtech.api.unification.OreDictUnifier; import gregtech.api.unification.material.MarkerMaterials; import gregtech.api.unification.material.Materials; import gregtech.api.unification.ore.OrePrefix; -import gregtech.common.blocks.BlockFusionCoil; +import gregtech.common.blocks.BlockFusionCasing; import gregtech.common.blocks.MetaBlocks; import gregtech.common.items.MetaItems; import gregtech.common.metatileentities.MetaTileEntities; @@ -43,8 +44,58 @@ public static void init() { RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(OreDictUnifier.get(OrePrefix.plate, Materials.Americium, 16), MetaItems.WETWARE_SUPER_COMPUTER_UV.getStackForm(4), MetaItems.ENERGY_LAPOTRONIC_MODULE.getStackForm(8), MetaItems.FIELD_GENERATOR_ZPM.getStackForm(2), MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT.getStackForm(64), MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT.getStackForm(64), MetaItems.SMD_DIODE.getStackForm(16), OreDictUnifier.get(OrePrefix.cableGtSingle, Materials.NaquadahAlloy, 32)).fluidInputs(Materials.SolderingAlloy.getFluid(2880), Materials.Polybenzimidazole.getFluid(576)).outputs(MetaItems.ENERGY_LAPOTRONIC_CLUSTER.getStackForm()).duration(2000).EUt(200000).buildAndRegister(); RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(OreDictUnifier.get(OrePrefix.plate, Materials.Neutronium, 16), MetaItems.WETWARE_MAINFRAME_UHV.getStackForm(), MetaItems.WETWARE_MAINFRAME_UHV.getStackForm(), MetaItems.WETWARE_MAINFRAME_UHV.getStackForm(), MetaItems.WETWARE_MAINFRAME_UHV.getStackForm(), MetaItems.ENERGY_LAPOTRONIC_CLUSTER.getStackForm(8), MetaItems.FIELD_GENERATOR_UV.getStackForm(2), MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT_WAFER.getStackForm(64), MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT_WAFER.getStackForm(64), MetaItems.SMD_DIODE.getStackForm(16), OreDictUnifier.get(OrePrefix.wireGtSingle, Materials.EnrichedNaquadahTriniumEuropiumDuranide, 32)).fluidInputs(Materials.SolderingAlloy.getFluid(2880), Materials.Polybenzimidazole.getFluid(1000), Materials.Naquadria.getFluid(1152)).outputs(MetaItems.ULTIMATE_BATTERY.getStackForm()).duration(2000).EUt(300000).buildAndRegister(); - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaBlocks.FUSION_COIL.getItemVariant(BlockFusionCoil.CoilType.FUSION_COIL), OreDictUnifier.get(OrePrefix.plate, Materials.Plutonium241), OreDictUnifier.get(OrePrefix.plate, Materials.NetherStar), MetaItems.FIELD_GENERATOR_IV.getStackForm(2), MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT_WAFER.getStackForm(32), OreDictUnifier.get(OrePrefix.wireGtSingle, Materials.IndiumTinBariumTitaniumCuprate, 32)).input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate, 1).input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate, 1).input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate, 1).input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate, 1).fluidInputs(Materials.SolderingAlloy.getFluid(2880)).outputs(MetaTileEntities.FUSION_REACTOR[0].getStackForm()).duration(1000).EUt(30000).buildAndRegister(); - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaBlocks.FUSION_COIL.getItemVariant(BlockFusionCoil.CoilType.FUSION_COIL), OreDictUnifier.get(OrePrefix.plate, Materials.Europium, 4), MetaItems.FIELD_GENERATOR_LUV.getStackForm(2), MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT_WAFER.getStackForm(48)).input(OrePrefix.wireGtDouble, Materials.UraniumRhodiumDinaquadide, 32).input(OrePrefix.circuit, MarkerMaterials.Tier.Super, 1).input(OrePrefix.circuit, MarkerMaterials.Tier.Super, 1).input(OrePrefix.circuit, MarkerMaterials.Tier.Super, 1).input(OrePrefix.circuit, MarkerMaterials.Tier.Super, 1).fluidInputs(Materials.SolderingAlloy.getFluid(2880)).outputs(MetaTileEntities.FUSION_REACTOR[1].getStackForm()).duration(1000).EUt(60000).buildAndRegister(); - RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder().inputs(MetaBlocks.FUSION_COIL.getItemVariant(BlockFusionCoil.CoilType.FUSION_COIL), OreDictUnifier.get(OrePrefix.plate, Materials.Americium, 4), MetaItems.FIELD_GENERATOR_ZPM.getStackForm(2), MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT_WAFER.getStackForm(64), OreDictUnifier.get(OrePrefix.circuit, MarkerMaterials.Tier.Infinite), OreDictUnifier.get(OrePrefix.circuit, MarkerMaterials.Tier.Infinite), OreDictUnifier.get(OrePrefix.circuit, MarkerMaterials.Tier.Infinite), OreDictUnifier.get(OrePrefix.circuit, MarkerMaterials.Tier.Infinite), OreDictUnifier.get(OrePrefix.wireGtQuadruple, Materials.EnrichedNaquadahTriniumEuropiumDuranide, 32)).fluidInputs(Materials.SolderingAlloy.getFluid(2880)).outputs(MetaTileEntities.FUSION_REACTOR[2].getStackForm()).duration(1000).EUt(90000).buildAndRegister(); + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Ultimate) + .input(OrePrefix.plate, Materials.Plutonium241) + .input(OrePrefix.plate, Materials.NetherStar) + .inputs(MetaItems.FIELD_GENERATOR_IV.getStackForm(2)) + .inputs(MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT.getStackForm(32)) + .input(OrePrefix.wireGtSingle, Materials.IndiumTinBariumTitaniumCuprate, 32) + .fluidInputs(Materials.SolderingAlloy.getFluid(GTValues.L * 8)) + .fluidInputs(Materials.NiobiumTitanium.getFluid(GTValues.L * 8)) + .outputs(MetaTileEntities.FUSION_REACTOR[0].getStackForm()) + .duration(800) + .EUt(30720) + .buildAndRegister(); + + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Super) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Super) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Super) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Super) + .input(OrePrefix.plate, Materials.Europium) + .input(OrePrefix.plate, Materials.Naquadah) + .inputs(MetaItems.FIELD_GENERATOR_LUV.getStackForm(2)) + .inputs(MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT.getStackForm(48)) + .input(OrePrefix.wireGtSingle, Materials.UraniumRhodiumDinaquadide, 32) + .fluidInputs(Materials.SolderingAlloy.getFluid(GTValues.L * 8)) + .fluidInputs(Materials.NaquadahAlloy.getFluid(GTValues.L * 8)) + .outputs(MetaTileEntities.FUSION_REACTOR[1].getStackForm()) + .duration(1000) + .EUt(61440) + .buildAndRegister(); + + RecipeMaps.ASSEMBLY_LINE_RECIPES.recipeBuilder() + .inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Infinite) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Infinite) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Infinite) + .input(OrePrefix.circuit, MarkerMaterials.Tier.Infinite) + .input(OrePrefix.plate, Materials.Americium) + .input(OrePrefix.plate, Materials.Trinium) + .inputs(MetaItems.FIELD_GENERATOR_ZPM.getStackForm(2)) + .inputs(MetaItems.HIGH_POWER_INTEGRATED_CIRCUIT.getStackForm(64)) + .input(OrePrefix.wireGtSingle, Materials.EnrichedNaquadahTriniumEuropiumDuranide, 32) + .fluidInputs(Materials.SolderingAlloy.getFluid(GTValues.L * 8)) + .fluidInputs(Materials.YttriumBariumCuprate.getFluid(GTValues.L * 8)) + .outputs(MetaTileEntities.FUSION_REACTOR[2].getStackForm()) + .duration(1000) + .EUt(122880) + .buildAndRegister(); } } diff --git a/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java index dd51d1cb0d2..8021d11fd7a 100644 --- a/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MachineRecipeLoader.java @@ -14,11 +14,11 @@ import gregtech.api.unification.stack.MaterialStack; import gregtech.common.ConfigHolder; import gregtech.common.blocks.BlockConcrete.ConcreteVariant; +import gregtech.common.blocks.BlockFusionCasing; import gregtech.common.blocks.BlockGranite.GraniteVariant; import gregtech.common.blocks.BlockMachineCasing.MachineCasingType; import gregtech.common.blocks.BlockMetalCasing.MetalCasingType; import gregtech.common.blocks.BlockMineral.MineralVariant; -import gregtech.common.blocks.BlockMultiblockCasing.MultiblockCasingType; import gregtech.common.blocks.BlockTransparentCasing; import gregtech.common.blocks.BlockTurbineCasing.TurbineCasingType; import gregtech.common.blocks.BlockWireCoil.CoilType; @@ -579,8 +579,17 @@ private static void registerAssemblerRecipes() { RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(16).inputs(MetaBlocks.METAL_CASING.getItemVariant(MetalCasingType.STEEL_SOLID)).fluidInputs(Materials.Polytetrafluoroethylene.getFluid(216)).notConsumable(new IntCircuitIngredient(6)).outputs(MetaBlocks.METAL_CASING.getItemVariant(MetalCasingType.PTFE_INERT_CASING)).duration(50).buildAndRegister(); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(16).inputs(MetaBlocks.MACHINE_CASING.getItemVariant(MachineCasingType.LuV)).input(OrePrefix.plate, Materials.TungstenSteel, 6).outputs(MetaBlocks.MULTIBLOCK_CASING.getItemVariant(MultiblockCasingType.FUSION_CASING)).duration(50).buildAndRegister(); - RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(16).inputs(MetaBlocks.MULTIBLOCK_CASING.getItemVariant(MultiblockCasingType.FUSION_CASING)).input(OrePrefix.plate, Materials.Americium, 6).outputs(MetaBlocks.MULTIBLOCK_CASING.getItemVariant(MultiblockCasingType.FUSION_CASING_MK2)).duration(50).buildAndRegister(); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(30720).input(OrePrefix.wireGtDouble, Materials.IndiumTinBariumTitaniumCuprate, 32).input(OrePrefix.foil, Materials.NiobiumTitanium, 32).fluidInputs(Materials.Ruthenium.getFluid(GTValues.L)).outputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)).duration(100).buildAndRegister(); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(122880).input(OrePrefix.wireGtDouble, Materials.UraniumRhodiumDinaquadide, 16).input(OrePrefix.foil, Materials.NiobiumTitanium, 16).fluidInputs(Materials.Ruthenium.getFluid(GTValues.L)).outputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)).duration(100).buildAndRegister(); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(491520).input(OrePrefix.wireGtDouble, Materials.EnrichedNaquadahTriniumEuropiumDuranide, 8).input(OrePrefix.foil, Materials.NiobiumTitanium, 8).fluidInputs(Materials.Ruthenium.getFluid(GTValues.L)).outputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)).duration(100).buildAndRegister(); + + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(122880).inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)).inputs(MetaItems.FIELD_GENERATOR_HV.getStackForm(2)).inputs(MetaItems.NEUTRON_REFLECTOR.getStackForm(2)).input(OrePrefix.circuit, MarkerMaterials.Tier.Master, 4).fluidInputs(Materials.Osmium.getFluid(GTValues.L)).outputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_COIL)).duration(100).buildAndRegister(); + + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(16).input(OrePrefix.frameGt, Materials.HSSE).inputs(MetaBlocks.TRANSPARENT_CASING.getItemVariant(BlockTransparentCasing.CasingType.REINFORCED_GLASS, 2)).input(OrePrefix.plate, Materials.NiobiumNitride, 2).inputs(MetaItems.NEUTRON_REFLECTOR.getStackForm(2)).outputs(MetaBlocks.TRANSPARENT_CASING.getItemVariant(BlockTransparentCasing.CasingType.FUSION_GLASS, 2)).duration(50).buildAndRegister(); + + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(30720).inputs(MetaBlocks.MACHINE_CASING.getItemVariant(MachineCasingType.LuV)).inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.SUPERCONDUCTOR_COIL)).inputs(MetaItems.NEUTRON_REFLECTOR.getStackForm()).input(OrePrefix.plate, Materials.TungstenSteel, 6).fluidInputs(Materials.Polybenzimidazole.getFluid(GTValues.L)).outputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING, 2)).duration(100).buildAndRegister(); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(122880).inputs(MetaBlocks.MACHINE_CASING.getItemVariant(MachineCasingType.ZPM)).inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_COIL)).inputs(MetaItems.VOLTAGE_COIL_ZPM.getStackForm(2)).input(OrePrefix.plate, Materials.Europium, 6).fluidInputs(Materials.Polybenzimidazole.getFluid(GTValues.L * 2)).outputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK2, 2)).duration(100).buildAndRegister(); + RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(491520).inputs(MetaBlocks.MACHINE_CASING.getItemVariant(MachineCasingType.UV)).inputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_COIL)).inputs(MetaItems.VOLTAGE_COIL_UV.getStackForm(2)).input(OrePrefix.plate, Materials.Americium, 6).fluidInputs(Materials.Polybenzimidazole.getFluid(GTValues.L * 4)).outputs(MetaBlocks.FUSION_CASING.getItemVariant(BlockFusionCasing.CasingType.FUSION_CASING_MK3, 2)).duration(100).buildAndRegister(); RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(16).input(OrePrefix.plate, Materials.Magnalium, 6).input(OrePrefix.frameGt, Materials.BlueSteel, 1).outputs(MetaBlocks.TURBINE_CASING.getItemVariant(TurbineCasingType.STEEL_TURBINE_CASING, 2)).duration(50).buildAndRegister(); RecipeMaps.ASSEMBLER_RECIPES.recipeBuilder().EUt(16).inputs(MetaBlocks.TURBINE_CASING.getItemVariant(TurbineCasingType.STEEL_TURBINE_CASING)).input(OrePrefix.plate, Materials.StainlessSteel, 6).outputs(MetaBlocks.TURBINE_CASING.getItemVariant(TurbineCasingType.STAINLESS_TURBINE_CASING, 2)).duration(50).buildAndRegister(); diff --git a/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java b/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java index 4b52d885976..8889a449374 100644 --- a/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java +++ b/src/main/java/gregtech/loaders/recipe/MetaTileEntityLoader.java @@ -13,10 +13,10 @@ import gregtech.api.unification.ore.OrePrefix; import gregtech.api.unification.stack.UnificationEntry; import gregtech.common.ConfigHolder; -import gregtech.common.blocks.BlockFusionCoil; import gregtech.common.blocks.BlockMetalCasing.MetalCasingType; import gregtech.common.blocks.BlockMultiblockCasing; import gregtech.common.blocks.BlockMultiblockCasing.MultiblockCasingType; +import gregtech.common.blocks.BlockTransparentCasing; import gregtech.common.blocks.BlockWireCoil.CoilType; import gregtech.common.blocks.BlockWireCoil2.CoilType2; import gregtech.common.blocks.MetaBlocks; @@ -118,10 +118,7 @@ public static void init() { ModHandler.addShapedRecipe("casing_assembler_casing", MetaBlocks.MULTIBLOCK_CASING.getItemVariant(ASSEMBLER_CASING, 2), "CCC", "CFC", "CMC", 'C', new UnificationEntry(OrePrefix.circuit, MarkerMaterials.Tier.Elite), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.TungstenSteel), 'M', MetaItems.ELECTRIC_MOTOR_IV); ModHandler.addShapedRecipe("casing_assembly_line", MetaBlocks.MULTIBLOCK_CASING.getItemVariant(ASSEMBLY_LINE_CASING, 2), "PhP", "AFA", "PwP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Steel), 'A', MetaItems.ROBOT_ARM_IV.getStackForm(), 'F', OreDictUnifier.get(OrePrefix.frameGt, Materials.TungstenSteel)); - ModHandler.addShapedRecipe("casing_fusion_mk1", MetaBlocks.MULTIBLOCK_CASING.getItemVariant(FUSION_CASING), "PhP", "PCP", "PwP", 'P', new UnificationEntry(OrePrefix.plate, Materials.TungstenSteel), 'C', MetaBlocks.MACHINE_CASING.getItemVariant(LuV)); - ModHandler.addShapedRecipe("casing_fusion_mk2", MetaBlocks.MULTIBLOCK_CASING.getItemVariant(FUSION_CASING_MK2), "PhP", "PCP", "PwP", 'P', new UnificationEntry(OrePrefix.plate, Materials.Americium), 'C', MetaBlocks.MULTIBLOCK_CASING.getItemVariant(FUSION_CASING)); - - ModHandler.addShapedRecipe("heating_coil_fusion", MetaBlocks.FUSION_COIL.getItemVariant(BlockFusionCoil.CoilType.FUSION_COIL), "CNC", "FKF", "CNC", 'C', new UnificationEntry(OrePrefix.circuit, Tier.Master), 'N', MetaItems.NEUTRON_REFLECTOR, 'F', MetaItems.FIELD_GENERATOR_MV, 'K', MetaBlocks.FUSION_COIL.getItemVariant(BlockFusionCoil.CoilType.SUPERCONDUCTOR)); + ModHandler.addShapedRecipe("fusion_glass", MetaBlocks.TRANSPARENT_CASING.getItemVariant(BlockTransparentCasing.CasingType.FUSION_GLASS, 2), "PhP", "GFG", "NwN", 'P', new UnificationEntry(OrePrefix.plate, Materials.NiobiumNitride), 'G', MetaBlocks.TRANSPARENT_CASING.getItemVariant(BlockTransparentCasing.CasingType.REINFORCED_GLASS), 'F', new UnificationEntry(OrePrefix.frameGt, Materials.HSSE), 'N', MetaItems.NEUTRON_REFLECTOR.getStackForm()); ModHandler.addShapedRecipe("warning_sign_yellow_stripes", MetaBlocks.WARNING_SIGN.getItemVariant(YELLOW_STRIPES), "Y ", " M ", " B", 'M', MetaBlocks.METAL_CASING.getItemVariant(STEEL_SOLID), 'Y', "dyeYellow", 'B', "dyeBlack"); ModHandler.addShapedRecipe("warning_sign_small_yellow_stripes", MetaBlocks.WARNING_SIGN.getItemVariant(SMALL_YELLOW_STRIPES), " Y", " M ", "B ", 'M', MetaBlocks.METAL_CASING.getItemVariant(STEEL_SOLID), 'Y', "dyeYellow", 'B', "dyeBlack"); diff --git a/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java b/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java index 435b1d0723c..ef6227d6707 100644 --- a/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java +++ b/src/main/java/gregtech/loaders/recipe/chemistry/AssemblerRecipeLoader.java @@ -202,7 +202,7 @@ public static void init() { // Neutron Reflector ASSEMBLER_RECIPES.recipeBuilder().duration(4000).EUt(120) .input(PLATE_IRIDIUM_ALLOY) - .input(plateDouble, Beryllium, 16) + .input(plateDouble, Beryllium, 4) .input(plateDouble, TungstenCarbide, 2) .fluidInputs(TinAlloy.getFluid(L * 32)) .output(NEUTRON_REFLECTOR) diff --git a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/59_superconducting_coil.json b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/59_superconducting_coil.json index f6e7aa650d5..0367162fa3b 100644 --- a/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/59_superconducting_coil.json +++ b/src/main/resources/assets/gregtech/advancements/ludicrous_voltage/59_superconducting_coil.json @@ -1,29 +1,29 @@ -{ - "display": { - "description": { - "translate": "gregtech.advancement.ludicrous_voltage.59_superconducting_coil.desc" - }, - "title": { - "translate": "gregtech.advancement.ludicrous_voltage.59_superconducting_coil.name" - }, - "icon": { - "item": "gregtech:fusion_coil", - "data": 0 - }, - "frame": "goal" - }, - "criteria": { - "location": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "item": "gregtech:fusion_coil", - "data": 0 - } - ] - } - } - }, - "parent": "gregtech:ludicrous_voltage/root_luv" -} +{ + "display": { + "description": { + "translate": "gregtech.advancement.ludicrous_voltage.59_superconducting_coil.desc" + }, + "title": { + "translate": "gregtech.advancement.ludicrous_voltage.59_superconducting_coil.name" + }, + "icon": { + "item": "gregtech:fusion_casing", + "data": 0 + }, + "frame": "goal" + }, + "criteria": { + "location": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "gregtech:fusion_casing", + "data": 0 + } + ] + } + } + }, + "parent": "gregtech:ludicrous_voltage/root_luv" +} diff --git a/src/main/resources/assets/gregtech/blockstates/fusion_casing.json b/src/main/resources/assets/gregtech/blockstates/fusion_casing.json new file mode 100644 index 00000000000..d7dd5aff08f --- /dev/null +++ b/src/main/resources/assets/gregtech/blockstates/fusion_casing.json @@ -0,0 +1,68 @@ +{ + "forge_marker": 1, + "variants": { + "active=false,variant=superconductor_coil": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/fusion/machine_coil_superconductor" + } + }, + "active=true,variant=superconductor_coil": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/fusion/machine_coil_superconductor" + } + }, + "active=false,variant=fusion_coil": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/fusion/machine_casing_fusion_coil" + } + }, + "active=true,variant=fusion_coil": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/fusion/machine_casing_fusion_coil" + } + }, + "active=false,variant=fusion_casing": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/fusion/machine_casing_fusion" + } + }, + "active=true,variant=fusion_casing": { + "model": "gregtech:cube_2_layer_all", + "textures": { + "bot_all": "gregtech:blocks/casings/fusion/machine_casing_fusion", + "top_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_bloom" + } + }, + "active=false,variant=fusion_casing_mk2": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/fusion/machine_casing_fusion_2" + } + }, + "active=true,variant=fusion_casing_mk2": { + "model": "gregtech:cube_2_layer_all", + "textures": { + "bot_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_2", + "top_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_bloom" + } + }, + "active=false,variant=fusion_casing_mk3": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/fusion/machine_casing_fusion_3" + } + }, + "active=true,variant=fusion_casing_mk3": { + "model": "gregtech:cube_2_layer_all", + "textures": { + "bot_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_3", + "top_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_bloom" + } + } + } +} diff --git a/src/main/resources/assets/gregtech/blockstates/fusion_coil.json b/src/main/resources/assets/gregtech/blockstates/fusion_coil.json deleted file mode 100644 index 032f98268dc..00000000000 --- a/src/main/resources/assets/gregtech/blockstates/fusion_coil.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "forge_marker": 1, - "defaults": { - "model": "minecraft:cube_all" - }, - "variants": { - "variant": { - "superconductor": { - "textures": { - "all": "gregtech:blocks/casings/fusion/machine_coil_superconductor" - } - }, - "fusion_coil": { - "textures": { - "all": "gregtech:blocks/casings/fusion/machine_casing_fusion_coil" - } - } - } - } -} diff --git a/src/main/resources/assets/gregtech/blockstates/multiblock_casing.json b/src/main/resources/assets/gregtech/blockstates/multiblock_casing.json index 84d503dc144..b098eba3b4b 100644 --- a/src/main/resources/assets/gregtech/blockstates/multiblock_casing.json +++ b/src/main/resources/assets/gregtech/blockstates/multiblock_casing.json @@ -61,32 +61,6 @@ "bot_all": "gregtech:blocks/casings/mechanic/machine_casing_assembly_line", "top_all": "gregtech:blocks/casings/mechanic/machine_casing_assembly_line_bloom" } - }, - "active=false,variant=fusion": { - "model": "minecraft:cube_all", - "textures": { - "all": "gregtech:blocks/casings/fusion/machine_casing_fusion" - } - }, - "active=true,variant=fusion": { - "model": "gregtech:cube_2_layer_all", - "textures": { - "bot_all": "gregtech:blocks/casings/fusion/machine_casing_fusion", - "top_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_bloom" - } - }, - "active=false,variant=fusion_mk2": { - "model": "minecraft:cube_all", - "textures": { - "all": "gregtech:blocks/casings/fusion/machine_casing_fusion_2" - } - }, - "active=true,variant=fusion_mk2": { - "model": "gregtech:cube_2_layer_all", - "textures": { - "bot_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_2", - "top_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_bloom" - } } } } diff --git a/src/main/resources/assets/gregtech/blockstates/transparent_casing.json b/src/main/resources/assets/gregtech/blockstates/transparent_casing.json index 0988360533d..1479f39211e 100644 --- a/src/main/resources/assets/gregtech/blockstates/transparent_casing.json +++ b/src/main/resources/assets/gregtech/blockstates/transparent_casing.json @@ -1,17 +1,29 @@ { "forge_marker": 1, - "defaults": { - "model": "minecraft:cube_all", - "textures": { - "all": "gregtech:blocks/rendering_error" - } - }, "variants": { - "variant": { - "reinforced_glass": { - "textures": { - "all": "gregtech:blocks/casings/transparent/reinforced_glass" - } + "active=false,variant=reinforced_glass": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/transparent/reinforced_glass" + } + }, + "active=true,variant=reinforced_glass": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/transparent/reinforced_glass" + } + }, + "active=false,variant=fusion_glass": { + "model": "minecraft:cube_all", + "textures": { + "all": "gregtech:blocks/casings/transparent/fusion_glass" + } + }, + "active=true,variant=fusion_glass": { + "model": "gregtech:cube_2_layer_all", + "textures": { + "bot_all": "gregtech:blocks/casings/transparent/fusion_glass", + "top_all": "gregtech:blocks/casings/fusion/machine_casing_fusion_bloom" } } } diff --git a/src/main/resources/assets/gregtech/lang/en_us.lang b/src/main/resources/assets/gregtech/lang/en_us.lang index d5abec853a0..22030e64cbb 100644 --- a/src/main/resources/assets/gregtech/lang/en_us.lang +++ b/src/main/resources/assets/gregtech/lang/en_us.lang @@ -56,9 +56,9 @@ gregtech.multiblock.multi_smelter.description=The Multi Smelter is a multiblock gregtech.multiblock.large_boiler.description=Large Boilers are multiblocks that generate steam from an energy source and water. Said energy source is usually a solid fuel or some high-density fluid. Tiers differ only by amount of steam outputted. gregtech.multiblock.large_turbine.description=Large Turbines are multiblocks that generate power from steam, gases, and plasma by having them spin the turbine's rotor. Energy output is based on rotor efficiency and current speed of turbine. Gearbox casings are used in the center of the structure. gregtech.multiblock.assembly_line.description=The Assembly Line is a large multiblock structure consisting of 5 to 16 "slices". In theory, it's large Assembling Machine, used for creating advanced crafting components. -gregtech.multiblock.fusion_reactor_mk1.description=The Fusion Reactor Mark 1 is a large multiblock structure used for fusing elements into heavier ones. The Mark 1 Fusion Reactor can use LuV, ZPM or UV Energy Hatches. For every Hatch it has its buffer increases by 10M EU. -gregtech.multiblock.fusion_reactor_mk2.description=The Fusion Reactor Mark 2 is a large multiblock structure used for fusing elements into heavier ones. The Mark 2 Fusion Reactor can use ZPM or UV Energy Hatches. For every Hatch it has its buffer increases by 20M EU. -gregtech.multiblock.fusion_reactor_mk3.description=The Fusion Reactor Mark 3 is a large multiblock structure used for fusing elements into heavier ones. The Mark 3 Fusion Reactor can only use UV Energy Hatches. For every Hatch it has its buffer increases by 40M EU. +gregtech.multiblock.fusion_reactor_mk1.description=The Fusion Reactor Mark 1 is a large multiblock structure used for fusing elements into heavier ones. It can only use LuV, ZPM, and UV Energy Hatches. For every Hatch it has, its buffer increases by 10M EU, and has a maximum of 160M. +gregtech.multiblock.fusion_reactor_mk2.description=The Fusion Reactor Mark 2 is a large multiblock structure used for fusing elements into heavier ones. It can only use ZPM and UV Energy Hatches. For every Hatch it has, its buffer increases by 20M EU, and has a maximum of 320M. +gregtech.multiblock.fusion_reactor_mk3.description=The Fusion Reactor Mark 3 is a large multiblock structure used for fusing elements into heavier ones. It can only use UV Energy Hatches. For every Hatch it has, its buffer increases by 40M EU, and has a maximum of 640M. gregtech.multiblock.fusion_reactor.heat=Heat: %d gregtech.multiblock.large_chemical_reactor.description=The Large Chemical Reactor performs chemical reactions at 100% energy efficiency. Overclocks multiply both speed and energy by 4. The multiblock requires exactly 1 Cupronickel Coil Block, which must be placed adjacent to the PTFE Pipe casing located in the center. gregtech.multiblock.primitive_water_pump.description=The Primitive Water Pump is a pre-Steam Era multiblock that collects water once per second, depending on the Biome it is in. It can use a Pump, ULV, or LV Output Hatch, increasing the amount of water per tier. Follows the formula: Biome Coefficient * Hatch Multiplier. @@ -2109,10 +2109,6 @@ tile.wire_coil.naquadah_alloy.name=Naquadah Alloy Coil Block tile.wire_coil.fluxed_electrum.name=Fluxed Electrum Coil Block tile.wire_coil.diamericium_titanium.name=Diamericium Titanium Coil Block -# Fusion coil blocks -tile.fusion_coil.superconductor.name=Superconducting Coil Block -tile.fusion_coil.fusion_coil.name=Fusion Coil Block - # General casing block tooltip tile.machine_casing.tooltip1=Mobs cannot Spawn on this Block tile.machine_casing.tooltip2=This is NOT a TileEntity! @@ -2196,11 +2192,17 @@ tile.multiblock_casing.engine_intake.name=Engine Intake Casing tile.multiblock_casing.grate.name=Grate Machine Casing tile.multiblock_casing.assembler.name=Assembler Machine Casing tile.multiblock_casing.assembly_line.name=Assembly Line Casing -tile.multiblock_casing.fusion.name=Fusion Machine Casing -tile.multiblock_casing.fusion_mk2.name=Fusion Machine Casing MK II + +# Fusion casing blocks +tile.fusion_casing.superconductor_coil.name=Superconducting Coil Block +tile.fusion_casing.fusion_coil.name=Fusion Coil Block +tile.fusion_casing.fusion_casing.name=Fusion Machine Casing +tile.fusion_casing.fusion_casing_mk2.name=Fusion Machine Casing MK II +tile.fusion_casing.fusion_casing_mk3.name=Fusion Machine Casing MK III # Transparent casing blocks tile.transparent_casing.reinforced_glass.name=Reinforced Glass +tile.transparent_casing.fusion_glass.name=Fusion Glass # Creative tabs itemGroup.gregtech.main=GregTech @@ -3573,6 +3575,7 @@ gregtech.machine.assembly_line.name=Assembly Line gregtech.machine.fusion_reactor.luv.name=Fusion Reactor Computer Mark 1 gregtech.machine.fusion_reactor.zpm.name=Fusion Reactor Computer Mark 2 gregtech.machine.fusion_reactor.uv.name=Fusion Reactor Computer Mark 3 +gregtech.machine.fusion_reactor.capacity=§7Maximum Energy Storage: §e%sM EU gregtech.machine.large_chemical_reactor.name=Large Chemical Reactor diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3.png b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3.png new file mode 100644 index 00000000000..4bbc0716cf8 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3.png.mcmeta new file mode 100644 index 00000000000..1ada739c5a9 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3.png.mcmeta @@ -0,0 +1,13 @@ +{ + "ctm": { + "ctm_version": 1, + "type": "CTM", + "layer": "CUTOUT", + "textures": [ + "gregtech:blocks/casings/fusion/machine_casing_fusion_3_ctm" + ], + "extra": { + "connect_inside": true + } + } +} diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3_ctm.png b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3_ctm.png new file mode 100644 index 00000000000..a2e79c5911f Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_3_ctm.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_glass.png b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_hatch.png similarity index 100% rename from src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_glass.png rename to src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_hatch.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_glass_yellow.png b/src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_hatch_yellow.png similarity index 100% rename from src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_glass_yellow.png rename to src/main/resources/assets/gregtech/textures/blocks/casings/fusion/machine_casing_fusion_hatch_yellow.png diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass.png b/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass.png new file mode 100644 index 00000000000..c47c779a927 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass.png differ diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass.png.mcmeta new file mode 100644 index 00000000000..01ca6bc2e47 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass.png.mcmeta @@ -0,0 +1,13 @@ +{ + "ctm": { + "ctm_version": 1, + "type": "CTM", + "layer": "CUTOUT", + "textures": [ + "gregtech:blocks/casings/transparent/fusion_glass_ctm" + ], + "extra": { + "connect_inside": true + } + } +} diff --git a/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass_ctm.png b/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass_ctm.png new file mode 100644 index 00000000000..55274ba8772 Binary files /dev/null and b/src/main/resources/assets/gregtech/textures/blocks/casings/transparent/fusion_glass_ctm.png differ