Skip to content

Commit

Permalink
convert to multiloader project
Browse files Browse the repository at this point in the history
  • Loading branch information
UpcraftLP committed Apr 13, 2024
1 parent 41edcaf commit e78d824
Show file tree
Hide file tree
Showing 371 changed files with 4,673 additions and 2,766 deletions.
20 changes: 20 additions & 0 deletions Common/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
plugins {
alias libs.plugins.vanilla.gradle
}

minecraft {
version(libs.versions.minecraft.get())
if (file("src/main/resources/${mod_id}.accesswidener").exists()) {
accessWideners(file("src/main/resources/${mod_id}.accesswidener"))
}
}

dependencies {
compileOnly libs.bundles.mixin
compileOnly libs.jetbrains.annotations

implementation libs.resourcefulconfig
implementation libs.commonnetworking

// compileOnly "${libs.emi.asProvider().get()}:api"
}
46 changes: 46 additions & 0 deletions Common/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
[versions]
minecraft = "1.20.1"

# The latest versions are available at https://parchmentmc.org/docs/getting-started
parchment = "2023.09.03"

mixin = "0.8.5"
mixin_extras = "0.3.5"
asm = "9.6"
jetbrains_annotations = "24.1.0"
vanilla_gradle = "0.2.1-SNAPSHOT"

commonnetworking = "1.0.2-1.20.1"
resourcefulconfig = "2.1.2"
emi = "1.1.4+1.20.1"

[libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
parchment_mappings = { module = "org.parchmentmc.data:parchment-1.20.1", version.ref = "parchment" }
mixin = { module = "org.spongepowered:mixin", version.ref = "mixin" }
mixin_extras = { module = "io.github.llamalad7:mixinextras-common", version.ref = "mixin_extras" }
mixin_extras_neoforge = { module = "io.github.llamalad7:mixinextras-neoforge", version.ref = "mixin_extras" }
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
asm_analysis = { module = "org.ow2.asm:asm-analysis", version.ref = "asm" }
asm_commons = { module = "org.ow2.asm:asm-commons", version.ref = "asm" }
asm_tree = { module = "org.ow2.asm:asm-tree", version.ref = "asm" }
asm_util = { module = "org.ow2.asm:asm-util", version.ref = "asm" }
jetbrains_annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrains_annotations" }

resourcefulconfig = { module = "com.teamresourceful.resourcefulconfig:resourcefulconfig-common-1.20.1", version.ref = "resourcefulconfig" }
resourcefulconfig_fabric = { module = "com.teamresourceful.resourcefulconfig:resourcefulconfig-fabric-1.20.1", version.ref = "resourcefulconfig" }
resourcefulconfig_forge = { module = "com.teamresourceful.resourcefulconfig:resourcefulconfig-forge-1.20.1", version.ref = "resourcefulconfig" }

commonnetworking = { module = "mysticdrew:common-networking-common", version.ref = "commonnetworking" }
commonnetworking_fabric = { module = "mysticdrew:common-networking-fabric", version.ref = "commonnetworking" }
commonnetworking_neoforge = { module = "mysticdrew:common-networking-neoforge_version", version.ref = "commonnetworking" }

emi = { module = "dev.emi:emi-xplat-mojmap", version.ref = "emi" }
emi_neoforge = { module = "dev.emi:emi-neoforge", version.ref = "emi" }
emi_fabric = { module = "dev.emi:emi-fabric", version.ref = "emi" }

[bundles]
mixin = ["mixin", "mixin_extras", "asm", "asm_analysis", "asm_commons", "asm_tree", "asm_util"]

[plugins]
vanilla_gradle = { id = "org.spongepowered.gradle.vanilla", version.ref = "vanilla_gradle" }
22 changes: 22 additions & 0 deletions Common/src/main/java/dev/cammiescorner/icarus/Icarus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package dev.cammiescorner.icarus;

import com.teamresourceful.resourcefulconfig.common.config.Configurator;
import commonnetwork.api.Network;
import dev.cammiescorner.icarus.network.s2c.SyncConfigValuesPacket;
import net.minecraft.resources.ResourceLocation;

public class Icarus {

public static final String MODID = "icarus";
public static final Configurator CONFIGURATOR = new Configurator();

public static void init() {
CONFIGURATOR.registerConfig(IcarusConfig.class);

Network.registerPacket(SyncConfigValuesPacket.ID, SyncConfigValuesPacket.class, SyncConfigValuesPacket::encode, SyncConfigValuesPacket::decode, SyncConfigValuesPacket::handle);
}

public static ResourceLocation id(String path) {
return new ResourceLocation(MODID, path);
}
}
49 changes: 49 additions & 0 deletions Common/src/main/java/dev/cammiescorner/icarus/IcarusConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package dev.cammiescorner.icarus;

import com.teamresourceful.resourcefulconfig.common.annotations.Config;
import com.teamresourceful.resourcefulconfig.common.annotations.ConfigEntry;
import com.teamresourceful.resourcefulconfig.common.config.EntryType;
import com.teamresourceful.resourcefulconfig.web.annotations.Link;
import com.teamresourceful.resourcefulconfig.web.annotations.WebInfo;

@WebInfo(
title = "Icarus",
description = "Adds a bunch of colourful and unique wings.",
links = {
@Link(
value = "https://modrinth.com/mod/Dw7M6XKW",
icon = "modrinth",
title = "Modrinth"
),
@Link(
value = "https://curseforge.com/projects/428151",
icon = "curseforge",
title = "Curseforge"
),
@Link(
value = "https://github.com/Up-Mods/Icarus",
icon = "github",
title = "Github"
)
}
)
@Config(Icarus.MODID)
public final class IcarusConfig {

@ConfigEntry(id = "can_loop_de_loop", type = EntryType.BOOLEAN, translation = "config.icarus.can_loop_de_loop")
public static boolean canLoopDeLoop = true;
@ConfigEntry(id = "armor_slows", type = EntryType.BOOLEAN, translation = "config.icarus.armor_slows")
public static boolean armorSlows = true;
@ConfigEntry(id = "can_slow_fall", type = EntryType.BOOLEAN, translation = "config.icarus.can_slow_fall")
public static boolean canSlowFall = false;
@ConfigEntry(id = "max_slowed_multiplier", type = EntryType.FLOAT, translation = "config.icarus.max_slowed_multiplier")
public static float maxSlowedMultiplier = 3F;
@ConfigEntry(id = "wings_speed", type = EntryType.FLOAT, translation = "config.icarus.wings_speed")
public static float wingsSpeed = 0.02F;
@ConfigEntry(id = "wings_durability", type = EntryType.INTEGER, translation = "config.icarus.wings_durability")
public static int wingsDurability = 0;
@ConfigEntry(id = "exhaustion_amount", type = EntryType.FLOAT, translation = "config.icarus.exhaustion_amount")
public static float exhaustionAmount = 0.03F;
@ConfigEntry(id = "roll_amount", type = EntryType.FLOAT, translation = "config.icarus.roll_amount")
public static float rollAmount = 1.0F;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package dev.cammiescorner.icarus.api;

public interface SlowFallingEntity {

boolean icarus$isSlowFalling();

void icarus$setSlowFalling(boolean slowFalling);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package dev.cammiescorner.icarus.client;

import net.minecraft.world.entity.player.Player;

public class IcarusClient {
public static float wingSpeed;
public static float maxSlowedMultiplier;
public static boolean armorSlows;
public static boolean canLoopDeLoop;

public static void onPlayerTick(Player player) {
if (player.isFallFlying() && player.zza > 0) {
var rotation = player.getLookAngle();
var velocity = player.getDeltaMovement();
float modifier = armorSlows ? Math.max(1F, (player.getArmorValue() / 30F) * maxSlowedMultiplier) : 1F;
float speed = (wingSpeed * (player.getXRot() < -75 && player.getXRot() > -105 ? 2.75F : 1F)) / modifier;

player.setDeltaMovement(velocity.add(rotation.x * speed + (rotation.x * 1.5D - velocity.x) * speed,
rotation.y * speed + (rotation.y * 1.5D - velocity.y) * speed,
rotation.z * speed + (rotation.z * 1.5D - velocity.z) * speed));
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package dev.cammiescorner.icarus.client;

import dev.cammiescorner.icarus.Icarus;
import net.minecraft.client.model.geom.ModelLayerLocation;

public class IcarusModels {

public static final ModelLayerLocation FEATHERED = new ModelLayerLocation(Icarus.id("feathered"), "main");
public static final ModelLayerLocation LEATHER = new ModelLayerLocation(Icarus.id("leather"), "main");
public static final ModelLayerLocation LIGHT = new ModelLayerLocation(Icarus.id("light"), "main");
public static final ModelLayerLocation FLANDRE = new ModelLayerLocation(Icarus.id("flandre"), "main");
public static final ModelLayerLocation DISCORD = new ModelLayerLocation(Icarus.id("discord"), "main");
public static final ModelLayerLocation ZANZA = new ModelLayerLocation(Icarus.id("zanza"), "main");
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
// Made with Model Converter by Globox_Z
// Generate all required imports
/*
* Model by cybercat5555
*/
package dev.cammiescorner.icarus.client.models;

import net.minecraft.client.model.geom.ModelPart;
import net.minecraft.client.model.geom.PartPose;
import net.minecraft.client.model.geom.builders.CubeListBuilder;
import net.minecraft.client.model.geom.builders.LayerDefinition;
import net.minecraft.client.model.geom.builders.MeshDefinition;
import net.minecraft.client.model.geom.builders.PartDefinition;
import net.minecraft.world.entity.LivingEntity;

public class DiscordsWingsModel<T extends LivingEntity> extends WingEntityModel<T> {
private final ModelPart leftWing01;
private final ModelPart leftWing02;
private final ModelPart leftWing03;
private final ModelPart leftWing04;
private final ModelPart leftWing05;
private final ModelPart lFeathers02;
private final ModelPart Box_r1;
private final ModelPart lFeathers01;
private final ModelPart Box_r2;
private final ModelPart rightWing01;
private final ModelPart rightWing02;
private final ModelPart rightWing03;
private final ModelPart rightWing04;
private final ModelPart rightWing04Leather;
private final ModelPart rightWingStrut01;
private final ModelPart rightWingStrut01Leather;
private final ModelPart rightWingStrut02;
private final ModelPart rightWingStrut02Leather;
private final ModelPart rightWingStrut03;
private final ModelPart rightWingStrut03Leather;
private final ModelPart rightStrutLowest;
private final ModelPart rightStrutLowestLeather01;
private final ModelPart rightStrutLowestLeather02;

public DiscordsWingsModel(ModelPart root) {
super(root);

this.leftWing01 = root.getChild("leftWing").getChild("leftWing01");
this.rightWing01 = root.getChild("rightWing").getChild("rightWing01");
this.rightWing02 = this.rightWing01.getChild("rightWing02");
this.rightStrutLowest = this.rightWing02.getChild("rightStrutLowest");
this.rightStrutLowestLeather02 = this.rightStrutLowest.getChild("rightStrutLowestLeather02");
this.rightStrutLowestLeather01 = this.rightStrutLowest.getChild("rightStrutLowestLeather01");
this.rightWing03 = this.rightWing02.getChild("rightWing03");
this.rightWingStrut03 = this.rightWing03.getChild("rightWingStrut03");
this.rightWingStrut03Leather = this.rightWingStrut03.getChild("rightWingStrut03Leather");
this.rightWingStrut02 = this.rightWing03.getChild("rightWingStrut02");
this.rightWingStrut02Leather = this.rightWingStrut02.getChild("rightWingStrut02Leather");
this.rightWingStrut01 = this.rightWing03.getChild("rightWingStrut01");
this.rightWingStrut01Leather = this.rightWingStrut01.getChild("rightWingStrut01Leather");
this.rightWing04 = this.rightWing03.getChild("rightWing04");
this.rightWing04Leather = this.rightWing04.getChild("rightWing04Leather");
this.leftWing02 = this.leftWing01.getChild("leftWing02");
this.lFeathers01 = this.leftWing02.getChild("lFeathers01");
this.Box_r2 = this.lFeathers01.getChild("Box_r2");
this.leftWing03 = this.leftWing02.getChild("leftWing03");
this.leftWing04 = this.leftWing03.getChild("leftWing04");
this.lFeathers02 = this.leftWing04.getChild("lFeathers02");
this.Box_r1 = this.lFeathers02.getChild("Box_r1");
this.leftWing05 = this.leftWing04.getChild("leftWing05");
}

public static LayerDefinition getLayerDefinition() {
MeshDefinition modelData = WingEntityModel.getModelData();
PartDefinition modelPartData = modelData.getRoot();

PartDefinition modelPartData1 = modelPartData.getChild("leftWing").addOrReplaceChild("leftWing01", CubeListBuilder.create().texOffs(0, 0)
.addBox(-1.0F, -2.0F, -1.0F, 2.0F, 4.0F, 6.0F),
PartPose.offsetAndRotation(-6.0F, 0.0F, 0.0F, 0.0F, 1.5708F, 0.436332F));
PartDefinition modelPartData2 = modelPartData1.addOrReplaceChild("leftWing02", CubeListBuilder.create().texOffs(17, 0)
.addBox(-0.5F, -1.5F, 0.5F, 1.0F, 2.0F, 8.0F),
PartPose.offsetAndRotation(-0.5F, 0.0F, 3.5F, 0.6109F, 0.3054F, 0.0F));
PartDefinition modelPartData3 = modelPartData2.addOrReplaceChild("leftWing03", CubeListBuilder.create().texOffs(36, 0)
.addBox(-0.5F, -0.1F, -0.5F, 1.0F, 2.0F, 8.0F),
PartPose.offsetAndRotation(0.0F, -1.0F, 8.5F, -0.5672F, 0.3054F, 0.0F));
PartDefinition modelPartData4 = modelPartData3.addOrReplaceChild("leftWing04", CubeListBuilder.create().texOffs(55, 0)
.addBox(-0.7F, -0.2F, -0.5F, 1.0F, 14.0F, 1.0F, true),
PartPose.offsetAndRotation(0.0F, 0.5F, 7.2F, 1.0908F, 0.0F, 0.0F));
modelPartData4.addOrReplaceChild("leftWing05", CubeListBuilder.create().texOffs(32, 31)
.addBox(0.4F, -4.0F, -12.3F, 0.0F, 20.0F, 13.0F, true),
PartPose.offset(-0.5F, 4.8F, -0.2F));
PartDefinition modelPartData5 = modelPartData4.addOrReplaceChild("lFeathers02", CubeListBuilder.create(),
PartPose.offsetAndRotation(0.0F, -3.5F, -3.2F, 0.0F, 0.0F, 0.0873F));
modelPartData5.addOrReplaceChild("Box_r1", CubeListBuilder.create().texOffs(0, 36)
.addBox(0.0F, -6.6F, -13.8F, 1.0F, 14.0F, 14.0F, true),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.48F, 0.0F, 0.0F));
PartDefinition modelPartData6 = modelPartData2.addOrReplaceChild("lFeathers01", CubeListBuilder.create(),
PartPose.offsetAndRotation(0.6F, 1.3F, 1.5F, -0.1745F, -0.0873F, 0.0F));
modelPartData6.addOrReplaceChild("Box_r2", CubeListBuilder.create().texOffs(0, 10)
.addBox(-0.5F, -0.8F, -8.1F, 1.0F, 10.0F, 16.0F, true),
PartPose.offsetAndRotation(0.0F, 0.0F, 0.0F, 0.1745F, 0.0F, 0.0F));
PartDefinition modelPartData7 = modelPartData.getChild("rightWing").addOrReplaceChild("rightWing01", CubeListBuilder.create().texOffs(66, 0)
.addBox(-1.0F, -1.0F, -1.0F, 2.0F, 4.0F, 5.0F, true),
PartPose.offsetAndRotation(6.0F, 0.0F, 0.0F, 0.0F, -1.5708F, -0.436332F));
PartDefinition modelPartData8 = modelPartData7.addOrReplaceChild("rightWing02", CubeListBuilder.create().texOffs(81, 0)
.addBox(-0.5F, 0.0F, -1.5F, 1.0F, 2.0F, 8.0F, true),
PartPose.offsetAndRotation(0.5F, 0.0F, 3.5F, 0.6109F, -0.48F, 0.0F));
PartDefinition modelPartData9 = modelPartData8.addOrReplaceChild("rightWing03", CubeListBuilder.create().texOffs(101, 0)
.addBox(-0.5F, -1.1F, -0.5F, 1.0F, 2.0F, 8.0F, true),
PartPose.offsetAndRotation(0.0F, 1.0F, 6.5F, -0.5672F, -0.3054F, 0.0F));
PartDefinition modelPartData10 = modelPartData9.addOrReplaceChild("rightWing04", CubeListBuilder.create().texOffs(60, 13)
.addBox(-0.4F, -0.8F, -4.0F, 1.0F, 1.0F, 19.0F, true),
PartPose.offsetAndRotation(0.0F, 0.0F, 7.5F, -0.7418F, 0.0F, 0.0F));
modelPartData10.addOrReplaceChild("rightWing04Leather", CubeListBuilder.create().texOffs(95, 40)
.addBox(0.0F, 0.0F, 0.0F, 0.0F, 5.0F, 14.0F, true),
PartPose.offset(0.0F, 0.0F, 0.0F));
PartDefinition modelPartData11 = modelPartData9.addOrReplaceChild("rightWingStrut01", CubeListBuilder.create().texOffs(83, 12)
.addBox(-0.4F, -0.5F, -0.5F, 1.0F, 1.0F, 16.0F, true),
PartPose.offsetAndRotation(0.0F, 1.0F, 7.0F, -1.0036F, 0.0F, 0.0F));
modelPartData11.addOrReplaceChild("rightWingStrut01Leather", CubeListBuilder.create().texOffs(95, 34)
.addBox(0.05F, 0.0F, 0.0F, 0.0F, 5.0F, 14.0F, true),
PartPose.offset(0.0F, 0.0F, 0.0F));
PartDefinition modelPartData12 = modelPartData9.addOrReplaceChild("rightWingStrut02", CubeListBuilder.create().texOffs(83, 12)
.addBox(-0.4F, -0.5F, -0.5F, 1.0F, 1.0F, 16.0F, true),
PartPose.offsetAndRotation(0.0F, 1.0F, 6.0F, -1.309F, 0.0F, 0.0F));
modelPartData12.addOrReplaceChild("rightWingStrut02Leather", CubeListBuilder.create().texOffs(93, 25)
.addBox(0.1F, 0.0F, -1.0F, 0.0F, 6.0F, 16.0F, true),
PartPose.offset(0.0F, 0.0F, 0.0F));
PartDefinition modelPartData13 = modelPartData9.addOrReplaceChild("rightWingStrut03", CubeListBuilder.create().texOffs(83, 12)
.addBox(-0.4F, -0.5F, -0.5F, 1.0F, 1.0F, 16.0F, true),
PartPose.offsetAndRotation(0.0F, 1.0F, 5.0F, -1.6581F, 0.0F, 0.0F));
modelPartData13.addOrReplaceChild("rightWingStrut03Leather", CubeListBuilder.create().texOffs(93, 19)
.addBox(0.15F, 0.0F, 0.0F, 0.0F, 6.0F, 15.0F, true),
PartPose.offset(0.0F, 0.0F, 0.0F));
PartDefinition modelPartData14 = modelPartData8.addOrReplaceChild("rightStrutLowest", CubeListBuilder.create().texOffs(104, 12)
.addBox(0.1F, 0.0F, -0.5F, 1.0F, 12.0F, 1.0F, true),
PartPose.offsetAndRotation(-0.5F, 1.0F, 2.0F, -0.3491F, 0.0F, 0.0F));
modelPartData14.addOrReplaceChild("rightStrutLowestLeather01", CubeListBuilder.create().texOffs(79, 28)
.addBox(0.0F, -1.0F, 0.0F, 0.0F, 12.0F, 6.0F, true),
PartPose.offset(0.5F, 0.0F, 0.0F));
modelPartData14.addOrReplaceChild("rightStrutLowestLeather02", CubeListBuilder.create().texOffs(60, 25)
.addBox(0.0F, -1.0F, -9.0F, 0.0F, 12.0F, 9.0F, true),
PartPose.offsetAndRotation(0.5F, 0.0F, 0.0F, 0.0F, 0.2618F, 0.0F));

return LayerDefinition.create(modelData, 128, 64);
}

@Override
public void setupAnim(T entity, float limbAngle, float limbDistance, float animationProgress, float headYaw, float headPitch) {
super.setupAnim(entity, limbAngle, limbDistance, animationProgress, headYaw, headPitch);
if(state == State.IDLE || state == State.CROUCHING)
leftWing03.xRot = (float) Math.toRadians(-60);
if(state == State.FLYING)
leftWing03.xRot = (float) Math.toRadians(-32.5);
rightWing03.xRot = leftWing03.xRot;
}
}
Loading

0 comments on commit e78d824

Please sign in to comment.