From f6031652c2e59d97c8f81aa7a86bd9771873f2b7 Mon Sep 17 00:00:00 2001 From: DaCodia Date: Tue, 6 Aug 2024 23:02:05 -0500 Subject: [PATCH] 132 YIPEE --- gradle.properties | 3 +- .../createindustry/base/TFMGPipes.java | 91 +++++------ .../electricity/base/ElectricBlockEntity.java | 16 -- .../base/KineticElectricBlockEntity.java | 10 +- .../base/TFMGForgeEnergyStorage.java | 2 - .../cables/CableConnectorBlockEntity.java | 6 - .../electricity/base/cables/WireItem.java | 8 - .../cable_blocks/CableHubBlockEntity.java | 2 - .../AbstractCopycatCableModel.java | 6 +- .../CopycatCableBlock.java | 8 +- .../CopycatCableBlockEntity.java | 4 - .../CopycatCableBlockModel.java | 13 +- .../ElectricMotorBlockEntity.java | 6 - .../polarizer/PolarizerBlockEntity.java | 7 - .../energy_meter/EnergyMeterBlockEntity.java | 3 - .../compact/CompactEngineBlockEntity.java | 11 -- .../diesel/DieselEngineBlockEntity.java | 10 -- .../DieselEngineExpansionBlock.java | 4 - .../engines/intake/AirIntakeBlockEntity.java | 45 ++---- .../LowGradeFuelEngineBlockEntity.java | 43 ++--- .../radial/RadialEngineBlockEntity.java | 35 ++-- .../input/RadialEngineInputBlockEntity.java | 16 -- .../large/LargeRadialEngineBlockEntity.java | 2 - .../small/AbstractEngineBlockEntity.java | 32 +--- .../engines/small/EngineBackBlockEntity.java | 33 +--- .../blocks/fluids/FlammableFluid.java | 1 - .../machines/exhaust/ExhaustBlockEntity.java | 12 -- .../machines/firebox/FireboxBlockEntity.java | 10 +- .../flarestack/FlarestackBlockEntity.java | 21 +-- .../BlastFurnaceOutputBlockEntity.java | 9 -- .../CastingBasinBlockEntity.java | 11 +- .../coke_oven/CokeOvenBlockEntity.java | 13 -- .../DistillationControllerBlockEntity.java | 10 -- .../output/DistillationOutputBlockEntity.java | 7 - .../base/PumpjackBaseBlockEntity.java | 8 - .../normal/GeneralPipeAttachmentModel.java | 119 ++++++++++++++ .../aluminum/AluminumPipeAttachmentModel.java | 151 ------------------ .../brass/BrassPipeAttachmentModel.java | 151 ------------------ .../CastIronPipeAttachmentModel.java | 151 ------------------ .../plastic/PlasticPipeAttachmentModel.java | 151 ------------------ .../steel/SteelPipeAttachmentModel.java | 151 ------------------ .../blocks/tanks/SteelFluidTankModel.java | 4 +- .../blocks/tanks/SteelFluidTankRenderer.java | 4 +- .../blocks/tanks/SteelTankBlock.java | 6 - .../blocks/tanks/SteelTankBlockEntity.java | 52 ++---- .../blocks/tanks/SteelTankItem.java | 2 +- .../createindustry/items/CoalCokeItem.java | 10 +- .../AdvancedPotatoCannonItem.java | 11 +- .../flamethrover/FlamethrowerItem.java | 1 - .../lithium_blade/LitLithiumBladeItem.java | 21 +-- .../QuadPotatoCannonItem.java | 8 +- .../AllOreFeatureConfigEntriesMixin.java | 5 - .../mixins/PipeAttachmentModelMixin.java | 4 - .../mixins/ScreenEffectRendererMixin.java | 10 +- .../recipes/jei/CastingCategory.java | 4 +- .../recipes/jei/CokingCategory.java | 8 +- .../jei/IndustrialBlastingCategory.java | 12 +- .../registry/TFMGEntityTypes.java | 9 +- .../createindustry/registry/TFMGFluids.java | 21 +-- .../createindustry/registry/TFMGFuels.java | 12 ++ .../createindustry/registry/TFMGItems.java | 6 +- .../createindustry/registry/TFMGPackets.java | 31 +--- 62 files changed, 311 insertions(+), 1322 deletions(-) create mode 100644 src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/GeneralPipeAttachmentModel.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeAttachmentModel.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeAttachmentModel.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeAttachmentModel.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeAttachmentModel.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeAttachmentModel.java create mode 100644 src/main/java/com/drmangotea/createindustry/registry/TFMGFuels.java diff --git a/gradle.properties b/gradle.properties index ccc23434..19c847d8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,7 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false -jei_minecraft_version = 1.19.2 -jei_version = 11.4.0.274 +jei_version = 11.6.0.1024 fabric_loader_version = 0.15.7 fabric_api_version = 0.92.0+1.20.1 diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java b/src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java index 7006e13d..3a97b841 100644 --- a/src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGPipes.java @@ -1,24 +1,20 @@ package com.drmangotea.createindustry.base; -import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeAttachmentModel; import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.EncasedAluminumPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.GlassAluminumPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.brass.BrassPipeAttachmentModel; import com.drmangotea.createindustry.blocks.pipes.normal.brass.BrassPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.brass.EncasedBrassPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.brass.GlassBrassPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.CastIronPipeAttachmentModel; import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.CastIronPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.EncasedCastIronPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.GlassCastIronPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.plastic.EncasedPlasticPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.plastic.GlassPlasticPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.plastic.PlasticPipeAttachmentModel; import com.drmangotea.createindustry.blocks.pipes.normal.plastic.PlasticPipeBlock; import com.drmangotea.createindustry.blocks.pipes.normal.steel.EncasedSteelPipeBlock; +import com.drmangotea.createindustry.blocks.pipes.normal.GeneralPipeAttachmentModel; import com.drmangotea.createindustry.blocks.pipes.normal.steel.GlassSteelPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.steel.SteelPipeAttachmentModel; import com.drmangotea.createindustry.blocks.pipes.normal.steel.SteelPipeBlock; import com.drmangotea.createindustry.blocks.pipes.pumps.TFMGPumpBlock; import com.drmangotea.createindustry.blocks.pipes.smart_pipes.TFMGSmartFluidPipeBlock; @@ -48,6 +44,7 @@ import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE; import static com.simibubi.create.foundation.data.ModelGen.customItemModel; import static com.simibubi.create.foundation.data.TagGen.axeOrPickaxe; import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly; +import static com.drmangotea.createindustry.registry.TFMGPartialModels.*; public class TFMGPipes { @@ -61,7 +58,7 @@ public class TFMGPipes { .initialProperties(() -> Blocks.IRON_BLOCK) .transform(pickaxeOnly()) .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, STEEL_PIPE_ATTACHMENTS, STEEL_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -76,7 +73,7 @@ public class TFMGPipes { .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, (s, f) -> !s.getValue(EncasedSteelPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, STEEL_PIPE_ATTACHMENTS, STEEL_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) .transform(EncasingRegistry.addVariantTo(TFMGPipes.STEEL_PIPE)) .register(); @@ -101,7 +98,7 @@ public class TFMGPipes { .build(); }, BlockStateProperties.WATERLOGGED); }) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, STEEL_PIPE_ATTACHMENTS, STEEL_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) .register(); @@ -111,7 +108,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, STEEL_PIPE_ATTACHMENTS, STEEL_FLUID_PIPE_CASING))) .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) @@ -123,7 +120,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, STEEL_PIPE_ATTACHMENTS, STEEL_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -134,7 +131,7 @@ public class TFMGPipes { .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, STEEL_PIPE_ATTACHMENTS, STEEL_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -143,7 +140,7 @@ public class TFMGPipes { .initialProperties(() -> Blocks.IRON_BLOCK) .transform(pickaxeOnly()) .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, CAST_IRON_PIPE_ATTACHMENTS, CAST_IRON_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -158,7 +155,7 @@ public class TFMGPipes { .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, (s, f) -> !s.getValue(EncasedCastIronPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, CAST_IRON_PIPE_ATTACHMENTS, CAST_IRON_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, CAST_IRON_PIPE.get())) .transform(EncasingRegistry.addVariantTo(TFMGPipes.CAST_IRON_PIPE)) .register(); @@ -183,7 +180,7 @@ public class TFMGPipes { .build(); }, BlockStateProperties.WATERLOGGED); }) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, CAST_IRON_PIPE_ATTACHMENTS, CAST_IRON_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, CAST_IRON_PIPE.get())) .register(); @@ -193,7 +190,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, CAST_IRON_PIPE_ATTACHMENTS, CAST_IRON_FLUID_PIPE_CASING))) .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) @@ -205,7 +202,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, CAST_IRON_PIPE_ATTACHMENTS, CAST_IRON_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -216,7 +213,7 @@ public class TFMGPipes { .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, CAST_IRON_PIPE_ATTACHMENTS, CAST_IRON_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -225,7 +222,7 @@ public class TFMGPipes { .initialProperties(() -> Blocks.IRON_BLOCK) .transform(pickaxeOnly()) .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, BRASS_PIPE_ATTACHMENTS, BRASS_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -240,7 +237,7 @@ public class TFMGPipes { .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, (s, f) -> !s.getValue(EncasedBrassPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, BRASS_PIPE_ATTACHMENTS, BRASS_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, BRASS_PIPE.get())) .transform(EncasingRegistry.addVariantTo(TFMGPipes.BRASS_PIPE)) .register(); @@ -265,7 +262,7 @@ public class TFMGPipes { .build(); }, BlockStateProperties.WATERLOGGED); }) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, BRASS_PIPE_ATTACHMENTS, BRASS_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) .register(); @@ -275,7 +272,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, BRASS_PIPE_ATTACHMENTS, BRASS_FLUID_PIPE_CASING))) .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) @@ -287,7 +284,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, BRASS_PIPE_ATTACHMENTS, BRASS_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -298,7 +295,7 @@ public class TFMGPipes { .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, BRASS_PIPE_ATTACHMENTS, BRASS_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -307,7 +304,7 @@ public class TFMGPipes { .initialProperties(() -> Blocks.QUARTZ_BLOCK) .transform(pickaxeOnly()) .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, PLASTIC_PIPE_ATTACHMENTS, PLASTIC_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -322,7 +319,7 @@ public class TFMGPipes { .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, (s, f) -> !s.getValue(EncasedPlasticPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, PLASTIC_PIPE_ATTACHMENTS, PLASTIC_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, PLASTIC_PIPE.get())) .transform(EncasingRegistry.addVariantTo(TFMGPipes.PLASTIC_PIPE)) .register(); @@ -347,7 +344,7 @@ public class TFMGPipes { .build(); }, BlockStateProperties.WATERLOGGED); }) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, PLASTIC_PIPE_ATTACHMENTS, PLASTIC_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, PLASTIC_PIPE.get())) .register(); @@ -357,7 +354,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, PLASTIC_PIPE_ATTACHMENTS, PLASTIC_FLUID_PIPE_CASING))) .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) @@ -369,7 +366,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, PLASTIC_PIPE_ATTACHMENTS, PLASTIC_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -380,7 +377,7 @@ public class TFMGPipes { .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, PLASTIC_PIPE_ATTACHMENTS, PLASTIC_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -389,7 +386,7 @@ public class TFMGPipes { .initialProperties(() -> Blocks.IRON_BLOCK) .transform(pickaxeOnly()) .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, ALUMINUM_PIPE_ATTACHMENTS, ALUMINUM_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -404,7 +401,7 @@ public class TFMGPipes { .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, (s, f) -> !s.getValue(EncasedAluminumPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, ALUMINUM_PIPE_ATTACHMENTS, ALUMINUM_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, ALUMINUM_PIPE.get())) .transform(EncasingRegistry.addVariantTo(TFMGPipes.ALUMINUM_PIPE)) .register(); @@ -416,20 +413,18 @@ public class TFMGPipes { .initialProperties(SharedProperties::copperMetal) .addLayer(() -> RenderType::cutoutMipped) .transform(pickaxeOnly()) - .blockstate((c, p) -> { - p.getVariantBuilder(c.getEntry()) - .forAllStatesExcept(state -> { - Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); - return ConfiguredModel.builder() - .modelFile(p.models() - .getExistingFile(p.modLoc("block/aluminum_pipe/window"))) - .uvLock(false) - .rotationX(axis == Direction.Axis.Y ? 0 : 90) - .rotationY(axis == Direction.Axis.X ? 90 : 0) - .build(); - }, BlockStateProperties.WATERLOGGED); - }) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .blockstate((c, p) -> p.getVariantBuilder(c.getEntry()) + .forAllStatesExcept(state -> { + Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); + return ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/aluminum_pipe/window"))) + .uvLock(false) + .rotationX(axis == Direction.Axis.Y ? 0 : 90) + .rotationY(axis == Direction.Axis.X ? 90 : 0) + .build(); + }, BlockStateProperties.WATERLOGGED)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, ALUMINUM_PIPE_ATTACHMENTS, ALUMINUM_FLUID_PIPE_CASING))) .loot((p, b) -> p.dropOther(b, ALUMINUM_PIPE.get())) .register(); @@ -439,7 +434,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, ALUMINUM_PIPE_ATTACHMENTS, ALUMINUM_FLUID_PIPE_CASING))) .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) @@ -451,7 +446,7 @@ public class TFMGPipes { .properties(p -> p.color(MaterialColor.STONE)) .transform(pickaxeOnly()) .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, ALUMINUM_PIPE_ATTACHMENTS, ALUMINUM_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); @@ -462,7 +457,7 @@ public class TFMGPipes { .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) + .onRegister(CreateRegistrate.blockModel(() -> model -> new GeneralPipeAttachmentModel(model, ALUMINUM_PIPE_ATTACHMENTS, ALUMINUM_FLUID_PIPE_CASING))) .item() .transform(customItemModel()) .register(); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java index 239ed26e..cb11ec34 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/ElectricBlockEntity.java @@ -80,22 +80,6 @@ public class ElectricBlockEntity extends SmartBlockEntity implements IHaveGoggle lazyEnergyHandler.invalidate(); } - @Override - public @NotNull LazyOptional getCapability(@NotNull Capability cap, @Nullable Direction side) { - - - if (cap == ForgeCapabilities.ENERGY&&side == null) { - return lazyEnergyHandler.cast(); - } else - - if (cap == ForgeCapabilities.ENERGY&&hasElectricitySlot(side)) { - return lazyEnergyHandler.cast(); - } - - return super.getCapability(cap, side); - } - - public void manageVoltage(){ if(voltageGeneration()>0) { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/KineticElectricBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/KineticElectricBlockEntity.java index fccca1bd..6ff0295f 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/KineticElectricBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/KineticElectricBlockEntity.java @@ -3,21 +3,13 @@ package com.drmangotea.createindustry.blocks.electricity.base; import com.drmangotea.createindustry.base.util.TFMGUtils; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; -import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.utility.Lang; -import net.minecraft.ChatFormatting; +import io.github.fabricators_of_create.porting_lib.util.LazyOptional; 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.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.energy.IEnergyStorage; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java index 9482bf28..a99c8cae 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/TFMGForgeEnergyStorage.java @@ -1,7 +1,5 @@ package com.drmangotea.createindustry.blocks.electricity.base; -import net.minecraftforge.energy.EnergyStorage; - public abstract class TFMGForgeEnergyStorage extends EnergyStorage { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java index fc041317..1b0deae0 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/CableConnectorBlockEntity.java @@ -1,18 +1,14 @@ package com.drmangotea.createindustry.blocks.electricity.base.cables; -import com.drmangotea.createindustry.CreateTFMG; import com.drmangotea.createindustry.base.TFMGTools; import com.drmangotea.createindustry.blocks.electricity.base.*; import com.drmangotea.createindustry.blocks.electricity.resistors.ResistorBlockEntity; import com.drmangotea.createindustry.registry.TFMGItems; import com.simibubi.create.Create; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.utility.Lang; -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.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -21,8 +17,6 @@ import net.minecraft.world.level.block.entity.BlockEntity; 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.ForgeCapabilities; -import net.minecraftforge.energy.EnergyStorage; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java index 431437ae..e29721f9 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/base/cables/WireItem.java @@ -1,27 +1,19 @@ package com.drmangotea.createindustry.blocks.electricity.base.cables; import com.drmangotea.createindustry.blocks.electricity.base.IHaveCables; -import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonItemRenderer; import com.drmangotea.createindustry.registry.TFMGItems; -import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.extensions.common.IClientItemExtensions; - -import java.util.function.Consumer; public class WireItem extends Item { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java index 4fe42247..38816aa3 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/CableHubBlockEntity.java @@ -1,13 +1,11 @@ package com.drmangotea.createindustry.blocks.electricity.cable_blocks; import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; -import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.capabilities.ForgeCapabilities; import java.util.ArrayList; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java index 54a92057..3a6d5100 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/AbstractCopycatCableModel.java @@ -3,8 +3,8 @@ package com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_ca import com.simibubi.create.AllBlocks; import com.simibubi.create.content.decoration.copycat.CopycatBlock; import com.simibubi.create.content.decoration.copycat.FilteredBlockAndTintGetter; -import com.simibubi.create.foundation.model.BakedModelWrapperWithData; import com.simibubi.create.foundation.utility.Iterate; +import net.fabricmc.fabric.api.renderer.v1.model.ForwardingBakedModel; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.model.BakedQuad; @@ -16,14 +16,12 @@ import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.model.data.ModelData; -import net.minecraftforge.client.model.data.ModelProperty; import javax.annotation.Nullable; import java.util.Collections; import java.util.List; -public abstract class AbstractCopycatCableModel extends BakedModelWrapperWithData { +public abstract class AbstractCopycatCableModel extends ForwardingBakedModel { public static final ModelProperty MATERIAL_PROPERTY = new ModelProperty<>(); private static final ModelProperty OCCLUSION_PROPERTY = new ModelProperty<>(); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java index e36bd3e4..070855fb 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/cable_blocks/copycat_cable_block/CopycatCableBlock.java @@ -7,6 +7,8 @@ import com.simibubi.create.AllTags; import com.simibubi.create.content.decoration.copycat.CopycatModel; import com.simibubi.create.content.equipment.wrench.IWrenchable; import com.simibubi.create.foundation.block.IBE; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.color.block.BlockColor; import net.minecraft.core.BlockPos; @@ -229,7 +231,7 @@ public class CopycatCableBlock extends Block implements IBE randomSupplier, RenderContext context, BlockState material, CullFaceRemovalData cullFaceRemovalData, OcclusionData occlusionData) { + + } + @Override protected List getCroppedQuads(BlockState state, Direction side, RandomSource rand, BlockState material, ModelData wrappedData, RenderType renderType) { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java index a0f6aa52..0aaa7916 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/electric_motor/ElectricMotorBlockEntity.java @@ -15,19 +15,13 @@ import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollVa import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.VecHelper; -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.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.energy.IEnergyStorage; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java index 88ac1a47..e7d3809c 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/polarizer/PolarizerBlockEntity.java @@ -4,7 +4,6 @@ import com.drmangotea.createindustry.base.util.TFMGUtils; import com.drmangotea.createindustry.blocks.electricity.base.ElectricBlockEntity; import com.drmangotea.createindustry.registry.TFMGItems; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; -import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.ChatFormatting; @@ -15,15 +14,9 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.Containers; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.Items; 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.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.items.IItemHandlerModifiable; -import net.minecraftforge.items.wrapper.CombinedInvWrapper; import javax.annotation.Nonnull; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java index 3bfbf5c6..d1321f77 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/electricity/voltmeter/energy_meter/EnergyMeterBlockEntity.java @@ -1,6 +1,5 @@ package com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter; -import com.drmangotea.createindustry.blocks.electricity.base.IElectricBlock; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; @@ -14,8 +13,6 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.energy.EnergyStorage; import java.util.List; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java index a73ae97f..afb421a7 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java @@ -510,17 +510,6 @@ public void write(CompoundTag compound, boolean clientPacket) { return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity(); } - - - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - @Override public void invalidate() { super.invalidate(); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java index d178b320..f9f63838 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java @@ -484,16 +484,6 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo fluidCapability.invalidate(); } - @Nonnull - @Override - @SuppressWarnings("removal") - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - @Override public void notifyUpdate() { super.notifyUpdate(); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/engine_expansion/DieselEngineExpansionBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/engine_expansion/DieselEngineExpansionBlock.java index c000f08b..0c5e7037 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/engine_expansion/DieselEngineExpansionBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/engine_expansion/DieselEngineExpansionBlock.java @@ -3,7 +3,6 @@ package com.drmangotea.createindustry.blocks.engines.diesel.engine_expansion; import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.simibubi.create.content.equipment.wrench.IWrenchable; import com.simibubi.create.foundation.block.IBE; -import com.simibubi.create.foundation.fluid.SmartFluidTank; import net.minecraft.core.Direction; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.block.Block; @@ -11,9 +10,6 @@ import net.minecraft.world.level.block.DirectionalBlock; 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.material.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.templates.FluidTank; public class DieselEngineExpansionBlock extends DirectionalBlock implements IBE, IWrenchable { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/intake/AirIntakeBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/intake/AirIntakeBlockEntity.java index f6c46b96..05d087ea 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/intake/AirIntakeBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/intake/AirIntakeBlockEntity.java @@ -1,14 +1,16 @@ package com.drmangotea.createindustry.blocks.engines.intake; -import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; import com.simibubi.create.content.equipment.wrench.IWrenchable; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; -import com.simibubi.create.foundation.fluid.CombinedTankWrapper; import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.LangBuilder; import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; +import io.github.fabricators_of_create.porting_lib.util.LazyOptional; +import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -19,19 +21,11 @@ import net.minecraft.world.item.context.UseOnContext; 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.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.templates.FluidTank; import javax.annotation.Nonnull; import java.util.ArrayList; import java.util.List; -import java.util.Optional; -import java.util.stream.Stream; import static com.drmangotea.createindustry.blocks.engines.intake.AirIntakeBlock.INVISIBLE; import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; @@ -58,7 +52,7 @@ public class AirIntakeBlockEntity extends KineticBlockEntity implements IWrencha public LerpedFloat visual_angle = LerpedFloat.angular(); protected FluidTank tankInventory; - protected LazyOptional fluidCapability; + protected LazyOptional fluidCapability; @@ -79,7 +73,7 @@ public class AirIntakeBlockEntity extends KineticBlockEntity implements IWrencha int production = ((int) maxShaftSpeed * ((diameter * diameter))) / 10; if (tankInventory.getFluidAmount() + production <= tankInventory.getCapacity()) { //tankInventory.fill(new FluidStack(TFMGFluids.AIR.getSource(), production), IFluidHandler.FluidAction.EXECUTE); - tankInventory.setFluid(new FluidStack(TFMGFluids.AIR.getSource(), production + tankInventory.getFluidAmount())); + tankInventory.setFluid(new FluidStack(FluidVariant.of(TFMGFluids.AIR.getSource()), production + tankInventory.getFluidAmount())); // if(controller!=null) { // ((AirIntakeBlockEntity) level.getBlockEntity(controller)).setChanged(); // ((AirIntakeBlockEntity) level.getBlockEntity(controller)).sendData(); @@ -237,30 +231,9 @@ public class AirIntakeBlockEntity extends KineticBlockEntity implements IWrencha } - - @Nonnull - @Override - @SuppressWarnings("removal") - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - - - - if (!fluidCapability.isPresent()) { - refreshCapability(); - sendData(); - setChanged(); - } - - - - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - private void refreshCapability() { - IFluidHandler handlerForCapability; + FluidTank handlerForCapability; if (controller == null || controller == this.getBlockPos() @@ -272,8 +245,8 @@ public class AirIntakeBlockEntity extends KineticBlockEntity implements IWrencha }else handlerForCapability = tankInventory; - LazyOptional oldCap = fluidCapability; - IFluidHandler finalHandlerForCapability = handlerForCapability; + LazyOptional oldCap = fluidCapability; + FluidTank finalHandlerForCapability = handlerForCapability; fluidCapability = LazyOptional.of(() -> finalHandlerForCapability); //oldCap.invalidate(); } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java index 2b6bee0b..723f1adc 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/low_grade_fuel/LowGradeFuelEngineBlockEntity.java @@ -12,6 +12,11 @@ import com.simibubi.create.foundation.fluid.CombinedTankWrapper; import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.LangBuilder; +import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; +import io.github.fabricators_of_create.porting_lib.util.LazyOptional; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -26,25 +31,15 @@ import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.templates.FluidTank; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.List; -import java.util.Optional; @SuppressWarnings("removal") public class LowGradeFuelEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable { - protected LazyOptional fluidCapability; + protected LazyOptional fluidCapability; protected FluidTank tankInventory; protected FluidTank lubricationOilTank; @@ -87,9 +82,7 @@ boolean signalChanged; //fluidCapability = LazyOptional.of(() -> tankInventory); - fluidCapability = LazyOptional.of(() -> { - return new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank ); - }); + fluidCapability = LazyOptional.of(() -> new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank )); signal = 0; setLazyTickRate(40); @@ -443,7 +436,7 @@ public void write(CompoundTag compound, boolean clientPacket) { - @OnlyIn(Dist.CLIENT) + @Environment(EnvType.CLIENT) private void makeSound(){ soundTimer=0; @@ -499,28 +492,10 @@ public void write(CompoundTag compound, boolean clientPacket) { protected void onFluidStackChanged(FluidStack newFluidStack) {} - - - - - - - public float getFillState() { return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity(); } - - - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - @Override public void invalidate() { super.invalidate(); @@ -529,7 +504,7 @@ public void write(CompoundTag compound, boolean clientPacket) { - public IFluidTank getTankInventory() { + public FluidTank getTankInventory() { return tankInventory; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineBlockEntity.java index 7ce95b9e..7b065788 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineBlockEntity.java @@ -2,7 +2,6 @@ package com.drmangotea.createindustry.blocks.engines.radial; -import com.drmangotea.createindustry.CreateTFMG; import com.drmangotea.createindustry.blocks.engines.radial.input.RadialEngineInputBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; @@ -18,6 +17,11 @@ import com.simibubi.create.foundation.fluid.CombinedTankWrapper; import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.LangBuilder; +import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; +import io.github.fabricators_of_create.porting_lib.util.LazyOptional; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -31,27 +35,18 @@ import net.minecraft.world.level.block.DirectionalBlock; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.templates.FluidTank; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import static net.minecraft.world.level.block.DirectionalBlock.FACING; @SuppressWarnings("removal") public class RadialEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable { - public LazyOptional fluidCapability; + public LazyOptional fluidCapability; protected FluidTank tankInventory; protected FluidTank lubricationOilTank; @@ -100,9 +95,7 @@ public class RadialEngineBlockEntity extends GeneratingKineticBlockEntity implem //fluidCapability = LazyOptional.of(() -> tankInventory); - fluidCapability = LazyOptional.of(() -> { - return new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank ); - }); + fluidCapability = LazyOptional.of(() -> new CombinedTankWrapper(tankInventory,lubricationOilTank,coolantTank )); signal = 0; setLazyTickRate(40); @@ -559,7 +552,7 @@ public void write(CompoundTag compound, boolean clientPacket) { - @OnlyIn(Dist.CLIENT) + @Environment(EnvType.CLIENT) private void makeSound(){ soundTimer=0; @@ -612,16 +605,6 @@ public void write(CompoundTag compound, boolean clientPacket) { return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity(); } - - - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - //if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - // return fluidCapability.cast(); - return super.getCapability(cap, side); - } - @Override public void invalidate() { super.invalidate(); @@ -630,7 +613,7 @@ public void write(CompoundTag compound, boolean clientPacket) { - public IFluidTank getTankInventory() { + public FluidTank getTankInventory() { return tankInventory; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/input/RadialEngineInputBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/input/RadialEngineInputBlockEntity.java index a83e003e..e24d9d94 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/input/RadialEngineInputBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/input/RadialEngineInputBlockEntity.java @@ -1,7 +1,6 @@ package com.drmangotea.createindustry.blocks.engines.radial.input; -import com.drmangotea.createindustry.CreateTFMG; import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlockEntity; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; @@ -11,9 +10,6 @@ import net.minecraft.nbt.CompoundTag; 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.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import javax.annotation.Nonnull; import java.util.List; @@ -78,18 +74,6 @@ public class RadialEngineInputBlockEntity extends SmartBlockEntity { signal = newSignal; } - @Nonnull - @Override - @SuppressWarnings("'net.minecraftforge.items.CapabilityItemHandler' is deprecated and marked for removal ") - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - - if(engine!=null) - if(side == this.getBlockState().getValue(FACING)) - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return engine.fluidCapability.cast(); - return super.getCapability(cap, side); - } - @Override public void write(CompoundTag compound, boolean clientPacket) { compound.putInt("Signal", signal); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/large/LargeRadialEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/large/LargeRadialEngineBlockEntity.java index 2325f188..e43a4f6b 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/large/LargeRadialEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/large/LargeRadialEngineBlockEntity.java @@ -1,14 +1,12 @@ package com.drmangotea.createindustry.blocks.engines.radial.large; import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlockEntity; -import com.drmangotea.createindustry.registry.TFMGFluids; import com.drmangotea.createindustry.registry.TFMGTags; import net.minecraft.core.BlockPos; import net.minecraft.tags.TagKey; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.fluids.capability.IFluidHandler; public class LargeRadialEngineBlockEntity extends RadialEngineBlockEntity { public LargeRadialEngineBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineBlockEntity.java index 800f180f..d82be081 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineBlockEntity.java @@ -15,6 +15,11 @@ import com.simibubi.create.foundation.fluid.CombinedTankWrapper; import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.LangBuilder; +import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; +import io.github.fabricators_of_create.porting_lib.util.LazyOptional; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -28,27 +33,17 @@ import net.minecraft.world.level.block.DirectionalBlock; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.capabilities.ForgeCapabilities; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.templates.FluidTank; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.List; -import java.util.Optional; import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; @SuppressWarnings("removal") public abstract class AbstractEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable { - protected LazyOptional fluidCapability; + protected LazyOptional fluidCapability; protected FluidTank tankInventory; protected FluidTank lubricationOilTank; @@ -540,7 +535,7 @@ public void write(CompoundTag compound, boolean clientPacket) { - @OnlyIn(Dist.CLIENT) + @Environment(EnvType.CLIENT) private void makeSound(){ soundTimer=0; if(this instanceof TurbineEngineTileEntity){ @@ -610,17 +605,6 @@ public void write(CompoundTag compound, boolean clientPacket) { return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity(); } - - - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - @Override public void invalidate() { super.invalidate(); @@ -629,7 +613,7 @@ public void write(CompoundTag compound, boolean clientPacket) { - public IFluidTank getTankInventory() { + public FluidTank getTankInventory() { return tankInventory; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/EngineBackBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/EngineBackBlockEntity.java index 13a4944e..d14a3391 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/EngineBackBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/EngineBackBlockEntity.java @@ -8,6 +8,9 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.LangBuilder; +import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; +import io.github.fabricators_of_create.porting_lib.util.LazyOptional; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -17,26 +20,18 @@ import net.minecraft.world.level.block.DirectionalBlock; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.templates.FluidTank; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.List; -import java.util.Optional; - public class EngineBackBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { +public class EngineBackBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { public int consumptionTimer=0; - protected LazyOptional fluidCapability; + protected LazyOptional fluidCapability; public FluidTank tankInventory; @@ -197,12 +192,12 @@ import java.util.Optional; private void refreshCapability() { - LazyOptional oldCap = fluidCapability; + LazyOptional oldCap = fluidCapability; fluidCapability = LazyOptional.of(() -> handlerForCapability()); oldCap.invalidate(); } - private IFluidHandler handlerForCapability() { + private FluidTank handlerForCapability() { return tankInventory; } @@ -231,24 +226,12 @@ import java.util.Optional; } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (!fluidCapability.isPresent()) - refreshCapability(); - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - - - @Override public void addBehaviours(List behaviours) { } - public IFluidTank getTankInventory() { + public FluidTank getTankInventory() { return tankInventory; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java b/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java index 91d5e9d5..c7b37304 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/fluids/FlammableFluid.java @@ -7,7 +7,6 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; -import net.minecraftforge.fluids.ForgeFlowingFluid; /** * makes fluid burn when close to fire, diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java index 15e8a6df..84fd2cc4 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java @@ -238,18 +238,6 @@ public class ExhaustBlockEntity extends SmartBlockEntity implements IHaveGoggleI } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (!fluidCapability.isPresent()) - refreshCapability(); - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - - - @Override public void addBehaviours(List behaviours) { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java index fa640eb4..119f202c 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/firebox/FireboxBlockEntity.java @@ -114,15 +114,7 @@ public class FireboxBlockEntity extends SmartBlockEntity { fluidCapability = LazyOptional.of(() -> handlerForCapability()); oldCap.invalidate(); } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (!fluidCapability.isPresent()) - refreshCapability(); - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } + private FluidTank handlerForCapability() { return tankInventory; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java index 5143c168..57851087 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java @@ -9,6 +9,7 @@ import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.LangBuilder; import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; import io.github.fabricators_of_create.porting_lib.util.LazyOptional; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; @@ -199,13 +200,12 @@ public class FlarestackBlockEntity extends SmartBlockEntity implements IHaveGogg private void refreshCapability() { - LazyOptional oldCap = fluidCapability; + LazyOptional oldCap = fluidCapability; fluidCapability = LazyOptional.of(() -> handlerForCapability()); oldCap.invalidate(); } - private IFluidHandler handlerForCapability() { - + private FluidTank handlerForCapability() { return tankInventory; } @@ -233,25 +233,12 @@ public class FlarestackBlockEntity extends SmartBlockEntity implements IHaveGogg } - @Nonnull - @Override - @SuppressWarnings("removal") - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (!fluidCapability.isPresent()) - refreshCapability(); - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - - - @Override public void addBehaviours(List behaviours) { } - public IFluidTank getTankInventory() { + public FluidTank getTankInventory() { return tankInventory; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java index 70df2a31..19c565c4 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java @@ -383,16 +383,7 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem super.invalidate(); itemCapability.invalidate(); } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if (cap == ForgeCapabilities.ITEM_HANDLER) - return itemCapability.cast(); - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } public void checkType(){ mainFloor = this.getBlockPos().relative(outputFacing.getOpposite()); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/casting_basin/CastingBasinBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/casting_basin/CastingBasinBlockEntity.java index f67308fb..23c640a8 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/casting_basin/CastingBasinBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/casting_basin/CastingBasinBlockEntity.java @@ -266,16 +266,7 @@ public class CastingBasinBlockEntity extends TFMGMachineBlockEntity implements I super.invalidate(); itemCapability.invalidate(); } - @Nonnull - @Override - @SuppressWarnings("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); - } + protected Object getRecipeCacheKey() { return CastingRecipesKey; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/coke_oven/CokeOvenBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/coke_oven/CokeOvenBlockEntity.java index 26716a8a..c87e8122 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/coke_oven/CokeOvenBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/coke_oven/CokeOvenBlockEntity.java @@ -509,19 +509,6 @@ public class CokeOvenBlockEntity extends TFMGMachineBlockEntity implements IWren super.invalidate(); itemCapability.invalidate(); } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if(controller!=null) - refreshCapability(); - if (cap == ForgeCapabilities.ITEM_HANDLER) - return itemCapability.cast(); - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - - @Override public void addBehaviours(List behaviours) { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java index 5f036fb6..81d2b5cc 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/controller/DistillationControllerBlockEntity.java @@ -221,16 +221,6 @@ public class DistillationControllerBlockEntity extends SmartBlockEntity implemen return DistillationRecipesKey; } - - - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - public ArrayList getOutputs(){ ArrayList outputs = new ArrayList<>(); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java index 43230ac8..7b8dfcac 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/output/DistillationOutputBlockEntity.java @@ -45,13 +45,6 @@ public class DistillationOutputBlockEntity extends SmartBlockEntity implements I } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } @Override protected void read(CompoundTag compound, boolean clientPacket) { super.read(compound, clientPacket); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java index 6f290e0f..3ab4fe53 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java @@ -254,13 +254,5 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/GeneralPipeAttachmentModel.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/GeneralPipeAttachmentModel.java new file mode 100644 index 00000000..2a570441 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/GeneralPipeAttachmentModel.java @@ -0,0 +1,119 @@ +package com.drmangotea.createindustry.blocks.pipes.normal; + +import com.jozufozu.flywheel.core.PartialModel; +import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; +import com.simibubi.create.content.fluids.FluidTransportBehaviour; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.Iterate; +import net.fabricmc.fabric.api.renderer.v1.model.ForwardingBakedModel; +import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; +import net.fabricmc.fabric.api.rendering.data.v1.RenderAttachedBlockView; +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.*; +import java.util.function.Supplier; + +public class GeneralPipeAttachmentModel extends ForwardingBakedModel { + final Map> attachments; + final PartialModel casing; + + public GeneralPipeAttachmentModel(BakedModel wrapped, Map> attachments, PartialModel casing) { + this.wrapped = wrapped; + this.attachments = attachments; + this.casing = casing; + } + + @Override + public boolean isVanillaAdapter() { + return false; + } + + @Override + public void emitBlockQuads(BlockAndTintGetter world, BlockState state, BlockPos pos, Supplier randomSupplier, RenderContext context) { + PipeModelData data = new PipeModelData(); + BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); + + RenderAttachedBlockView attachmentView = (RenderAttachedBlockView) world; + Object attachment = attachmentView.getBlockEntityRenderAttachment(pos); + if (attachment instanceof FluidTransportBehaviour.AttachmentTypes[] attachments) { + for (int i = 0; i < attachments.length; i++) { + data.putAttachment(Iterate.directions[i], attachments[i]); + } + } + + if (bracket != null) + data.putBracket(bracket.getBracket()); + + data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); + + super.emitBlockQuads(world, state, pos, randomSupplier, context); + + addQuads(world, state, pos, randomSupplier, context, data); + } + + private void addQuads(BlockAndTintGetter world, BlockState state, BlockPos pos, Supplier randomSupplier, RenderContext context, + PipeModelData pipeData) { + BakedModel bracket = pipeData.getBracket(); + if (bracket != null) + bracket.emitBlockQuads(world, state, pos, randomSupplier, context); + for (Direction d : Iterate.directions) { + FluidTransportBehaviour.AttachmentTypes type = pipeData.getAttachment(d); + for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials partial : type.partials) { + attachments.get(partial) + .get(d) + .get() + .emitBlockQuads(world, state, pos, randomSupplier, context); + } + } + if (pipeData.isEncased()) + (casing.get()) + .emitBlockQuads(world, state, pos, randomSupplier, context); + } + + private static class PipeModelData { + private final FluidTransportBehaviour.AttachmentTypes[] attachments; + private boolean encased; + private BakedModel bracket; + + public PipeModelData() { + attachments = new FluidTransportBehaviour.AttachmentTypes[6]; + Arrays.fill(attachments, FluidTransportBehaviour.AttachmentTypes.NONE); + } + + public void putBracket(BlockState state) { + if (state != null) { + this.bracket = Minecraft.getInstance() + .getBlockRenderer() + .getBlockModel(state); + } + } + + public BakedModel getBracket() { + return bracket; + } + + public void putAttachment(Direction face, FluidTransportBehaviour.AttachmentTypes rim) { + attachments[face.get3DDataValue()] = rim; + } + + public FluidTransportBehaviour.AttachmentTypes getAttachment(Direction face) { + return attachments[face.get3DDataValue()]; + } + + public void setEncased(boolean encased) { + this.encased = encased; + } + + public boolean isEncased() { + return encased; + } + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeAttachmentModel.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeAttachmentModel.java deleted file mode 100644 index 88e07eb1..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeAttachmentModel.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.drmangotea.createindustry.blocks.pipes.normal.aluminum; - -import com.drmangotea.createindustry.registry.TFMGPartialModels; -import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; -import com.simibubi.create.content.fluids.FluidTransportBehaviour; -import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import io.github.fabricators_of_create.porting_lib.model.data.ModelData; -import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION; - -public class AluminumPipeAttachmentModel extends BakedModelWrapperWithData { - - private static final ModelProperty PIPE_PROPERTY = new ModelProperty<>(); - - public AluminumPipeAttachmentModel(BakedModel template) { - super(template); - } - - @Override - protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, - ModelData blockEntityData) { - PipeModelData data = new PipeModelData(); - FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE); - BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); - - if (transport != null) - for (Direction d : Iterate.directions) { - boolean shouldConnect = true; - if(world.getBlockState(pos.relative(d)).getBlock() instanceof FluidPipeBlock) { - - if(d.getAxis().isHorizontal()) - shouldConnect = world.getBlockState(pos.relative(d)).getValue(PROPERTY_BY_DIRECTION.get(d.getOpposite())); - - - - } - - data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d)); - - if(!shouldConnect) - if(state.getBlock() instanceof FluidPipeBlock) - if(state.getValue(PROPERTY_BY_DIRECTION.get(d))) - data.putAttachment(d, FluidTransportBehaviour.AttachmentTypes.RIM); - - } - if (bracket != null) - data.putBracket(bracket.getBracket()); - - data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); - return builder.with(PIPE_PROPERTY, data); - } - - - @SuppressWarnings("removal") - @Override - public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) { - ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data); - if (set.isEmpty()) { - return ItemBlockRenderTypes.getRenderLayers(state); - } - return set; - } - - @Override - public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { - List quads = super.getQuads(state, side, rand, data, renderType); - if (data.has(PIPE_PROPERTY)) { - PipeModelData pipeData = data.get(PIPE_PROPERTY); - quads = new ArrayList<>(quads); - addQuads(quads, state, side, rand, data, pipeData, renderType); - } - return quads; - } - - private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, - PipeModelData pipeData, RenderType renderType) { - BakedModel bracket = pipeData.getBracket(); - if (bracket != null) - quads.addAll(bracket.getQuads(state, side, rand, data, renderType)); - for (Direction d : Iterate.directions) { - FluidTransportBehaviour.AttachmentTypes type = pipeData.getAttachment(d); - for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials partial : type.partials) { - quads.addAll(TFMGPartialModels.ALUMINUM_PIPE_ATTACHMENTS.get(partial) - .get(d) - .get() - .getQuads(state, side, rand, data, renderType)); - } - } - if (pipeData.isEncased()) - quads.addAll(TFMGPartialModels.ALUMINUM_FLUID_PIPE_CASING.get() - .getQuads(state, side, rand, data, renderType)); - } - - private static class PipeModelData { - private FluidTransportBehaviour.AttachmentTypes[] attachments; - private boolean encased; - private BakedModel bracket; - - public PipeModelData() { - attachments = new FluidTransportBehaviour.AttachmentTypes[6]; - Arrays.fill(attachments, FluidTransportBehaviour.AttachmentTypes.NONE); - } - - public void putBracket(BlockState state) { - if (state != null) { - this.bracket = Minecraft.getInstance() - .getBlockRenderer() - .getBlockModel(state); - } - } - - public BakedModel getBracket() { - return bracket; - } - - public void putAttachment(Direction face, FluidTransportBehaviour.AttachmentTypes rim) { - attachments[face.get3DDataValue()] = rim; - } - - public FluidTransportBehaviour.AttachmentTypes getAttachment(Direction face) { - return attachments[face.get3DDataValue()]; - } - - public void setEncased(boolean encased) { - this.encased = encased; - } - - public boolean isEncased() { - return encased; - } - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeAttachmentModel.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeAttachmentModel.java deleted file mode 100644 index f70b8ade..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeAttachmentModel.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.drmangotea.createindustry.blocks.pipes.normal.brass; - -import com.drmangotea.createindustry.registry.TFMGPartialModels; -import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; -import com.simibubi.create.content.fluids.FluidTransportBehaviour; -import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import io.github.fabricators_of_create.porting_lib.model.data.ModelData; -import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION; - -public class BrassPipeAttachmentModel extends BakedModelWrapperWithData { - - private static final ModelProperty PIPE_PROPERTY = new ModelProperty<>(); - - public BrassPipeAttachmentModel(BakedModel template) { - super(template); - } - - @Override - protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, - ModelData blockEntityData) { - PipeModelData data = new PipeModelData(); - FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE); - BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); - - if (transport != null) - for (Direction d : Iterate.directions) { - boolean shouldConnect = true; - if(world.getBlockState(pos.relative(d)).getBlock() instanceof FluidPipeBlock) { - - if(d.getAxis().isHorizontal()) - shouldConnect = world.getBlockState(pos.relative(d)).getValue(PROPERTY_BY_DIRECTION.get(d.getOpposite())); - - - - } - - data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d)); - - if(!shouldConnect) - if(state.getBlock() instanceof FluidPipeBlock) - if(state.getValue(PROPERTY_BY_DIRECTION.get(d))) - data.putAttachment(d, FluidTransportBehaviour.AttachmentTypes.RIM); - - } - if (bracket != null) - data.putBracket(bracket.getBracket()); - - data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); - return builder.with(PIPE_PROPERTY, data); - } - - - @SuppressWarnings("removal") - @Override - public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) { - ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data); - if (set.isEmpty()) { - return ItemBlockRenderTypes.getRenderLayers(state); - } - return set; - } - - @Override - public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { - List quads = super.getQuads(state, side, rand, data, renderType); - if (data.has(PIPE_PROPERTY)) { - PipeModelData pipeData = data.get(PIPE_PROPERTY); - quads = new ArrayList<>(quads); - addQuads(quads, state, side, rand, data, pipeData, renderType); - } - return quads; - } - - private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, - PipeModelData pipeData, RenderType renderType) { - BakedModel bracket = pipeData.getBracket(); - if (bracket != null) - quads.addAll(bracket.getQuads(state, side, rand, data, renderType)); - for (Direction d : Iterate.directions) { - FluidTransportBehaviour.AttachmentTypes type = pipeData.getAttachment(d); - for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials partial : type.partials) { - quads.addAll(TFMGPartialModels.BRASS_PIPE_ATTACHMENTS.get(partial) - .get(d) - .get() - .getQuads(state, side, rand, data, renderType)); - } - } - if (pipeData.isEncased()) - quads.addAll(TFMGPartialModels.BRASS_FLUID_PIPE_CASING.get() - .getQuads(state, side, rand, data, renderType)); - } - - private static class PipeModelData { - private FluidTransportBehaviour.AttachmentTypes[] attachments; - private boolean encased; - private BakedModel bracket; - - public PipeModelData() { - attachments = new FluidTransportBehaviour.AttachmentTypes[6]; - Arrays.fill(attachments, FluidTransportBehaviour.AttachmentTypes.NONE); - } - - public void putBracket(BlockState state) { - if (state != null) { - this.bracket = Minecraft.getInstance() - .getBlockRenderer() - .getBlockModel(state); - } - } - - public BakedModel getBracket() { - return bracket; - } - - public void putAttachment(Direction face, FluidTransportBehaviour.AttachmentTypes rim) { - attachments[face.get3DDataValue()] = rim; - } - - public FluidTransportBehaviour.AttachmentTypes getAttachment(Direction face) { - return attachments[face.get3DDataValue()]; - } - - public void setEncased(boolean encased) { - this.encased = encased; - } - - public boolean isEncased() { - return encased; - } - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeAttachmentModel.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeAttachmentModel.java deleted file mode 100644 index 92f8e910..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeAttachmentModel.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.drmangotea.createindustry.blocks.pipes.normal.cast_iron; - -import com.drmangotea.createindustry.registry.TFMGPartialModels; -import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; -import com.simibubi.create.content.fluids.FluidTransportBehaviour; -import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import io.github.fabricators_of_create.porting_lib.model.data.ModelData; -import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION; - -public class CastIronPipeAttachmentModel extends BakedModelWrapperWithData { - - private static final ModelProperty PIPE_PROPERTY = new ModelProperty<>(); - - public CastIronPipeAttachmentModel(BakedModel template) { - super(template); - } - - @Override - protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, - ModelData blockEntityData) { - PipeModelData data = new PipeModelData(); - FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE); - BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); - - if (transport != null) - for (Direction d : Iterate.directions) { - boolean shouldConnect = true; - if(world.getBlockState(pos.relative(d)).getBlock() instanceof FluidPipeBlock) { - - if(d.getAxis().isHorizontal()) - shouldConnect = world.getBlockState(pos.relative(d)).getValue(PROPERTY_BY_DIRECTION.get(d.getOpposite())); - - - - } - - data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d)); - - if(!shouldConnect) - if(state.getBlock() instanceof FluidPipeBlock) - if(state.getValue(PROPERTY_BY_DIRECTION.get(d))) - data.putAttachment(d, FluidTransportBehaviour.AttachmentTypes.RIM); - - } - if (bracket != null) - data.putBracket(bracket.getBracket()); - - data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); - return builder.with(PIPE_PROPERTY, data); - } - - - @SuppressWarnings("removal") - @Override - public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) { - ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data); - if (set.isEmpty()) { - return ItemBlockRenderTypes.getRenderLayers(state); - } - return set; - } - - @Override - public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { - List quads = super.getQuads(state, side, rand, data, renderType); - if (data.has(PIPE_PROPERTY)) { - PipeModelData pipeData = data.get(PIPE_PROPERTY); - quads = new ArrayList<>(quads); - addQuads(quads, state, side, rand, data, pipeData, renderType); - } - return quads; - } - - private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, - PipeModelData pipeData, RenderType renderType) { - BakedModel bracket = pipeData.getBracket(); - if (bracket != null) - quads.addAll(bracket.getQuads(state, side, rand, data, renderType)); - for (Direction d : Iterate.directions) { - FluidTransportBehaviour.AttachmentTypes type = pipeData.getAttachment(d); - for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials partial : type.partials) { - quads.addAll(TFMGPartialModels.CAST_IRON_PIPE_ATTACHMENTS.get(partial) - .get(d) - .get() - .getQuads(state, side, rand, data, renderType)); - } - } - if (pipeData.isEncased()) - quads.addAll(TFMGPartialModels.CAST_IRON_FLUID_PIPE_CASING.get() - .getQuads(state, side, rand, data, renderType)); - } - - private static class PipeModelData { - private FluidTransportBehaviour.AttachmentTypes[] attachments; - private boolean encased; - private BakedModel bracket; - - public PipeModelData() { - attachments = new FluidTransportBehaviour.AttachmentTypes[6]; - Arrays.fill(attachments, FluidTransportBehaviour.AttachmentTypes.NONE); - } - - public void putBracket(BlockState state) { - if (state != null) { - this.bracket = Minecraft.getInstance() - .getBlockRenderer() - .getBlockModel(state); - } - } - - public BakedModel getBracket() { - return bracket; - } - - public void putAttachment(Direction face, FluidTransportBehaviour.AttachmentTypes rim) { - attachments[face.get3DDataValue()] = rim; - } - - public FluidTransportBehaviour.AttachmentTypes getAttachment(Direction face) { - return attachments[face.get3DDataValue()]; - } - - public void setEncased(boolean encased) { - this.encased = encased; - } - - public boolean isEncased() { - return encased; - } - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeAttachmentModel.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeAttachmentModel.java deleted file mode 100644 index fc40ec2c..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeAttachmentModel.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.drmangotea.createindustry.blocks.pipes.normal.plastic; - -import com.drmangotea.createindustry.registry.TFMGPartialModels; -import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; -import com.simibubi.create.content.fluids.FluidTransportBehaviour; -import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import io.github.fabricators_of_create.porting_lib.model.data.ModelData; -import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION; - -public class PlasticPipeAttachmentModel extends BakedModelWrapperWithData { - - private static final ModelProperty PIPE_PROPERTY = new ModelProperty<>(); - - public PlasticPipeAttachmentModel(BakedModel template) { - super(template); - } - - @Override - protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, - ModelData blockEntityData) { - PipeModelData data = new PipeModelData(); - FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE); - BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); - - if (transport != null) - for (Direction d : Iterate.directions) { - boolean shouldConnect = true; - if(world.getBlockState(pos.relative(d)).getBlock() instanceof FluidPipeBlock) { - - if(d.getAxis().isHorizontal()) - shouldConnect = world.getBlockState(pos.relative(d)).getValue(PROPERTY_BY_DIRECTION.get(d.getOpposite())); - - - - } - - data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d)); - - if(!shouldConnect) - if(state.getBlock() instanceof FluidPipeBlock) - if(state.getValue(PROPERTY_BY_DIRECTION.get(d))) - data.putAttachment(d, FluidTransportBehaviour.AttachmentTypes.RIM); - - } - if (bracket != null) - data.putBracket(bracket.getBracket()); - - data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); - return builder.with(PIPE_PROPERTY, data); - } - - - @SuppressWarnings("removal") - @Override - public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) { - ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data); - if (set.isEmpty()) { - return ItemBlockRenderTypes.getRenderLayers(state); - } - return set; - } - - @Override - public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { - List quads = super.getQuads(state, side, rand, data, renderType); - if (data.has(PIPE_PROPERTY)) { - PipeModelData pipeData = data.get(PIPE_PROPERTY); - quads = new ArrayList<>(quads); - addQuads(quads, state, side, rand, data, pipeData, renderType); - } - return quads; - } - - private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, - PipeModelData pipeData, RenderType renderType) { - BakedModel bracket = pipeData.getBracket(); - if (bracket != null) - quads.addAll(bracket.getQuads(state, side, rand, data, renderType)); - for (Direction d : Iterate.directions) { - FluidTransportBehaviour.AttachmentTypes type = pipeData.getAttachment(d); - for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials partial : type.partials) { - quads.addAll(TFMGPartialModels.PLASTIC_PIPE_ATTACHMENTS.get(partial) - .get(d) - .get() - .getQuads(state, side, rand, data, renderType)); - } - } - if (pipeData.isEncased()) - quads.addAll(TFMGPartialModels.PLASTIC_FLUID_PIPE_CASING.get() - .getQuads(state, side, rand, data, renderType)); - } - - private static class PipeModelData { - private FluidTransportBehaviour.AttachmentTypes[] attachments; - private boolean encased; - private BakedModel bracket; - - public PipeModelData() { - attachments = new FluidTransportBehaviour.AttachmentTypes[6]; - Arrays.fill(attachments, FluidTransportBehaviour.AttachmentTypes.NONE); - } - - public void putBracket(BlockState state) { - if (state != null) { - this.bracket = Minecraft.getInstance() - .getBlockRenderer() - .getBlockModel(state); - } - } - - public BakedModel getBracket() { - return bracket; - } - - public void putAttachment(Direction face, FluidTransportBehaviour.AttachmentTypes rim) { - attachments[face.get3DDataValue()] = rim; - } - - public FluidTransportBehaviour.AttachmentTypes getAttachment(Direction face) { - return attachments[face.get3DDataValue()]; - } - - public void setEncased(boolean encased) { - this.encased = encased; - } - - public boolean isEncased() { - return encased; - } - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeAttachmentModel.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeAttachmentModel.java deleted file mode 100644 index fa84c1e1..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeAttachmentModel.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.drmangotea.createindustry.blocks.pipes.normal.steel; - -import com.drmangotea.createindustry.registry.TFMGPartialModels; -import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; -import com.simibubi.create.content.fluids.FluidTransportBehaviour; -import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.utility.Iterate; -import io.github.fabricators_of_create.porting_lib.model.data.ModelData; -import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ItemBlockRenderTypes; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.BlockAndTintGetter; -import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION; - -public class SteelPipeAttachmentModel extends BakedModelWrapperWithData { - - private static final ModelProperty PIPE_PROPERTY = new ModelProperty<>(); - - public SteelPipeAttachmentModel(BakedModel template) { - super(template); - } - - @Override - protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, - ModelData blockEntityData) { - PipeModelData data = new PipeModelData(); - FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE); - BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); - - if (transport != null) - for (Direction d : Iterate.directions) { - boolean shouldConnect = true; - if(world.getBlockState(pos.relative(d)).getBlock() instanceof FluidPipeBlock) { - - if(d.getAxis().isHorizontal()) - shouldConnect = world.getBlockState(pos.relative(d)).getValue(PROPERTY_BY_DIRECTION.get(d.getOpposite())); - - - - } - - data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d)); - - if(!shouldConnect) - if(state.getBlock() instanceof FluidPipeBlock) - if(state.getValue(PROPERTY_BY_DIRECTION.get(d))) - data.putAttachment(d, FluidTransportBehaviour.AttachmentTypes.RIM); - - } - if (bracket != null) - data.putBracket(bracket.getBracket()); - - data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); - return builder.with(PIPE_PROPERTY, data); - } - - - @SuppressWarnings("removal") - @Override - public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) { - ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data); - if (set.isEmpty()) { - return ItemBlockRenderTypes.getRenderLayers(state); - } - return set; - } - - @Override - public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { - List quads = super.getQuads(state, side, rand, data, renderType); - if (data.has(PIPE_PROPERTY)) { - PipeModelData pipeData = data.get(PIPE_PROPERTY); - quads = new ArrayList<>(quads); - addQuads(quads, state, side, rand, data, pipeData, renderType); - } - return quads; - } - - private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, - PipeModelData pipeData, RenderType renderType) { - BakedModel bracket = pipeData.getBracket(); - if (bracket != null) - quads.addAll(bracket.getQuads(state, side, rand, data, renderType)); - for (Direction d : Iterate.directions) { - FluidTransportBehaviour.AttachmentTypes type = pipeData.getAttachment(d); - for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials partial : type.partials) { - quads.addAll(TFMGPartialModels.STEEL_PIPE_ATTACHMENTS.get(partial) - .get(d) - .get() - .getQuads(state, side, rand, data, renderType)); - } - } - if (pipeData.isEncased()) - quads.addAll(TFMGPartialModels.STEEL_FLUID_PIPE_CASING.get() - .getQuads(state, side, rand, data, renderType)); - } - - public class PipeModelData { - private FluidTransportBehaviour.AttachmentTypes[] attachments; - private boolean encased; - private BakedModel bracket; - - public PipeModelData() { - attachments = new FluidTransportBehaviour.AttachmentTypes[6]; - Arrays.fill(attachments, FluidTransportBehaviour.AttachmentTypes.NONE); - } - - public void putBracket(BlockState state) { - if (state != null) { - this.bracket = Minecraft.getInstance() - .getBlockRenderer() - .getBlockModel(state); - } - } - - public BakedModel getBracket() { - return bracket; - } - - public void putAttachment(Direction face, FluidTransportBehaviour.AttachmentTypes rim) { - attachments[face.get3DDataValue()] = rim; - } - - public FluidTransportBehaviour.AttachmentTypes getAttachment(Direction face) { - return attachments[face.get3DDataValue()]; - } - - public void setEncased(boolean encased) { - this.encased = encased; - } - - public boolean isEncased() { - return encased; - } - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankModel.java b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankModel.java index ce4cf75a..06db1164 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankModel.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankModel.java @@ -7,6 +7,8 @@ import com.simibubi.create.content.fluids.tank.FluidTankCTBehaviour; import com.simibubi.create.foundation.block.connected.CTModel; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; import com.simibubi.create.foundation.utility.Iterate; +import io.github.fabricators_of_create.porting_lib.model.data.ModelData; +import io.github.fabricators_of_create.porting_lib.model.data.ModelProperty; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.resources.model.BakedModel; @@ -15,8 +17,6 @@ import net.minecraft.core.Direction; import net.minecraft.util.RandomSource; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.model.data.ModelData; -import net.minecraftforge.client.model.data.ModelProperty; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java index ad523cad..77c47c91 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java @@ -11,14 +11,14 @@ import com.simibubi.create.foundation.fluid.FluidRenderer; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction; import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.templates.FluidTank; public class SteelFluidTankRenderer extends SafeBlockEntityRenderer { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlock.java index 690f9b95..cffede07 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlock.java @@ -1,7 +1,6 @@ package com.drmangotea.createindustry.blocks.tanks; -import com.drmangotea.createindustry.CreateTFMG; import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.simibubi.create.api.connectivity.ConnectivityHandler; import com.simibubi.create.content.equipment.wrench.IWrenchable; @@ -47,11 +46,6 @@ import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.common.util.ForgeSoundType; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; public class SteelTankBlock extends Block implements IWrenchable, IBE { diff --git a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlockEntity.java index e5280bec..9e2306f3 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankBlockEntity.java @@ -1,47 +1,31 @@ package com.drmangotea.createindustry.blocks.tanks; -import com.drmangotea.createindustry.CreateTFMG; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller.DistillationControllerBlock; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output.DistillationOutputBlock; import com.drmangotea.createindustry.registry.TFMGBlocks; -import com.simibubi.create.AllBlocks; import com.simibubi.create.api.connectivity.ConnectivityHandler; -import com.simibubi.create.content.decoration.steamWhistle.WhistleBlock; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.content.fluids.tank.BoilerHeaters; -import com.simibubi.create.content.fluids.tank.FluidTankBlock; import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity; -import com.simibubi.create.content.kinetics.steamEngine.SteamEngineBlock; import com.simibubi.create.foundation.blockEntity.IMultiBlockEntityContainer; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import com.simibubi.create.infrastructure.config.AllConfigs; -import net.minecraft.ChatFormatting; +import io.github.fabricators_of_create.porting_lib.transfer.fluid.FluidTank; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; +import io.github.fabricators_of_create.porting_lib.util.LazyOptional; +import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.network.chat.Component; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.entity.BlockEntity; 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.capabilities.ForgeCapabilities; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.FluidType; -import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; -import net.minecraftforge.fluids.capability.templates.FluidTank; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -53,7 +37,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG private static final int MAX_SIZE = 3; - protected LazyOptional fluidCapability; + protected LazyOptional fluidCapability; protected boolean forceFluidLevelUpdate; public FluidTank tankInventory; protected BlockPos controller; @@ -166,7 +150,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG if (!hasLevel()) return; - FluidType attributes = newFluidStack.getFluid() + FluidVariant attributes = newFluidStack.getFluid() .getFluidType(); int luminosity = (int) (attributes.getLightLevel(newFluidStack) / 1.2f); boolean reversed = attributes.isLighterThanAir(); @@ -226,7 +210,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG public void applyFluidTankSize(int blocks) { tankInventory.setCapacity(blocks * getCapacityMultiplier()); - int overflow = tankInventory.getFluidAmount() - tankInventory.getCapacity(); + long overflow = tankInventory.getFluidAmount() - tankInventory.getCapacity(); if (overflow > 0) tankInventory.drain(overflow, FluidAction.EXECUTE); forceFluidLevelUpdate = true; @@ -421,7 +405,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG } public void refreshCapability() { - LazyOptional oldCap = fluidCapability; + LazyOptional oldCap = fluidCapability; fluidCapability = LazyOptional.of(() -> handlerForCapability()); oldCap.invalidate(); } @@ -430,7 +414,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG - private IFluidHandler handlerForCapability() { + private FluidTank handlerForCapability() { return isController() ? tankInventory : getControllerBE() != null ? getControllerBE().handlerForCapability() : tankInventory; @@ -576,24 +560,12 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG forceFluidLevelUpdate = false; } - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (!fluidCapability.isPresent()) - refreshCapability(); - if (cap == ForgeCapabilities.FLUID_HANDLER) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - - - @Override public void addBehaviours(List behaviours) { //registerAwardables(behaviours, AllAdvancements.STEAM_ENGINE_MAXED, AllAdvancements.PIPE_ORGAN); } - public IFluidTank getTankInventory() { + public FluidTank getTankInventory() { return tankInventory; } @@ -705,7 +677,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG } @Override - public int getTankSize(int tank) { + public long getTankSize(int tank) { return getCapacityMultiplier(); } @@ -715,7 +687,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG } @Override - public IFluidTank getTank(int tank) { + public FluidTank getTank(int tank) { return tankInventory; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankItem.java b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankItem.java index d992c120..d43eb76f 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankItem.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelTankItem.java @@ -3,6 +3,7 @@ package com.drmangotea.createindustry.blocks.tanks; import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.simibubi.create.api.connectivity.ConnectivityHandler; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -15,7 +16,6 @@ import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.fluids.FluidStack; public class SteelTankItem extends BlockItem { diff --git a/src/main/java/com/drmangotea/createindustry/items/CoalCokeItem.java b/src/main/java/com/drmangotea/createindustry/items/CoalCokeItem.java index 37b2d744..848fb08a 100644 --- a/src/main/java/com/drmangotea/createindustry/items/CoalCokeItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/CoalCokeItem.java @@ -1,27 +1,19 @@ package com.drmangotea.createindustry.items; -import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.level.block.Block; -import net.minecraftforge.common.property.Properties; import org.jetbrains.annotations.Nullable; public class CoalCokeItem extends Item { - - - public CoalCokeItem(Properties p_40566_) { super( p_40566_); } - - @Override public int getBurnTime(ItemStack itemStack, @Nullable RecipeType recipeType) { - return 3200; + return ; } } diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java index f391686a..328ea665 100644 --- a/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/advanced_potato_cannon/AdvancedPotatoCannonItem.java @@ -9,9 +9,10 @@ import com.simibubi.create.content.equipment.armor.BacktankUtil; import com.simibubi.create.content.equipment.potatoCannon.*; import com.simibubi.create.content.equipment.zapper.ShootableGadgetItemMethods; import com.simibubi.create.foundation.item.CustomArmPoseItem; -import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.infrastructure.config.AllConfigs; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel.ArmPose; import net.minecraft.client.player.AbstractClientPlayer; @@ -29,13 +30,9 @@ import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.extensions.common.IClientItemExtensions; import org.jetbrains.annotations.Nullable; import java.util.Optional; -import java.util.function.Consumer; import java.util.function.Predicate; public class AdvancedPotatoCannonItem extends ProjectileWeaponItem implements CustomArmPoseItem { @@ -173,7 +170,7 @@ public class AdvancedPotatoCannonItem extends ProjectileWeaponItem implements Cu } - @OnlyIn(Dist.CLIENT) + @Environment(EnvType.CLIENT) public static Optional getAmmoforPreview(ItemStack cannon) { if (AnimationTickHolder.getTicks() % 3 != 0) return Optional.of(CLIENT_CURRENT_AMMO) @@ -223,7 +220,7 @@ public class AdvancedPotatoCannonItem extends ProjectileWeaponItem implements Cu } @Override - @OnlyIn(Dist.CLIENT) + @Environment(EnvType.CLIENT) public void initializeClient(Consumer consumer) { consumer.accept(SimpleCustomRenderer.create(this, new AdvancedPotatoCannonItemRenderer())); } diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java index 7de9b57c..c9efa807 100644 --- a/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/flamethrover/FlamethrowerItem.java @@ -25,7 +25,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.UseAnim; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.Level; -import net.minecraftforge.fluids.capability.IFluidHandler; import org.jetbrains.annotations.Nullable; public class FlamethrowerItem extends Item implements CustomArmPoseItem { diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java index d1e6f015..8713a496 100644 --- a/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/lithium_blade/LitLithiumBladeItem.java @@ -5,24 +5,20 @@ import com.drmangotea.createindustry.registry.TFMGItems; import com.drmangotea.createindustry.registry.TFMGMobEffects; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceKey; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.effect.MobEffect; import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.*; import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; import java.util.Map; @@ -126,11 +122,11 @@ public class LitLithiumBladeItem extends SwordItem { - }else { - ItemStack stack1 = new ItemStack(TFMGItems.LITHIUM_BLADE.get(),1,stack.getOrCreateTag()); + } else { + ItemStack stack1 = TFMGItems.LITHIUM_BLADE.asStack(); - Map enchantments = stack.getAllEnchantments(); + Map enchantments = EnchantmentHelper.getEnchantments(stack); enchantments.forEach(stack1::enchant); @@ -141,15 +137,6 @@ public class LitLithiumBladeItem extends SwordItem { } - @Override - public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { - - if(!slotChanged) - return false; - - return super.shouldCauseReequipAnimation(oldStack, newStack, slotChanged); - } - @Override public void fillItemCategory(CreativeModeTab pCategory, NonNullList pItems) { //nah diff --git a/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItem.java index 190d0da5..9194fc10 100644 --- a/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItem.java @@ -14,6 +14,8 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder; import com.simibubi.create.foundation.utility.Components; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.VecHelper; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; @@ -40,8 +42,6 @@ import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import org.jetbrains.annotations.Nullable; import java.util.List; @@ -197,7 +197,7 @@ public class QuadPotatoCannonItem extends ProjectileWeaponItem implements Custom .map($ -> findAmmo); } - @OnlyIn(Dist.CLIENT) + @Environment(EnvType.CLIENT) public static Optional getAmmoforPreview(ItemStack cannon) { if (AnimationTickHolder.getTicks() % 3 != 0) return Optional.of(CLIENT_CURRENT_AMMO) @@ -215,7 +215,7 @@ public class QuadPotatoCannonItem extends ProjectileWeaponItem implements Custom } @Override - @OnlyIn(Dist.CLIENT) + @Environment(EnvType.CLIENT) public void appendHoverText(ItemStack stack, Level world, List tooltip, TooltipFlag flag) { int power = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.POWER_ARROWS, stack); int punch = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.PUNCH_ARROWS, stack); diff --git a/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java b/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java index a0d05fb5..8904f61f 100644 --- a/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java +++ b/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java @@ -2,10 +2,8 @@ package com.drmangotea.createindustry.mixins; import com.drmangotea.createindustry.worldgen.TFMGLayeredPatterns; -import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.foundation.data.DynamicDataProvider; -import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.infrastructure.worldgen.AllLayerPatterns; import com.simibubi.create.infrastructure.worldgen.AllOreFeatureConfigEntries; import com.simibubi.create.infrastructure.worldgen.OreFeatureConfigEntry; @@ -17,9 +15,6 @@ import net.minecraft.tags.BiomeTags; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.placement.PlacedFeature; import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.common.world.BiomeModifier; -import net.minecraftforge.data.event.GatherDataEvent; -import net.minecraftforge.registries.ForgeRegistries; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; diff --git a/src/main/java/com/drmangotea/createindustry/mixins/PipeAttachmentModelMixin.java b/src/main/java/com/drmangotea/createindustry/mixins/PipeAttachmentModelMixin.java index 6ec4b274..301e68f9 100644 --- a/src/main/java/com/drmangotea/createindustry/mixins/PipeAttachmentModelMixin.java +++ b/src/main/java/com/drmangotea/createindustry/mixins/PipeAttachmentModelMixin.java @@ -1,11 +1,9 @@ package com.drmangotea.createindustry.mixins; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import com.drmangotea.createindustry.base.TFMGPipeModelData; -import com.drmangotea.createindustry.blocks.pipes.normal.plastic.PlasticPipeAttachmentModel; import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.PipeAttachmentModel; import org.jetbrains.annotations.NotNull; @@ -19,7 +17,6 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour import com.simibubi.create.foundation.model.BakedModelWrapperWithData; import com.simibubi.create.foundation.utility.Iterate; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.block.model.BakedQuad; @@ -35,7 +32,6 @@ import net.minecraftforge.client.model.data.ModelData.Builder; import net.minecraftforge.client.model.data.ModelProperty; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Overwrite; -import org.spongepowered.asm.mixin.Shadow; import static net.minecraft.world.level.block.PipeBlock.PROPERTY_BY_DIRECTION; @Mixin(PipeAttachmentModel.class) diff --git a/src/main/java/com/drmangotea/createindustry/mixins/ScreenEffectRendererMixin.java b/src/main/java/com/drmangotea/createindustry/mixins/ScreenEffectRendererMixin.java index 547713e0..d4a220cf 100644 --- a/src/main/java/com/drmangotea/createindustry/mixins/ScreenEffectRendererMixin.java +++ b/src/main/java/com/drmangotea/createindustry/mixins/ScreenEffectRendererMixin.java @@ -6,27 +6,19 @@ import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.ScreenEffectRenderer; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.FluidTags; -import net.minecraft.world.entity.player.Player; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import static net.minecraft.client.renderer.ScreenEffectRenderer.renderFluid; - @Mixin(ScreenEffectRenderer.class) -public class ScreenEffectRendererMixin { +public abstract class ScreenEffectRendererMixin { private static final ResourceLocation MOLTEN_METAL_OVERLAY = CreateTFMG.asResource("textures/gui/molten_metal.png"); - - @Inject(method = "renderScreenEffect", at = @At("HEAD")) private static void renderScreenEffect(Minecraft p_110719_, PoseStack p_110720_, CallbackInfo ci) { - - if (!p_110719_.player.isSpectator()) { if (p_110719_.player.getLevel().getBlockState(p_110719_.player.getOnPos().above(2)).is(TFMGBlocks.MOLTEN_METAL.get())) { renderMoltenMetal(p_110719_, p_110720_); diff --git a/src/main/java/com/drmangotea/createindustry/recipes/jei/CastingCategory.java b/src/main/java/com/drmangotea/createindustry/recipes/jei/CastingCategory.java index 18b187ac..e775d67f 100644 --- a/src/main/java/com/drmangotea/createindustry/recipes/jei/CastingCategory.java +++ b/src/main/java/com/drmangotea/createindustry/recipes/jei/CastingCategory.java @@ -9,7 +9,7 @@ import com.drmangotea.createindustry.registry.TFMGItems; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.compat.jei.category.CreateRecipeCategory; import com.simibubi.create.foundation.gui.AllGuiTextures; -import mezz.jei.api.forge.ForgeTypes; +import mezz.jei.api.fabric.constants.FabricTypes; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.recipe.IFocusGroup; @@ -70,7 +70,7 @@ public class CastingCategory extends CreateRecipeCategory { builder .addSlot(RecipeIngredientRole.INPUT, 2, 33) .setBackground(getRenderedSlot(), -1, -1) - .addIngredients(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getInputFluid().getMatchingFluidStacks())) + .addIngredients(FabricTypes.FLUID_STACK, withImprovedVisibility(recipe.getInputFluid().getMatchingFluidStacks())) .addTooltipCallback(addFluidTooltip(111)); diff --git a/src/main/java/com/drmangotea/createindustry/recipes/jei/CokingCategory.java b/src/main/java/com/drmangotea/createindustry/recipes/jei/CokingCategory.java index 6eadc795..fa5ba187 100644 --- a/src/main/java/com/drmangotea/createindustry/recipes/jei/CokingCategory.java +++ b/src/main/java/com/drmangotea/createindustry/recipes/jei/CokingCategory.java @@ -8,12 +8,12 @@ import com.drmangotea.createindustry.registry.TFMGFluids; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.compat.jei.category.CreateRecipeCategory; import com.simibubi.create.foundation.gui.AllGuiTextures; -import mezz.jei.api.forge.ForgeTypes; +import io.github.fabricators_of_create.porting_lib.util.FluidStack; +import mezz.jei.api.fabric.constants.FabricTypes; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; -import net.minecraftforge.fluids.FluidStack; import javax.annotation.ParametersAreNonnullByDefault; @@ -48,13 +48,13 @@ public class CokingCategory extends CreateRecipeCategory { builder .addSlot(RecipeIngredientRole.OUTPUT,160, 46) .setBackground(getRenderedSlot(), -1, -1) - .addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(new FluidStack(TFMGFluids.CARBON_DIOXIDE.get(),5000))) + .addIngredient(FabricTypes.FLUID_STACK, withImprovedVisibility(new FluidStack(TFMGFluids.CARBON_DIOXIDE.get(),5000))) .addTooltipCallback(addFluidTooltip(5000)); builder .addSlot(RecipeIngredientRole.OUTPUT,160, 22) .setBackground(getRenderedSlot(), -1, -1) - .addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(0))) + .addIngredient(FabricTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(0))) .addTooltipCallback(addFluidTooltip(recipe.getFluidResults().get(0).getAmount())); } diff --git a/src/main/java/com/drmangotea/createindustry/recipes/jei/IndustrialBlastingCategory.java b/src/main/java/com/drmangotea/createindustry/recipes/jei/IndustrialBlastingCategory.java index 4dfcbf6b..bffe28c7 100644 --- a/src/main/java/com/drmangotea/createindustry/recipes/jei/IndustrialBlastingCategory.java +++ b/src/main/java/com/drmangotea/createindustry/recipes/jei/IndustrialBlastingCategory.java @@ -4,18 +4,15 @@ package com.drmangotea.createindustry.recipes.jei; import com.drmangotea.createindustry.recipes.industrial_blasting.IndustrialBlastingRecipe; import com.drmangotea.createindustry.recipes.jei.machines.BlastFurnace; -import com.drmangotea.createindustry.registry.TFMGFluids; import com.drmangotea.createindustry.registry.TFMGItems; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.compat.jei.category.CreateRecipeCategory; import com.simibubi.create.foundation.gui.AllGuiTextures; -import mezz.jei.api.forge.ForgeTypes; import mezz.jei.api.gui.builder.IRecipeLayoutBuilder; import mezz.jei.api.gui.ingredient.IRecipeSlotsView; import mezz.jei.api.recipe.IFocusGroup; import mezz.jei.api.recipe.RecipeIngredientRole; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; import javax.annotation.ParametersAreNonnullByDefault; @@ -62,14 +59,13 @@ public class IndustrialBlastingCategory extends CreateRecipeCategory CreateEntityBuilder register(String name, EntityType.EntityFactory factory, NonNullSupplier>> renderer, MobCategory group, int range, int updateFrequency, boolean sendVelocity, boolean immuneToFire, - NonNullConsumer> propertyBuilder) { + NonNullConsumer> propertyBuilder) { String id = Lang.asId(name); return (CreateEntityBuilder) CreateTFMG.REGISTRATE .entity(id, factory, group) - .properties(b -> b.setTrackingRange(range) - .setUpdateInterval(updateFrequency) - .setShouldReceiveVelocityUpdates(sendVelocity)) + .properties(b -> b.trackRangeBlocks(range) + .trackedUpdateRate(updateFrequency) + .forceTrackedVelocityUpdates(sendVelocity)) .properties(propertyBuilder) .properties(b -> { if (immuneToFire) diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java index c8c3d877..a85cd480 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java @@ -81,8 +81,7 @@ public class TFMGFluids { public static final FluidEntry COOLING_FLUID = - REGISTRATE.fluid("cooling_fluid",COOLING_FLUID_STILL_RL,COOLING_FLUID_FLOW_RL, - p -> new ConcreteFluid(p) + REGISTRATE.fluid("cooling_fluid",COOLING_FLUID_STILL_RL,COOLING_FLUID_FLOW_RL, ConcreteFluid::new // ConcreteFluidType.create(0x333333, // () -> 1f / 24f ) ) @@ -124,10 +123,11 @@ public class TFMGFluids { - public static final FluidEntry LIQUID_CONCRETE = - REGISTRATE.fluid("liquid_concrete",CONCRETE_RL,CONCRETE_RL, - ConcreteFluidType.create(0x333333, - () -> 1f / 24f )) + public static final FluidEntry LIQUID_CONCRETE = + REGISTRATE.fluid("liquid_concrete",CONCRETE_RL,CONCRETE_RL, ConcreteFluid::new +// ConcreteFluidType.create(0x333333, +// () -> 1f / 24f ) + ) .lang("Liquid Concrete") .fluidProperties(p -> p.levelDecreasePerBlock(0) .tickRate(99999) @@ -140,10 +140,11 @@ public class TFMGFluids { .build() .register(); - public static final FluidEntry LIQUID_ASPHALT = - REGISTRATE.fluid("liquid_asphalt", ASPHALT_RL, ASPHALT_RL, - ConcreteFluidType.create(0x333333, - () -> 1f / 24f )) + public static final FluidEntry LIQUID_ASPHALT = + REGISTRATE.fluid("liquid_asphalt", ASPHALT_RL, ASPHALT_RL, ConcreteFluid::new +// ConcreteFluidType.create(0x333333, +// () -> 1f / 24f ) + ) .lang("Liquid Asphalt") .fluidProperties(p -> p.levelDecreasePerBlock(0) .tickRate(99999) diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGFuels.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGFuels.java new file mode 100644 index 00000000..2f4e5e5e --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGFuels.java @@ -0,0 +1,12 @@ +package com.drmangotea.createindustry.registry; + +import net.fabricmc.fabric.api.registry.FuelRegistry; + +public class TFMGFuels { + private FuelRegistry registry = FuelRegistry.INSTANCE; + + public void register() { + registry.add(TFMGItems.COAL_COKE.get(), 3200); + registry.add(TFMGItems.COAL_COKE.get(), 3200); + } +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java index f00b1e31..cf702b9b 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java @@ -190,8 +190,8 @@ public class TFMGItems { .model((c, p) -> p.withExistingParent(c.getName(), CreateTFMG.asResource("item/unfinished_engine"))) .register(); - public static final ItemEntry - COAL_COKE_DUST = REGISTRATE.item("coal_coke_dust", CoalCokeItem::new) + public static final ItemEntry + COAL_COKE_DUST = REGISTRATE.item("coal_coke_dust", Item::new) .tag(forgeItemTag("dusts/coal_coke")) .register(); @@ -222,7 +222,7 @@ public class TFMGItems { public static final ItemEntry BLOCK_MOLD = REGISTRATE.item("block_mold", p -> new CastingMoldItem(p, CastingBasinBlockEntity.MoldType.BLOCK)).properties(p -> p.stacksTo(1)).register(), INGOT_MOLD = REGISTRATE.item("ingot_mold", p -> new CastingMoldItem(p, CastingBasinBlockEntity.MoldType.INGOT)).properties(p -> p.stacksTo(1)).register(); - public static final ItemEntry COAL_COKE = REGISTRATE.item("coal_coke", CoalCokeItem::new) + public static final ItemEntry COAL_COKE = REGISTRATE.item("coal_coke", Item::new) .register(); public static final ItemEntry SCREWDRIVER = REGISTRATE.item("screwdriver", ScrewdriverItem::new) diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java index 1d8005ff..3fa47ea9 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGPackets.java @@ -6,10 +6,12 @@ import com.drmangotea.createindustry.items.weapons.quad_potato_cannon.QuadPotato import com.simibubi.create.foundation.networking.SimplePacketBase; import io.github.fabricators_of_create.porting_lib.util.NetworkDirection; +import me.pepperbell.simplenetworking.S2CPacket; import me.pepperbell.simplenetworking.SimpleChannel; import net.minecraft.core.BlockPos; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; import java.util.function.BiConsumer; @@ -37,12 +39,7 @@ public enum TFMGPackets { } public static void registerPackets() { - channel = NetworkRegistry.ChannelBuilder.named(CHANNEL_NAME) - .serverAcceptedVersions(NETWORK_VERSION_STR::equals) - .clientAcceptedVersions(NETWORK_VERSION_STR::equals) - .networkProtocolVersion(() -> NETWORK_VERSION_STR) - .simpleChannel(); - + channel = new SimpleChannel(CHANNEL_NAME); for (TFMGPackets packet : values()) packet.packetType.register(); } @@ -52,39 +49,27 @@ public enum TFMGPackets { } public static void sendToNear(Level world, BlockPos pos, int range, Object message) { - getChannel().send( - PacketDistributor.NEAR.with(PacketDistributor.TargetPoint.p(pos.getX(), pos.getY(), pos.getZ(), range, world.dimension())), - message); + getChannel().sendToClientsAround((S2CPacket) message, (ServerLevel) world, pos, range); } private static class PacketType { private static int index = 0; - private BiConsumer encoder; private Function decoder; - private BiConsumer> handler; private Class type; private NetworkDirection direction; private PacketType(Class type, Function factory, NetworkDirection direction) { - encoder = T::write; decoder = factory; - handler = (packet, contextSupplier) -> { - NetworkEvent.Context context = contextSupplier.get(); - if (packet.handle(context)) { - context.setPacketHandled(true); - } - }; this.type = type; this.direction = direction; } private void register() { - getChannel().messageBuilder(type, index++, direction) - .encoder(encoder) - .decoder(decoder) - .consumerNetworkThread(handler) - .add(); + switch (direction) { + case PLAY_TO_CLIENT -> getChannel().registerS2CPacket(type, index++, decoder); + case PLAY_TO_SERVER -> getChannel().registerC2SPacket(type, index++, decoder); + } } }