mirror of
https://github.com/Sollace/Unicopia.git
synced 2024-12-17 23:48:00 +01:00
Rotate ponies wings to match when the player flaps their wings
This commit is contained in:
parent
fd65f1b9e1
commit
f0e43cdbe7
5 changed files with 21 additions and 8 deletions
|
@ -18,5 +18,5 @@ org.gradle.daemon=false
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
modmenu_version=1.14.+
|
modmenu_version=1.14.+
|
||||||
minelp_version=4.2.1-1.16.5
|
minelp_version=4.2.2-1.16.5-1.16-SNAPSHOT
|
||||||
kirin_version=1.7.1-1.16.2-SNAPSHOT
|
kirin_version=1.7.1-1.16.2-SNAPSHOT
|
||||||
|
|
|
@ -8,6 +8,7 @@ import com.minelittlepony.unicopia.Race;
|
||||||
import com.minelittlepony.unicopia.Unicopia;
|
import com.minelittlepony.unicopia.Unicopia;
|
||||||
import com.minelittlepony.unicopia.client.gui.SettingsScreen;
|
import com.minelittlepony.unicopia.client.gui.SettingsScreen;
|
||||||
import com.minelittlepony.unicopia.client.gui.UHud;
|
import com.minelittlepony.unicopia.client.gui.UHud;
|
||||||
|
import com.minelittlepony.unicopia.client.minelittlepony.MineLPConnector;
|
||||||
import com.minelittlepony.unicopia.entity.player.PlayerCamera;
|
import com.minelittlepony.unicopia.entity.player.PlayerCamera;
|
||||||
import com.minelittlepony.unicopia.entity.player.Pony;
|
import com.minelittlepony.unicopia.entity.player.Pony;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
|
|
|
@ -19,7 +19,7 @@ import com.minelittlepony.unicopia.Config;
|
||||||
import com.minelittlepony.unicopia.Race;
|
import com.minelittlepony.unicopia.Race;
|
||||||
import com.minelittlepony.unicopia.Unicopia;
|
import com.minelittlepony.unicopia.Unicopia;
|
||||||
import com.minelittlepony.unicopia.WorldTribeManager;
|
import com.minelittlepony.unicopia.WorldTribeManager;
|
||||||
import com.minelittlepony.unicopia.client.MineLPConnector;
|
import com.minelittlepony.unicopia.client.minelittlepony.MineLPConnector;
|
||||||
|
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
|
|
@ -3,26 +3,38 @@ package com.minelittlepony.unicopia.client.minelittlepony;
|
||||||
import com.minelittlepony.client.render.EquineRenderManager;
|
import com.minelittlepony.client.render.EquineRenderManager;
|
||||||
import com.minelittlepony.model.IModel;
|
import com.minelittlepony.model.IModel;
|
||||||
import com.minelittlepony.model.capabilities.fabric.PonyModelPrepareCallback;
|
import com.minelittlepony.model.capabilities.fabric.PonyModelPrepareCallback;
|
||||||
|
import com.minelittlepony.unicopia.Unicopia;
|
||||||
import com.minelittlepony.unicopia.entity.player.Pony;
|
import com.minelittlepony.unicopia.entity.player.Pony;
|
||||||
|
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.util.math.MathHelper;
|
||||||
|
|
||||||
public class Main implements ClientModInitializer {
|
public class Main implements ClientModInitializer {
|
||||||
|
|
||||||
|
private boolean hookErroring;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
PonyModelPrepareCallback.EVENT.register(this::onPonyModelPrepared);
|
PonyModelPrepareCallback.EVENT.register(this::onPonyModelPrepared);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onPonyModelPrepared(Entity entity, IModel model, EquineRenderManager.Mode mode) {
|
private void onPonyModelPrepared(Entity entity, IModel model, EquineRenderManager.Mode mode) {
|
||||||
|
if (hookErroring) return;
|
||||||
|
try {
|
||||||
if (entity instanceof PlayerEntity) {
|
if (entity instanceof PlayerEntity) {
|
||||||
Pony pony = Pony.of((PlayerEntity)entity);
|
Pony pony = Pony.of((PlayerEntity)entity);
|
||||||
|
|
||||||
model.getAttributes().isSwimming |= pony.getMotion().isFlying();
|
if (pony.getMotion().isFlying()) {
|
||||||
//model.getAttributes().isSwimmingRotated |= pony.getMotion().isFlying();
|
model.getAttributes().wingAngle = MathHelper.clamp(pony.getMotion().getWingAngle() / 3 - (float)Math.PI * 0.7F, -3, 0);
|
||||||
|
model.getAttributes().isHorizontal = true;
|
||||||
|
}
|
||||||
model.getAttributes().isGoingFast |= pony.getMotion().isRainbooming();
|
model.getAttributes().isGoingFast |= pony.getMotion().isRainbooming();
|
||||||
}
|
}
|
||||||
|
} catch (Throwable t) {
|
||||||
|
Unicopia.LOGGER.error("Exception occured in MineLP hook:onPonyModelPrepared", t);
|
||||||
|
hookErroring = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.minelittlepony.unicopia.client;
|
package com.minelittlepony.unicopia.client.minelittlepony;
|
||||||
|
|
||||||
import com.minelittlepony.client.MineLittlePony;
|
import com.minelittlepony.client.MineLittlePony;
|
||||||
import com.minelittlepony.unicopia.Race;
|
import com.minelittlepony.unicopia.Race;
|
Loading…
Reference in a new issue