Skip to content

Commit

Permalink
Port to 1.20.2
Browse files Browse the repository at this point in the history
Add support for NeoForge
  • Loading branch information
Hidoni committed Nov 18, 2023
1 parent 2026982 commit 420a3c3
Show file tree
Hide file tree
Showing 33 changed files with 408 additions and 82 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,5 @@ jobs:
echo "$EOF" >> $GITHUB_ENV
- uses: ncipollo/release-action@v1
with:
artifacts: "./Forge/build/libs/*.jar,./Fabric/build/libs/*.jar,./Quilt/build/libs/*.jar"
artifacts: "./Forge/build/libs/*.jar,./Fabric/build/libs/*.jar,./NeoForge/build/libs/*.jar"
body: "${{ env.changelog }}"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@ build
# other
eclipse
run
runs
.cache
.idea
16 changes: 4 additions & 12 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
# 2.1.1+1.20 - 01/11/2023
- Fixed crash when attempting to render certain types of elytra textures on players

# 2.1.0+1.20 - 30/06/2023
- Fixed other mods' loading errors being blamed on this mod
- Added creative mode tab containing the elytra wing item
- Added compatibility with Colytra and Elytra Slot

# 2.0.0+1.20 - 16/06/2023
- Added ability to trim elytra. This is compatible both with banner patterns and dyeing your elytra.
- Rewrote core mod logic, this release is **not compatible** with previous versions!
- The mod should now be more compatible with other mods that interact with the vanilla elytra!
# 2.2.0+1.20.2 - 18/11/2023
- Port to 1.20.2
- Add support for NeoForge
- Removed support for Quilt until it updates
26 changes: 8 additions & 18 deletions Common/build.gradle
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
plugins {
id 'idea'
id 'java'
id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT'
id 'maven-publish'
id 'org.spongepowered.gradle.vanilla' version '0.2.1-SNAPSHOT'
}
base {
archivesName = project.archivesBaseName + "-common"
}

archivesBaseName = rootProject.archivesBaseName + '-common'

