From 1dd7c4bc1e2a2861e864074502ae4fc3dae8977e Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Fri, 16 Jul 2021 15:11:28 -0700 Subject: [PATCH] Minor cleanup changes - Change AllRecipeTypes to have less repetition and force getter usage --- .../com/simibubi/create/AllRecipeTypes.java | 107 +++++++++++------- .../java/com/simibubi/create/AllShapes.java | 3 +- .../simibubi/create/compat/jei/CreateJEI.java | 4 +- .../crafter/MechanicalCraftingRecipe.java | 10 +- .../mixer/MechanicalMixerTileEntity.java | 2 +- .../press/MechanicalPressTileEntity.java | 2 +- .../SequencedAssemblyRecipeBuilder.java | 2 +- .../processing/ProcessingRecipe.java | 4 +- .../processing/ProcessingRecipeBuilder.java | 18 +-- .../weapons/PotatoProjectileRenderMode.java | 10 +- .../create/foundation/config/CKinetics.java | 2 +- .../MechanicalCraftingRecipeBuilder.java | 2 +- .../data/recipe/ProcessingRecipeGen.java | 5 +- 13 files changed, 94 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/simibubi/create/AllRecipeTypes.java b/src/main/java/com/simibubi/create/AllRecipeTypes.java index d88471657..a15eda1e4 100644 --- a/src/main/java/com/simibubi/create/AllRecipeTypes.java +++ b/src/main/java/com/simibubi/create/AllRecipeTypes.java @@ -17,7 +17,6 @@ import com.simibubi.create.content.contraptions.fluids.actors.FillingRecipe; import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipeSerializer; import com.simibubi.create.content.contraptions.processing.BasinRecipe; import com.simibubi.create.content.contraptions.processing.EmptyingRecipe; -import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeFactory; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer; import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe; @@ -36,62 +35,56 @@ import net.minecraftforge.event.RegistryEvent; public enum AllRecipeTypes { MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new), - CONVERSION(processingSerializer(ConversionRecipe::new)), - CRUSHING(processingSerializer(CrushingRecipe::new)), - CUTTING(processingSerializer(CuttingRecipe::new)), - MILLING(processingSerializer(MillingRecipe::new)), - BASIN(processingSerializer(BasinRecipe::new)), - MIXING(processingSerializer(MixingRecipe::new)), - COMPACTING(processingSerializer(CompactingRecipe::new)), - PRESSING(processingSerializer(PressingRecipe::new)), - SANDPAPER_POLISHING(processingSerializer(SandPaperPolishingRecipe::new)), - SPLASHING(processingSerializer(SplashingRecipe::new)), - DEPLOYING(processingSerializer(DeployerApplicationRecipe::new)), - FILLING(processingSerializer(FillingRecipe::new)), - EMPTYING(processingSerializer(EmptyingRecipe::new)), + CONVERSION(ConversionRecipe::new), + CRUSHING(CrushingRecipe::new), + CUTTING(CuttingRecipe::new), + MILLING(MillingRecipe::new), + BASIN(BasinRecipe::new), + MIXING(MixingRecipe::new), + COMPACTING(CompactingRecipe::new), + PRESSING(PressingRecipe::new), + SANDPAPER_POLISHING(SandPaperPolishingRecipe::new), + SPLASHING(SplashingRecipe::new), + DEPLOYING(DeployerApplicationRecipe::new), + FILLING(FillingRecipe::new), + EMPTYING(EmptyingRecipe::new), SEQUENCED_ASSEMBLY(SequencedAssemblyRecipeSerializer::new), ; - public IRecipeSerializer serializer; - public Supplier> supplier; - public IRecipeType> type; + private ResourceLocation id; + private Supplier> serializerSupplier; + private Supplier> typeSupplier; + private IRecipeSerializer serializer; + private IRecipeType type; - AllRecipeTypes(Supplier> supplier) { - this(supplier, null); + AllRecipeTypes(Supplier> serializerSupplier, Supplier> typeSupplier) { + this.id = Create.asResource(Lang.asId(name())); + this.serializerSupplier = serializerSupplier; + this.typeSupplier = typeSupplier; } - AllRecipeTypes(Supplier> supplier, - IRecipeType> existingType) { - this.supplier = supplier; - this.type = existingType; + AllRecipeTypes(Supplier> serializerSupplier, IRecipeType existingType) { + this(serializerSupplier, () -> existingType); } - public static void register(RegistryEvent.Register> event) { - ShapedRecipe.setCraftingSize(9, 9); - - for (AllRecipeTypes r : AllRecipeTypes.values()) { - if (r.type == null) - r.type = customType(Lang.asId(r.name())); - - r.serializer = r.supplier.get(); - ResourceLocation location = new ResourceLocation(Create.ID, Lang.asId(r.name())); - event.getRegistry() - .register(r.serializer.setRegistryName(location)); - } + AllRecipeTypes(Supplier> serializerSupplier) { + this.id = Create.asResource(Lang.asId(name())); + this.serializerSupplier = serializerSupplier; + this.typeSupplier = () -> simpleType(id); } - private static > IRecipeType customType(String id) { - return Registry.register(Registry.RECIPE_TYPE, new ResourceLocation(Create.ID, id), new IRecipeType() { - public String toString() { - return Create.ID + ":" + id; - } - }); + AllRecipeTypes(ProcessingRecipeFactory processingFactory) { + this(processingSerializer(processingFactory)); } - private static Supplier> processingSerializer( - ProcessingRecipeFactory> factory) { - return () -> new ProcessingRecipeSerializer<>(factory); + public ResourceLocation getId() { + return id; + } + + @SuppressWarnings("unchecked") + public > T getSerializer() { + return (T) serializer; } @SuppressWarnings("unchecked") @@ -103,4 +96,30 @@ public enum AllRecipeTypes { return world.getRecipeManager() .getRecipeFor(getType(), inv, world); } + + public static void register(RegistryEvent.Register> event) { + ShapedRecipe.setCraftingSize(9, 9); + + for (AllRecipeTypes r : AllRecipeTypes.values()) { + r.serializer = r.serializerSupplier.get(); + r.type = r.typeSupplier.get(); + r.serializer.setRegistryName(r.id); + event.getRegistry() + .register(r.serializer); + } + } + + private static Supplier> processingSerializer(ProcessingRecipeFactory factory) { + return () -> new ProcessingRecipeSerializer<>(factory); + } + + public static > IRecipeType simpleType(ResourceLocation id) { + String stringId = id.toString(); + return Registry.register(Registry.RECIPE_TYPE, id, new IRecipeType() { + public String toString() { + return stringId; + } + }); + } + } diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 234676ad0..9ba3acccd 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -241,7 +241,8 @@ public class AllShapes { } public static class Builder { - VoxelShape shape; + + private VoxelShape shape; public Builder(VoxelShape shape) { this.shape = shape; diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index 76b994322..4f7649478 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -179,7 +179,7 @@ public class CreateJEI implements IModPlugin { deploying = register("deploying", DeployingCategory::new) .recipeList( - () -> DeployerApplicationRecipe.convert(findRecipesByType(AllRecipeTypes.SANDPAPER_POLISHING.type))) + () -> DeployerApplicationRecipe.convert(findRecipesByType(AllRecipeTypes.SANDPAPER_POLISHING.getType()))) .recipes(AllRecipeTypes.DEPLOYING) .catalyst(AllBlocks.DEPLOYER::get) .catalyst(AllBlocks.DEPOT::get) @@ -205,7 +205,7 @@ public class CreateJEI implements IModPlugin { .recipes(r -> r.getSerializer() == IRecipeSerializer.SHAPELESS_RECIPE && r.getIngredients() .size() == 1) .recipes( - r -> (r.getType() == IRecipeType.CRAFTING && r.getType() != AllRecipeTypes.MECHANICAL_CRAFTING.type) + r -> (r.getType() == IRecipeType.CRAFTING && r.getType() != AllRecipeTypes.MECHANICAL_CRAFTING.getType()) && (r instanceof ShapedRecipe)) .catalyst(AllBlocks.MECHANICAL_CRAFTER::get) .enableWhen(c -> c.allowRegularCraftingInCrafter) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java index 6ee3fb525..2022cccf2 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCraftingRecipe.java @@ -33,17 +33,17 @@ public class MechanicalCraftingRecipe extends ShapedRecipe { @Override public IRecipeType getType() { - return AllRecipeTypes.MECHANICAL_CRAFTING.type; + return AllRecipeTypes.MECHANICAL_CRAFTING.getType(); } - + @Override public boolean isSpecial() { return true; } - + @Override public IRecipeSerializer getSerializer() { - return AllRecipeTypes.MECHANICAL_CRAFTING.serializer; + return AllRecipeTypes.MECHANICAL_CRAFTING.getSerializer(); } public static class Serializer extends ShapedRecipe.Serializer { @@ -52,7 +52,7 @@ public class MechanicalCraftingRecipe extends ShapedRecipe { public ShapedRecipe fromJson(ResourceLocation recipeId, JsonObject json) { return fromShaped(super.fromJson(recipeId, json)); } - + @Override public ShapedRecipe fromNetwork(ResourceLocation recipeId, PacketBuffer buffer) { return fromShaped(super.fromNetwork(recipeId, buffer)); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java index 89324dcf5..51c803a0a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java @@ -229,7 +229,7 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { return ((r.getSerializer() == IRecipeSerializer.SHAPELESS_RECIPE && AllConfigs.SERVER.recipes.allowShapelessInMixer.get() && r.getIngredients() .size() > 1) - || r.getType() == AllRecipeTypes.MIXING.type); + || r.getType() == AllRecipeTypes.MIXING.getType()); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java index 38b639cc7..2d428cc6c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java @@ -346,7 +346,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { @Override protected boolean matchStaticFilters(IRecipe recipe) { return (recipe instanceof ICraftingRecipe && canCompress(recipe.getIngredients())) - || recipe.getType() == AllRecipeTypes.COMPACTING.type; + || recipe.getType() == AllRecipeTypes.COMPACTING.getType(); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeBuilder.java b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeBuilder.java index 9453108aa..f65cbdfc0 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeBuilder.java +++ b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipeBuilder.java @@ -34,7 +34,7 @@ public class SequencedAssemblyRecipeBuilder { public SequencedAssemblyRecipeBuilder(ResourceLocation id) { recipeConditions = new ArrayList<>(); this.recipe = new SequencedAssemblyRecipe(id, - (SequencedAssemblyRecipeSerializer) AllRecipeTypes.SEQUENCED_ASSEMBLY.serializer); + AllRecipeTypes.SEQUENCED_ASSEMBLY.getSerializer()); } public > SequencedAssemblyRecipeBuilder addStep(ProcessingRecipeFactory factory, diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java index 4f4dff700..d92235e4c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java @@ -52,10 +52,10 @@ public abstract class ProcessingRecipe implements IRecipe< this.processingDuration = params.processingDuration; this.fluidIngredients = params.fluidIngredients; this.fluidResults = params.fluidResults; - this.serializer = recipeType.serializer; + this.serializer = recipeType.getSerializer(); this.requiredHeat = params.requiredHeat; this.ingredients = params.ingredients; - this.type = recipeType.type; + this.type = recipeType.getType(); this.results = params.results; this.id = params.id; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java index 5099023e8..e81f6e0f7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipeBuilder.java @@ -192,15 +192,15 @@ public class ProcessingRecipeBuilder> { public static class ProcessingRecipeParams { - ResourceLocation id; - NonNullList ingredients; - NonNullList results; - NonNullList fluidIngredients; - NonNullList fluidResults; - int processingDuration; - HeatCondition requiredHeat; + protected ResourceLocation id; + protected NonNullList ingredients; + protected NonNullList results; + protected NonNullList fluidIngredients; + protected NonNullList fluidResults; + protected int processingDuration; + protected HeatCondition requiredHeat; - ProcessingRecipeParams(ResourceLocation id) { + protected ProcessingRecipeParams(ResourceLocation id) { this.id = id; ingredients = NonNullList.create(); results = NonNullList.create(); @@ -226,7 +226,7 @@ public class ProcessingRecipeBuilder> { String typeName = Lang.asId(recipeType.name()); this.recipe = recipe; - if (!(recipeType.serializer instanceof ProcessingRecipeSerializer)) + if (!(recipeType.getSerializer() instanceof ProcessingRecipeSerializer)) throw new IllegalStateException("Cannot datagen ProcessingRecipe of type: " + typeName); this.id = new ResourceLocation(recipe.getId().getNamespace(), diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java index 40888f2d1..9bbfdbad0 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoProjectileRenderMode.java @@ -11,12 +11,12 @@ import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; -public abstract class PotatoProjectileRenderMode { +public interface PotatoProjectileRenderMode { @OnlyIn(Dist.CLIENT) - public abstract void transform(MatrixStack ms, PotatoProjectileEntity entity, float pt); + void transform(MatrixStack ms, PotatoProjectileEntity entity, float pt); - public static class Billboard extends PotatoProjectileRenderMode { + public static class Billboard implements PotatoProjectileRenderMode { @Override @OnlyIn(Dist.CLIENT) @@ -47,7 +47,7 @@ public abstract class PotatoProjectileRenderMode { } } - public static class TowardMotion extends PotatoProjectileRenderMode { + public static class TowardMotion implements PotatoProjectileRenderMode { private int spriteAngleOffset; private float spin; @@ -72,7 +72,7 @@ public abstract class PotatoProjectileRenderMode { } - public static class StuckToEntity extends PotatoProjectileRenderMode { + public static class StuckToEntity implements PotatoProjectileRenderMode { private Vector3d offset; diff --git a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java index d4cf51867..e5b05f92c 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java @@ -1,11 +1,11 @@ package com.simibubi.create.foundation.config; + import com.simibubi.create.foundation.config.ConfigBase.ConfigBool; import com.simibubi.create.foundation.config.ConfigBase.ConfigEnum; import com.simibubi.create.foundation.config.ConfigBase.ConfigFloat; import com.simibubi.create.foundation.config.ConfigBase.ConfigGroup; import com.simibubi.create.foundation.config.ConfigBase.ConfigInt; - public class CKinetics extends ConfigBase { public ConfigBool disableStress = b(false, "disableStress", Comments.disableStress); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java index 8bff65111..3f806faf7 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeBuilder.java @@ -183,7 +183,7 @@ public class MechanicalCraftingRecipeBuilder { } public IRecipeSerializer getType() { - return AllRecipeTypes.MECHANICAL_CRAFTING.serializer; + return AllRecipeTypes.MECHANICAL_CRAFTING.getSerializer(); } public ResourceLocation getId() { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java index 90ae53c38..07734300d 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/ProcessingRecipeGen.java @@ -20,8 +20,6 @@ import net.minecraft.util.IItemProvider; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fluids.FluidAttributes; -import com.simibubi.create.foundation.data.recipe.CreateRecipeProvider.GeneratedRecipe; - public abstract class ProcessingRecipeGen extends CreateRecipeProvider { protected static List generators = new ArrayList<>(); @@ -116,9 +114,8 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider { return create(Create.asResource(name), transform); } - @SuppressWarnings("unchecked") protected > ProcessingRecipeSerializer getSerializer() { - ProcessingRecipeSerializer serializer = (ProcessingRecipeSerializer) getRecipeType().serializer; + ProcessingRecipeSerializer serializer = getRecipeType().getSerializer(); return serializer; }