diff --git a/README.md b/README.md index fdd841f..5d18590 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Mechanical Lemon Lib +# Mechanicals Lib ## License - Certain sections of the code are from the Create mod, which is licensed under the MIT license. See Create's license for more information. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index e7f48c0..b20d83c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,13 +11,13 @@ parchment_minecraft_version = 1.21.1 parchment_version = 2024.11.17 # Dependency Versions -mod_id=mechanical_lemon_lib -mod_name=MechanicalLemonLib +mod_id=mechanicals +mod_name=Mechanicals Lib mod_license=LGPL3 -mod_version=0.1.56 +mod_version=0.1.0 mod_group_id=com.oierbravo mod_author=oierbravo -mod_description=Mod Utility Library +mod_description=Utility Library for Create Addons. # dependency versions create_version = 6.0.2-32 diff --git a/settings.gradle b/settings.gradle index 2f542d5..f1c9745 100644 --- a/settings.gradle +++ b/settings.gradle @@ -12,4 +12,4 @@ plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' } -rootProject.name = 'MechanicalLemonLib' +rootProject.name = 'Mechanicals' diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/MechanicalLemonLib.java b/src/main/java/com/oierbravo/mechanical_lemon_lib/MechanicalLemonLib.java deleted file mode 100644 index f435283..0000000 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/MechanicalLemonLib.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.oierbravo.mechanical_lemon_lib; - -import com.mojang.logging.LogUtils; -import com.oierbravo.mechanical_lemon_lib.register.LemonCreativeModeTabs; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRecipeRequirementTypes; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRegistries; -import net.minecraft.resources.ResourceLocation; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.fml.ModContainer; -import net.neoforged.fml.common.Mod; -import net.neoforged.neoforge.registries.*; -import org.slf4j.Logger; - -@Mod(MechanicalLemonLib.MODID) -public class MechanicalLemonLib { - - public static final String MODID = "mechanical_lemon_lib"; - private static final Logger LOGGER = LogUtils.getLogger(); - - public MechanicalLemonLib(IEventBus modEventBus, ModContainer modContainer) { - - LemonCreativeModeTabs.register(modEventBus); - - modEventBus.addListener(this::newRegistries); - MechanicalLemonRecipeRequirementTypes.init(modEventBus); - } - - private void newRegistries(NewRegistryEvent event) { - MechanicalLemonRegistries.register(event); - } - - public static ResourceLocation asResource(String path) { - return ResourceLocation.fromNamespaceAndPath(MODID, path); - } - public static Logger getLogger(){ - return LOGGER; - } -} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeBuilder.java b/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeBuilder.java deleted file mode 100644 index b42e3a4..0000000 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeBuilder.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; - -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; -import net.minecraft.advancements.Advancement; -import net.minecraft.advancements.AdvancementRequirements; -import net.minecraft.advancements.AdvancementRewards; -import net.minecraft.advancements.Criterion; -import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; -import net.minecraft.data.recipes.RecipeBuilder; -import net.minecraft.data.recipes.RecipeOutput; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.crafting.RecipeSerializer; -import net.neoforged.neoforge.common.conditions.ICondition; -import net.neoforged.neoforge.common.conditions.ModLoadedCondition; -import net.neoforged.neoforge.common.conditions.NotCondition; -import org.jetbrains.annotations.Nullable; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; - -public abstract class BaseRecipeBuilder, P extends BaseRecipeParams> { - protected final Map> criteria = new LinkedHashMap<>(); - - protected P params; - protected ArrayList recipeRequirements; - protected ArrayList recipeConditions; - - public BaseRecipeBuilder( ResourceLocation id){ - recipeRequirements = new ArrayList<>(); - recipeConditions = new ArrayList<>(); - } - - public abstract R build(); - - public void build(Consumer consumer) { - consumer.accept(new DataGenResult<>(build(), recipeConditions)); - } - - public > BRP withRequirement(IRecipeRequirement requirement){ - //public BaseRecipeBuilder withRequirement(IRecipeRequirement requirement){ - params.recipeRequirements.add(requirement); - return ((BRP) this); - } - public > BRP withRequirements(List pRecipeRequirements) { - //public BaseRecipeBuilder withRequirements(List pRecipeRequirements) { - params.recipeRequirements.addAll(pRecipeRequirements); - return ((BRP) this); - } - - public BaseRecipeBuilder whenModLoaded(String modid) { - return withCondition(new ModLoadedCondition(modid)); - } - - public BaseRecipeBuilder whenModMissing(String modid) { - return withCondition(new NotCondition(new ModLoadedCondition(modid))); - } - - public BaseRecipeBuilder withCondition(ICondition condition) { - recipeConditions.add(condition); - return this; - } - public void save(RecipeOutput recipeOutput, ResourceLocation resourceLocation) { - Advancement.Builder advancement = recipeOutput.advancement() - .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(resourceLocation)) - .rewards(AdvancementRewards.Builder.recipe(resourceLocation)) - .requirements(AdvancementRequirements.Strategy.OR); - this.criteria.forEach(advancement::addCriterion); - - recipeOutput.accept(resourceLocation, build(), advancement.build(params.id.withPrefix("recipes/"))); - } - - public void save(RecipeOutput recipeOutput) { - save(recipeOutput, params.id); - } - - public static class DataGenResult> implements RecipeBuilder { - - private List recipeConditions; - private BaseRecipeSerializer serializer; - private ResourceLocation id; - protected final Map> criteria = new LinkedHashMap<>(); - @Nullable - protected String group; - - private S recipe; - - @SuppressWarnings("unchecked") - public DataGenResult(S recipe, List recipeConditions) { - this.recipe = recipe; - this.recipeConditions = recipeConditions; - ResourceLocation typeId = recipe.id; - - if (!(recipe.getSerializer() instanceof BaseRecipeSerializer)) - throw new IllegalStateException("Cannot datagen Recipe of type: " + typeId); - - this.id = ResourceLocation.fromNamespaceAndPath(recipe.id.getNamespace(), - typeId.getPath() + "/" + recipe.id.getPath()); - this.serializer = (BaseRecipeSerializer) recipe.getSerializer(); - } - - @Override - public RecipeBuilder unlockedBy(String name, Criterion criterion) { - this.criteria.put(name, criterion); - return this; - } - - @Override - public RecipeBuilder group(@Nullable String s) { - this.group = group; - return this; } - - @Override - public Item getResult() { - return null; - } - - @Override - public void save(RecipeOutput recipeOutput, ResourceLocation resourceLocation) { - - } - - /*@Override - public void serializeRecipeData(JsonObject json) { - serializer.write(json, recipe); - if (recipeConditions.isEmpty()) - return; - - JsonArray conds = new JsonArray(); - recipeConditions.forEach(c -> conds.add(CraftingHelper.serialize(c))); - json.add("conditions", conds); - } - - @Override - public ResourceLocation getId() { - return id; - } - - @Override - public RecipeSerializer getType() { - return serializer; - } - - @Override - public JsonObject serializeAdvancement() { - return null; - } - - @Override - public ResourceLocation getAdvancementId() { - return null; - }*/ - - } -} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeSerializer.java b/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeSerializer.java deleted file mode 100644 index dc8e767..0000000 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeSerializer.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; - -import com.google.gson.JsonObject; -import com.mojang.serialization.MapCodec; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.StreamCodec; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.crafting.RecipeSerializer; -import org.jetbrains.annotations.NotNull; - -import java.util.List; - -public abstract class BaseRecipeSerializer, B extends BaseRecipeBuilder> implements RecipeSerializer { - protected final List enabledRecipeRequirements; - - public BaseRecipeSerializer(List pEnabledRecipeRequirements) { - this.enabledRecipeRequirements = pEnabledRecipeRequirements; - } -} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IBaseRecipeParams.java b/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IBaseRecipeParams.java deleted file mode 100644 index 0dc8c38..0000000 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IBaseRecipeParams.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; - -public interface IBaseRecipeParams { - -} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IProcessBlockingRequirement.java b/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IProcessBlockingRequirement.java deleted file mode 100644 index 0d5642a..0000000 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IProcessBlockingRequirement.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; - -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; - -public interface IProcessBlockingRequirement { - boolean test(Level pLevel, BlockEntity pBlockEntity); -} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IRecipeWithRequirements.java b/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IRecipeWithRequirements.java deleted file mode 100644 index a0aaa44..0000000 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IRecipeWithRequirements.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; - -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -public interface IRecipeWithRequirements { - - - ArrayList getRecipeRequirements(); - //List getEnabledRequirements(); - - - default Optional getRequirement(RecipeRequirementType type) { - return getRecipeRequirements().stream().filter(iRecipeRequirement -> iRecipeRequirement.getType() == type).findFirst(); - } - - boolean checkRequirements(Level pLevel, BlockEntity pBlockEntity); - -} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/RecipeRequirementsUtils.java b/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/RecipeRequirementsUtils.java deleted file mode 100644 index cc90841..0000000 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/RecipeRequirementsUtils.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; - -import com.google.gson.JsonObject; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.Component; -import net.minecraft.util.GsonHelper; -import net.minecraft.world.level.block.entity.BlockEntity; - -import java.awt.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class RecipeRequirementsUtils { - /*public static ArrayList> checkRequirements(Map pRecipeRequirements, BlockEntity pBlockEntity){ - ArrayList> missingRequirements = new ArrayList<>(); - pRecipeRequirements.forEach((recipeRequirementType, recipeRequirement) -> { - if(!recipeRequirement.test(pBlockEntity.getLevel(),pBlockEntity)) - missingRequirements.add(recipeRequirement.getType()); - }); - return missingRequirements; - }*/ - - public static
List getRequirementsTooltips(BR recipe){ - if(recipe.getRecipeRequirements().isEmpty()) - return List.of(); - return recipe.getRecipeRequirements().stream().map(IRecipeRequirement::toTooltipComponent).toList(); - } - -} diff --git a/src/main/java/com/oierbravo/mechanicals/MechanicalPartials.java b/src/main/java/com/oierbravo/mechanicals/MechanicalPartials.java new file mode 100644 index 0000000..fed8488 --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/MechanicalPartials.java @@ -0,0 +1,13 @@ +package com.oierbravo.mechanicals; + +import dev.engine_room.flywheel.lib.model.baked.PartialModel; + +public class MechanicalPartials { + public static final PartialModel SHAFT_QUARTER = block("shaft_quarter"); + private static PartialModel block(String path) { + return PartialModel.of(Mechanicals.asResource("block/" + path)); + } + public static void init() { + // init static fields + } +} diff --git a/src/main/java/com/oierbravo/mechanicals/Mechanicals.java b/src/main/java/com/oierbravo/mechanicals/Mechanicals.java new file mode 100644 index 0000000..4ccda72 --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/Mechanicals.java @@ -0,0 +1,44 @@ +package com.oierbravo.mechanicals; + +import com.mojang.logging.LogUtils; +import com.oierbravo.mechanicals.register.MechanicalCreativeModeTabs; +import com.oierbravo.mechanicals.register.MechanicalRecipeRequirementTypes; +import com.oierbravo.mechanicals.register.MechanicalRegistries; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.registries.*; +import org.slf4j.Logger; + +@Mod(Mechanicals.MODID) +public class Mechanicals { + + public static final String MODID = "mechanicals"; + private static final Logger LOGGER = LogUtils.getLogger(); + + public Mechanicals(IEventBus modEventBus, ModContainer modContainer) { + + MechanicalCreativeModeTabs.register(modEventBus); + + modEventBus.addListener(this::newRegistries); + MechanicalRecipeRequirementTypes.init(modEventBus); + modEventBus.addListener(this::doClientStuff); + + } + private void doClientStuff(final FMLClientSetupEvent event) { + MechanicalPartials.init(); + } + + private void newRegistries(NewRegistryEvent event) { + MechanicalRegistries.register(event); + } + + public static ResourceLocation asResource(String path) { + return ResourceLocation.fromNamespaceAndPath(MODID, path); + } + public static Logger getLogger(){ + return LOGGER; + } +} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/CycleBehavior.java b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/CycleBehavior.java similarity index 98% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/CycleBehavior.java rename to src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/CycleBehavior.java index ff115fb..a9e1a30 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/CycleBehavior.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/CycleBehavior.java @@ -1,4 +1,4 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.blockEntity.behaviour; +package com.oierbravo.mechanicals.foundation.blockEntity.behaviour; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.behaviour.BehaviourType; diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/DynamicCycleBehavior.java b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/DynamicCycleBehavior.java similarity index 98% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/DynamicCycleBehavior.java rename to src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/DynamicCycleBehavior.java index 313811e..76dce6f 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/DynamicCycleBehavior.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/DynamicCycleBehavior.java @@ -1,4 +1,4 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.blockEntity.behaviour; +package com.oierbravo.mechanicals.foundation.blockEntity.behaviour; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.behaviour.BehaviourType; diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/RecipeRequirementsBehaviour.java b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/RecipeRequirementsBehaviour.java similarity index 62% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/RecipeRequirementsBehaviour.java rename to src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/RecipeRequirementsBehaviour.java index 7fda1ba..6226f41 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/blockEntity/behaviour/RecipeRequirementsBehaviour.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/blockEntity/behaviour/RecipeRequirementsBehaviour.java @@ -1,9 +1,7 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.blockEntity.behaviour; +package com.oierbravo.mechanicals.foundation.blockEntity.behaviour; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeWithRequirements; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.utility.LibLang; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeWithRequirements; +import com.oierbravo.mechanicals.utility.LibLang; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.behaviour.BehaviourType; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; @@ -13,28 +11,21 @@ import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.Optional; public class RecipeRequirementsBehaviour extends BlockEntityBehaviour { public static final BehaviourType> TYPE = new BehaviourType<>(); public RecipeRequirementsSpecifics specifics; - private boolean meetsRequirements; - private boolean meetsIngredients; - private boolean hasEnoughOutput; private ArrayList missingRequirements; public > RecipeRequirementsBehaviour(T te) { super(te); this.specifics = te; - this.meetsIngredients = false; this.missingRequirements = new ArrayList<>(); } @@ -44,50 +35,38 @@ public class RecipeRequirementsBehaviour exte } public boolean meetsRequirements(){ - return meetsRequirements; + return !missingRequirements.isEmpty(); } - public boolean checkRequirements(Optional pRecipe, Level pLevel, T pBlockEntity) { + public boolean checkRequirements(R pRecipe) { missingRequirements = new ArrayList<>(); - boolean result = true; - if(pRecipe.isEmpty() || !specifics.matchIngredients(pRecipe.get())){ - meetsIngredients = false; + if(!specifics.matchesIngredients(pRecipe)){ missingRequirements.add("ingredients"); blockEntity.sendData(); return false; } - meetsIngredients = true; - - hasEnoughOutput = specifics.hasEnoughOutputSpace(); - if(!hasEnoughOutput){ + if(!specifics.hasEnoughOutputSpace()){ missingRequirements.add("output"); - result = false; } - meetsRequirements = checkRequirements(pRecipe.get(), pLevel, specifics); - if(!meetsRequirements){ - result = false; + missingRequirements.addAll(pRecipe.getMissingRequirements((BlockEntity) specifics)); + + if(!missingRequirements.isEmpty()){ + blockEntity.sendData(); + return false; } + //meetsRequirements = meetsRequirements(pRecipe.get().getRecipeRequirements(), specifics); + //if(!pRecipe.get().checkRequirements((BlockEntity) specifics)){ + + //} + blockEntity.sendData(); - return result; + return true; } - private boolean checkRequirements(R pRecipe, Level pLevel, RecipeRequirementsSpecifics pSpecifics){ - boolean result = true; - for( IRecipeRequirement requirement : pRecipe.getRecipeRequirements()){ - if(!checkRequirement(requirement, pLevel, (BlockEntity) pSpecifics)){ - missingRequirements.add(requirement.getIdString()); - result = false; - } - } - return result; - } - private boolean checkRequirement(IRecipeRequirement value, Level pLevel, BlockEntity pSpecifics){ - return value.test(pLevel, pSpecifics); - } public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking, boolean added) { if(missingRequirements.isEmpty()) return false; @@ -124,6 +103,6 @@ public class RecipeRequirementsBehaviour exte public interface RecipeRequirementsSpecifics { boolean hasEnoughOutputSpace(); - boolean matchIngredients(R recipe); + boolean matchesIngredients(R recipe); } } diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/data/FluidExistsCondition.java b/src/main/java/com/oierbravo/mechanicals/foundation/data/FluidExistsCondition.java similarity index 80% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/data/FluidExistsCondition.java rename to src/main/java/com/oierbravo/mechanicals/foundation/data/FluidExistsCondition.java index 1840cec..163c3ed 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/data/FluidExistsCondition.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/data/FluidExistsCondition.java @@ -1,16 +1,11 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.data; +package com.oierbravo.mechanicals.foundation.data; -import com.google.gson.JsonObject; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.tterrag.registrate.util.entry.FluidEntry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.GsonHelper; import net.neoforged.neoforge.common.conditions.ICondition; -import net.neoforged.neoforge.common.conditions.ModLoadedCondition; -import net.neoforged.neoforge.fluids.BaseFlowingFluid; public record FluidExistsCondition(String fluid) implements ICondition { public static MapCodec CODEC = RecordCodecBuilder.mapCodec((builder) -> builder.group(Codec.STRING.fieldOf("fluid_exists").forGetter(FluidExistsCondition::fluid)).apply(builder, FluidExistsCondition::new)); diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/energy/AbstractEnergyStorage.java b/src/main/java/com/oierbravo/mechanicals/foundation/energy/AbstractEnergyStorage.java similarity index 93% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/energy/AbstractEnergyStorage.java rename to src/main/java/com/oierbravo/mechanicals/foundation/energy/AbstractEnergyStorage.java index 575e7d5..5e040e2 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/energy/AbstractEnergyStorage.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/energy/AbstractEnergyStorage.java @@ -1,4 +1,4 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.energy; +package com.oierbravo.mechanicals.foundation.energy; import net.neoforged.neoforge.energy.EnergyStorage; diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipe.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipe.java similarity index 83% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipe.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipe.java index 7c98914..91445d3 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipe.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipe.java @@ -1,4 +1,4 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; +package com.oierbravo.mechanicals.foundation.recipe; import net.minecraft.MethodsReturnNonnullByDefault; import net.minecraft.resources.ResourceLocation; @@ -8,7 +8,6 @@ import net.neoforged.neoforge.common.conditions.ICondition; import javax.annotation.ParametersAreNonnullByDefault; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; @MethodsReturnNonnullByDefault @@ -21,12 +20,9 @@ public abstract class BaseRecipe conditions; - //abstract public List getEnabledRequirements(); - public BaseRecipe(P params){ this.id = params.id; recipeRequirements = params.recipeRequirements; - //recipeRequirements.putAll(params.recipeRequirements); this.conditions = params.conditions; } diff --git a/src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipeBuilder.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipeBuilder.java new file mode 100644 index 0000000..550bf17 --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipeBuilder.java @@ -0,0 +1,67 @@ +package com.oierbravo.mechanicals.foundation.recipe; + +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementRequirements; +import net.minecraft.advancements.AdvancementRewards; +import net.minecraft.advancements.Criterion; +import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.resources.ResourceLocation; +import net.neoforged.neoforge.common.conditions.ICondition; +import net.neoforged.neoforge.common.conditions.ModLoadedCondition; +import net.neoforged.neoforge.common.conditions.NotCondition; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public abstract class BaseRecipeBuilder, P extends BaseRecipeParams, BRB extends BaseRecipeBuilder> { + protected final Map> criteria = new LinkedHashMap<>(); + + protected P params; + protected ArrayList recipeRequirements; + protected ArrayList recipeConditions; + + public BaseRecipeBuilder( ResourceLocation id){ + recipeRequirements = new ArrayList<>(); + recipeConditions = new ArrayList<>(); + } + + public abstract R build(); + + public BRB withRequirement(IRecipeRequirement requirement){ + params.recipeRequirements.add(requirement); + return (BRB) this; + } + public BRB withRequirements(List pRecipeRequirements) { + params.recipeRequirements.addAll(pRecipeRequirements); + return (BRB) this; + } + + public BRB whenModLoaded(String modid) { + return withCondition(new ModLoadedCondition(modid)); + } + + public BRB whenModMissing(String modid) { + return withCondition(new NotCondition(new ModLoadedCondition(modid))); + } + + public BRB withCondition(ICondition condition) { + recipeConditions.add(condition); + return (BRB) this; + } + public void save(RecipeOutput recipeOutput, ResourceLocation resourceLocation) { + Advancement.Builder advancement = recipeOutput.advancement() + .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(resourceLocation)) + .rewards(AdvancementRewards.Builder.recipe(resourceLocation)) + .requirements(AdvancementRequirements.Strategy.OR); + this.criteria.forEach(advancement::addCriterion); + + recipeOutput.accept(resourceLocation, build(), advancement.build(params.id.withPrefix("recipes/"))); + } + + public void save(RecipeOutput recipeOutput) { + save(recipeOutput, params.id); + } +} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeParams.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipeParams.java similarity index 79% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeParams.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipeParams.java index acf40b8..b0850ac 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/BaseRecipeParams.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/BaseRecipeParams.java @@ -1,12 +1,9 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; +package com.oierbravo.mechanicals.foundation.recipe; import net.minecraft.resources.ResourceLocation; import net.neoforged.neoforge.common.conditions.ICondition; import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; public abstract class BaseRecipeParams implements IBaseRecipeParams { public ResourceLocation id; diff --git a/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IBaseRecipeParams.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IBaseRecipeParams.java new file mode 100644 index 0000000..f289d27 --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IBaseRecipeParams.java @@ -0,0 +1,5 @@ +package com.oierbravo.mechanicals.foundation.recipe; + +public interface IBaseRecipeParams { + +} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IRecipeRequirement.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IRecipeRequirement.java similarity index 52% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IRecipeRequirement.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/IRecipeRequirement.java index fe5b379..8b2cf00 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/IRecipeRequirement.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IRecipeRequirement.java @@ -1,10 +1,9 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; +package com.oierbravo.mechanicals.foundation.recipe; import com.mojang.serialization.Codec; -import com.mojang.serialization.MapCodec; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRegistries; -import com.oierbravo.mechanical_lemon_lib.utility.LibLang; -import net.minecraft.network.FriendlyByteBuf; +import com.oierbravo.mechanicals.register.MechanicalRegistries; +import com.oierbravo.mechanicals.utility.LibLang; +import net.createmod.catnip.data.Pair; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.network.codec.ByteBufCodecs; @@ -13,15 +12,13 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import java.util.List; -import java.util.Map; -import java.util.function.Function; public interface IRecipeRequirement { - Codec CODEC = MechanicalLemonRegistries.RECIPE_REQUIREMENT_TYPE.byNameCodec().dispatch(IRecipeRequirement::getType, RecipeRequirementType::codec); + Codec CODEC = MechanicalRegistries.RECIPE_REQUIREMENT_TYPE.byNameCodec().dispatch(IRecipeRequirement::getType, RecipeRequirementType::codec); Codec> LIST_CODEC = CODEC.listOf(); StreamCodec STREAM_CODEC - = ByteBufCodecs.registry(MechanicalLemonRegistries.Keys.RECIPE_REQUIREMENT) + = ByteBufCodecs.registry(MechanicalRegistries.Keys.RECIPE_REQUIREMENT) .dispatch(IRecipeRequirement::getType, RecipeRequirementType::streamCodec); StreamCodec> LIST_STREAM_CODEC = @@ -33,9 +30,10 @@ public interface IRecipeRequirement { String toString(); RecipeRequirementType getType(); - default Component toTooltipComponent(){ - //return LibLang.translate("ui.recipe_requirement." + getIdString() + ".tooltip").newLine().component().append(toString());.component(); - return LibLang.translate("ui.recipe_requirement." + getIdString() + ".tooltip", toString()).newLine().space().add(Component.literal(toString())).component(); + default Pair toTooltipComponent(){ + return Pair.of(LibLang.translate("ui.recipe_requirement." + getIdString() + ".tooltip.title").component(), + LibLang.translate("ui.recipe_requirement." + getIdString() + ".tooltip.value", toString()).component() + ); }; default Component toMissingComponent(){ return LibLang.translate("ui.recipe_requirement." + getIdString() + ".missing").component(); diff --git a/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IRecipeWithRequirements.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IRecipeWithRequirements.java new file mode 100644 index 0000000..6a41fde --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/IRecipeWithRequirements.java @@ -0,0 +1,44 @@ +package com.oierbravo.mechanicals.foundation.recipe; + +import net.createmod.catnip.data.Pair; +import net.minecraft.network.chat.Component; +import net.minecraft.world.level.block.entity.BlockEntity; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +public interface IRecipeWithRequirements { + + + ArrayList getRecipeRequirements(); + + default Optional getRequirement(RecipeRequirementType type) { + return getRecipeRequirements().stream().filter(iRecipeRequirement -> iRecipeRequirement.getType() == type).findFirst(); + } + + default boolean meetsRequirements(BlockEntity pBlockEntity){ + for( IRecipeRequirement requirement : getRecipeRequirements()){ + if(!requirement.test(pBlockEntity.getLevel(), pBlockEntity)){ + return false; + } + } + return true; + }; + default List getMissingRequirements(BlockEntity pBlockEntity){ + ArrayList missingRequirements = new ArrayList<>(); + for( IRecipeRequirement requirement : getRecipeRequirements() ){ + if(!requirement.test(pBlockEntity.getLevel(), pBlockEntity)){ + missingRequirements.add(requirement.getIdString()); + } + } + return missingRequirements; + }; + + default List> getRequirementsTooltips(){ + if(getRecipeRequirements().isEmpty()) + return List.of(); + return getRecipeRequirements().stream().map(IRecipeRequirement::toTooltipComponent).toList(); + } + +} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/RecipeRequirementType.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/RecipeRequirementType.java similarity index 91% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/RecipeRequirementType.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/RecipeRequirementType.java index 06033c9..84799da 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/RecipeRequirementType.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/RecipeRequirementType.java @@ -1,4 +1,4 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe; +package com.oierbravo.mechanicals.foundation.recipe; import com.mojang.serialization.MapCodec; import net.minecraft.network.RegistryFriendlyByteBuf; diff --git a/src/main/java/com/oierbravo/mechanicals/foundation/recipe/RecipeRequirementsUtils.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/RecipeRequirementsUtils.java new file mode 100644 index 0000000..00fda14 --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/RecipeRequirementsUtils.java @@ -0,0 +1,20 @@ +package com.oierbravo.mechanicals.foundation.recipe; + +public class RecipeRequirementsUtils { + /*public static List getMissingRequirements(List pRecipeRequirements, BlockEntity pBlockEntity){ + ArrayList missingRequirements = new ArrayList<>(); + for( IRecipeRequirement requirement : pRecipeRequirements ){ + if(!requirement.test(pBlockEntity.getLevel(), pBlockEntity)){ + missingRequirements.add(requirement.getIdString()); + } + } + return missingRequirements; + }*/ + + /*public static
List> getRequirementsTooltips(BR recipe){ + if(recipe.getRecipeRequirements().isEmpty()) + return List.of(); + return recipe.getRecipeRequirements().stream().map(IRecipeRequirement::toTooltipComponent).toList(); + }*/ + +} diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/BiomeRequirement.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/BiomeRequirement.java similarity index 79% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/BiomeRequirement.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/BiomeRequirement.java index f5341e5..852a221 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/BiomeRequirement.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/BiomeRequirement.java @@ -1,19 +1,15 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe.requirements; +package com.oierbravo.mechanicals.foundation.recipe.requirements; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRecipeRequirementTypes; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeRequirement; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.register.MechanicalRecipeRequirementTypes; import net.minecraft.core.Holder; -import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.TagKey; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.entity.BlockEntity; @@ -58,7 +54,7 @@ public record BiomeRequirement(ResourceKey biomeResourceKey) implements I @Override public RecipeRequirementType getType() { - return MechanicalLemonRecipeRequirementTypes.BIOME.get(); + return MechanicalRecipeRequirementTypes.BIOME.get(); } @Override diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/BiomeTagRequirement.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/BiomeTagRequirement.java similarity index 81% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/BiomeTagRequirement.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/BiomeTagRequirement.java index 948d084..8ab1559 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/BiomeTagRequirement.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/BiomeTagRequirement.java @@ -1,26 +1,20 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe.requirements; +package com.oierbravo.mechanicals.foundation.recipe.requirements; -import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRecipeRequirementTypes; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeRequirement; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.register.MechanicalRecipeRequirementTypes; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; -import net.minecraft.tags.BiomeTags; import net.minecraft.tags.TagKey; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.block.entity.BlockEntity; -import java.util.Optional; - public record BiomeTagRequirement(TagKey tag) implements IRecipeRequirement { public static String ID = "biome_tag"; @@ -66,7 +60,7 @@ public record BiomeTagRequirement(TagKey tag) implements IRecipeRequireme @Override public RecipeRequirementType getType() { - return MechanicalLemonRecipeRequirementTypes.BIOME_TAG.get(); + return MechanicalRecipeRequirementTypes.BIOME_TAG.get(); } @Override diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MaxSpeedRequirement.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MaxSpeedRequirement.java similarity index 80% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MaxSpeedRequirement.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MaxSpeedRequirement.java index c32a571..ff5a196 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MaxSpeedRequirement.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MaxSpeedRequirement.java @@ -1,11 +1,11 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe.requirements; +package com.oierbravo.mechanicals.foundation.recipe.requirements; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRecipeRequirementTypes; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeRequirement; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.register.MechanicalRecipeRequirementTypes; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; @@ -35,7 +35,7 @@ public record MaxSpeedRequirement(Float speed) implements IRecipeRequirement { @Override public RecipeRequirementType getType() { - return MechanicalLemonRecipeRequirementTypes.MAX_SPEED.get(); + return MechanicalRecipeRequirementTypes.MAX_SPEED.get(); } @Override diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MaxYRequirement.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MaxYRequirement.java similarity index 80% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MaxYRequirement.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MaxYRequirement.java index ceda72f..d0c5cf8 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MaxYRequirement.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MaxYRequirement.java @@ -1,11 +1,11 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe.requirements; +package com.oierbravo.mechanicals.foundation.recipe.requirements; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRecipeRequirementTypes; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeRequirement; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.register.MechanicalRecipeRequirementTypes; import net.minecraft.core.BlockPos; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; @@ -41,7 +41,7 @@ public record MaxYRequirement(Integer maxY) implements IRecipeRequirement { @Override public RecipeRequirementType getType() { - return MechanicalLemonRecipeRequirementTypes.MAX_Y.get(); + return MechanicalRecipeRequirementTypes.MAX_Y.get(); } @Override diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MinSpeedRequirement.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MinSpeedRequirement.java similarity index 80% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MinSpeedRequirement.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MinSpeedRequirement.java index 3d17e41..eb31e4d 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MinSpeedRequirement.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MinSpeedRequirement.java @@ -1,11 +1,11 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe.requirements; +package com.oierbravo.mechanicals.foundation.recipe.requirements; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRecipeRequirementTypes; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeRequirement; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.register.MechanicalRecipeRequirementTypes; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; @@ -35,7 +35,7 @@ public record MinSpeedRequirement(Float speed) implements IRecipeRequirement { @Override public RecipeRequirementType getType() { - return MechanicalLemonRecipeRequirementTypes.MIN_SPEED.get(); + return MechanicalRecipeRequirementTypes.MIN_SPEED.get(); } @Override diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MinYRequirement.java b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MinYRequirement.java similarity index 80% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MinYRequirement.java rename to src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MinYRequirement.java index 367847f..f2905aa 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/recipe/requirements/MinYRequirement.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/recipe/requirements/MinYRequirement.java @@ -1,11 +1,11 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.recipe.requirements; +package com.oierbravo.mechanicals.foundation.recipe.requirements; import com.mojang.serialization.Codec; import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.register.MechanicalLemonRecipeRequirementTypes; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeRequirement; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.register.MechanicalRecipeRequirementTypes; import net.minecraft.core.BlockPos; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; @@ -41,7 +41,7 @@ public record MinYRequirement(Integer minY) implements IRecipeRequirement { @Override public RecipeRequirementType getType() { - return MechanicalLemonRecipeRequirementTypes.MIN_Y.get(); + return MechanicalRecipeRequirementTypes.MIN_Y.get(); } @Override diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/visual/HalfShaftVisual.java b/src/main/java/com/oierbravo/mechanicals/foundation/visual/HalfShaftVisual.java similarity index 93% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/visual/HalfShaftVisual.java rename to src/main/java/com/oierbravo/mechanicals/foundation/visual/HalfShaftVisual.java index 90e7fff..304f57a 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/foundation/visual/HalfShaftVisual.java +++ b/src/main/java/com/oierbravo/mechanicals/foundation/visual/HalfShaftVisual.java @@ -1,4 +1,4 @@ -package com.oierbravo.mechanical_lemon_lib.foundation.visual; +package com.oierbravo.mechanicals.foundation.visual; import com.simibubi.create.AllPartialModels; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; diff --git a/src/main/java/com/oierbravo/mechanicals/foundation/visual/QuarterShaftVisual.java b/src/main/java/com/oierbravo/mechanicals/foundation/visual/QuarterShaftVisual.java new file mode 100644 index 0000000..84bb98e --- /dev/null +++ b/src/main/java/com/oierbravo/mechanicals/foundation/visual/QuarterShaftVisual.java @@ -0,0 +1,17 @@ +package com.oierbravo.mechanicals.foundation.visual; + +import com.oierbravo.mechanicals.MechanicalPartials; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; +import com.simibubi.create.content.kinetics.base.SingleAxisRotatingVisual; +import dev.engine_room.flywheel.api.visualization.VisualizationContext; +import dev.engine_room.flywheel.lib.model.Models; +import net.minecraft.core.Direction; + +public class QuarterShaftVisual extends SingleAxisRotatingVisual { + public QuarterShaftVisual(VisualizationContext context, T blockEntity, float partialTick, Direction direction) { + super(context, blockEntity, partialTick, direction, Models.partial(MechanicalPartials.SHAFT_QUARTER)); + } + public static QuarterShaftVisual bottom(VisualizationContext context, T blockEntity, float partialTick) { + return new QuarterShaftVisual<>(context, blockEntity, partialTick, Direction.NORTH); + } +} \ No newline at end of file diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/jade/IHavePercent.java b/src/main/java/com/oierbravo/mechanicals/jade/IHavePercent.java similarity index 57% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/jade/IHavePercent.java rename to src/main/java/com/oierbravo/mechanicals/jade/IHavePercent.java index 1e3fe23..6d0206c 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/jade/IHavePercent.java +++ b/src/main/java/com/oierbravo/mechanicals/jade/IHavePercent.java @@ -1,4 +1,4 @@ -package com.oierbravo.mechanical_lemon_lib.jade; +package com.oierbravo.mechanicals.jade; public interface IHavePercent { int getProgressPercent(); diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/jade/LemonProgressComponentProvider.java b/src/main/java/com/oierbravo/mechanicals/jade/MechanicalProgressComponentProvider.java similarity index 82% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/jade/LemonProgressComponentProvider.java rename to src/main/java/com/oierbravo/mechanicals/jade/MechanicalProgressComponentProvider.java index 8e384cf..a2caa7d 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/jade/LemonProgressComponentProvider.java +++ b/src/main/java/com/oierbravo/mechanicals/jade/MechanicalProgressComponentProvider.java @@ -1,8 +1,7 @@ -package com.oierbravo.mechanical_lemon_lib.jade; +package com.oierbravo.mechanicals.jade; -import com.oierbravo.mechanical_lemon_lib.utility.LibLang; +import com.oierbravo.mechanicals.utility.LibLang; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import snownee.jade.api.BlockAccessor; import snownee.jade.api.IBlockComponentProvider; @@ -13,10 +12,10 @@ import snownee.jade.api.ui.BoxStyle; import snownee.jade.api.ui.IElementHelper; import snownee.jade.api.ui.ProgressStyle; -public class LemonProgressComponentProvider implements IBlockComponentProvider, IServerDataProvider { +public class MechanicalProgressComponentProvider implements IBlockComponentProvider, IServerDataProvider { private final ResourceLocation UID; - public LemonProgressComponentProvider(ResourceLocation UID){ + public MechanicalProgressComponentProvider(ResourceLocation UID){ this.UID = UID; } diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/register/LemonCreativeModeTabs.java b/src/main/java/com/oierbravo/mechanicals/register/MechanicalCreativeModeTabs.java similarity index 74% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/register/LemonCreativeModeTabs.java rename to src/main/java/com/oierbravo/mechanicals/register/MechanicalCreativeModeTabs.java index fe01259..afef9e5 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/register/LemonCreativeModeTabs.java +++ b/src/main/java/com/oierbravo/mechanicals/register/MechanicalCreativeModeTabs.java @@ -1,23 +1,23 @@ -package com.oierbravo.mechanical_lemon_lib.register; +package com.oierbravo.mechanicals.register; -import com.oierbravo.mechanical_lemon_lib.MechanicalLemonLib; +import com.oierbravo.mechanicals.Mechanicals; +import com.oierbravo.mechanicals.utility.LibLang; import net.minecraft.world.item.Items; import net.neoforged.bus.api.IEventBus; import net.minecraft.core.registries.Registries; -import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredRegister; -public class LemonCreativeModeTabs { +public class MechanicalCreativeModeTabs { private static final DeferredRegister TAB_REGISTER = - DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MechanicalLemonLib.MODID); + DeferredRegister.create(Registries.CREATIVE_MODE_TAB, Mechanicals.MODID); public static final DeferredHolder MAIN_TAB = TAB_REGISTER.register("main", () -> CreativeModeTab.builder() - .title(Component.translatable("itemGroup.mechanical_lemon_lib")) + .title(LibLang.translate("itemGroup.mechanicals").component()) .icon(() -> Items.EGG.asItem().getDefaultInstance()) .build()); diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/register/MechanicalLemonRecipeRequirementTypes.java b/src/main/java/com/oierbravo/mechanicals/register/MechanicalRecipeRequirementTypes.java similarity index 79% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/register/MechanicalLemonRecipeRequirementTypes.java rename to src/main/java/com/oierbravo/mechanicals/register/MechanicalRecipeRequirementTypes.java index e2c79c6..82aaf74 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/register/MechanicalLemonRecipeRequirementTypes.java +++ b/src/main/java/com/oierbravo/mechanicals/register/MechanicalRecipeRequirementTypes.java @@ -1,10 +1,10 @@ -package com.oierbravo.mechanical_lemon_lib.register; +package com.oierbravo.mechanicals.register; import com.mojang.serialization.MapCodec; -import com.oierbravo.mechanical_lemon_lib.MechanicalLemonLib; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.IRecipeRequirement; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.requirements.*; +import com.oierbravo.mechanicals.Mechanicals; +import com.oierbravo.mechanicals.foundation.recipe.IRecipeRequirement; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.foundation.recipe.requirements.*; import net.minecraft.network.codec.StreamCodec; import net.neoforged.bus.api.IEventBus; import net.neoforged.neoforge.registries.DeferredRegister; @@ -13,9 +13,9 @@ import net.minecraft.network.RegistryFriendlyByteBuf; import java.util.function.Supplier; -public class MechanicalLemonRecipeRequirementTypes { +public class MechanicalRecipeRequirementTypes { public static final DeferredRegister> RECIPE_REQUIREMENT_TYPES = - DeferredRegister.create(MechanicalLemonRegistries.Keys.RECIPE_REQUIREMENT, MechanicalLemonLib.MODID); + DeferredRegister.create(MechanicalRegistries.Keys.RECIPE_REQUIREMENT, Mechanicals.MODID); public static final Supplier> MIN_SPEED = register(MinSpeedRequirement.ID, MinSpeedRequirement.CODEC, MinSpeedRequirement.STREAM_CODEC); diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/register/MechanicalLemonRegistries.java b/src/main/java/com/oierbravo/mechanicals/register/MechanicalRegistries.java similarity index 64% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/register/MechanicalLemonRegistries.java rename to src/main/java/com/oierbravo/mechanicals/register/MechanicalRegistries.java index edb6316..e5604bb 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/register/MechanicalLemonRegistries.java +++ b/src/main/java/com/oierbravo/mechanicals/register/MechanicalRegistries.java @@ -1,23 +1,23 @@ -package com.oierbravo.mechanical_lemon_lib.register; +package com.oierbravo.mechanicals.register; -import com.oierbravo.mechanical_lemon_lib.MechanicalLemonLib; -import com.oierbravo.mechanical_lemon_lib.foundation.recipe.RecipeRequirementType; +import com.oierbravo.mechanicals.Mechanicals; +import com.oierbravo.mechanicals.foundation.recipe.RecipeRequirementType; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; import net.neoforged.neoforge.registries.NewRegistryEvent; import net.neoforged.neoforge.registries.RegistryBuilder; -public class MechanicalLemonRegistries { +public class MechanicalRegistries { public static Registry> RECIPE_REQUIREMENT_TYPE;// = (new RegistryBuilder(Keys.RECIPE_REQUIREMENT_TYPES)).create(); - public MechanicalLemonRegistries() { + public MechanicalRegistries() { } static { - RECIPE_REQUIREMENT_TYPE = new RegistryBuilder<>(MechanicalLemonRegistries.Keys.RECIPE_REQUIREMENT).sync(true).create(); + RECIPE_REQUIREMENT_TYPE = new RegistryBuilder<>(MechanicalRegistries.Keys.RECIPE_REQUIREMENT).sync(true).create(); } public static final class Keys { - public static final ResourceKey>> RECIPE_REQUIREMENT = ResourceKey.createRegistryKey(MechanicalLemonLib.asResource("requirement")); + public static final ResourceKey>> RECIPE_REQUIREMENT = ResourceKey.createRegistryKey(Mechanicals.asResource("requirement")); } public static void register(NewRegistryEvent event) { diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/utility/ItemHandlerUtils.java.old b/src/main/java/com/oierbravo/mechanicals/utility/ItemHandlerUtils.java.old similarity index 100% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/utility/ItemHandlerUtils.java.old rename to src/main/java/com/oierbravo/mechanicals/utility/ItemHandlerUtils.java.old diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/utility/LibLang.java b/src/main/java/com/oierbravo/mechanicals/utility/LibLang.java similarity index 67% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/utility/LibLang.java rename to src/main/java/com/oierbravo/mechanicals/utility/LibLang.java index e809eb1..b64be5d 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/utility/LibLang.java +++ b/src/main/java/com/oierbravo/mechanicals/utility/LibLang.java @@ -1,6 +1,6 @@ -package com.oierbravo.mechanical_lemon_lib.utility; +package com.oierbravo.mechanicals.utility; -import com.oierbravo.mechanical_lemon_lib.MechanicalLemonLib; +import com.oierbravo.mechanicals.Mechanicals; import net.createmod.catnip.lang.Lang; import net.createmod.catnip.lang.LangBuilder; @@ -9,7 +9,7 @@ public class LibLang extends Lang { super(); } public static LangBuilder builder() { - return new LangBuilder(MechanicalLemonLib.MODID); + return new LangBuilder(Mechanicals.MODID); } public static LangBuilder translate(String langKey, Object... args) { return builder().translate(langKey, args); diff --git a/src/main/java/com/oierbravo/mechanical_lemon_lib/utility/LemonRegistrate.java b/src/main/java/com/oierbravo/mechanicals/utility/MechanicalRegistrate.java similarity index 83% rename from src/main/java/com/oierbravo/mechanical_lemon_lib/utility/LemonRegistrate.java rename to src/main/java/com/oierbravo/mechanicals/utility/MechanicalRegistrate.java index 9ce7e91..42258d1 100644 --- a/src/main/java/com/oierbravo/mechanical_lemon_lib/utility/LemonRegistrate.java +++ b/src/main/java/com/oierbravo/mechanicals/utility/MechanicalRegistrate.java @@ -1,11 +1,11 @@ -package com.oierbravo.mechanical_lemon_lib.utility; +package com.oierbravo.mechanicals.utility; import com.simibubi.create.api.stress.BlockStressValues; import com.tterrag.registrate.util.nullness.NonNullConsumer; import net.minecraft.world.level.block.Block; import org.jetbrains.annotations.NotNull; -public class LemonRegistrate { +public class MechanicalRegistrate { public static @NotNull NonNullConsumer setImpact(double value) { return (block) -> { BlockStressValues.IMPACTS.register(block, () -> value); diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 0000000..0e88a40 --- /dev/null +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1 @@ +public-f net.minecraft.data.recipes.RecipeProvider getName()Ljava/lang/String; \ No newline at end of file diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/neoforge.mods.toml index 021db92..f2cbf09 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/neoforge.mods.toml @@ -7,7 +7,7 @@ version = "${mod_version}" #mandatory displayName = "${mod_name}" #mandatory #updateJSONURL="https://change.me.example.invalid/updates.json" #optional #displayURL="https://change.me.to.your.mods.homepage.example.invalid/" #optional -#logoFile="mechanical_lemon_lib.png" #optional +#logoFile="mechanicals_lib.png" #optional #credits="Thanks for this example mod goes to Java" #optional authors = "${mod_author}" #optional description = '''${mod_description}''' diff --git a/src/main/resources/assets/mechanical_lemon_lib/lang/en_us.json b/src/main/resources/assets/mechanical_lemon_lib/lang/en_us.json deleted file mode 100644 index ddb1b5c..0000000 --- a/src/main/resources/assets/mechanical_lemon_lib/lang/en_us.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "mechanical_lemon_lib.ui.progress": "Progress: %d%%", - "itemGroup.mechanical_lemon_lib": "Mechanicals", - "mechanical_lemon_lib.ui.recipe.requirements.title": "Requirements:", - "mechanical_lemon_lib.ui.recipe_requirement.none.tooltip": "No specific requirement", - "mechanical_lemon_lib.ui.recipe_requirement.biome.tooltip": "Biome: %s", - "mechanical_lemon_lib.ui.recipe_requirement.biome_tag.tooltip": "Biome: %s", - "mechanical_lemon_lib.ui.recipe_requirement.min_y.tooltip": "Min Y: %s", - "mechanical_lemon_lib.ui.recipe_requirement.max_y.tooltip": "Max Y: %s", - "mechanical_lemon_lib.ui.recipe_requirement.min_speed.tooltip": "Min Speed: %s", - "mechanical_lemon_lib.ui.recipe_requirement.max_speed.tooltip": "Max Speed: %s", - "mechanical_lemon_lib.ui.recipe_requirement.biome.missing": "Incorrect biome", - "mechanical_lemon_lib.ui.recipe_requirement.max_y.missing": "Y position Too high", - "mechanical_lemon_lib.ui.recipe_requirement.min_y.missing": "Y position Too low", - "mechanical_lemon_lib.ui.recipe_requirement.min_speed.missing": "Not enough speed", - "mechanical_lemon_lib.ui.recipe_requirement.max_speed.missing": "Too fast", - "mechanical_lemon_lib.ui.recipe_requirement.output.missing": "Output full or incompatible", - "mechanical_lemon_lib.ui.recipe_requirement.ingredients.missing": "Missing ingredients" -} \ No newline at end of file diff --git a/src/main/resources/assets/mechanicals/lang/en_us.json b/src/main/resources/assets/mechanicals/lang/en_us.json new file mode 100644 index 0000000..20b2ef5 --- /dev/null +++ b/src/main/resources/assets/mechanicals/lang/en_us.json @@ -0,0 +1,25 @@ +{ + "mechanicals.ui.progress": "Progress: %d%%", + "itemGroup.mechanicals": "Mechanicals", + "mechanicals.ui.recipe.requirements.title": "Requirements:", + "mechanicals.ui.recipe_requirement.none.tooltip": "No specific requirement", + "mechanicals.ui.recipe_requirement.biome.tooltip.title": "Biome:", + "mechanicals.ui.recipe_requirement.biome.tooltip.value": "%s", + "mechanicals.ui.recipe_requirement.biome_tag.tooltip.title": "Biome Tag:", + "mechanicals.ui.recipe_requirement.biome_tag.tooltip.value": "#%s", + "mechanicals.ui.recipe_requirement.min_y.tooltip.title": "Min Y:", + "mechanicals.ui.recipe_requirement.min_y.tooltip.value": "%s", + "mechanicals.ui.recipe_requirement.max_y.tooltip.title": "Max Y:", + "mechanicals.ui.recipe_requirement.max_y.tooltip.value": "%s", + "mechanicals.ui.recipe_requirement.min_speed.tooltip.title": "Min Speed:", + "mechanicals.ui.recipe_requirement.min_speed.tooltip.value": "%s RPM", + "mechanicals.ui.recipe_requirement.max_speed.tooltip.title": "Max Speed:", + "mechanicals.ui.recipe_requirement.max_speed.tooltip.value": "%s RPM", + "mechanicals.ui.recipe_requirement.biome.missing": "Incorrect biome", + "mechanicals.ui.recipe_requirement.max_y.missing": "Y position Too high", + "mechanicals.ui.recipe_requirement.min_y.missing": "Y position Too low", + "mechanicals.ui.recipe_requirement.min_speed.missing": "Not enough speed", + "mechanicals.ui.recipe_requirement.max_speed.missing": "Too fast", + "mechanicals.ui.recipe_requirement.output.missing": "Output full or incompatible", + "mechanicals.ui.recipe_requirement.ingredients.missing": "Missing ingredients" +} \ No newline at end of file diff --git a/src/main/resources/assets/mechanicals/models/block/shaft_quarter.json b/src/main/resources/assets/mechanicals/models/block/shaft_quarter.json new file mode 100644 index 0000000..6acc42d --- /dev/null +++ b/src/main/resources/assets/mechanicals/models/block/shaft_quarter.json @@ -0,0 +1,24 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "create:block/axis", + "1": "create:block/axis_top", + "particle": "create:block/axis" + }, + "elements": [ + { + "name": "Axis", + "from": [6, 6, 12], + "to": [10, 10, 16], + "faces": { + "north": {"uv": [6, 6, 10, 10], "rotation": 180, "texture": "#1"}, + "east": {"uv": [6, 0, 10, 4], "rotation": 270, "texture": "#0"}, + "south": {"uv": [6, 6, 10, 10], "texture": "#1"}, + "west": {"uv": [6, 0, 10, 4], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6, 0, 10, 4], "rotation": 180, "texture": "#0"}, + "down": {"uv": [6, 0, 10, 4], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta deleted file mode 100644 index 01a689d..0000000 --- a/src/main/resources/pack.mcmeta +++ /dev/null @@ -1,6 +0,0 @@ -{ - "pack": { - "description": "mechanical_lemon_lib resources", - "pack_format": 15 - } -}