尝试添加自定义renderer
This commit is contained in:
parent
ebd70d7dfe
commit
6f247e72fb
3 changed files with 38 additions and 4 deletions
|
@ -0,0 +1,34 @@
|
||||||
|
package com.atsuishio.superbwarfare.client;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
|
import net.minecraft.client.renderer.RenderType;
|
||||||
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import software.bernie.geckolib.animatable.GeoAnimatable;
|
||||||
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
||||||
|
|
||||||
|
public class CustomRenderer<T extends Item & GeoAnimatable> extends GeoItemRenderer<T> {
|
||||||
|
|
||||||
|
public CustomRenderer(GeoModel<T> model) {
|
||||||
|
super(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderChildBones(PoseStack poseStack, T animatable, GeoBone bone, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, boolean isReRender, float partialTick, int packedLight, int packedOverlay, int color) {
|
||||||
|
if (bone.isHidingChildren())
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (GeoBone childBone : bone.getChildBones()) {
|
||||||
|
if (childBone.getName().endsWith("_l")) {
|
||||||
|
var type = ModRenderTypes.ILLUMINATED.apply(this.getTextureLocation(animatable));
|
||||||
|
renderRecursively(poseStack, animatable, childBone, type, bufferSource, bufferSource.getBuffer(type), isReRender, partialTick, packedLight, OverlayTexture.NO_OVERLAY, 0xFFFFFFFF);
|
||||||
|
} else {
|
||||||
|
renderRecursively(poseStack, animatable, childBone, renderType, bufferSource, buffer, isReRender, partialTick, packedLight, packedOverlay, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
package com.atsuishio.superbwarfare.client.layer.gun;
|
package com.atsuishio.superbwarfare.client.layer.gun;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.Mod;
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
import com.atsuishio.superbwarfare.client.ModRenderTypes;
|
|
||||||
import com.atsuishio.superbwarfare.item.gun.launcher.SecondaryCataclysm;
|
import com.atsuishio.superbwarfare.item.gun.launcher.SecondaryCataclysm;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
@ -22,7 +21,8 @@ public class SecondaryCataclysmLightLayer extends GeoRenderLayer<SecondaryCatacl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void render(PoseStack poseStack, SecondaryCataclysm animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
public void render(PoseStack poseStack, SecondaryCataclysm animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||||
RenderType glowRenderType = ModRenderTypes.ILLUMINATED.apply(LAYER);
|
RenderType glowRenderType = renderType;
|
||||||
|
// ModRenderTypes.ILLUMINATED.apply(LAYER);
|
||||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 0xFFFFFFFF);
|
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 0xFFFFFFFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.atsuishio.superbwarfare.client.renderer.item;
|
package com.atsuishio.superbwarfare.client.renderer.item;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
||||||
|
import com.atsuishio.superbwarfare.client.CustomRenderer;
|
||||||
import com.atsuishio.superbwarfare.client.model.item.SecondaryCataclysmModel;
|
import com.atsuishio.superbwarfare.client.model.item.SecondaryCataclysmModel;
|
||||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||||
import com.atsuishio.superbwarfare.item.gun.launcher.SecondaryCataclysm;
|
import com.atsuishio.superbwarfare.item.gun.launcher.SecondaryCataclysm;
|
||||||
|
@ -14,12 +15,11 @@ import net.minecraft.world.item.ItemDisplayContext;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||||
import software.bernie.geckolib.cache.object.GeoBone;
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class SecondaryCataclysmRenderer extends GeoItemRenderer<SecondaryCataclysm> {
|
public class SecondaryCataclysmRenderer extends CustomRenderer<SecondaryCataclysm> {
|
||||||
|
|
||||||
public SecondaryCataclysmRenderer() {
|
public SecondaryCataclysmRenderer() {
|
||||||
super(new SecondaryCataclysmModel());
|
super(new SecondaryCataclysmModel());
|
||||||
|
|
Loading…
Add table
Reference in a new issue