优化波塞克第三人称
This commit is contained in:
parent
b970094f29
commit
2383f2a783
7 changed files with 2249 additions and 2140 deletions
|
@ -31,6 +31,16 @@ public class BocekItemModel extends CustomGunModel<BocekItem> {
|
|||
return Mod.loc("textures/item/bocek.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getLODModelResource(BocekItem animatable) {
|
||||
return Mod.loc("geo/lod/bocek.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getLODTextureResource(BocekItem animatable) {
|
||||
return Mod.loc("textures/item/lod/bocek.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomAnimations(BocekItem animatable, long instanceId, AnimationState<BocekItem> animationState) {
|
||||
Player player = Minecraft.getInstance().player;
|
||||
|
|
|
@ -69,6 +69,7 @@ public class DroneRenderer extends GeoEntityRenderer<DroneEntity> {
|
|||
|
||||
if (entityIn.getEntityData().get(KAMIKAZE_MODE) == 3) {
|
||||
Entity entity = new RpgRocketEntity(ModEntities.RPG_ROCKET.get(), entityIn.level());
|
||||
|
||||
entityRenderDispatcher.render(entity, 0, -0.03, -1.8, entityYaw, partialTicks, poseStack, bufferIn, packedLightIn);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.atsuishio.superbwarfare.client.renderer.gun;
|
||||
|
||||
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
||||
import com.atsuishio.superbwarfare.client.ItemModelHelper;
|
||||
import com.atsuishio.superbwarfare.client.model.item.BocekItemModel;
|
||||
import com.atsuishio.superbwarfare.client.renderer.CustomGunRenderer;
|
||||
import com.atsuishio.superbwarfare.client.renderer.ModRenderTypes;
|
||||
|
@ -15,6 +16,7 @@ import net.minecraft.client.renderer.MultiBufferSource;
|
|||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.util.FastColor;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import org.joml.Matrix4f;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
|
@ -71,7 +73,14 @@ public class BocekItemRenderer extends CustomGunRenderer<BocekItem> {
|
|||
if (player == null) return;
|
||||
|
||||
ItemStack itemStack = player.getMainHandItem();
|
||||
|
||||
boolean needHide = name.equals("safang");
|
||||
|
||||
if (itemStack.getItem() instanceof GunItem && GeoItem.getId(itemStack) == this.getInstanceId(animatable)) {
|
||||
if (this.renderPerspective == ItemDisplayContext.FIRST_PERSON_RIGHT_HAND || this.renderPerspective == ItemDisplayContext.THIRD_PERSON_RIGHT_HAND) {
|
||||
ItemModelHelper.handleGunAttachments(bone, itemStack, name);
|
||||
|
||||
if (this.renderPerspective == ItemDisplayContext.FIRST_PERSON_RIGHT_HAND) {
|
||||
if (name.equals("arrow")) {
|
||||
var data = GunData.from(itemStack);
|
||||
bone.setHidden(data.ammo.get() == 0);
|
||||
|
@ -82,6 +91,21 @@ public class BocekItemRenderer extends CustomGunRenderer<BocekItem> {
|
|||
}
|
||||
|
||||
AnimationHelper.handleZoomCrossHair(currentBuffer, renderType, name, stack, bone, buffer, 0.002, 0.1790625, 0.13, 0.08f, 255, 0, 0, 255, "dot", false);
|
||||
} else if (needHide) {
|
||||
bone.setHidden(true);
|
||||
}
|
||||
|
||||
} else {
|
||||
ItemModelHelper.hideAllAttachments(bone, name);
|
||||
if (needHide) {
|
||||
bone.setHidden(true);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ItemModelHelper.hideAllAttachments(bone, name);
|
||||
if (needHide) {
|
||||
bone.setHidden(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (renderingArms) {
|
||||
|
|
|
@ -8,6 +8,7 @@ import net.minecraft.network.FriendlyByteBuf;
|
|||
|
||||
import java.lang.annotation.Annotation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
|
@ -16,7 +17,10 @@ import java.util.List;
|
|||
public class BufferSerializer {
|
||||
public static List<Field> sortedFields(Class<?> clazz) {
|
||||
return Arrays.stream(clazz.getDeclaredFields())
|
||||
.filter(f -> !f.isAnnotationPresent(ServerOnly.class) && !f.getType().isAssignableFrom(Annotation.class))
|
||||
.filter(f -> !f.isAnnotationPresent(ServerOnly.class)
|
||||
&& !Modifier.isTransient(f.getModifiers())
|
||||
&& !f.getType().isAssignableFrom(Annotation.class)
|
||||
)
|
||||
.sorted(Comparator.comparing(Field::getName))
|
||||
.toList();
|
||||
}
|
||||
|
|
2126
src/main/resources/assets/superbwarfare/geo/lod/bocek.geo.json
Normal file
2126
src/main/resources/assets/superbwarfare/geo/lod/bocek.geo.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -25,21 +25,86 @@
|
|||
0
|
||||
]
|
||||
},
|
||||
"thirdperson_righthand": {
|
||||
"translation": [
|
||||
-1.5,
|
||||
0.5,
|
||||
2
|
||||
],
|
||||
"scale": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [
|
||||
-0.75,
|
||||
6,
|
||||
2.75
|
||||
],
|
||||
"scale": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [
|
||||
0,
|
||||
11,
|
||||
-2.75
|
||||
],
|
||||
"scale": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [
|
||||
165.69,
|
||||
-39.63,
|
||||
178.66
|
||||
90,
|
||||
-45,
|
||||
-90
|
||||
],
|
||||
"translation": [
|
||||
0.25,
|
||||
-3.5,
|
||||
3.25,
|
||||
-1.75,
|
||||
0
|
||||
],
|
||||
"scale": [
|
||||
0.45,
|
||||
0.45,
|
||||
0.45
|
||||
0.8,
|
||||
0.8,
|
||||
0.8
|
||||
]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [
|
||||
90,
|
||||
0,
|
||||
90
|
||||
],
|
||||
"translation": [
|
||||
-1,
|
||||
13.75,
|
||||
0
|
||||
],
|
||||
"scale": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [
|
||||
0,
|
||||
-90,
|
||||
0
|
||||
],
|
||||
"translation": [
|
||||
4.75,
|
||||
0.75,
|
||||
-2.25
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue