diff --git a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e index f3530960..5e494b93 100644 --- a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e +++ b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e @@ -1,2 +1,2 @@ -// 1.19.2 2023-09-19T14:23:32.3677565 Create: The Factory Must Grow's lang merger -279de59a50ebc382a1a701878d0e99bf46265336 assets/tfmg/lang/en_us.json +// 1.19.2 2023-09-22T16:49:10.0101293 Create: The Factory Must Grow's lang merger +7dc07e2f297d06725fb6b2378b917fb81966a70d assets/tfmg/lang/en_us.json diff --git a/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a b/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a index 8e79db72..c39478ee 100644 --- a/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a +++ b/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a @@ -1,4 +1,4 @@ -// 1.19.2 2023-09-19T14:23:32.3567546 Registrate Provider for tfmg [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +// 1.19.2 2023-09-22T16:49:10.0141303 Registrate Provider for tfmg [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] b7f5146505c40c08cdea7ad01fa99048b7ac5451 assets/tfmg/blockstates/aluminum_block.json 933485fa587fccc649b4cbe8f76f15e590cc8bb1 assets/tfmg/blockstates/bauxite.json 2b53ff8e880d35a42388584cb3ca896c55bfaf95 assets/tfmg/blockstates/bauxite_pillar.json @@ -65,8 +65,8 @@ e29906d296994a13fefc2beb22f7693e1027dd1b assets/tfmg/blockstates/steel_fluid_val 71b4c68d8a02062252c4dfde41650b7667d8c0ca assets/tfmg/blockstates/steel_sheetmetal.json 47b56dad1f2715aae7430b5f9acb1d51a26cf562 assets/tfmg/blockstates/steel_smart_fluid_pipe.json 942bb86fa92b3c40fc535dccdd2e9f3b79a36d92 assets/tfmg/blockstates/surface_scanner.json -67b8a6fd76d364c98275a66fb3f4cc9bbb043359 assets/tfmg/lang/en_ud.json -4bb8653cbdb013bc36e507bc2408c5b4279a4864 assets/tfmg/lang/en_us.json +fd454201619789195f2c164c19e2f61ab727bfe5 assets/tfmg/lang/en_ud.json +e80d79d10c0e092c3a2b7b8a97d08fb38a6f7e76 assets/tfmg/lang/en_us.json 9e6a6b62f5e7528c4e4d4f72f3510edcd8f0c078 assets/tfmg/models/block/aluminum_block.json 5a4c785e8d8394ccd125732c0017459648574c4e assets/tfmg/models/block/bauxite_natural_0.json 4ace0da00498fcbb9ddfdf321767b40b095c8778 assets/tfmg/models/block/bauxite_natural_1.json @@ -190,6 +190,7 @@ fc48286f0e70651f3d5a915558c3c91ae3ad0da6 assets/tfmg/models/item/cast_iron_disti da2c28e98d0ddf7166bdf7214c06e81ad8581b90 assets/tfmg/models/item/cast_iron_ingot.json d45fc5511b4c4027889afd3088cd91ba1d8b0501 assets/tfmg/models/item/coal_coke.json 3789a9d72a7ba5daf8c39cccaa665057e63302c6 assets/tfmg/models/item/coal_coke_block.json +cf3c486158a27cbd3a4ef9fdd79dc93f3cc12b45 assets/tfmg/models/item/coal_coke_dust.json 4a843d55647a606fa97bc2daf745a7603406767d assets/tfmg/models/item/concrete.json e8c4e68647a6ced815cfca649c679e709fcc7751 assets/tfmg/models/item/cooling_fluid_bucket.json df4e7fa8f3f60908f58794528a8db60dce7d0135 assets/tfmg/models/item/copper_grenade.json @@ -270,6 +271,7 @@ a779b7e09e7de79b73efb212644edff6739da610 data/forge/tags/items/buckets/napalm.js fdf3b8fdf1975b0eee671f428803caa4e17dc5bd data/forge/tags/items/buckets/naphtha.json 5f98116af6d1d5e0324ff11449e719e7e2593c0c data/forge/tags/items/buckets/plastic.json f0989952061266a02499103c1dcd9f2d7da131f5 data/forge/tags/items/concrete.json +f1cc6d710a5e49ab33dbaceea796f0c0b589c82b data/forge/tags/items/dusts/coal_coke.json 70e609465aa949ff4acc873fb19d4afc07f79aa1 data/forge/tags/items/ingots/aluminum.json 2da28c9441f79389929080f6f31da841bbee19e7 data/forge/tags/items/ingots/cast_iron.json 6746e7b0c2ed4053e7b438c3e99e86889fa9d454 data/forge/tags/items/ingots/lead.json diff --git a/src/generated/resources/assets/tfmg/lang/en_ud.json b/src/generated/resources/assets/tfmg/lang/en_ud.json index 9ab0c9e9..0b7b8d25 100644 --- a/src/generated/resources/assets/tfmg/lang/en_ud.json +++ b/src/generated/resources/assets/tfmg/lang/en_ud.json @@ -93,6 +93,7 @@ "item.tfmg.aluminum_ingot": "ʇobuI ɯnuıɯnןⱯ", "item.tfmg.cast_iron_ingot": "ʇobuI uoɹI ʇsɐƆ", "item.tfmg.coal_coke": "ǝʞoƆ ןɐoƆ", + "item.tfmg.coal_coke_dust": "ʇsnᗡ ǝʞoƆ ןɐoƆ", "item.tfmg.cooling_fluid_bucket": "ʇǝʞɔnᗺ pınןℲ buıןooƆ", "item.tfmg.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ", "item.tfmg.creosote_bucket": "ʇǝʞɔnᗺ ǝʇosoǝɹƆ", diff --git a/src/generated/resources/assets/tfmg/lang/en_us.json b/src/generated/resources/assets/tfmg/lang/en_us.json index e3eb5c92..a907ebeb 100644 --- a/src/generated/resources/assets/tfmg/lang/en_us.json +++ b/src/generated/resources/assets/tfmg/lang/en_us.json @@ -99,6 +99,7 @@ "item.tfmg.aluminum_ingot": "Aluminum Ingot", "item.tfmg.cast_iron_ingot": "Cast Iron Ingot", "item.tfmg.coal_coke": "Coal Coke", + "item.tfmg.coal_coke_dust": "Coal Coke Dust", "item.tfmg.cooling_fluid_bucket": "Cooling Fluid Bucket", "item.tfmg.copper_grenade": "Copper Grenade", "item.tfmg.creosote_bucket": "Creosote Bucket", @@ -119,26 +120,6 @@ "item.tfmg.thermite_grenade": "Thermite Grenade", "item.tfmg.zinc_grenade": "Zinc Grenade", - "itemGroup.tfmg.base": "Create: The Factory Must Grow", - "itemGroup.tfmg.building": "Create: TFMG's Building Blocks", - - "create.goggles.misc.number": "%1$s", - "create.goggles.misc.dot_one": ".", - "create.goggles.misc.dot_two": "..", - "create.goggles.misc.dot_three": "...", - "create.goggles.fluid_in_tank": "Fluid In Tank:", - "create.goggles.surface_scanner.no_rotation": "No Rotation Provided", - "create.goggles.surface_scanner.no_deposit": "No Deposit Found", - "create.goggles.surface_scanner.deposit_found": "Found Deposit", - "create.goggles.surface_scanner.distance": "Distance: %1$s Blocks", - "create.goggles.surface_scanner.scanning_surface": "Scanning Surface", - "create.goggles.distillation_tower.status": "Distillation Tower Info:", - "create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found", - "create.goggles.distillation_tower.not_tall_enough": "Distillation Tower is Not Tall Enough", - "create.goggles.distillation_tower.level": "Distillation Tower Level: %1$s", - "create.goggles.distillation_tower.found_outputs": "Found Outputs: %1$s", - "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found", - "_": "->------------------------] UI & Messages [------------------------<-", @@ -161,6 +142,17 @@ "create.goggles.distillation_tower.level": "Distillation Tower Level: %1$s", "create.goggles.distillation_tower.found_outputs": "Found Outputs: %1$s", "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found", + "create.goggles.blast_furnace.stats": "Blast Furnace Stats:", + "create.goggles.blast_furnace.size_stats": "Size Stats:", + "create.goggles.blast_furnace.fuel_amount": "Fuel Amount: %1$s", + "create.goggles.blast_furnace.item_count": "Item Count: %1$s", + "create.goggles.blast_furnace.height": "Height: %1$s", + "create.goggles.blast_furnace.reinforcement_height": "Reinforcement Height: %1$s", + "create.goggles.blast_furnace.status.off": "Status: Off", + "create.goggles.blast_furnace.status.running": "Status: Running", + "create.goggles.blast_furnace.status.finished": "Status: Process Finished", + "create.goggles.blast_furnace.diameter.one": "Diameter: 1", + "create.goggles.blast_furnace.diameter.two": "Diameter: 2", "_": "Thank you for translating Create: The Factory Must Grow!" diff --git a/src/generated/resources/assets/tfmg/models/item/coal_coke_dust.json b/src/generated/resources/assets/tfmg/models/item/coal_coke_dust.json new file mode 100644 index 00000000..196f269c --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/coal_coke_dust.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfmg:item/coal_coke_dust" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/dusts/coal_coke.json b/src/generated/resources/data/forge/tags/items/dusts/coal_coke.json new file mode 100644 index 00000000..dddd0b09 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/dusts/coal_coke.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:coal_coke_dust" + ] +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/tfmg/content/concrete/formwork/FormWorkRenderer.java b/src/main/java/com/drmangotea/tfmg/content/concrete/formwork/FormWorkRenderer.java index e50514b6..973de86e 100644 --- a/src/main/java/com/drmangotea/tfmg/content/concrete/formwork/FormWorkRenderer.java +++ b/src/main/java/com/drmangotea/tfmg/content/concrete/formwork/FormWorkRenderer.java @@ -92,17 +92,7 @@ public class FormWorkRenderer extends SafeBlockEntityRenderer { + public BlastFurnaceOutputBlock(Properties p_54120_) { + super(p_54120_); + } + public BlockState getStateForPlacement(BlockPlaceContext p_48781_) { + return this.defaultBlockState().setValue(FACING, p_48781_.getHorizontalDirection().getOpposite()); + } + @Override + public Class getBlockEntityClass() { + return BlastFurnaceOutputBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.BLAST_FURNACE_OUTPUT.get(); + } + @Override + protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { + super.createBlockStateDefinition(pBuilder.add(FACING)); + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/metal_processing/blast_furnace/blast_furnace_output/BlastFurnaceOutputBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/metal_processing/blast_furnace/blast_furnace_output/BlastFurnaceOutputBlockEntity.java new file mode 100644 index 00000000..e01dde62 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/metal_processing/blast_furnace/blast_furnace_output/BlastFurnaceOutputBlockEntity.java @@ -0,0 +1,482 @@ +package com.drmangotea.tfmg.content.machines.metal_processing.blast_furnace.blast_furnace_output; + +import com.drmangotea.tfmg.content.machines.TFMGMachineBlockEntity; +import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.drmangotea.tfmg.registry.TFMGItems; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.item.SmartInventory; +import com.simibubi.create.foundation.utility.Lang; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.wrapper.CombinedInvWrapper; + +import javax.annotation.Nonnull; +import java.util.ArrayList; +import java.util.List; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + +public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implements IHaveGoggleInformation { + + + + public BlastFurnaceType type; + public Direction outputFacing = getBlockState().getValue(FACING); + public BlockPos mainFloor; + public int height=2; + public int reinforcementHeight = 0; + + + public LerpedFloat coalCokeHeight = LerpedFloat.linear(); + + //item storage + public LazyOptional itemCapability; + + public SmartInventory inputInventory; + + public SmartInventory fuelInventory; + + + + + + public BlastFurnaceOutputBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + inputInventory = new SmartInventory(1, this).forbidInsertion() + .withMaxStackSize(64); + fuelInventory = new SmartInventory(1, this).forbidInsertion() + .withMaxStackSize(64); + + itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(inputInventory,fuelInventory)); + } + @Override + public void addBehaviours(List behaviours) { + super.addBehaviours(behaviours); + } + public void tick(){ + super.tick(); + outputFacing = getBlockState().getValue(FACING); + coalCokeHeight.chase(fuelInventory.getStackInSlot(0).getCount(), 0.1f, LerpedFloat.Chaser.EXP); + coalCokeHeight.tickChaser(); + + checkType(); + + if(type == BlastFurnaceType.INVALID) + return; + + List itemsToPick = getItemsToPick(type); + for(ItemEntity itemEntity : itemsToPick){ + ItemStack itemStack = itemEntity.getItem(); + if(itemStack.is(TFMGItems.COAL_COKE_DUST.get())){ + + int freeSpace = fuelInventory.getStackInSlot(0).getMaxStackSize()-fuelInventory.getStackInSlot(0).getCount(); + + int coalCokeCount = itemStack.getCount(); + //if(itemStack == ItemStack.EMPTY) + // continue; + + if(coalCokeCount>freeSpace){ + itemStack.setCount(itemStack.getCount()-freeSpace); + fuelInventory.setItem(0 ,new ItemStack (TFMGItems.COAL_COKE_DUST.get(),fuelInventory.getStackInSlot(0).getCount()+freeSpace)); + }else { + fuelInventory.setItem(0 ,new ItemStack (TFMGItems.COAL_COKE_DUST.get(),fuelInventory.getStackInSlot(0).getCount()+itemStack.getCount())); + itemEntity.discard(); + } + continue; + + } + + itemEntity.discard(); + } + } + + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + + // Lang.translate("goggles.surface_scanner.distance", fuelInventory.getItem(0).getCount()) + // .style(ChatFormatting.GREEN) + // .forGoggles(tooltip,1); + Lang.translate("goggles.surface_scanner.distance", reinforcementHeight) + .style(ChatFormatting.GREEN) + .forGoggles(tooltip,1); + return true; + + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + inputInventory.deserializeNBT(compound.getCompound("InputItems")); + fuelInventory.deserializeNBT(compound.getCompound("Fuel")); + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + super.write(compound, clientPacket); + + compound.put("InputItems", inputInventory.serializeNBT()); + compound.put("Fuel", fuelInventory.serializeNBT()); + + } + @Override + public void invalidate() { + super.invalidate(); + itemCapability.invalidate(); + } + @Nonnull + @Override + @SuppressWarnings("'net.minecraftforge.items.CapabilityItemHandler' is deprecated and marked for removal ") + public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { + if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + return itemCapability.cast(); + if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + return fluidCapability.cast(); + return super.getCapability(cap, side); + } + public void checkType(){ + + mainFloor = this.getBlockPos().relative(outputFacing.getOpposite()); + if(!isValidBlock(mainFloor)) { + type = BlastFurnaceType.INVALID; + return; + } + + if(!isAboveClear(mainFloor)){ + type = BlastFurnaceType.INVALID; + return; + } + + + if(canBeSmall()) + type = BlastFurnaceType.SMALL; + if(canBeBigLeft()) + type = BlastFurnaceType.BIG_LEFT; + if(canBeBigRight()) + type = BlastFurnaceType.BIG_RIGHT; + + + if( + !canBeBigLeft()&& + !canBeBigRight()&& + !canBeSmall() + )type = BlastFurnaceType.INVALID; + + + + + + + + + } + + + + + public boolean isAboveClear(BlockPos pos){ + pos = pos.above(); + return level.getBlockState(pos).is(Blocks.AIR); + } + public boolean isAboveValid(BlockPos pos){ + return isAboveValid(pos,false); + } + public boolean isAboveValid(BlockPos pos,boolean firstCheck){ + pos = pos.above(); + boolean isValid = level.getBlockState(pos).is(TFMGBlocks.FIREPROOF_BRICKS.get()); + + BlockPos pos1 = pos.above(); + int height=2; + for(int i=0; i <8; i++){ + + if(level.getBlockState(pos1).is(TFMGBlocks.FIREPROOF_BRICKS.get())){ + height++; + } else { + break; + } + + pos1 = pos1.above(); + } + if(height<=this.height||firstCheck) + this.height=height; + + + return isValid; + } + // + public void isReinforcement(BlockPos pos){ + this.isReinforcement(pos,false); + } + public void isReinforcement(BlockPos pos,boolean firstCheck){ + + BlockPos pos1 = pos; + int height=0; + for(int i=0; i <8; i++){ + + if(level.getBlockState(pos1).is(TFMGBlocks.FIREPROOF_BRICK_REINFORCEMENT.get())){ + height++; + } else { + break; + } + + pos1 = pos1.above(); + } + if(height<=this.reinforcementHeight||firstCheck) + this.reinforcementHeight=height; + + } + public boolean isValidBlock(BlockPos pos){ + return level.getBlockState(pos).is(TFMGBlocks.FIREPROOF_BRICKS.get()); + } + //its average :/ + public boolean canBeSmall(){ + BlockPos checkedPos=this.getBlockPos().relative(outputFacing.getOpposite()); + BlockPos mainPos = checkedPos; + + if(!isValidBlock(mainPos)) + return false; + if(!isAboveClear(mainPos)) + return false; + checkedPos = mainPos.relative(outputFacing.getClockWise()); + + if(!isValidBlock(checkedPos)) + return false; + if(!isAboveValid(checkedPos,true)) + return false; + + checkedPos = mainPos.relative(outputFacing.getCounterClockWise()); + + if(!isValidBlock(checkedPos)) + return false; + if(!isAboveValid(checkedPos)) + return false; + + checkedPos = mainPos.relative(outputFacing); + + if(!isAboveValid(checkedPos)) + return false; + + isReinforcement(checkedPos.relative(outputFacing.getCounterClockWise()),true); + isReinforcement(checkedPos.relative(outputFacing.getClockWise())); + isReinforcement(mainPos.relative(outputFacing.getOpposite()).relative(outputFacing.getCounterClockWise())); + isReinforcement(mainPos.relative(outputFacing.getOpposite()).relative(outputFacing.getClockWise())); + + + // level.setBlock(checkedPos.above(5), Blocks.GOLD_BLOCK.defaultBlockState(), 3); + return true; + } + + public boolean canBeBigRight(){ + mainFloor = this.getBlockPos().relative(outputFacing.getOpposite()); + + BlockPos checkedPos = this.getBlockPos().relative(outputFacing.getCounterClockWise()); + + for(int i = 0; i<4; i++){ + + + for(int y = 0; y<4; y++){ + + + + + if( + !(i ==0 && y ==0)&& + !(i ==3 && y ==3)&& + !(i ==0 && y ==3)&& + !(i ==3 && y ==0) + + ) { + if( i ==1 && y ==0){ + if(isAboveValid(checkedPos)) { + checkedPos = checkedPos.relative(outputFacing.getOpposite()); + continue; + } else return false; + } + + if(!isValidBlock(checkedPos)) { + return false; + } + if(i==0&&y==1){ + if(!isAboveValid(checkedPos,true)) { + return false; + } + } + + + if( + i ==0 || i ==3 || + y == 0 || y == 3 + + ){ + if(!isAboveValid(checkedPos)) { + return false; + } + } + else + if(!isAboveClear(checkedPos)) { + return false; + + } + + } else{ + //reinforcements + if(i ==0 && y ==0) + isReinforcement(checkedPos,true); + + isReinforcement(checkedPos); + + + + } + + + checkedPos = checkedPos.relative(outputFacing.getOpposite()); + + } + checkedPos= checkedPos.relative(outputFacing,4); + checkedPos= checkedPos.relative(outputFacing.getClockWise()); + } + // level.setBlock(checkedPos.above(5), Blocks.DIAMOND_BLOCK.defaultBlockState(), 3); + return true; + } + public boolean canBeBigLeft(){ + mainFloor = this.getBlockPos().relative(outputFacing.getOpposite()); + + BlockPos checkedPos = this.getBlockPos().relative(outputFacing.getClockWise()); + + for(int i = 0; i<4; i++){ + + + for(int y = 0; y<4; y++){ + + + + + if( + !(i ==0 && y ==0)&& + !(i ==3 && y ==3)&& + !(i ==0 && y ==3)&& + !(i ==3 && y ==0) + + ) { + if( i ==1 && y ==0){ + if(isAboveValid(checkedPos)) { + checkedPos = checkedPos.relative(outputFacing.getOpposite()); + continue; + } else return false; + } + + if(!isValidBlock(checkedPos)) { + return false; + } + + if(i==0&&y==1){ + if(!isAboveValid(checkedPos,true)) { + return false; + } + } + + if( + i ==0 || i ==3 || + y == 0 || y == 3 + + ){ + if(!isAboveValid(checkedPos)) { + return false; + } + } + else + if(!isAboveClear(checkedPos)) { + return false; + + } + + }else{ + //reinforcements + if(i ==0 && y ==0) + isReinforcement(checkedPos,true); + + isReinforcement(checkedPos); + + + + } + + + checkedPos = checkedPos.relative(outputFacing.getOpposite()); + + } + checkedPos= checkedPos.relative(outputFacing,4); + checkedPos= checkedPos.relative(outputFacing.getCounterClockWise()); + } + // level.setBlock(checkedPos.above(5), Blocks.EMERALD_BLOCK.defaultBlockState(), 3); + + return true; + } + + public List getItemsToPick(BlastFurnaceType type) { + AABB searchArea=null; + AABB searchArea1=null; + AABB searchArea2=null; + AABB searchArea3=null; + + if(type == BlastFurnaceType.SMALL) + searchArea = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above()); + + if(type == BlastFurnaceType.BIG_RIGHT) { + searchArea = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above()); + + searchArea1 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above()); + searchArea2 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above().relative(outputFacing.getClockWise())); + searchArea3 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above().relative(outputFacing.getClockWise())); + + } + if(type == BlastFurnaceType.BIG_LEFT) { + searchArea = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above()); + + searchArea1 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above()); + searchArea2 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above().relative(outputFacing.getCounterClockWise())); + searchArea3 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above().relative(outputFacing.getCounterClockWise())); + + + } + + + if(searchArea1!=null){ + List itemList= new ArrayList<>(); + itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea)); + itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea1)); + itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea2)); + itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea3)); + return itemList; + } + + return level.getEntitiesOfClass(ItemEntity.class, searchArea); + } + + + + public enum BlastFurnaceType{ + SMALL, + BIG_LEFT, + BIG_RIGHT, + INVALID + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/metal_processing/blast_furnace/blast_furnace_output/BlastFurnaceRenderer.java b/src/main/java/com/drmangotea/tfmg/content/machines/metal_processing/blast_furnace/blast_furnace_output/BlastFurnaceRenderer.java new file mode 100644 index 00000000..83710ad1 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/metal_processing/blast_furnace/blast_furnace_output/BlastFurnaceRenderer.java @@ -0,0 +1,64 @@ +package com.drmangotea.tfmg.content.machines.metal_processing.blast_furnace.blast_furnace_output; + + + +import com.drmangotea.tfmg.registry.TFMGPartialModels; +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.world.level.block.state.BlockState; + +public class BlastFurnaceRenderer extends SafeBlockEntityRenderer { + + public BlastFurnaceRenderer(BlockEntityRendererProvider.Context context) {} + + @Override + protected void renderSafe(BlastFurnaceOutputBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + + ms.pushPose(); + TransformStack msr = TransformStack.cast(ms); + msr.translate(1 / 2f, 0.5, 1 / 2f); + + float coalCokeLevel = be.coalCokeHeight.getValue()/32; + + this.renderNorth(be,partialTicks,ms,buffer,light,overlay,coalCokeLevel); + + + + + ms.popPose(); + + } + + protected void renderNorth(BlastFurnaceOutputBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay,float height) { + BlockState blockState = be.getBlockState(); + VertexConsumer vb = buffer.getBuffer(RenderType.solid()); + //small + if (be.type == BlastFurnaceOutputBlockEntity.BlastFurnaceType.SMALL) { + + + CachedBufferer.partial(TFMGPartialModels.COAL_COKE_DUST_LAYER, blockState) + .centre() + .translateX(-1) + .translateY(height) + .light(light) + .renderInto(ms, vb); + + + + } + } + + @Override + public boolean shouldRenderOffScreen(BlastFurnaceOutputBlockEntity te) { + return true; + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java index 49d60149..0bd3a7a3 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java @@ -1,7 +1,7 @@ package com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlock; +import com.drmangotea.tfmg.content.tanks.SteelTankBlock; import com.drmangotea.tfmg.registry.TFMGBlockEntities; import com.simibubi.create.content.equipment.wrench.IWrenchable; import com.simibubi.create.foundation.block.IBE; @@ -14,25 +14,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.pathfinder.PathComputationType; -import com.simibubi.create.AllShapes; - -import com.simibubi.create.content.equipment.wrench.IWrenchable; -import com.simibubi.create.foundation.advancement.AdvancementBehaviour; -import com.simibubi.create.foundation.block.IBE; -import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock; -import net.minecraft.world.level.block.SimpleWaterloggedBlock; import net.minecraft.world.level.block.state.StateDefinition; public class DistillationControllerBlock extends FaceAttachedHorizontalDirectionalBlock diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java index 172e6ee0..2de6dadd 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java @@ -1,7 +1,7 @@ package com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillery.DistilleryControllerBlockEntity; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlockEntity; +import com.drmangotea.tfmg.content.tanks.SteelTankBlockEntity; import com.drmangotea.tfmg.registry.TFMGBlocks; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.utility.Lang; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java index 9d0725f2..4f824f48 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java @@ -1,8 +1,8 @@ package com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlock; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlockEntity; +import com.drmangotea.tfmg.content.tanks.SteelTankBlock; +import com.drmangotea.tfmg.content.tanks.SteelTankBlockEntity; import com.drmangotea.tfmg.registry.TFMGBlocks; import com.drmangotea.tfmg.registry.TFMGFluids; import com.simibubi.create.Create; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/LockablePipeBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/LockablePipeBlockEntity.java similarity index 95% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/LockablePipeBlockEntity.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/normal/LockablePipeBlockEntity.java index 1aafd34b..53f258e8 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/LockablePipeBlockEntity.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/LockablePipeBlockEntity.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.normal; +package com.drmangotea.tfmg.content.pipes.normal; import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/TFMGPipeBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/TFMGPipeBlockEntity.java similarity index 87% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/TFMGPipeBlockEntity.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/normal/TFMGPipeBlockEntity.java index d5b1b8c7..d32dd051 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/TFMGPipeBlockEntity.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/TFMGPipeBlockEntity.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.normal; +package com.drmangotea.tfmg.content.pipes.normal; import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/EncasedSteelPipeBlock.java b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/EncasedSteelPipeBlock.java similarity index 97% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/EncasedSteelPipeBlock.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/EncasedSteelPipeBlock.java index 74a390d0..77bcc3e0 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/EncasedSteelPipeBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/EncasedSteelPipeBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.normal.steel; +package com.drmangotea.tfmg.content.pipes.normal.steel; import com.drmangotea.tfmg.registry.TFMGBlockEntities; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/GlassSteelPipeBlock.java b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/GlassSteelPipeBlock.java similarity index 98% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/GlassSteelPipeBlock.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/GlassSteelPipeBlock.java index dc137cba..d1b61000 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/GlassSteelPipeBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/GlassSteelPipeBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.normal.steel; +package com.drmangotea.tfmg.content.pipes.normal.steel; import com.drmangotea.tfmg.registry.TFMGBlockEntities; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeAttachmentModel.java b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/SteelPipeAttachmentModel.java similarity index 98% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeAttachmentModel.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/SteelPipeAttachmentModel.java index d4c9401d..342da3c2 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeAttachmentModel.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/SteelPipeAttachmentModel.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.normal.steel; +package com.drmangotea.tfmg.content.pipes.normal.steel; import com.drmangotea.tfmg.registry.TFMGPartialModels; import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeBlock.java b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/SteelPipeBlock.java similarity index 94% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeBlock.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/SteelPipeBlock.java index 3b0fb33b..8a37e64f 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/normal/steel/SteelPipeBlock.java @@ -1,8 +1,7 @@ -package com.drmangotea.tfmg.content.machines.pipes.normal.steel; +package com.drmangotea.tfmg.content.pipes.normal.steel; -import com.drmangotea.tfmg.CreateTFMG; -import com.drmangotea.tfmg.content.machines.pipes.normal.LockablePipeBlockEntity; +import com.drmangotea.tfmg.content.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.tfmg.registry.TFMGBlockEntities; import com.drmangotea.tfmg.registry.TFMGBlocks; import com.simibubi.create.AllBlocks; @@ -28,20 +27,15 @@ import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.block.state.properties.BooleanProperty; -import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.HitResult; import net.minecraft.world.phys.Vec3; import javax.annotation.Nullable; import java.util.Arrays; -import java.util.concurrent.locks.Lock; public class SteelPipeBlock extends FluidPipeBlock { // public static final BooleanProperty LOCKEDDDD = BlockStateProperties.LOCKED; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/TFMGPumpBlock.java b/src/main/java/com/drmangotea/tfmg/content/pipes/pumps/TFMGPumpBlock.java similarity index 94% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/TFMGPumpBlock.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/pumps/TFMGPumpBlock.java index b1db8c90..a58bfad4 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/TFMGPumpBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/pumps/TFMGPumpBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.pumps; +package com.drmangotea.tfmg.content.pipes.pumps; import com.drmangotea.tfmg.registry.TFMGBlockEntities; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/smart_pipes/TFMGSmartFluidPipeBlock.java b/src/main/java/com/drmangotea/tfmg/content/pipes/smart_pipes/TFMGSmartFluidPipeBlock.java similarity index 97% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/smart_pipes/TFMGSmartFluidPipeBlock.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/smart_pipes/TFMGSmartFluidPipeBlock.java index 903fb6a3..a620f386 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/smart_pipes/TFMGSmartFluidPipeBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/smart_pipes/TFMGSmartFluidPipeBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.smart_pipes; +package com.drmangotea.tfmg.content.pipes.smart_pipes; import com.drmangotea.tfmg.registry.TFMGBlockEntities; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/valves/TFMGFluidValveBlock.java b/src/main/java/com/drmangotea/tfmg/content/pipes/valves/TFMGFluidValveBlock.java similarity index 97% rename from src/main/java/com/drmangotea/tfmg/content/machines/pipes/valves/TFMGFluidValveBlock.java rename to src/main/java/com/drmangotea/tfmg/content/pipes/valves/TFMGFluidValveBlock.java index 2278847a..c784ce87 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/valves/TFMGFluidValveBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/pipes/valves/TFMGFluidValveBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.pipes.valves; +package com.drmangotea.tfmg.content.pipes.valves; import javax.annotation.Nonnull; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankModel.java b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelFluidTankModel.java similarity index 98% rename from src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankModel.java rename to src/main/java/com/drmangotea/tfmg/content/tanks/SteelFluidTankModel.java index 33f1130c..a89f8f2d 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankModel.java +++ b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelFluidTankModel.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.tanks; +package com.drmangotea.tfmg.content.tanks; import com.drmangotea.tfmg.base.TFMGSpriteShifts; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankRenderer.java b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelFluidTankRenderer.java similarity index 98% rename from src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankRenderer.java rename to src/main/java/com/drmangotea/tfmg/content/tanks/SteelFluidTankRenderer.java index 9aabab1d..3b9353a0 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankRenderer.java +++ b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelFluidTankRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.tanks; +package com.drmangotea.tfmg.content.tanks; import com.drmangotea.tfmg.registry.TFMGPartialModels; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlock.java b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankBlock.java similarity index 99% rename from src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlock.java rename to src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankBlock.java index fb0d6c8b..49a59703 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlock.java +++ b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.tanks; +package com.drmangotea.tfmg.content.tanks; import com.drmangotea.tfmg.registry.TFMGBlockEntities; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankBlockEntity.java similarity index 97% rename from src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlockEntity.java rename to src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankBlockEntity.java index d62cb357..1fcfb2dd 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlockEntity.java +++ b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankBlockEntity.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.tanks; +package com.drmangotea.tfmg.content.tanks; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower.DistillationTowerData; @@ -14,7 +14,6 @@ import com.simibubi.create.infrastructure.config.AllConfigs; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlock.Shape; import net.minecraft.nbt.NbtUtils; import net.minecraft.network.chat.Component; import net.minecraft.world.level.block.entity.BlockEntity; @@ -285,18 +284,18 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG if (!SteelTankBlock.isTank(blockState)) continue; - Shape shape = Shape.PLAIN; + SteelTankBlock.Shape shape = SteelTankBlock.Shape.PLAIN; if (window) { // SIZE 1: Every tank has a window if (width == 1) - shape = Shape.WINDOW; + shape = SteelTankBlock.Shape.WINDOW; // SIZE 2: Every tank has a corner window if (width == 2) - shape = xOffset == 0 ? zOffset == 0 ? Shape.WINDOW_NW : Shape.WINDOW_SW - : zOffset == 0 ? Shape.WINDOW_NE : Shape.WINDOW_SE; + shape = xOffset == 0 ? zOffset == 0 ? SteelTankBlock.Shape.WINDOW_NW : SteelTankBlock.Shape.WINDOW_SW + : zOffset == 0 ? SteelTankBlock.Shape.WINDOW_NE : SteelTankBlock.Shape.WINDOW_SE; // SIZE 3: Tanks in the center have a window if (width == 3 && abs(abs(xOffset) - abs(zOffset)) == 1) - shape = Shape.WINDOW; + shape = SteelTankBlock.Shape.WINDOW; } level.setBlock(pos, blockState.setValue(SteelTankBlock.SHAPE, shape), 22); diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankGenerator.java b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankGenerator.java similarity index 97% rename from src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankGenerator.java rename to src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankGenerator.java index 4ce606dd..54e39c70 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankGenerator.java +++ b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankGenerator.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.tanks; +package com.drmangotea.tfmg.content.tanks; import com.simibubi.create.foundation.data.AssetLookup; import com.simibubi.create.foundation.data.SpecialBlockStateGen; diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankItem.java b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankItem.java similarity index 98% rename from src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankItem.java rename to src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankItem.java index deea226e..ed1dcc07 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankItem.java +++ b/src/main/java/com/drmangotea/tfmg/content/tanks/SteelTankItem.java @@ -1,4 +1,4 @@ -package com.drmangotea.tfmg.content.machines.tanks; +package com.drmangotea.tfmg.content.tanks; import com.drmangotea.tfmg.registry.TFMGBlockEntities; diff --git a/src/main/java/com/drmangotea/tfmg/mixins/FluidPipeBlockMixin.java b/src/main/java/com/drmangotea/tfmg/mixins/FluidPipeBlockMixin.java index 2aba00a3..c3a1a129 100644 --- a/src/main/java/com/drmangotea/tfmg/mixins/FluidPipeBlockMixin.java +++ b/src/main/java/com/drmangotea/tfmg/mixins/FluidPipeBlockMixin.java @@ -1,8 +1,7 @@ package com.drmangotea.tfmg.mixins; import com.drmangotea.tfmg.CreateTFMG; -import com.drmangotea.tfmg.content.machines.pipes.normal.LockablePipeBlockEntity; -import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.drmangotea.tfmg.content.pipes.normal.LockablePipeBlockEntity; import com.simibubi.create.AllBlockEntityTypes; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.ITransformableBlock; diff --git a/src/main/java/com/drmangotea/tfmg/mixins/FluidPropagatorMixin.java b/src/main/java/com/drmangotea/tfmg/mixins/FluidPropagatorMixin.java index 9b1ba20f..c73a646a 100644 --- a/src/main/java/com/drmangotea/tfmg/mixins/FluidPropagatorMixin.java +++ b/src/main/java/com/drmangotea/tfmg/mixins/FluidPropagatorMixin.java @@ -1,7 +1,6 @@ package com.drmangotea.tfmg.mixins; -import com.drmangotea.tfmg.content.machines.pipes.normal.steel.SteelPipeBlock; import com.drmangotea.tfmg.registry.TFMGBlocks; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllTags; @@ -24,8 +23,6 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.LiquidBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java index d392355a..ad2bf64e 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java @@ -7,6 +7,8 @@ import com.drmangotea.tfmg.content.decoration.doors.TFMGSlidingDoorRenderer; import com.drmangotea.tfmg.content.deposits.FluidDepositBlockEntity; import com.drmangotea.tfmg.content.deposits.surface_scanner.SurfaceScannerRenderer; import com.drmangotea.tfmg.content.deposits.surface_scanner.SurfaceScannerTileEntity; +import com.drmangotea.tfmg.content.machines.metal_processing.blast_furnace.blast_furnace_output.BlastFurnaceOutputBlockEntity; +import com.drmangotea.tfmg.content.machines.metal_processing.blast_furnace.blast_furnace_output.BlastFurnaceRenderer; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower.DistillationControllerBlockEntity; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlockEntity; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillery.DistilleryControllerBlockEntity; @@ -21,9 +23,9 @@ import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holde import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlockEntity; import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputRenderer; import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity; -import com.drmangotea.tfmg.content.machines.pipes.normal.LockablePipeBlockEntity; -import com.drmangotea.tfmg.content.machines.tanks.SteelFluidTankRenderer; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlockEntity; +import com.drmangotea.tfmg.content.pipes.normal.LockablePipeBlockEntity; +import com.drmangotea.tfmg.content.tanks.SteelFluidTankRenderer; +import com.drmangotea.tfmg.content.tanks.SteelTankBlockEntity; import com.simibubi.create.content.fluids.pipes.SmartFluidPipeBlockEntity; import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity; import com.simibubi.create.content.fluids.pipes.TransparentStraightPipeRenderer; @@ -162,6 +164,12 @@ public class TFMGBlockEntities { .renderer(() -> PumpjackBaseRenderer::new) .register(); + public static final BlockEntityEntry BLAST_FURNACE_OUTPUT = REGISTRATE + .blockEntity("blast_furnace_output", BlastFurnaceOutputBlockEntity::new) + .renderer(() -> BlastFurnaceRenderer::new) + .validBlocks(TFMGBlocks.BLAST_FURNACE_OUTPUT) + .register(); + public static void register() {} } diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java index 261595b9..581c6477 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java @@ -11,6 +11,7 @@ import com.drmangotea.tfmg.content.gadgets.explosives.napalm.NapalmBombBlock; import com.drmangotea.tfmg.content.items.CoalCokeBlockItem; import com.drmangotea.tfmg.content.items.FossilstoneItem; import com.drmangotea.tfmg.content.deposits.surface_scanner.SurfaceScannerBlock; +import com.drmangotea.tfmg.content.machines.metal_processing.blast_furnace.blast_furnace_output.BlastFurnaceOutputBlock; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower.DistillationControllerBlock; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlock; import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillery.DistilleryControllerBlock; @@ -19,17 +20,17 @@ import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.base.Pumpjac import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank.PumpjackCrankBlock; import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlock; import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputBlock; -import com.drmangotea.tfmg.content.machines.pipes.normal.steel.EncasedSteelPipeBlock; -import com.drmangotea.tfmg.content.machines.pipes.normal.steel.GlassSteelPipeBlock; -import com.drmangotea.tfmg.content.machines.pipes.normal.steel.SteelPipeAttachmentModel; -import com.drmangotea.tfmg.content.machines.pipes.normal.steel.SteelPipeBlock; -import com.drmangotea.tfmg.content.machines.pipes.pumps.TFMGPumpBlock; -import com.drmangotea.tfmg.content.machines.pipes.smart_pipes.TFMGSmartFluidPipeBlock; -import com.drmangotea.tfmg.content.machines.pipes.valves.TFMGFluidValveBlock; -import com.drmangotea.tfmg.content.machines.tanks.SteelFluidTankModel; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlock; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankGenerator; -import com.drmangotea.tfmg.content.machines.tanks.SteelTankItem; +import com.drmangotea.tfmg.content.pipes.normal.steel.EncasedSteelPipeBlock; +import com.drmangotea.tfmg.content.pipes.normal.steel.GlassSteelPipeBlock; +import com.drmangotea.tfmg.content.pipes.normal.steel.SteelPipeAttachmentModel; +import com.drmangotea.tfmg.content.pipes.normal.steel.SteelPipeBlock; +import com.drmangotea.tfmg.content.pipes.pumps.TFMGPumpBlock; +import com.drmangotea.tfmg.content.pipes.smart_pipes.TFMGSmartFluidPipeBlock; +import com.drmangotea.tfmg.content.pipes.valves.TFMGFluidValveBlock; +import com.drmangotea.tfmg.content.tanks.SteelFluidTankModel; +import com.drmangotea.tfmg.content.tanks.SteelTankBlock; +import com.drmangotea.tfmg.content.tanks.SteelTankGenerator; +import com.drmangotea.tfmg.content.tanks.SteelTankItem; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.content.decoration.encasing.CasingBlock; @@ -352,7 +353,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .build() .lang("Fireproof Brick Reinforcement") .register(); - public static final BlockEntry BLAST_FURNACE_OUTPUT = REGISTRATE.block("blast_furnace_output", Block::new) + public static final BlockEntry BLAST_FURNACE_OUTPUT = REGISTRATE.block("blast_furnace_output", BlastFurnaceOutputBlock::new) .initialProperties(() -> Blocks.BRICKS) .properties(p -> p.color(MaterialColor.COLOR_RED)) .properties(p -> p.requiresCorrectToolForDrops()) diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java index 75d5dcd2..0b3422a5 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java @@ -31,6 +31,9 @@ public class TFMGItems { ALUMINUM_INGOT = taggedIngredient("aluminum_ingot", forgeItemTag("ingots/aluminum"), CREATE_INGOTS.tag), LEAD_INGOT = taggedIngredient("lead_ingot", forgeItemTag("ingots/lead"), CREATE_INGOTS.tag); + public static final ItemEntry + COAL_COKE_DUST = taggedIngredient("coal_coke_dust", forgeItemTag("dusts/coal_coke")); + public static final ItemEntry QUAD_POTATO_CANNON = diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java index 0f8174dc..da7c4b37 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java @@ -18,6 +18,7 @@ import java.util.Map; public class TFMGPartialModels { public static final PartialModel + COAL_COKE_DUST_LAYER = block("coal_coke_dust_layer"), PUMPJACK_HAMMER = block("pumpjack/hammer_holder"), PUMPJACK_FRONT_ROPE = block("pumpjack/pumpjack_front_rope"), PUMPJACK_CONNECTOR = block("pumpjack/pumpjack_connector"), diff --git a/src/main/resources/assets/tfmg/lang/default/interface.json b/src/main/resources/assets/tfmg/lang/default/interface.json index 16e84860..281715a7 100644 --- a/src/main/resources/assets/tfmg/lang/default/interface.json +++ b/src/main/resources/assets/tfmg/lang/default/interface.json @@ -16,5 +16,16 @@ "create.goggles.distillation_tower.not_tall_enough": "Distillation Tower is Not Tall Enough", "create.goggles.distillation_tower.level": "Distillation Tower Level: %1$s", "create.goggles.distillation_tower.found_outputs": "Found Outputs: %1$s", - "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found" + "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found", + "create.goggles.blast_furnace.stats": "Blast Furnace Stats:", + "create.goggles.blast_furnace.size_stats": "Size Stats:", + "create.goggles.blast_furnace.fuel_amount": "Fuel Amount: %1$s", + "create.goggles.blast_furnace.item_count": "Item Count: %1$s", + "create.goggles.blast_furnace.height": "Height: %1$s", + "create.goggles.blast_furnace.reinforcement_height": "Reinforcement Height: %1$s", + "create.goggles.blast_furnace.status.off": "Status: Off", + "create.goggles.blast_furnace.status.running": "Status: Running", + "create.goggles.blast_furnace.status.finished": "Status: Process Finished", + "create.goggles.blast_furnace.diameter.one": "Diameter: 1", + "create.goggles.blast_furnace.diameter.two": "Diameter: 2" } \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/coal_coke_dust_layer.json b/src/main/resources/assets/tfmg/models/block/coal_coke_dust_layer.json new file mode 100644 index 00000000..9d2d1a3a --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/coal_coke_dust_layer.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_block", + "particle": "tfmg:block/steel_block" + }, + "elements": [ + { + "from": [0, 0.1, 0], + "to": [16, 0.1, 16], + "faces": { + "north": {"uv": [0, 0, 16, 0], "texture": "#0"}, + "east": {"uv": [0, 0, 16, 0], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 0], "texture": "#0"}, + "west": {"uv": [0, 0, 16, 0], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/textures/item/coal_coke_dust.png b/src/main/resources/assets/tfmg/textures/item/coal_coke_dust.png new file mode 100644 index 00000000..efdf2708 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/item/coal_coke_dust.png differ