Skip to content

Commit

Permalink
Initial port to 1.20.2
Browse files Browse the repository at this point in the history
Signed-off-by: Noaaan <noaaan@hotmail.com>
  • Loading branch information
Noaaan committed Sep 21, 2023
1 parent d1fbd1b commit cfb723a
Show file tree
Hide file tree
Showing 19 changed files with 83 additions and 98 deletions.
10 changes: 5 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@ org.gradle.jvmargs=-Xmx2G

# Fabric Properties
# check these https://fabricmc.net/develop/
minecraft_version=1.20.1
yarn_mappings=1.20.1+build.9
loader_version=0.14.21
minecraft_version=1.20.2
yarn_mappings=1.20.2+build.1
loader_version=0.14.22

# Mod Properties
mod_version = 0.18.2+1.20
mod_version = 0.18.2+1.20.2
maven_group = nourl.mythicmetals
archives_base_name = mythicmetals

# Dependencies
fabric_version=0.87.0+1.20.1
fabric_version=0.89.1+1.20.2
cca_version=5.2.1
# https://maven.terraformersmc.com/releases/com/terraformersmc/modmenu/
modmenu_version=7.1.0
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/nourl/mythicmetals/MythicMetalsClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -219,11 +219,11 @@ private void registerArmorRenderer() {

// Armor trim time
if (!stack.isOf(MythicArmor.HALLOWED.getHelmet())) {
ArmorTrim.getTrim(entity.getWorld().getRegistryManager(), stack).ifPresent(trim -> {
ArmorTrim.getTrim(entity.getWorld().getRegistryManager(), stack, true).ifPresent(trim -> {
var atlas = MinecraftClient.getInstance().getSpriteAtlas(TexturedRenderLayers.ARMOR_TRIMS_ATLAS_TEXTURE);
Sprite sprite = atlas.apply(slot == EquipmentSlot.LEGS ? trim.getLeggingsModelId(armor.getMaterial()) : trim.getGenericModelId(armor.getMaterial()));
VertexConsumer trimVertexConsumer = sprite.getTextureSpecificVertexConsumer(
ItemRenderer.getDirectItemGlintConsumer(vertexConsumer, TexturedRenderLayers.getArmorTrims(), true, stack.hasGlint())
ItemRenderer.getDirectItemGlintConsumer(vertexConsumer, TexturedRenderLayers.getArmorTrims(trim.getPattern().value().decal()), true, stack.hasGlint())
);
model.render(matrices, trimVertexConsumer, light, OverlayTexture.DEFAULT_UV, 1.0F, 1.0F, 1.0F, 1.0F);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
@Nullable
@Override
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(World world, BlockState state, BlockEntityType<T> type) {
return checkType(type, RegisterBlockEntityTypes.AQUARIUM_RESONATOR_BLOCK_ENTITY_TYPE, AquariumResonatorBlockEntity::tick);
return validateTicker(type, RegisterBlockEntityTypes.AQUARIUM_RESONATOR_BLOCK_ENTITY_TYPE, AquariumResonatorBlockEntity::tick);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
@Nullable
@Override
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(World world, BlockState state, BlockEntityType<T> type) {
return checkType(type, RegisterBlockEntityTypes.AQUARIUM_STEWARD_BLOCK_ENTITY_TYPE, AquariumStewardBlockEntity::tick);
return validateTicker(type, RegisterBlockEntityTypes.AQUARIUM_STEWARD_BLOCK_ENTITY_TYPE, AquariumStewardBlockEntity::tick);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ public static void init() {
}

public static boolean tryLightBigTntWithDispenser(BlockPointer dispenser) {
var world = dispenser.getWorld();
BlockState state = world.getBlockState(dispenser.getPos().offset(dispenser.getBlockState().get(DispenserBlock.FACING)));
var pos = dispenser.getPos().offset(dispenser.getBlockState().get(DispenserBlock.FACING));
var world = dispenser.world();
BlockState state = world.getBlockState(dispenser.pos().offset(dispenser.state().get(DispenserBlock.FACING)));
var pos = dispenser.pos().offset(dispenser.state().get(DispenserBlock.FACING));

if (!state.isOf(MythicBlocks.BANGLUM.getStorageBlock())
&& !state.isOf(MythicBlocks.MORKITE.getStorageBlock()))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,12 @@ public class MidasFoldingEMIRecipe implements EmiRecipe {
Ingredient addition;
List<EmiIngredient> inputs;
EmiStack output;
Identifier id;

public MidasFoldingEMIRecipe(MidasFoldingRecipe recipe) {
this.template = recipe.template;
this.base = recipe.base;
this.addition = recipe.addition;
var outputStack = recipe.result;
this.id = recipe.getId();

if (this.base != null && this.addition != null && outputStack != null) {
var inputStack = Arrays.stream(this.base.getMatchingStacks()).findFirst().orElseGet(() -> new ItemStack(Items.AIR)).copy();
Expand Down Expand Up @@ -113,9 +111,10 @@ public EmiRecipeCategory getCategory() {
return VanillaEmiRecipeCategories.SMITHING;
}

// TODO - Remove when updating EMI, as recipes do not contain ID's anymore
@Override
public @Nullable Identifier getId() {
return this.id;
return null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import dev.emi.emi.api.EmiEntrypoint;
import dev.emi.emi.api.EmiPlugin;
import dev.emi.emi.api.EmiRegistry;
import net.minecraft.recipe.RecipeEntry;
import net.minecraft.recipe.RecipeType;
import net.minecraft.recipe.SmithingRecipe;
import nourl.mythicmetals.item.tools.MidasFoldingRecipe;
Expand All @@ -12,8 +13,8 @@ public class MythicMetalsEMIPlugin implements EmiPlugin {

@Override
public void register(EmiRegistry registry) {
for (SmithingRecipe recipe : registry.getRecipeManager().listAllOfType(RecipeType.SMITHING)) {
if (recipe instanceof MidasFoldingRecipe foldingRecipe) {
for (RecipeEntry<SmithingRecipe> recipe : registry.getRecipeManager().listAllOfType(RecipeType.SMITHING)) {
if (recipe.value() instanceof MidasFoldingRecipe foldingRecipe) {
registry.addRecipe(new MidasFoldingEMIRecipe(foldingRecipe));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,23 @@ public void applyUpdateEffect(LivingEntity entity, int amplifier) {
super.applyUpdateEffect(entity, amplifier);
}

// @Override
// public void onRemoved(LivingEntity entity, AttributeContainer attributes, int amplifier) {
// entity.getComponent(MythicMetals.COMBUSTION_COOLDOWN).setCooldown(500);
// }

@Override
public void onRemoved(LivingEntity entity, AttributeContainer attributes, int amplifier) {
entity.getComponent(MythicMetals.COMBUSTION_COOLDOWN).setCooldown(500);
public void onRemoved(AttributeContainer attributeContainer) {
super.onRemoved(attributeContainer);
}

@Override
public boolean canApplyUpdateEffect(int duration, int amplifier) {
return duration % 20 == 0;
}

@Override
public double adjustModifierAmount(int amplifier, EntityAttributeModifier modifier) {
return amplifier + 1;
}
// @Override
// public double adjustModifierAmount(int amplifier, EntityAttributeModifier modifier) {
// return amplifier + 1;
// }
}
59 changes: 28 additions & 31 deletions src/main/java/nourl/mythicmetals/item/tools/MidasFoldingRecipe.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
package nourl.mythicmetals.item.tools;

import com.google.gson.JsonObject;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.inventory.Inventory;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.recipe.Ingredient;
import net.minecraft.recipe.RecipeSerializer;
import net.minecraft.recipe.ShapedRecipe;
import net.minecraft.recipe.SmithingRecipe;
import net.minecraft.recipe.*;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.util.Identifier;
import net.minecraft.util.JsonHelper;
import net.minecraft.world.World;
import nourl.mythicmetals.item.MythicItems;
import nourl.mythicmetals.registry.RegisterRecipeSerializers;
Expand All @@ -20,14 +16,12 @@ public class MidasFoldingRecipe implements SmithingRecipe {
public final Ingredient addition;
public final ItemStack result;
public final Ingredient template;
public final Identifier id;

public MidasFoldingRecipe(Ingredient base, Ingredient addition, Ingredient template, ItemStack result, Identifier id) {
public MidasFoldingRecipe(Ingredient base, Ingredient addition, Ingredient template, ItemStack result) {
this.base = base;
this.addition = addition;
this.result = result;
this.template = template;
this.id = id;
}

@Override
Expand Down Expand Up @@ -102,15 +96,10 @@ public ItemStack craft(Inventory inventory, DynamicRegistryManager registryManag
}

@Override
public ItemStack getOutput(DynamicRegistryManager registryManager) {
public ItemStack getResult(DynamicRegistryManager registryManager) {
return this.result;
}

@Override
public Identifier getId() {
return this.id;
}

@Override
public RecipeSerializer<?> getSerializer() {
return RegisterRecipeSerializers.MIDAS_FOLDING_RECIPE;
Expand All @@ -132,23 +121,31 @@ public boolean testAddition(ItemStack stack) {
}

public static class Serializer implements RecipeSerializer<MidasFoldingRecipe> {
public MidasFoldingRecipe read(Identifier identifier, JsonObject jsonObject) {
Ingredient ingredient = Ingredient.fromJson(JsonHelper.getObject(jsonObject, "base"));
Ingredient ingredient2 = Ingredient.fromJson(JsonHelper.getObject(jsonObject, "addition"));
Ingredient ingredient3 = Ingredient.fromJson(JsonHelper.getObject(jsonObject, "template"));
ItemStack itemStack = ShapedRecipe.outputFromJson(JsonHelper.getObject(jsonObject, "result"));
return new MidasFoldingRecipe(ingredient, ingredient2, ingredient3, itemStack, identifier);
}
private static final Codec<MidasFoldingRecipe> CODEC = RecordCodecBuilder.create(
instance -> instance.group(
Ingredient.ALLOW_EMPTY_CODEC.fieldOf("base").forGetter(recipe -> recipe.base),
Ingredient.ALLOW_EMPTY_CODEC.fieldOf("addition").forGetter(recipe -> recipe.addition),
Ingredient.ALLOW_EMPTY_CODEC.fieldOf("template").forGetter(recipe -> recipe.template),
RecipeCodecs.CRAFTING_RESULT.fieldOf("result").forGetter(recipe -> recipe.result)
)
.apply(instance, MidasFoldingRecipe::new)
);

@Override
public Codec<MidasFoldingRecipe> codec() {
return CODEC;
}

public MidasFoldingRecipe read(Identifier identifier, PacketByteBuf packetByteBuf) {
Ingredient ingredient = Ingredient.fromPacket(packetByteBuf);
Ingredient ingredient2 = Ingredient.fromPacket(packetByteBuf);
Ingredient ingredient3 = Ingredient.fromPacket(packetByteBuf);
ItemStack itemStack = packetByteBuf.readItemStack();
return new MidasFoldingRecipe(ingredient, ingredient2, ingredient3, itemStack, identifier);
}
@Override
public MidasFoldingRecipe read(PacketByteBuf buf) {
Ingredient ingredient = Ingredient.fromPacket(buf);
Ingredient ingredient2 = Ingredient.fromPacket(buf);
Ingredient ingredient3 = Ingredient.fromPacket(buf);
ItemStack itemStack = buf.readItemStack();
return new MidasFoldingRecipe(ingredient, ingredient2, ingredient3, itemStack);
}

public void write(PacketByteBuf packetByteBuf, MidasFoldingRecipe smithingRecipe) {
public void write(PacketByteBuf packetByteBuf, MidasFoldingRecipe smithingRecipe) {
smithingRecipe.base.write(packetByteBuf);
smithingRecipe.addition.write(packetByteBuf);
smithingRecipe.template.write(packetByteBuf);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@
import net.minecraft.recipe.SpecialCraftingRecipe;
import net.minecraft.recipe.book.CraftingRecipeCategory;
import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.util.Identifier;
import net.minecraft.world.World;
import nourl.mythicmetals.registry.RegisterRecipeSerializers;

public class TippedRuniteArrowRecipe extends SpecialCraftingRecipe {
public TippedRuniteArrowRecipe(Identifier identifier, CraftingRecipeCategory craftingRecipeCategory) {
super(identifier, craftingRecipeCategory);
public TippedRuniteArrowRecipe(CraftingRecipeCategory craftingRecipeCategory) {
super(craftingRecipeCategory);
}

@Override
Expand Down
10 changes: 4 additions & 6 deletions src/main/java/nourl/mythicmetals/misc/BlastMiningCriteria.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,24 @@
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.Identifier;

import java.util.Optional;

public class BlastMiningCriteria extends AbstractCriterion<BlastMiningCriteria.Conditions> {
public static final Identifier ID = RegistryHelper.id("used_blast_mining");

@Override
public Identifier getId() {
return ID;
}

public void trigger(ServerPlayerEntity entity) {
this.trigger(entity, conditions -> true);
}

@Override
protected Conditions conditionsFromJson(JsonObject obj, LootContextPredicate playerPredicate, AdvancementEntityPredicateDeserializer predicateDeserializer) {
protected Conditions conditionsFromJson(JsonObject obj, Optional<LootContextPredicate> playerPredicate, AdvancementEntityPredicateDeserializer predicateDeserializer) {
return new Conditions();
}

public static class Conditions extends AbstractCriterionConditions {
public Conditions() {
super(ID, LootContextPredicate.EMPTY);
super(Optional.empty());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,23 @@
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.util.Identifier;

import java.util.Optional;

public class CombustionFromCreeperCriteria extends AbstractCriterion<CombustionFromCreeperCriteria.Conditions> {
public static final Identifier ID = RegistryHelper.id("recieved_combustion_from_creeper");

@Override
public Identifier getId() {
return ID;
}

public void trigger(ServerPlayerEntity entity) {
this.trigger(entity, conditions -> true);
}

@Override
protected Conditions conditionsFromJson(JsonObject obj, LootContextPredicate playerPredicate, AdvancementEntityPredicateDeserializer predicateDeserializer) {
protected Conditions conditionsFromJson(JsonObject obj, Optional<LootContextPredicate> predicate, AdvancementEntityPredicateDeserializer predicateDeserializer) {
return new Conditions();
}

public static class Conditions extends AbstractCriterionConditions {
public Conditions() {
super(ID, LootContextPredicate.EMPTY);
super(Optional.empty());
}
}
}
2 changes: 1 addition & 1 deletion src/main/java/nourl/mythicmetals/misc/EpicExplosion.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public static void absorbWater(ServerWorld world, int x, int y, int z, int radiu
var fluidState = world.getFluidState(pos);

if (fluidState.isIn(FluidTags.WATER)) {
if (state.getBlock() instanceof FluidDrainable drainable && drainable.tryDrainFluid(world, pos, state).isEmpty()) {
if (state.getBlock() instanceof FluidDrainable drainable && drainable.tryDrainFluid(cause, world, pos, state).isEmpty()) {
world.setBlockState(pos, Blocks.AIR.getDefaultState(), Block.NOTIFY_ALL);
} else if (state.isIn(MythicTags.SPONGABLES)) {
BlockEntity blockEntity = state.hasBlockEntity() ? world.getBlockEntity(pos) : null;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
package nourl.mythicmetals.misc;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.attribute.EntityAttributes;
import net.minecraft.loot.condition.LootCondition;
import net.minecraft.loot.condition.LootConditionType;
import net.minecraft.loot.context.LootContext;
import net.minecraft.loot.context.LootContextParameters;
import net.minecraft.util.JsonHelper;
import net.minecraft.util.JsonSerializer;
import nourl.mythicmetals.registry.RegisterLootConditions;

public class RandomChanceWithLuckCondition implements LootCondition {
final float chance;
public record RandomChanceWithLuckCondition(float chance) implements LootCondition {

RandomChanceWithLuckCondition(float chance) {
this.chance = chance;
}
public static final Codec<RandomChanceWithLuckCondition> CODEC = RecordCodecBuilder.create(
instance -> instance
.group(Codec.FLOAT.fieldOf("chance")
.forGetter(RandomChanceWithLuckCondition::chance))
.apply(instance, RandomChanceWithLuckCondition::new)
);

@Override
public LootConditionType getType() {
Expand All @@ -36,14 +35,4 @@ public boolean test(LootContext lootContext) {
public static LootCondition.Builder builder(float chance) {
return () -> new RandomChanceWithLuckCondition(chance);
}

public static class Serializer implements JsonSerializer<RandomChanceWithLuckCondition> {
public void toJson(JsonObject jsonObject, RandomChanceWithLuckCondition condition, JsonSerializationContext jsonSerializationContext) {
jsonObject.addProperty("chance", condition.chance);
}

public RandomChanceWithLuckCondition fromJson(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext) {
return new RandomChanceWithLuckCondition(JsonHelper.getFloat(jsonObject, "chance"));
}
}
}
Loading

0 comments on commit cfb723a

Please sign in to comment.