minecraft {
version(minecraft_version)
runs {
if (project.hasProperty('common_runs_enabled') ? project.findProperty('common_runs_enabled').toBoolean() : true) {

server(project.hasProperty('common_server_run_name') ? project.findProperty('common_server_run_name') : 'vanilla_server') {
workingDirectory(this.file("run"))
}
client(project.hasProperty('common_client_run_name') ? project.findProperty('common_client_run_name') : 'vanilla_client') {
workingDirectory(this.file("run"))
}
}
if (file("src/main/resources/${mod_id}.accesswidener").exists()) {
accessWideners(file("src/main/resources/${mod_id}.accesswidener"))
}
}

Expand All @@ -41,13 +34,10 @@ processResources {
publishing {
publications {
mavenJava(MavenPublication) {
groupId project.group
artifactId project.archivesBaseName
version project.version
artifactId base.archivesName.get()
from components.java
}
}

repositories {
maven {
url "file://" + System.getenv("local_maven")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.client.renderer.texture.TextureAtlas;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.resources.PlayerSkin;
import net.minecraft.client.resources.model.Material;
import net.minecraft.core.Holder;
import net.minecraft.resources.ResourceKey;
Expand Down Expand Up @@ -140,7 +141,7 @@ private void renderWingTrim(ElytraWingModel<T> wingModel, ItemStack wingStack, P
armorTrim.ifPresent((trim) -> {
ResourceLocation trimLocation = elytraTrimLookup.apply(trim);
TextureAtlasSprite sprite = armorTrimAtlas.getSprite(trimLocation);
VertexConsumer consumer = sprite.wrap(ItemRenderer.getFoilBufferDirect(defaultBuffer, Sheets.armorTrimsSheet(), true, hasFoil));
VertexConsumer consumer = sprite.wrap(ItemRenderer.getFoilBufferDirect(defaultBuffer, Sheets.armorTrimsSheet(trim.pattern().value().decal()), true, hasFoil));
wingModel.renderToBuffer(poseStack, consumer, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F);
});
}
Expand All @@ -159,10 +160,11 @@ private ResourceLocation getGrayscaleTexture(boolean capeHidden) {

private ResourceLocation getCapeTexture() {
if (entity instanceof AbstractClientPlayer clientPlayer) {
if (clientPlayer.isElytraLoaded() && clientPlayer.getElytraTextureLocation() != null) {
return clientPlayer.getElytraTextureLocation();
} else if (clientPlayer.isCapeLoaded() && clientPlayer.getCloakTextureLocation() != null && clientPlayer.isModelPartShown(PlayerModelPart.CAPE)) {
return clientPlayer.getCloakTextureLocation();
PlayerSkin skin = clientPlayer.getSkin();
if (skin.elytraTexture() != null) {
return skin.elytraTexture();
} else if (skin.capeTexture() != null && clientPlayer.isModelPartShown(PlayerModelPart.CAPE)) {
return skin.capeTexture();
}
}
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ else if (ElytraUtils.isElytra(stack)) {
}

@Inject(method = "getTrim", at = @At(value = "HEAD"), cancellable = true)
private static void getArmorTrimForElytra(RegistryAccess access, ItemStack stack, CallbackInfoReturnable<Optional<ArmorTrim>> cir) {
private static void getArmorTrimForElytra(RegistryAccess access, ItemStack stack, boolean bool, CallbackInfoReturnable<Optional<ArmorTrim>> cir) {
if (stack.getItem() instanceof CustomizableElytraItem customizableElytraItem) {
cir.setReturnValue(customizableElytraItem.getArmorTrim(stack, access));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.hidoni.customizableelytra.item.ElytraWingItem;
import com.hidoni.customizableelytra.registry.ModRecipes;
import net.minecraft.core.RegistryAccess;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.CraftingContainer;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
Expand All @@ -17,8 +16,8 @@
import org.jetbrains.annotations.NotNull;

public class CombineWingsRecipe extends CustomRecipe {
public CombineWingsRecipe(ResourceLocation id, CraftingBookCategory category) {
super(id, category);
public CombineWingsRecipe(CraftingBookCategory category) {
super(category);
}

private static void copyWingAttributesToElytra(ItemStack leftWing, ItemStack rightWing, ItemStack elytra) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.hidoni.customizableelytra.item.CustomizableElytraItem;
import com.hidoni.customizableelytra.registry.ModRecipes;
import net.minecraft.core.RegistryAccess;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.CraftingContainer;
import net.minecraft.world.item.BannerItem;
import net.minecraft.world.item.ItemStack;
Expand All @@ -17,8 +16,8 @@
import org.jetbrains.annotations.NotNull;

public class ElytraBannerRecipe extends CustomRecipe {
public ElytraBannerRecipe(ResourceLocation id, CraftingBookCategory category) {
super(id, category);
public ElytraBannerRecipe(CraftingBookCategory category) {
super(category);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.hidoni.customizableelytra.item.CustomizableElytraItem;
import com.hidoni.customizableelytra.registry.ModRecipes;
import net.minecraft.core.RegistryAccess;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.CraftingContainer;
import net.minecraft.world.item.DyeItem;
import net.minecraft.world.item.DyeableLeatherItem;
Expand All @@ -21,8 +20,8 @@
import java.util.List;

public class ElytraDyeRecipe extends CustomRecipe {
public ElytraDyeRecipe(ResourceLocation id, CraftingBookCategory category) {
super(id, category);
public ElytraDyeRecipe(CraftingBookCategory category) {
super(category);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.hidoni.customizableelytra.item.CustomizableElytraItem;
import com.hidoni.customizableelytra.registry.ModRecipes;
import net.minecraft.core.RegistryAccess;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.CraftingContainer;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
Expand All @@ -20,8 +19,8 @@
public class ElytraMiscellaneousCustomizationRecipe extends CustomRecipe {
private static final Ingredient CUSTOMIZATION_INGREDIENT = Ingredient.of(Items.GLOW_INK_SAC, Items.PAPER);

public ElytraMiscellaneousCustomizationRecipe(ResourceLocation id, CraftingBookCategory category) {
super(id, category);
public ElytraMiscellaneousCustomizationRecipe(CraftingBookCategory category) {
super(category);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.hidoni.customizableelytra.registry.ModRecipes;
import net.minecraft.core.NonNullList;
import net.minecraft.core.RegistryAccess;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.CraftingContainer;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.crafting.CraftingBookCategory;
Expand All @@ -17,8 +16,8 @@
import org.jetbrains.annotations.NotNull;

public class SplitToWingsRecipe extends CustomRecipe {
public SplitToWingsRecipe(ResourceLocation id, CraftingBookCategory category) {
super(id, category);
public SplitToWingsRecipe(CraftingBookCategory category) {
super(category);
}

private ItemStack getElytraItem(@NotNull CraftingContainer inv) {
Expand Down
3 changes: 1 addition & 2 deletions Fabric/src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@
"fabricloader": ">=0.14",
"fabric": "*",
"minecraft": [
"1.20",
"1.20.1"
"1.20.2"
],
"java": ">=17"
}
Expand Down
2 changes: 1 addition & 1 deletion Forge/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {
id 'java'
id 'eclipse'
id 'maven-publish'
id 'net.minecraftforge.gradle' version '6.+'
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
id "com.matthewprenger.cursegradle" version "1.4.+"
id "com.modrinth.minotaur" version "2.+"
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,21 @@

import com.hidoni.customizableelytra.registry.ModRecipes;
import net.minecraft.data.PackOutput;
import net.minecraft.data.recipes.*;
import org.jetbrains.annotations.NotNull;

import java.util.function.Consumer;
import net.minecraft.data.recipes.RecipeOutput;
import net.minecraft.data.recipes.RecipeProvider;
import net.minecraft.data.recipes.SpecialRecipeBuilder;

public class ModRecipeProvider extends RecipeProvider {
public ModRecipeProvider(PackOutput pOutput) {
super(pOutput);
}

@Override
protected void buildRecipes(@NotNull Consumer<FinishedRecipe> consumer) {
SpecialRecipeBuilder.special(ModRecipes.ELYTRA_MISCELLANEOUS_CUSTOMIZATION_RECIPE.get()).save(consumer, ModRecipes.ELYTRA_MISCELLANEOUS_CUSTOMIZATION_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.SPLIT_TO_WINGS_RECIPE.get()).save(consumer, ModRecipes.SPLIT_TO_WINGS_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.COMBINE_WINGS_RECIPE.get()).save(consumer, ModRecipes.COMBINE_WINGS_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.ELYTRA_BANNER_RECIPE.get()).save(consumer, ModRecipes.ELYTRA_BANNER_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.ELYTRA_DYE_RECIPE.get()).save(consumer, ModRecipes.ELYTRA_DYE_RECIPE.getResourceLocation().getPath());
protected void buildRecipes(RecipeOutput output) {
SpecialRecipeBuilder.special(ModRecipes.ELYTRA_MISCELLANEOUS_CUSTOMIZATION_RECIPE.get()).save(output, ModRecipes.ELYTRA_MISCELLANEOUS_CUSTOMIZATION_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.SPLIT_TO_WINGS_RECIPE.get()).save(output, ModRecipes.SPLIT_TO_WINGS_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.COMBINE_WINGS_RECIPE.get()).save(output, ModRecipes.COMBINE_WINGS_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.ELYTRA_BANNER_RECIPE.get()).save(output, ModRecipes.ELYTRA_BANNER_RECIPE.getResourceLocation().getPath());
SpecialRecipeBuilder.special(ModRecipes.ELYTRA_DYE_RECIPE.get()).save(output, ModRecipes.ELYTRA_DYE_RECIPE.getResourceLocation().getPath());
}
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.hidoni.customizableelytra.data.client;

import com.hidoni.customizableelytra.Constants;
import com.hidoni.customizableelytra.mixin.ItemModelBuilderAccessor;
import com.hidoni.customizableelytra.mixin.ModelBuilderAccessor;
import com.hidoni.customizableelytra.mixin.OverrideBuilderAccessor;
import com.hidoni.customizableelytra.mixin.datagen.ItemModelBuilderAccessor;
import com.hidoni.customizableelytra.mixin.datagen.ModelBuilderAccessor;
import com.hidoni.customizableelytra.mixin.datagen.OverrideBuilderAccessor;
import net.minecraft.data.PackOutput;
import net.minecraft.data.models.ItemModelGenerators;
import net.minecraft.resources.ResourceLocation;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.hidoni.customizableelytra.mixin;
package com.hidoni.customizableelytra.mixin.datagen;

import net.minecraftforge.client.model.generators.ItemModelBuilder;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.hidoni.customizableelytra.mixin;
package com.hidoni.customizableelytra.mixin.datagen;

import net.minecraftforge.client.model.generators.ModelBuilder;
import org.spongepowered.asm.mixin.Mixin;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.hidoni.customizableelytra.mixin;
package com.hidoni.customizableelytra.mixin.datagen;

import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.client.model.generators.ItemModelBuilder;
Expand Down
6 changes: 3 additions & 3 deletions Forge/src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
modLoader="javafml" #mandatory
# A version range to match for said mod loader - for regular FML @Mod it will be the forge version
loaderVersion="[46,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.
loaderVersion="[48,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions.
# The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties.
# Review your options at https://choosealicense.com/. All rights reserved is the default copyright stance, and is thus the default here.
license="MIT"
Expand Down Expand Up @@ -43,7 +43,7 @@ Adds a variety of colorful ways to customize your elytra!
# Does this dependency have to exist - if not, ordering below must be specified
mandatory=true #mandatory
# The version range of the dependency
versionRange="[46.0.12,)" #mandatory
versionRange="[48.0.40,)" #mandatory
# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
Expand All @@ -53,6 +53,6 @@ Adds a variety of colorful ways to customize your elytra!
modId="minecraft"
mandatory=true
# This version range declares a minimum of the current minecraft version up to but not including the next major version
versionRange="[1.20,1.21)"
versionRange="[1.20.2,1.21)"
ordering="NONE"
side="BOTH"
Loading

0 comments on commit 420a3c3

Please sign in to comment.