From b31f5f5d7821981133679ab53f470ce8f0bd84e2 Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Tue, 27 Jul 2021 16:13:50 -0700 Subject: [PATCH] Default fallback - Make stress value getters fallback to default value map if provider is absent - Rename StressConfigDefaults to BlockStressDefaults and move to block package - Rename StressConfigValues to BlockStressValues and move to block package --- .../java/com/simibubi/create/AllBlocks.java | 78 +++++++++---------- .../contraptions/base/KineticTileEntity.java | 6 +- .../engine/FurnaceEngineTileEntity.java | 4 +- .../BlockStressDefaults.java} | 4 +- .../BlockStressValues.java} | 41 ++++++---- .../create/foundation/config/AllConfigs.java | 4 +- .../create/foundation/config/CStress.java | 9 ++- .../foundation/data/BuilderTransformers.java | 8 +- .../foundation/item/ItemDescription.java | 10 +-- 9 files changed, 88 insertions(+), 76 deletions(-) rename src/main/java/com/simibubi/create/foundation/{config/StressConfigDefaults.java => block/BlockStressDefaults.java} (94%) rename src/main/java/com/simibubi/create/foundation/{config/StressConfigValues.java => block/BlockStressValues.java} (51%) diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 9cde1a86d..a990a6d10 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -162,7 +162,7 @@ import com.simibubi.create.content.schematics.block.SchematicTableBlock; import com.simibubi.create.content.schematics.block.SchematicannonBlock; import com.simibubi.create.foundation.block.DyedBlockList; import com.simibubi.create.foundation.block.ItemUseOverrides; -import com.simibubi.create.foundation.config.StressConfigDefaults; +import com.simibubi.create.foundation.block.BlockStressDefaults; import com.simibubi.create.foundation.data.AssetLookup; import com.simibubi.create.foundation.data.BlockStateGen; import com.simibubi.create.foundation.data.BuilderTransformers; @@ -250,7 +250,7 @@ public class AllBlocks { public static final BlockEntry SHAFT = REGISTRATE.block("shaft", ShaftBlock::new) .initialProperties(SharedProperties::stone) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate(BlockStateGen.axisBlockProvider(false)) .onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new)) .simpleItem() @@ -258,7 +258,7 @@ public class AllBlocks { public static final BlockEntry COGWHEEL = REGISTRATE.block("cogwheel", CogWheelBlock::small) .initialProperties(SharedProperties::stone) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .properties(p -> p.sound(SoundType.WOOD)) .blockstate(BlockStateGen.axisBlockProvider(false)) .onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new)) @@ -270,7 +270,7 @@ public class AllBlocks { REGISTRATE.block("large_cogwheel", CogWheelBlock::large) .initialProperties(SharedProperties::stone) .properties(p -> p.sound(SoundType.WOOD)) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate(BlockStateGen.axisBlockProvider(false)) .onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new)) .item(CogwheelBlockItem::new) @@ -290,7 +290,7 @@ public class AllBlocks { public static final BlockEntry GEARBOX = REGISTRATE.block("gearbox", GearboxBlock::new) .initialProperties(SharedProperties::stone) .properties(AbstractBlock.Properties::noOcclusion) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .onRegister(CreateRegistrate.connectedTextures(new EncasedCTBehaviour(AllSpriteShifts.ANDESITE_CASING))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.ANDESITE_CASING, (s, f) -> f.getAxis() == s.getValue(GearboxBlock.AXIS)))) @@ -302,7 +302,7 @@ public class AllBlocks { public static final BlockEntry CLUTCH = REGISTRATE.block("clutch", ClutchBlock::new) .initialProperties(SharedProperties::stone) .properties(AbstractBlock.Properties::noOcclusion) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate((c, p) -> BlockStateGen.axisBlock(c, p, AssetLookup.forPowered(c, p))) .item() .transform(customItemModel()) @@ -311,7 +311,7 @@ public class AllBlocks { public static final BlockEntry GEARSHIFT = REGISTRATE.block("gearshift", GearshiftBlock::new) .initialProperties(SharedProperties::stone) .properties(AbstractBlock.Properties::noOcclusion) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate((c, p) -> BlockStateGen.axisBlock(c, p, AssetLookup.forPowered(c, p))) .item() .transform(customItemModel()) @@ -321,7 +321,7 @@ public class AllBlocks { REGISTRATE.block("encased_chain_drive", EncasedBeltBlock::new) .initialProperties(SharedProperties::stone) .properties(AbstractBlock.Properties::noOcclusion) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> p.models() .getExistingFile(p.modLoc("block/" + c.getName() + "/" + suffix))).generate(c, p)) .item() @@ -332,7 +332,7 @@ public class AllBlocks { REGISTRATE.block("adjustable_chain_gearshift", AdjustablePulleyBlock::new) .initialProperties(SharedProperties::stone) .properties(AbstractBlock.Properties::noOcclusion) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate((c, p) -> new EncasedBeltGenerator((state, suffix) -> { String powered = state.getValue(AdjustablePulleyBlock.POWERED) ? "_powered" : ""; return p.models() @@ -351,7 +351,7 @@ public class AllBlocks { .properties(p -> p.sound(SoundType.WOOL)) .properties(p -> p.strength(0.8F)) .blockstate(new BeltGenerator()::generate) - .transform(StressConfigDefaults.setImpact(1.0)) + .transform(BlockStressDefaults.setImpact(1.0)) .onRegister(CreateRegistrate.blockModel(() -> BeltModel::new)) .register(); @@ -360,7 +360,7 @@ public class AllBlocks { .initialProperties(SharedProperties::stone) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(new CreativeMotorGenerator()::generate) - .transform(StressConfigDefaults.setCapacity(16384.0)) + .transform(BlockStressDefaults.setCapacity(16384.0)) .item() .properties(p -> p.rarity(Rarity.EPIC)) .transform(customItemModel()) @@ -371,7 +371,7 @@ public class AllBlocks { .properties(AbstractBlock.Properties::noOcclusion) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(false)) .addLayer(() -> RenderType::cutoutMipped) - .transform(StressConfigDefaults.setCapacity(16.0)) + .transform(BlockStressDefaults.setCapacity(16.0)) .simpleItem() .register(); @@ -379,8 +379,8 @@ public class AllBlocks { .initialProperties(SharedProperties::stone) .blockstate(BlockStateGen.directionalBlockProvider(true)) .addLayer(() -> RenderType::cutoutMipped) - .transform(StressConfigDefaults.setCapacity(16.0)) - .transform(StressConfigDefaults.setImpact(2.0)) + .transform(BlockStressDefaults.setCapacity(16.0)) + .transform(BlockStressDefaults.setImpact(2.0)) .item() .transform(customItemModel()) .register(); @@ -397,14 +397,14 @@ public class AllBlocks { public static final BlockEntry TURNTABLE = REGISTRATE.block("turntable", TurntableBlock::new) .initialProperties(SharedProperties::wooden) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.standardModel(c, p))) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .simpleItem() .register(); public static final BlockEntry HAND_CRANK = REGISTRATE.block("hand_crank", HandCrankBlock::new) .initialProperties(SharedProperties::wooden) .blockstate(BlockStateGen.directionalBlockProvider(true)) - .transform(StressConfigDefaults.setCapacity(8.0)) + .transform(BlockStressDefaults.setCapacity(8.0)) .tag(AllBlockTags.BRITTLE.tag) .onRegister(ItemUseOverrides::addBlock) .item() @@ -426,7 +426,7 @@ public class AllBlocks { public static final BlockEntry MILLSTONE = REGISTRATE.block("millstone", MillstoneBlock::new) .initialProperties(SharedProperties::stone) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) .register(); @@ -437,7 +437,7 @@ public class AllBlocks { .properties(AbstractBlock.Properties::noOcclusion) .blockstate(BlockStateGen.axisBlockProvider(false)) .addLayer(() -> RenderType::cutoutMipped) - .transform(StressConfigDefaults.setImpact(8.0)) + .transform(BlockStressDefaults.setImpact(8.0)) .simpleItem() .register(); @@ -456,7 +456,7 @@ public class AllBlocks { .initialProperties(SharedProperties::stone) .properties(AbstractBlock.Properties::noOcclusion) .blockstate(BlockStateGen.horizontalBlockProvider(true)) - .transform(StressConfigDefaults.setImpact(8.0)) + .transform(BlockStressDefaults.setImpact(8.0)) .item(AssemblyOperatorBlockItem::new) .transform(customItemModel()) .register(); @@ -467,7 +467,7 @@ public class AllBlocks { .properties(AbstractBlock.Properties::noOcclusion) .blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) .addLayer(() -> RenderType::cutoutMipped) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .item(AssemblyOperatorBlockItem::new) .transform(customItemModel()) .register(); @@ -521,7 +521,7 @@ public class AllBlocks { .initialProperties(SharedProperties::stone) .properties(AbstractBlock.Properties::noOcclusion) .blockstate((c, p) -> p.horizontalBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p), 180)) - .transform(StressConfigDefaults.setImpact(2.0)) + .transform(BlockStressDefaults.setImpact(2.0)) .item(EjectorItem::new) .transform(customItemModel()) .register(); @@ -545,7 +545,7 @@ public class AllBlocks { public static final BlockEntry SPEEDOMETER = REGISTRATE.block("speedometer", GaugeBlock::speed) .initialProperties(SharedProperties::wooden) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate(new GaugeGenerator()::generate) .item() .transform(ModelGen.customItemModel("gauge", "_", "item")) @@ -553,7 +553,7 @@ public class AllBlocks { public static final BlockEntry STRESSOMETER = REGISTRATE.block("stressometer", GaugeBlock::stress) .initialProperties(SharedProperties::wooden) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate(new GaugeGenerator()::generate) .item() .transform(ModelGen.customItemModel("gauge", "_", "item")) @@ -607,7 +607,7 @@ public class AllBlocks { .initialProperties(SharedProperties::softMetal) .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) .onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new)) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) .register(); @@ -681,7 +681,7 @@ public class AllBlocks { public static final BlockEntry HOSE_PULLEY = REGISTRATE.block("hose_pulley", HosePulleyBlock::new) .initialProperties(SharedProperties::softMetal) .blockstate(BlockStateGen.horizontalBlockProvider(true)) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) .register(); @@ -775,14 +775,14 @@ public class AllBlocks { public static final BlockEntry WINDMILL_BEARING = REGISTRATE.block("windmill_bearing", WindmillBearingBlock::new) .transform(BuilderTransformers.bearing("windmill", "gearbox", true)) - .transform(StressConfigDefaults.setCapacity(512.0)) + .transform(BlockStressDefaults.setCapacity(512.0)) .tag(AllBlockTags.SAFE_NBT.tag) .register(); public static final BlockEntry MECHANICAL_BEARING = REGISTRATE.block("mechanical_bearing", MechanicalBearingBlock::new) .transform(BuilderTransformers.bearing("mechanical", "gearbox", false)) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .tag(AllBlockTags.SAFE_NBT.tag) .onRegister(addMovementBehaviour(new StabilizedBearingMovementBehaviour())) .register(); @@ -790,7 +790,7 @@ public class AllBlocks { public static final BlockEntry CLOCKWORK_BEARING = REGISTRATE.block("clockwork_bearing", ClockworkBearingBlock::new) .transform(BuilderTransformers.bearing("clockwork", "brass_gearbox", false)) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .tag(AllBlockTags.SAFE_NBT.tag) .register(); @@ -798,7 +798,7 @@ public class AllBlocks { .initialProperties(SharedProperties::stone) .tag(AllBlockTags.SAFE_NBT.tag) .blockstate(BlockStateGen.horizontalAxisBlockProvider(true)) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(customItemModel()) .register(); @@ -906,7 +906,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_DRILL = REGISTRATE.block("mechanical_drill", DrillBlock::new) .initialProperties(SharedProperties::stone) .blockstate(BlockStateGen.directionalBlockProvider(true)) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .onRegister(addMovementBehaviour(new DrillMovementBehaviour())) .item() .transform(customItemModel()) @@ -915,7 +915,7 @@ public class AllBlocks { public static final BlockEntry MECHANICAL_SAW = REGISTRATE.block("mechanical_saw", SawBlock::new) .initialProperties(SharedProperties::stone) .blockstate(new SawGenerator()::generate) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .onRegister(addMovementBehaviour(new SawMovementBehaviour())) .addLayer(() -> RenderType::cutoutMipped) .item() @@ -925,7 +925,7 @@ public class AllBlocks { public static final BlockEntry DEPLOYER = REGISTRATE.block("deployer", DeployerBlock::new) .initialProperties(SharedProperties::stone) .blockstate(BlockStateGen.directionalAxisBlockProvider()) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .onRegister(addMovementBehaviour(new DeployerMovementBehaviour())) .item(AssemblyOperatorBlockItem::new) .transform(customItemModel()) @@ -1067,7 +1067,7 @@ public class AllBlocks { .initialProperties(SharedProperties::softMetal) .properties(AbstractBlock.Properties::noOcclusion) .blockstate(BlockStateGen.horizontalBlockProvider(true)) - .transform(StressConfigDefaults.setImpact(2.0)) + .transform(BlockStressDefaults.setImpact(2.0)) .onRegister(CreateRegistrate.connectedTextures(new CrafterCTBehaviour())) .addLayer(() -> RenderType::cutoutMipped) .item() @@ -1079,7 +1079,7 @@ public class AllBlocks { .initialProperties(SharedProperties::stone) .tag(AllBlockTags.SAFE_NBT.tag) .properties(AbstractBlock.Properties::noOcclusion) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate(new SequencedGearshiftGenerator()::generate) .item() .transform(customItemModel()) @@ -1088,7 +1088,7 @@ public class AllBlocks { public static final BlockEntry FLYWHEEL = REGISTRATE.block("flywheel", FlywheelBlock::new) .initialProperties(SharedProperties::softMetal) .properties(AbstractBlock.Properties::noOcclusion) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate(new FlywheelGenerator()::generate) .item() .transform(customItemModel()) @@ -1099,7 +1099,7 @@ public class AllBlocks { .initialProperties(SharedProperties::softMetal) .tag(AllBlockTags.BRITTLE.tag) .blockstate(BlockStateGen.horizontalBlockProvider(true)) - .transform(StressConfigDefaults.setCapacity(1024.0)) + .transform(BlockStressDefaults.setCapacity(1024.0)) .item() .transform(customItemModel()) .register(); @@ -1108,7 +1108,7 @@ public class AllBlocks { REGISTRATE.block("rotation_speed_controller", SpeedControllerBlock::new) .initialProperties(SharedProperties::softMetal) .tag(AllBlockTags.SAFE_NBT.tag) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .blockstate(BlockStateGen.horizontalAxisBlockProvider(true)) .item() .transform(customItemModel()) @@ -1127,7 +1127,7 @@ public class AllBlocks { .modelFile(AssetLookup.partialBaseModel(c, p)) .rotationX(s.getValue(ArmBlock.CEILING) ? 180 : 0) .build())) - .transform(StressConfigDefaults.setImpact(2.0)) + .transform(BlockStressDefaults.setImpact(2.0)) .item(ArmItem::new) .transform(customItemModel()) .register(); @@ -1318,7 +1318,7 @@ public class AllBlocks { .initialProperties(SharedProperties::softMetal) .blockstate((c, p) -> p.horizontalBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) .addLayer(() -> RenderType::cutoutMipped) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .loot((lt, block) -> { Builder builder = LootTable.lootTable(); IBuilder survivesExplosion = SurvivesExplosion.survivesExplosion(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java index e04468b45..930e89411 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java @@ -18,8 +18,8 @@ import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.contraptions.goggles.IHaveHoveringInformation; import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxBlock; +import com.simibubi.create.foundation.block.BlockStressValues; import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.config.StressConfigValues; import com.simibubi.create.foundation.item.TooltipHelper; import com.simibubi.create.foundation.sound.SoundScapes; import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup; @@ -166,13 +166,13 @@ public abstract class KineticTileEntity extends SmartTileEntity } public float calculateStressApplied() { - float impact = (float) StressConfigValues.getImpact(getStressConfigKey()); + float impact = (float) BlockStressValues.getImpact(getStressConfigKey()); this.lastStressApplied = impact; return impact; } public float calculateAddedStressCapacity() { - float capacity = (float) StressConfigValues.getCapacity(getStressConfigKey()); + float capacity = (float) BlockStressValues.getCapacity(getStressConfigKey()); this.lastCapacityProvided = capacity; return capacity; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java index 3cd4cd0b8..22742c712 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java @@ -1,7 +1,7 @@ package com.simibubi.create.content.contraptions.components.flywheel.engine; import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.config.StressConfigValues; +import com.simibubi.create.foundation.block.BlockStressValues; import net.minecraft.block.AbstractFurnaceBlock; import net.minecraft.block.BlockState; @@ -29,7 +29,7 @@ public class FurnaceEngineTileEntity extends EngineTileEntity { boolean active = state.hasProperty(AbstractFurnaceBlock.LIT) && state.getValue(AbstractFurnaceBlock.LIT); float speed = active ? 16 * modifier : 0; float capacity = - (float) (active ? StressConfigValues.getCapacity(AllBlocks.FURNACE_ENGINE.get()) + (float) (active ? BlockStressValues.getCapacity(AllBlocks.FURNACE_ENGINE.get()) : 0); appliedCapacity = capacity; diff --git a/src/main/java/com/simibubi/create/foundation/config/StressConfigDefaults.java b/src/main/java/com/simibubi/create/foundation/block/BlockStressDefaults.java similarity index 94% rename from src/main/java/com/simibubi/create/foundation/config/StressConfigDefaults.java rename to src/main/java/com/simibubi/create/foundation/block/BlockStressDefaults.java index d17b4f964..44f3ba01a 100644 --- a/src/main/java/com/simibubi/create/foundation/config/StressConfigDefaults.java +++ b/src/main/java/com/simibubi/create/foundation/block/BlockStressDefaults.java @@ -1,4 +1,4 @@ -package com.simibubi.create.foundation.config; +package com.simibubi.create.foundation.block; import java.util.HashMap; import java.util.Map; @@ -9,7 +9,7 @@ import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; import net.minecraft.block.Block; import net.minecraft.util.ResourceLocation; -public class StressConfigDefaults { +public class BlockStressDefaults { /** * Increment this number if all stress entries should be forced to update in the next release. diff --git a/src/main/java/com/simibubi/create/foundation/config/StressConfigValues.java b/src/main/java/com/simibubi/create/foundation/block/BlockStressValues.java similarity index 51% rename from src/main/java/com/simibubi/create/foundation/config/StressConfigValues.java rename to src/main/java/com/simibubi/create/foundation/block/BlockStressValues.java index 837122185..6b9b4fe01 100644 --- a/src/main/java/com/simibubi/create/foundation/config/StressConfigValues.java +++ b/src/main/java/com/simibubi/create/foundation/block/BlockStressValues.java @@ -1,4 +1,4 @@ -package com.simibubi.create.foundation.config; +package com.simibubi.create.foundation.block; import java.util.HashMap; import java.util.Map; @@ -8,7 +8,7 @@ import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.util.ResourceLocation; -public class StressConfigValues { +public class BlockStressValues { private static final Map PROVIDERS = new HashMap<>(); @@ -23,58 +23,67 @@ public class StressConfigValues { @Nullable public static IStressValueProvider getProvider(Block block) { - ResourceLocation key = block.getRegistryName(); - String namespace = key.getNamespace(); - IStressValueProvider provider = getProvider(namespace); - return provider; + return getProvider(block.getRegistryName().getNamespace()); } public static double getImpact(Block block) { - IStressValueProvider provider = getProvider(block); + ResourceLocation blockId = block.getRegistryName(); + IStressValueProvider provider = getProvider(blockId.getNamespace()); if (provider != null) { return provider.getImpact(block); } + Double defaultImpact = BlockStressDefaults.DEFAULT_IMPACTS.get(blockId); + if (defaultImpact != null) { + return defaultImpact; + } return 0; } public static double getCapacity(Block block) { - IStressValueProvider provider = getProvider(block); + ResourceLocation blockId = block.getRegistryName(); + IStressValueProvider provider = getProvider(blockId.getNamespace()); if (provider != null) { return provider.getCapacity(block); } + Double defaultCapacity = BlockStressDefaults.DEFAULT_CAPACITIES.get(blockId); + if (defaultCapacity != null) { + return defaultCapacity; + } return 0; } public static boolean hasImpact(Block block) { - IStressValueProvider provider = getProvider(block); + ResourceLocation blockId = block.getRegistryName(); + IStressValueProvider provider = getProvider(blockId.getNamespace()); if (provider != null) { return provider.hasImpact(block); } - return false; + return BlockStressDefaults.DEFAULT_IMPACTS.containsKey(blockId); } public static boolean hasCapacity(Block block) { - IStressValueProvider provider = getProvider(block); + ResourceLocation blockId = block.getRegistryName(); + IStressValueProvider provider = getProvider(blockId.getNamespace()); if (provider != null) { return provider.hasCapacity(block); } - return false; + return BlockStressDefaults.DEFAULT_CAPACITIES.containsKey(blockId); } public interface IStressValueProvider { /** - * Gets the impact of a block. + * Gets the stress impact of a block. * * @param block The block. - * @return the impact value of the block, or 0 if it does not have one. + * @return the stress impact value of the block, or 0 if it does not have one. */ double getImpact(Block block); /** - * Gets the capacity of a block. + * Gets the stress capacity of a block. * * @param block The block. - * @return the capacity value of the block, or 0 if it does not have one. + * @return the stress capacity value of the block, or 0 if it does not have one. */ double getCapacity(Block block); diff --git a/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java b/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java index 9354d53f9..881f37a48 100644 --- a/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java +++ b/src/main/java/com/simibubi/create/foundation/config/AllConfigs.java @@ -7,6 +7,8 @@ import java.util.function.Supplier; import org.apache.commons.lang3.tuple.Pair; +import com.simibubi.create.foundation.block.BlockStressValues; + import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.config.ModConfig; @@ -41,7 +43,7 @@ public class AllConfigs { for (Entry pair : configs.entrySet()) context.registerConfig(pair.getValue(), pair.getKey().specification); - StressConfigValues.registerProvider(context.getActiveNamespace(), SERVER.kinetics.stressValues); + BlockStressValues.registerProvider(context.getActiveNamespace(), SERVER.kinetics.stressValues); } public static void onLoad(ModConfig.Loading event) { diff --git a/src/main/java/com/simibubi/create/foundation/config/CStress.java b/src/main/java/com/simibubi/create/foundation/config/CStress.java index 3ad7306a0..1f722d79f 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CStress.java +++ b/src/main/java/com/simibubi/create/foundation/config/CStress.java @@ -6,7 +6,8 @@ import java.util.Map; import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock; -import com.simibubi.create.foundation.config.StressConfigValues.IStressValueProvider; +import com.simibubi.create.foundation.block.BlockStressDefaults; +import com.simibubi.create.foundation.block.BlockStressValues.IStressValueProvider; import net.minecraft.block.Block; import net.minecraft.util.ResourceLocation; @@ -22,7 +23,7 @@ public class CStress extends ConfigBase implements IStressValueProvider { protected void registerAll(Builder builder) { builder.comment("", Comments.su, Comments.impact) .push("impact"); - StressConfigDefaults.DEFAULT_IMPACTS + BlockStressDefaults.DEFAULT_IMPACTS .forEach((r, i) -> { if (r.getNamespace().equals(Create.ID)) getImpacts().put(r, builder.define(r.getPath(), i)); @@ -31,7 +32,7 @@ public class CStress extends ConfigBase implements IStressValueProvider { builder.comment("", Comments.su, Comments.capacity) .push("capacity"); - StressConfigDefaults.DEFAULT_CAPACITIES + BlockStressDefaults.DEFAULT_CAPACITIES .forEach((r, i) -> { if (r.getNamespace().equals(Create.ID)) getCapacities().put(r, builder.define(r.getPath(), i)); @@ -82,7 +83,7 @@ public class CStress extends ConfigBase implements IStressValueProvider { @Override public String getName() { - return "stressValues.v" + StressConfigDefaults.FORCED_UPDATE_VERSION; + return "stressValues.v" + BlockStressDefaults.FORCED_UPDATE_VERSION; } public Map> getImpacts() { diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index a3d1840cc..be2439fb0 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -23,8 +23,8 @@ import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock. import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelItem; import com.simibubi.create.content.logistics.block.inventories.CrateBlock; import com.simibubi.create.foundation.block.ItemUseOverrides; +import com.simibubi.create.foundation.block.BlockStressDefaults; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; -import com.simibubi.create.foundation.config.StressConfigDefaults; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; @@ -49,7 +49,7 @@ public class BuilderTransformers { .blockstate((c, p) -> p.horizontalBlock(c.get(), p.models() .getExistingFile(p.modLoc("block/cuckoo_clock/block")))) .addLayer(() -> RenderType::cutoutMipped) - .transform(StressConfigDefaults.setImpact(1.0)) + .transform(BlockStressDefaults.setImpact(1.0)) .item() .transform(ModelGen.customItemModel("cuckoo_clock", "item")); } @@ -63,7 +63,7 @@ public class BuilderTransformers { (block, cc) -> cc.make(block, casingShift, (s, f) -> f.getAxis() != s.getValue(EncasedShaftBlock.AXIS)))) .blockstate((c, p) -> axisBlock(c, p, blockState -> p.models() .getExistingFile(p.modLoc("block/encased_shaft/block_" + casing)), true)) - .transform(StressConfigDefaults.setNoImpact()) + .transform(BlockStressDefaults.setNoImpact()) .loot((p, b) -> p.dropOther(b, AllBlocks.SHAFT.get())) .item() .model(AssetLookup.customBlockItemModel("encased_shaft", "item_" + casing)) @@ -133,7 +133,7 @@ public class BuilderTransformers { .properties(p -> p.noOcclusion()) .blockstate(new MechanicalPistonGenerator(type)::generate) .addLayer(() -> RenderType::cutoutMipped) - .transform(StressConfigDefaults.setImpact(4.0)) + .transform(BlockStressDefaults.setImpact(4.0)) .item() .transform(ModelGen.customItemModel("mechanical_piston", type.getSerializedName(), "item")); } diff --git a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java index e38d64c6e..571838583 100644 --- a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java +++ b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java @@ -29,9 +29,9 @@ import com.simibubi.create.content.contraptions.base.IRotate.StressImpact; import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlock; import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineBlock; import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelBlock; +import com.simibubi.create.foundation.block.BlockStressValues; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.config.CKinetics; -import com.simibubi.create.foundation.config.StressConfigValues; import com.simibubi.create.foundation.utility.Lang; import net.minecraft.block.Block; @@ -106,8 +106,8 @@ public class ItemDescription { } boolean hasSpeedRequirement = minimumRequiredSpeedLevel != SpeedLevel.NONE; - boolean hasStressImpact = StressImpact.isEnabled() && showStressImpact && StressConfigValues.getImpact(block) > 0; - boolean hasStressCapacity = StressImpact.isEnabled() && StressConfigValues.hasCapacity(block); + boolean hasStressImpact = StressImpact.isEnabled() && showStressImpact && BlockStressValues.getImpact(block) > 0; + boolean hasStressCapacity = StressImpact.isEnabled() && BlockStressValues.hasCapacity(block); if (hasSpeedRequirement) { List speedLevels = @@ -130,7 +130,7 @@ public class ItemDescription { if (hasStressImpact) { List stressLevels = Lang.translatedOptions("tooltip.stressImpact", "low", "medium", "high"); - double impact = StressConfigValues.getImpact(block); + double impact = BlockStressValues.getImpact(block); StressImpact impactId = impact >= config.highStressImpact.get() ? StressImpact.HIGH : (impact >= config.mediumStressImpact.get() ? StressImpact.MEDIUM : StressImpact.LOW); int index = impactId.ordinal(); @@ -151,7 +151,7 @@ public class ItemDescription { if (hasStressCapacity) { List stressCapacityLevels = Lang.translatedOptions("tooltip.capacityProvided", "low", "medium", "high"); - double capacity = StressConfigValues.getCapacity(block); + double capacity = BlockStressValues.getCapacity(block); StressImpact impactId = capacity >= config.highCapacity.get() ? StressImpact.LOW : (capacity >= config.mediumCapacity.get() ? StressImpact.MEDIUM : StressImpact.HIGH); int index = StressImpact.values().length - 2 - impactId.ordinal();