-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
371 changed files
with
4,673 additions
and
2,766 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
49
Common/src/main/java/dev/cammiescorner/icarus/IcarusConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} |
9 changes: 9 additions & 0 deletions
9
Common/src/main/java/dev/cammiescorner/icarus/api/SlowFallingEntity.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | ||
|
||
} |
23 changes: 23 additions & 0 deletions
23
Common/src/main/java/dev/cammiescorner/icarus/client/IcarusClient.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)); | ||
} | ||
} | ||
} |
14 changes: 14 additions & 0 deletions
14
Common/src/main/java/dev/cammiescorner/icarus/client/IcarusModels.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"); | ||
} |
153 changes: 153 additions & 0 deletions
153
Common/src/main/java/dev/cammiescorner/icarus/client/models/DiscordsWingsModel.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} | ||
} |
Oops, something went wrong.