111 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.client.model;
 | |
| 
 | |
| import net.fabricmc.api.EnvType;
 | |
| import net.fabricmc.api.Environment;
 | |
| 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;
 | |
| 
 | |
| @Environment(EnvType.CLIENT)
 | |
| public class BoatModel extends AbstractBoatModel {
 | |
| 	private static final int BOTTOM_WIDTH = 28;
 | |
| 	private static final int WIDTH = 32;
 | |
| 	private static final int DEPTH = 6;
 | |
| 	private static final int LENGTH = 20;
 | |
| 	private static final int Y_OFFSET = 4;
 | |
| 	private static final String WATER_PATCH = "water_patch";
 | |
| 	private static final String BACK = "back";
 | |
| 	private static final String FRONT = "front";
 | |
| 	private static final String RIGHT = "right";
 | |
| 	private static final String LEFT = "left";
 | |
| 
 | |
| 	public BoatModel(ModelPart root) {
 | |
| 		super(root);
 | |
| 	}
 | |
| 
 | |
| 	private static void addCommonParts(PartDefinition partDefinition) {
 | |
| 		int i = 16;
 | |
| 		int j = 14;
 | |
| 		int k = 10;
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"bottom",
 | |
| 			CubeListBuilder.create().texOffs(0, 0).addBox(-14.0F, -9.0F, -3.0F, 28.0F, 16.0F, 3.0F),
 | |
| 			PartPose.offsetAndRotation(0.0F, 3.0F, 1.0F, (float) (Math.PI / 2), 0.0F, 0.0F)
 | |
| 		);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"back",
 | |
| 			CubeListBuilder.create().texOffs(0, 19).addBox(-13.0F, -7.0F, -1.0F, 18.0F, 6.0F, 2.0F),
 | |
| 			PartPose.offsetAndRotation(-15.0F, 4.0F, 4.0F, 0.0F, (float) (Math.PI * 3.0 / 2.0), 0.0F)
 | |
| 		);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"front",
 | |
| 			CubeListBuilder.create().texOffs(0, 27).addBox(-8.0F, -7.0F, -1.0F, 16.0F, 6.0F, 2.0F),
 | |
| 			PartPose.offsetAndRotation(15.0F, 4.0F, 0.0F, 0.0F, (float) (Math.PI / 2), 0.0F)
 | |
| 		);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"right",
 | |
| 			CubeListBuilder.create().texOffs(0, 35).addBox(-14.0F, -7.0F, -1.0F, 28.0F, 6.0F, 2.0F),
 | |
| 			PartPose.offsetAndRotation(0.0F, 4.0F, -9.0F, 0.0F, (float) Math.PI, 0.0F)
 | |
| 		);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"left", CubeListBuilder.create().texOffs(0, 43).addBox(-14.0F, -7.0F, -1.0F, 28.0F, 6.0F, 2.0F), PartPose.offset(0.0F, 4.0F, 9.0F)
 | |
| 		);
 | |
| 		int l = 20;
 | |
| 		int m = 7;
 | |
| 		int n = 6;
 | |
| 		float f = -5.0F;
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"left_paddle",
 | |
| 			CubeListBuilder.create().texOffs(62, 0).addBox(-1.0F, 0.0F, -5.0F, 2.0F, 2.0F, 18.0F).addBox(-1.001F, -3.0F, 8.0F, 1.0F, 6.0F, 7.0F),
 | |
| 			PartPose.offsetAndRotation(3.0F, -5.0F, 9.0F, 0.0F, 0.0F, (float) (Math.PI / 16))
 | |
| 		);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"right_paddle",
 | |
| 			CubeListBuilder.create().texOffs(62, 20).addBox(-1.0F, 0.0F, -5.0F, 2.0F, 2.0F, 18.0F).addBox(0.001F, -3.0F, 8.0F, 1.0F, 6.0F, 7.0F),
 | |
| 			PartPose.offsetAndRotation(3.0F, -5.0F, -9.0F, 0.0F, (float) Math.PI, (float) (Math.PI / 16))
 | |
| 		);
 | |
| 	}
 | |
| 
 | |
| 	public static LayerDefinition createBoatModel() {
 | |
| 		MeshDefinition meshDefinition = new MeshDefinition();
 | |
| 		PartDefinition partDefinition = meshDefinition.getRoot();
 | |
| 		addCommonParts(partDefinition);
 | |
| 		return LayerDefinition.create(meshDefinition, 128, 64);
 | |
| 	}
 | |
| 
 | |
| 	public static LayerDefinition createChestBoatModel() {
 | |
| 		MeshDefinition meshDefinition = new MeshDefinition();
 | |
| 		PartDefinition partDefinition = meshDefinition.getRoot();
 | |
| 		addCommonParts(partDefinition);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"chest_bottom",
 | |
| 			CubeListBuilder.create().texOffs(0, 76).addBox(0.0F, 0.0F, 0.0F, 12.0F, 8.0F, 12.0F),
 | |
| 			PartPose.offsetAndRotation(-2.0F, -5.0F, -6.0F, 0.0F, (float) (-Math.PI / 2), 0.0F)
 | |
| 		);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"chest_lid",
 | |
| 			CubeListBuilder.create().texOffs(0, 59).addBox(0.0F, 0.0F, 0.0F, 12.0F, 4.0F, 12.0F),
 | |
| 			PartPose.offsetAndRotation(-2.0F, -9.0F, -6.0F, 0.0F, (float) (-Math.PI / 2), 0.0F)
 | |
| 		);
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"chest_lock",
 | |
| 			CubeListBuilder.create().texOffs(0, 59).addBox(0.0F, 0.0F, 0.0F, 2.0F, 4.0F, 1.0F),
 | |
| 			PartPose.offsetAndRotation(-1.0F, -6.0F, -1.0F, 0.0F, (float) (-Math.PI / 2), 0.0F)
 | |
| 		);
 | |
| 		return LayerDefinition.create(meshDefinition, 128, 128);
 | |
| 	}
 | |
| 
 | |
| 	public static LayerDefinition createWaterPatch() {
 | |
| 		MeshDefinition meshDefinition = new MeshDefinition();
 | |
| 		PartDefinition partDefinition = meshDefinition.getRoot();
 | |
| 		partDefinition.addOrReplaceChild(
 | |
| 			"water_patch",
 | |
| 			CubeListBuilder.create().texOffs(0, 0).addBox(-14.0F, -9.0F, -3.0F, 28.0F, 16.0F, 3.0F),
 | |
| 			PartPose.offsetAndRotation(0.0F, -3.0F, 1.0F, (float) (Math.PI / 2), 0.0F, 0.0F)
 | |
| 		);
 | |
| 		return LayerDefinition.create(meshDefinition, 0, 0);
 | |
| 	}
 | |
| }
 |