移除怪物猎人附魔
This commit is contained in:
parent
dd2cda38d9
commit
10421b98f5
38 changed files with 217 additions and 192 deletions
|
@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.BocekItem;
|
||||
import net.mcreator.superbwarfare.item.gun.special.BocekItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.M79Item;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.M79Item;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.MinigunItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
@ -12,15 +12,15 @@ import software.bernie.geckolib.cache.object.BakedGeoModel;
|
|||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class MinigunLayer extends GeoRenderLayer<Minigun> {
|
||||
public class MinigunLayer extends GeoRenderLayer<MinigunItem> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/minigun_e.png");
|
||||
|
||||
public MinigunLayer(GeoRenderer<Minigun> entityRenderer) {
|
||||
public MinigunLayer(GeoRenderer<MinigunItem> entityRenderer) {
|
||||
super(entityRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, Minigun animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
public void render(PoseStack poseStack, MinigunItem animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.RpgItem;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.RpgItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.Taser;
|
||||
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
@ -12,15 +12,15 @@ import software.bernie.geckolib.cache.object.BakedGeoModel;
|
|||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class TaserLayer extends GeoRenderLayer<Taser> {
|
||||
public class TaserLayer extends GeoRenderLayer<TaserItem> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/tasergun_e.png");
|
||||
|
||||
public TaserLayer(GeoRenderer<Taser> itemGeoRenderer) {
|
||||
public TaserLayer(GeoRenderer<TaserItem> itemGeoRenderer) {
|
||||
super(itemGeoRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, Taser animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int light, int packedOverlay) {
|
||||
public void render(PoseStack poseStack, TaserItem animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int light, int packedOverlay) {
|
||||
|
||||
RenderType glowRenderType = RenderType.entityTranslucent(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, 255, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.Taser;
|
||||
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
|
@ -12,15 +12,15 @@ import software.bernie.geckolib.cache.object.BakedGeoModel;
|
|||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
|
||||
public class TaserLayer2 extends GeoRenderLayer<Taser> {
|
||||
public class TaserLayer2 extends GeoRenderLayer<TaserItem> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/tasergun_e2.png");
|
||||
|
||||
public TaserLayer2(GeoRenderer<Taser> itemGeoRenderer) {
|
||||
public TaserLayer2(GeoRenderer<TaserItem> itemGeoRenderer) {
|
||||
super(itemGeoRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, Taser animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int light, int packedOverlay) {
|
||||
public void render(PoseStack poseStack, TaserItem animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int light, int packedOverlay) {
|
||||
|
||||
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, light, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
|
|||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.BocekItem;
|
||||
import net.mcreator.superbwarfare.item.gun.special.BocekItem;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
|
|||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.JavelinItem;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.JavelinItem;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
|
|||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.M79Item;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.M79Item;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
|
|||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.MinigunItem;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -13,24 +13,24 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
|||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class MinigunItemModel extends GeoModel<Minigun> {
|
||||
public class MinigunItemModel extends GeoModel<MinigunItem> {
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(Minigun animatable) {
|
||||
public ResourceLocation getAnimationResource(MinigunItem animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "animations/minigun.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(Minigun animatable) {
|
||||
public ResourceLocation getModelResource(MinigunItem animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "geo/minigun.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(Minigun animatable) {
|
||||
public ResourceLocation getTextureResource(MinigunItem animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/item/minigun.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomAnimations(Minigun animatable, long instanceId, AnimationState animationState) {
|
||||
public void setCustomAnimations(MinigunItem animatable, long instanceId, AnimationState animationState) {
|
||||
CoreGeoBone gun = getAnimationProcessor().getBone("barrel");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone heat_barrels = getAnimationProcessor().getBone("heatbarrels");
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
|
|||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.RpgItem;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.RpgItem;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
|
|
@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
|
|||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.Taser;
|
||||
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
|
||||
import net.mcreator.superbwarfare.tools.ItemNBTTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -13,27 +13,27 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
|||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
public class TaserItemModel extends GeoModel<Taser> {
|
||||
public class TaserItemModel extends GeoModel<TaserItem> {
|
||||
|
||||
public static final String TAG_POWER = "Power";
|
||||
|
||||
@Override
|
||||
public ResourceLocation getAnimationResource(Taser animatable) {
|
||||
public ResourceLocation getAnimationResource(TaserItem animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "animations/taser.animation.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getModelResource(Taser animatable) {
|
||||
public ResourceLocation getModelResource(TaserItem animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "geo/taser.geo.json");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureResource(Taser animatable) {
|
||||
public ResourceLocation getTextureResource(TaserItem animatable) {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/item/tasergun.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCustomAnimations(Taser animatable, long instanceId, AnimationState animationState) {
|
||||
public void setCustomAnimations(TaserItem animatable, long instanceId, AnimationState animationState) {
|
||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone bar = getAnimationProcessor().getBone("bar");
|
||||
|
|
|
@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
|
|||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.client.layer.BocekLayer;
|
||||
import net.mcreator.superbwarfare.client.model.item.BocekItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.BocekItem;
|
||||
import net.mcreator.superbwarfare.item.gun.special.BocekItem;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.mcreator.superbwarfare.tools.AnimUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package net.mcreator.superbwarfare.client.renderer.item;
|
||||
|
||||
import net.mcreator.superbwarfare.client.model.item.JavelinItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.JavelinItem;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.JavelinItem;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
|
|
@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
|
|||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.client.layer.M79Layer;
|
||||
import net.mcreator.superbwarfare.client.model.item.M79ItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.M79Item;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.M79Item;
|
||||
import net.mcreator.superbwarfare.tools.AnimUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
|
|
|
@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
|
|||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.client.layer.MinigunLayer;
|
||||
import net.mcreator.superbwarfare.client.model.item.MinigunItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.MinigunItem;
|
||||
import net.mcreator.superbwarfare.tools.AnimUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
|
@ -25,14 +25,14 @@ import software.bernie.geckolib.util.RenderUtils;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
|
||||
public class MinigunItemRenderer extends GeoItemRenderer<MinigunItem> {
|
||||
public MinigunItemRenderer() {
|
||||
super(new MinigunItemModel());
|
||||
this.addRenderLayer(new MinigunLayer(this));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(Minigun animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
public RenderType getRenderType(MinigunItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
|
|||
protected MultiBufferSource currentBuffer;
|
||||
protected RenderType renderType;
|
||||
public ItemDisplayContext transformType;
|
||||
protected Minigun animatable;
|
||||
protected MinigunItem animatable;
|
||||
private final Set<String> hiddenBones = new HashSet<>();
|
||||
|
||||
@Override
|
||||
|
@ -53,7 +53,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void actuallyRender(PoseStack matrixStackIn, Minigun animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
|
||||
public void actuallyRender(PoseStack matrixStackIn, MinigunItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
|
||||
int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
this.currentBuffer = renderTypeBuffer;
|
||||
this.renderType = type;
|
||||
|
@ -65,7 +65,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderRecursively(PoseStack stack, Minigun animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red,
|
||||
public void renderRecursively(PoseStack stack, MinigunItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red,
|
||||
float green, float blue, float alpha) {
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
String name = bone.getName();
|
||||
|
@ -133,7 +133,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(Minigun instance) {
|
||||
public ResourceLocation getTextureLocation(MinigunItem instance) {
|
||||
return super.getTextureLocation(instance);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
|
|||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.client.layer.RpgLayer;
|
||||
import net.mcreator.superbwarfare.client.model.item.RpgItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.RpgItem;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.RpgItem;
|
||||
import net.mcreator.superbwarfare.tools.AnimUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
|
|
|
@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
|
|||
import net.mcreator.superbwarfare.client.layer.TaserLayer;
|
||||
import net.mcreator.superbwarfare.client.layer.TaserLayer2;
|
||||
import net.mcreator.superbwarfare.client.model.item.TaserItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.Taser;
|
||||
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
|
||||
import net.mcreator.superbwarfare.tools.AnimUtils;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
|
@ -25,7 +25,7 @@ import software.bernie.geckolib.util.RenderUtils;
|
|||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
public class TaserItemRenderer extends GeoItemRenderer<Taser> {
|
||||
public class TaserItemRenderer extends GeoItemRenderer<TaserItem> {
|
||||
public TaserItemRenderer() {
|
||||
super(new TaserItemModel());
|
||||
this.addRenderLayer(new TaserLayer(this));
|
||||
|
@ -33,7 +33,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public RenderType getRenderType(Taser animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
public RenderType getRenderType(TaserItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
|
|||
protected MultiBufferSource currentBuffer;
|
||||
protected RenderType renderType;
|
||||
public ItemDisplayContext transformType;
|
||||
protected Taser animatable;
|
||||
protected TaserItem animatable;
|
||||
private final Set<String> hiddenBones = new HashSet<>();
|
||||
|
||||
@Override
|
||||
|
@ -54,7 +54,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void actuallyRender(PoseStack matrixStackIn, Taser animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
|
||||
public void actuallyRender(PoseStack matrixStackIn, TaserItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
|
||||
int packedOverlayIn, float red, float green, float blue, float alpha) {
|
||||
this.currentBuffer = renderTypeBuffer;
|
||||
this.renderType = type;
|
||||
|
@ -66,7 +66,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderRecursively(PoseStack stack, Taser animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red,
|
||||
public void renderRecursively(PoseStack stack, TaserItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red,
|
||||
float green, float blue, float alpha) {
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
String name = bone.getName();
|
||||
|
@ -113,7 +113,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getTextureLocation(Taser instance) {
|
||||
public ResourceLocation getTextureLocation(TaserItem instance) {
|
||||
return super.getTextureLocation(instance);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
package net.mcreator.superbwarfare.enchantment;
|
||||
|
||||
import net.mcreator.superbwarfare.tools.EnchantmentCategoryTool;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
|
||||
public class MonsterHunter extends Enchantment {
|
||||
public MonsterHunter(EquipmentSlot... slots) {
|
||||
super(Rarity.UNCOMMON, EnchantmentCategoryTool.GUN, slots);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMinCost(int pLevel) {
|
||||
return 8 + 6 * pLevel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxCost(int pLevel) {
|
||||
return super.getMaxCost(pLevel) + 20;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxLevel() {
|
||||
return 5;
|
||||
}
|
||||
}
|
|
@ -40,17 +40,16 @@ import java.util.Optional;
|
|||
public class BocekArrowEntity extends AbstractArrow implements ItemSupplier {
|
||||
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.ARROW);
|
||||
|
||||
private int monsterMultiplier = 0;
|
||||
private float monsterMultiplier = 0.0f;
|
||||
private float bypassArmorRate = 0.0f;
|
||||
private float undeadMultiple = 1.0f;
|
||||
private float undeadMultiplier = 1.0f;
|
||||
|
||||
public BocekArrowEntity(EntityType<? extends BocekArrowEntity> type, Level world) {
|
||||
super(type, world);
|
||||
}
|
||||
|
||||
public BocekArrowEntity(LivingEntity entity, Level level, int monsterMultiplier) {
|
||||
public BocekArrowEntity(LivingEntity entity, Level level) {
|
||||
super(ModEntities.BOCEK_ARROW.get(), entity, level);
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
public BocekArrowEntity(PlayMessages.SpawnEntity packet, Level world) {
|
||||
|
@ -62,9 +61,12 @@ public class BocekArrowEntity extends AbstractArrow implements ItemSupplier {
|
|||
return this;
|
||||
}
|
||||
|
||||
public BocekArrowEntity undeadMultiple(float undeadMultiple) {
|
||||
this.undeadMultiple = undeadMultiple;
|
||||
return this;
|
||||
public void setUndeadMultiplier(float undeadMultiplier) {
|
||||
this.undeadMultiplier = undeadMultiplier;
|
||||
}
|
||||
|
||||
public void setMonsterMultiplier(float monsterMultiplier) {
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -159,9 +161,9 @@ public class BocekArrowEntity extends AbstractArrow implements ItemSupplier {
|
|||
|
||||
boolean hurt;
|
||||
if (entity instanceof Monster monster) {
|
||||
hurt = performHurt(entity, i * damageMultiplier * (monster.getMobType() == MobType.UNDEAD ? this.undeadMultiple : 1), headshot);
|
||||
hurt = performHurt(entity, i * (1 + damageMultiplier) * (monster.getMobType() == MobType.UNDEAD ? this.undeadMultiplier : 1), headshot);
|
||||
} else {
|
||||
hurt = performHurt(entity, i * (entity instanceof LivingEntity living && living.getMobType() == MobType.UNDEAD ? this.undeadMultiple : 1), headshot);
|
||||
hurt = performHurt(entity, i * (entity instanceof LivingEntity living && living.getMobType() == MobType.UNDEAD ? this.undeadMultiplier : 1), headshot);
|
||||
}
|
||||
|
||||
if (!hurt) {
|
||||
|
|
|
@ -32,23 +32,26 @@ import net.minecraftforge.network.PacketDistributor;
|
|||
import net.minecraftforge.network.PlayMessages;
|
||||
|
||||
public class GunGrenadeEntity extends ThrowableItemProjectile {
|
||||
private int monsterMultiplier = 0;
|
||||
private float damage = 5f;
|
||||
private float monsterMultiplier = 0.0f;
|
||||
private float damage = 5.0f;
|
||||
|
||||
public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, Level world) {
|
||||
super(type, world);
|
||||
}
|
||||
|
||||
public GunGrenadeEntity(LivingEntity entity, Level level, float damage, int monsterMultiplier) {
|
||||
public GunGrenadeEntity(LivingEntity entity, Level level, float damage) {
|
||||
super(ModEntities.GUN_GRENADE.get(), entity, level);
|
||||
this.damage = damage;
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
public GunGrenadeEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
||||
this(ModEntities.GUN_GRENADE.get(), level);
|
||||
}
|
||||
|
||||
public void setMonsterMultiplier(float monsterMultiplier) {
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||
return NetworkHooks.getEntitySpawningPacket(this);
|
||||
|
@ -66,7 +69,7 @@ public class GunGrenadeEntity extends ThrowableItemProjectile {
|
|||
|
||||
@Override
|
||||
protected void onHitEntity(EntityHitResult result) {
|
||||
float damageMultiplier = 1 + 0.2f * this.monsterMultiplier;
|
||||
float damageMultiplier = 1 + this.monsterMultiplier;
|
||||
Entity entity = result.getEntity();
|
||||
if (this.getOwner() instanceof LivingEntity living) {
|
||||
if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
|
||||
|
|
|
@ -53,23 +53,26 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
|
|||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
|
||||
public String animationprocedure = "empty";
|
||||
private int monsterMultiplier = 0;
|
||||
private float damage = 300f;
|
||||
private float monsterMultiplier = 0.0f;
|
||||
private float damage = 300.0f;
|
||||
|
||||
public JavelinMissileEntity(EntityType<? extends JavelinMissileEntity> type, Level world) {
|
||||
super(type, world);
|
||||
}
|
||||
|
||||
public JavelinMissileEntity(LivingEntity entity, Level level, float damage, int monsterMultiplier) {
|
||||
public JavelinMissileEntity(LivingEntity entity, Level level, float damage) {
|
||||
super(ModEntities.JAVELIN_MISSILE.get(), entity, level);
|
||||
this.damage = damage;
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
public JavelinMissileEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
||||
this(ModEntities.JAVELIN_MISSILE.get(), level);
|
||||
}
|
||||
|
||||
public void setMonsterMultiplier(float monsterMultiplier) {
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||
return NetworkHooks.getEntitySpawningPacket(this);
|
||||
|
@ -101,7 +104,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
|
|||
|
||||
@Override
|
||||
protected void onHitEntity(EntityHitResult result) {
|
||||
float damageMultiplier = 1 + 0.2f * this.monsterMultiplier;
|
||||
float damageMultiplier = 1 + this.monsterMultiplier;
|
||||
Entity entity = result.getEntity();
|
||||
if (this.getOwner() instanceof LivingEntity living) {
|
||||
if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
|
||||
|
|
|
@ -65,6 +65,7 @@ import java.util.function.Function;
|
|||
import java.util.function.Predicate;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
@SuppressWarnings({"unused", "UnusedReturnValue", "SuspiciousNameCombination"})
|
||||
public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnData, GeoEntity, AnimatedEntity {
|
||||
public static final EntityDataAccessor<Float> COLOR_R = SynchedEntityData.defineId(ProjectileEntity.class, EntityDataSerializers.FLOAT);
|
||||
public static final EntityDataAccessor<Float> COLOR_G = SynchedEntityData.defineId(ProjectileEntity.class, EntityDataSerializers.FLOAT);
|
||||
|
@ -73,8 +74,8 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public String animationProcedure = "empty";
|
||||
private static final Predicate<Entity> PROJECTILE_TARGETS = input -> input != null && input.isPickable() && !input.isSpectator() && input.isAlive();
|
||||
|
||||
private static final Predicate<Entity> PROJECTILE_TARGETS = input -> input != null && input.isPickable() && !input.isSpectator() && input.isAlive();
|
||||
private static final Predicate<BlockState> IGNORE_LEAVES = input -> input != null && (input.getBlock() instanceof LeavesBlock
|
||||
|| input.getBlock() instanceof FenceBlock
|
||||
|| input.getBlock() instanceof IronBarsBlock
|
||||
|
@ -82,11 +83,12 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
|| input.getBlock() instanceof DoorBlock
|
||||
|| input.getBlock() instanceof TrapDoorBlock
|
||||
|| input.getBlock() instanceof BarbedWireBlock);
|
||||
|
||||
protected LivingEntity shooter;
|
||||
protected int shooterId;
|
||||
private float damage = 1f;
|
||||
private float headShot = 1f;
|
||||
private int monsterMultiple = 0;
|
||||
private float monsterMultiple = 0.0f;
|
||||
private float legShot = 0.5f;
|
||||
private boolean beast = false;
|
||||
private boolean zoom = false;
|
||||
|
@ -205,25 +207,19 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
}
|
||||
Vec3 hitBoxPos = hitPos.subtract(entity.position());
|
||||
boolean headshot = false;
|
||||
boolean legshot = false;
|
||||
boolean legShot = false;
|
||||
float eyeHeight = entity.getEyeHeight();
|
||||
float BodyHeight = entity.getBbHeight();
|
||||
if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) && !(entity instanceof ClaymoreEntity
|
||||
|| entity instanceof MortarEntity
|
||||
|| entity instanceof ICannonEntity
|
||||
|| entity instanceof DroneEntity
|
||||
)) {
|
||||
if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) &&
|
||||
!(entity instanceof ClaymoreEntity || entity instanceof MortarEntity || entity instanceof ICannonEntity || entity instanceof DroneEntity)) {
|
||||
headshot = true;
|
||||
}
|
||||
if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity
|
||||
|| entity instanceof MortarEntity
|
||||
|| entity instanceof ICannonEntity
|
||||
|| entity instanceof DroneEntity
|
||||
)) {
|
||||
legshot = true;
|
||||
if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity || entity instanceof MortarEntity ||
|
||||
entity instanceof ICannonEntity || entity instanceof DroneEntity)) {
|
||||
legShot = true;
|
||||
}
|
||||
|
||||
return new EntityResult(entity, hitPos, headshot, legshot);
|
||||
return new EntityResult(entity, hitPos, headshot, legShot);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -417,7 +413,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
|
||||
// TODO 实现穿甲比例大于1时的穿透生物效果
|
||||
protected void onHitEntity(Entity entity, boolean headshot, boolean legShot) {
|
||||
float mMultiple = 1 + 0.2f * this.monsterMultiple;
|
||||
float mMultiple = 1 + this.monsterMultiple;
|
||||
|
||||
if (entity == null) return;
|
||||
|
||||
|
@ -548,9 +544,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
private static <T> T performRayTrace(ClipContext context, BiFunction<ClipContext, BlockPos, T> hitFunction, Function<ClipContext, T> p_217300_2_) {
|
||||
Vec3 startVec = context.getFrom();
|
||||
Vec3 endVec = context.getTo();
|
||||
if (startVec.equals(endVec)) {
|
||||
return p_217300_2_.apply(context);
|
||||
} else {
|
||||
if (!startVec.equals(endVec)) {
|
||||
double startX = Mth.lerp(-0.0000001, endVec.x, startVec.x);
|
||||
double startY = Mth.lerp(-0.0000001, endVec.y, startVec.y);
|
||||
double startZ = Mth.lerp(-0.0000001, endVec.z, startVec.z);
|
||||
|
@ -601,9 +595,8 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
return t1;
|
||||
}
|
||||
}
|
||||
|
||||
return p_217300_2_.apply(context);
|
||||
}
|
||||
return p_217300_2_.apply(context);
|
||||
}
|
||||
|
||||
public LivingEntity getShooter() {
|
||||
|
@ -735,7 +728,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
|||
return this;
|
||||
}
|
||||
|
||||
public ProjectileEntity monsterMultiple(int monsterMultiple) {
|
||||
public ProjectileEntity monsterMultiple(float monsterMultiple) {
|
||||
this.monsterMultiple = monsterMultiple;
|
||||
return this;
|
||||
}
|
||||
|
|
|
@ -48,23 +48,26 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit
|
|||
|
||||
public String animationprocedure = "empty";
|
||||
|
||||
private int monsterMultiplier = 0;
|
||||
private float monsterMultiplier = 0.0f;
|
||||
private float damage = 150f;
|
||||
|
||||
public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, Level world) {
|
||||
super(type, world);
|
||||
}
|
||||
|
||||
public RpgRocketEntity(LivingEntity entity, Level level, float damage, int monsterMultiplier) {
|
||||
public RpgRocketEntity(LivingEntity entity, Level level, float damage) {
|
||||
super(ModEntities.RPG_ROCKET.get(), entity, level);
|
||||
this.damage = damage;
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
public RpgRocketEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
|
||||
this(ModEntities.RPG_ROCKET.get(), level);
|
||||
}
|
||||
|
||||
public void setMonsterMultiplier(float monsterMultiplier) {
|
||||
this.monsterMultiplier = monsterMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Packet<ClientGamePacketListener> getAddEntityPacket() {
|
||||
return NetworkHooks.getEntitySpawningPacket(this);
|
||||
|
@ -82,7 +85,7 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit
|
|||
|
||||
@Override
|
||||
protected void onHitEntity(EntityHitResult result) {
|
||||
float damageMultiplier = 1 + 0.2f * this.monsterMultiplier;
|
||||
float damageMultiplier = 1 + this.monsterMultiplier;
|
||||
Entity entity = result.getEntity();
|
||||
if (this.getOwner() instanceof LivingEntity living) {
|
||||
if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
|
||||
|
|
|
@ -3,7 +3,10 @@ package net.mcreator.superbwarfare.event;
|
|||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.entity.ProjectileEntity;
|
||||
import net.mcreator.superbwarfare.event.modevent.ReloadEvent;
|
||||
import net.mcreator.superbwarfare.init.*;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.mcreator.superbwarfare.init.ModPerks;
|
||||
import net.mcreator.superbwarfare.init.ModSounds;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.mcreator.superbwarfare.perk.AmmoPerk;
|
||||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
|
@ -23,7 +26,6 @@ import net.minecraft.world.InteractionHand;
|
|||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.capabilities.ForgeCapabilities;
|
||||
import net.minecraftforge.event.TickEvent;
|
||||
|
@ -352,7 +354,6 @@ public class GunEventHandler {
|
|||
|
||||
if (!player.level().isClientSide()) {
|
||||
float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot");
|
||||
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), heldItem);
|
||||
float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) heldItem.getOrCreateTag().getDouble("levelDamageMultiple");
|
||||
|
||||
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
|
||||
|
@ -363,8 +364,7 @@ public class GunEventHandler {
|
|||
.shooter(player)
|
||||
.damage(damage)
|
||||
.headShot(headshot)
|
||||
.zoom(zoom)
|
||||
.monsterMultiple(monsterMultiple);
|
||||
.zoom(zoom);
|
||||
|
||||
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
||||
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
||||
|
@ -396,6 +396,12 @@ public class GunEventHandler {
|
|||
projectile.beast();
|
||||
}
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(heldItem, Perk.Type.DAMAGE);
|
||||
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
|
||||
int level = PerkHelper.getItemPerkLevel(dmgPerk, heldItem);
|
||||
projectile.monsterMultiple(0.1f + 0.1f * level);
|
||||
}
|
||||
|
||||
projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z);
|
||||
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, 1 * (float) heldItem.getOrCreateTag().getDouble("velocity"),
|
||||
(float) (zoom ? zoomSpread : spread));
|
||||
|
|
|
@ -14,5 +14,4 @@ public class ModEnchantments {
|
|||
public static final RegistryObject<Enchantment> VOLT_OVERLOAD = REGISTRY.register("volt_overload", VoltOverload::new);
|
||||
public static final RegistryObject<Enchantment> SUPER_RECHARGE = REGISTRY.register("super_recharge", SuperRecharge::new);
|
||||
public static final RegistryObject<Enchantment> LONGER_WIRE = REGISTRY.register("longer_wire", LongerWire::new);
|
||||
public static final RegistryObject<Enchantment> MONSTER_HUNTER = REGISTRY.register("monster_hunter", MonsterHunter::new);
|
||||
}
|
||||
|
|
|
@ -5,14 +5,16 @@ import net.mcreator.superbwarfare.item.*;
|
|||
import net.mcreator.superbwarfare.item.common.BlueprintItem;
|
||||
import net.mcreator.superbwarfare.item.common.MaterialPack;
|
||||
import net.mcreator.superbwarfare.item.common.ammo.*;
|
||||
import net.mcreator.superbwarfare.item.gun.*;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.Glock17Item;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.M1911Item;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.JavelinItem;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.M79Item;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.RpgItem;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.DevotionItem;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.M60Item;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.MinigunItem;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.RpkItem;
|
||||
import net.mcreator.superbwarfare.item.gun.rifle.*;
|
||||
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item;
|
||||
|
@ -20,6 +22,8 @@ import net.mcreator.superbwarfare.item.gun.shotgun.AbekiriItem;
|
|||
import net.mcreator.superbwarfare.item.gun.shotgun.M870Item;
|
||||
import net.mcreator.superbwarfare.item.gun.smg.VectorItem;
|
||||
import net.mcreator.superbwarfare.item.gun.sniper.*;
|
||||
import net.mcreator.superbwarfare.item.gun.special.BocekItem;
|
||||
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
|
||||
import net.mcreator.superbwarfare.tools.RarityTool;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
|
@ -41,7 +45,7 @@ public class ModItems {
|
|||
*/
|
||||
public static final DeferredRegister<Item> GUNS = DeferredRegister.create(ForgeRegistries.ITEMS, ModUtils.MODID);
|
||||
|
||||
public static final RegistryObject<Item> TASER = GUNS.register("taser", Taser::new);
|
||||
public static final RegistryObject<Item> TASER = GUNS.register("taser", TaserItem::new);
|
||||
public static final RegistryObject<Item> GLOCK_17 = GUNS.register("glock_17", Glock17Item::new);
|
||||
public static final RegistryObject<Item> GLOCK_18 = GUNS.register("glock_18", Glock18Item::new);
|
||||
public static final RegistryObject<Item> M_1911 = GUNS.register("m_1911", M1911Item::new);
|
||||
|
@ -67,7 +71,7 @@ public class ModItems {
|
|||
public static final RegistryObject<Item> DEVOTION = GUNS.register("devotion", DevotionItem::new);
|
||||
public static final RegistryObject<Item> RPK = GUNS.register("rpk", RpkItem::new);
|
||||
public static final RegistryObject<Item> M_60 = GUNS.register("m_60", M60Item::new);
|
||||
public static final RegistryObject<Item> MINIGUN = GUNS.register("minigun", Minigun::new);
|
||||
public static final RegistryObject<Item> MINIGUN = GUNS.register("minigun", MinigunItem::new);
|
||||
public static final RegistryObject<Item> M_79 = GUNS.register("m_79", M79Item::new);
|
||||
public static final RegistryObject<Item> RPG = GUNS.register("rpg", RpgItem::new);
|
||||
public static final RegistryObject<Item> JAVELIN = GUNS.register("javelin", JavelinItem::new);
|
||||
|
|
|
@ -1,14 +1,16 @@
|
|||
package net.mcreator.superbwarfare.init;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.item.gun.*;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.Glock17Item;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.M1911Item;
|
||||
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.JavelinItem;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.M79Item;
|
||||
import net.mcreator.superbwarfare.item.gun.launcher.RpgItem;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.DevotionItem;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.M60Item;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.MinigunItem;
|
||||
import net.mcreator.superbwarfare.item.gun.machinegun.RpkItem;
|
||||
import net.mcreator.superbwarfare.item.gun.rifle.*;
|
||||
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item;
|
||||
|
@ -16,6 +18,8 @@ import net.mcreator.superbwarfare.item.gun.shotgun.AbekiriItem;
|
|||
import net.mcreator.superbwarfare.item.gun.shotgun.M870Item;
|
||||
import net.mcreator.superbwarfare.item.gun.smg.VectorItem;
|
||||
import net.mcreator.superbwarfare.item.gun.sniper.*;
|
||||
import net.mcreator.superbwarfare.item.gun.special.BocekItem;
|
||||
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
|
@ -37,7 +41,7 @@ public class ModTabs {
|
|||
.icon(() -> new ItemStack(ModItems.TASER.get()))
|
||||
.displayItems(
|
||||
(param, output) -> {
|
||||
output.accept(Taser.getGunInstance());
|
||||
output.accept(TaserItem.getGunInstance());
|
||||
output.accept(Glock17Item.getGunInstance());
|
||||
output.accept(Glock18Item.getGunInstance());
|
||||
output.accept(M1911Item.getGunInstance());
|
||||
|
@ -63,7 +67,7 @@ public class ModTabs {
|
|||
output.accept(DevotionItem.getGunInstance());
|
||||
output.accept(RpkItem.getGunInstance());
|
||||
output.accept(M60Item.getGunInstance());
|
||||
output.accept(Minigun.getGunInstance());
|
||||
output.accept(MinigunItem.getGunInstance());
|
||||
output.accept(BocekItem.getGunInstance());
|
||||
output.accept(M79Item.getGunInstance());
|
||||
output.accept(RpgItem.getGunInstance());
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.superbwarfare.item.gun;
|
||||
package net.mcreator.superbwarfare.item.gun.launcher;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
@ -8,6 +8,7 @@ import net.mcreator.superbwarfare.init.ModItems;
|
|||
import net.mcreator.superbwarfare.init.ModSounds;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.superbwarfare.item.gun;
|
||||
package net.mcreator.superbwarfare.item.gun.launcher;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
@ -8,6 +8,7 @@ import net.mcreator.superbwarfare.init.ModItems;
|
|||
import net.mcreator.superbwarfare.init.ModSounds;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.superbwarfare.item.gun;
|
||||
package net.mcreator.superbwarfare.item.gun.launcher;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
@ -8,6 +8,7 @@ import net.mcreator.superbwarfare.init.ModItems;
|
|||
import net.mcreator.superbwarfare.init.ModSounds;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
|
@ -45,13 +45,13 @@ import software.bernie.geckolib.util.GeckoLibUtil;
|
|||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class Minigun extends GunItem implements GeoItem, AnimatedItem {
|
||||
public class MinigunItem extends GunItem implements GeoItem, AnimatedItem {
|
||||
private static final String TAG_HEAT = "heat";
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public String animationProcedure = "empty";
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
public Minigun() {
|
||||
public MinigunItem() {
|
||||
super(new Item.Properties().stacksTo(1).rarity(RarityTool.LEGENDARY));
|
||||
}
|
||||
|
||||
|
@ -107,7 +107,7 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
|
|||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<Minigun> event) {
|
||||
private PlayState idlePredicate(AnimationState<MinigunItem> event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
|
@ -131,7 +131,7 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
|
|||
return PlayState.STOP;
|
||||
}
|
||||
|
||||
private PlayState procedurePredicate(AnimationState<Minigun> event) {
|
||||
private PlayState procedurePredicate(AnimationState<MinigunItem> event) {
|
||||
if (transformType != null && transformType.firstPerson()) {
|
||||
if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.superbwarfare.item.gun;
|
||||
package net.mcreator.superbwarfare.item.gun.special;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
@ -7,6 +7,7 @@ import net.mcreator.superbwarfare.client.renderer.item.BocekItemRenderer;
|
|||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
|
@ -1,4 +1,4 @@
|
|||
package net.mcreator.superbwarfare.item.gun;
|
||||
package net.mcreator.superbwarfare.item.gun.special;
|
||||
|
||||
import com.google.common.collect.HashMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
|
@ -9,6 +9,7 @@ import net.mcreator.superbwarfare.init.ModItems;
|
|||
import net.mcreator.superbwarfare.init.ModSounds;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
|
@ -46,14 +47,14 @@ import java.util.Set;
|
|||
import java.util.UUID;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class Taser extends GunItem implements GeoItem, AnimatedItem {
|
||||
public class TaserItem extends GunItem implements GeoItem, AnimatedItem {
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public String animationProcedure = "empty";
|
||||
public static ItemDisplayContext transformType;
|
||||
public static final String TAG_POWER = "Power";
|
||||
public static final int MAX_POWER_SIZE = 1200;
|
||||
|
||||
public Taser() {
|
||||
public TaserItem() {
|
||||
super(new Item.Properties().stacksTo(1).rarity(Rarity.COMMON));
|
||||
}
|
||||
|
||||
|
@ -147,9 +148,9 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
AnimationController<Taser> procedureController = new AnimationController<>(this, "procedureController", 0, this::procedurePredicate);
|
||||
AnimationController<TaserItem> procedureController = new AnimationController<>(this, "procedureController", 0, this::procedurePredicate);
|
||||
data.add(procedureController);
|
||||
AnimationController<Taser> idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate);
|
||||
AnimationController<TaserItem> idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
|
@ -182,15 +182,15 @@ public class FireMessage {
|
|||
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) {
|
||||
Level level = player.level();
|
||||
if (!level.isClientSide()) {
|
||||
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), stack);
|
||||
float damage = (float) (0.04 * stack.getOrCreateTag().getDouble("damage") * (1 + 0.05 * stack.getOrCreateTag().getInt("level")));
|
||||
float bypassArmorRate = (float) stack.getOrCreateTag().getDouble("BypassArmor");
|
||||
|
||||
BocekArrowEntity arrow = new BocekArrowEntity(player, level);
|
||||
|
||||
ProjectileEntity projectile = new ProjectileEntity(player.level())
|
||||
.shooter(player)
|
||||
.headShot(1)
|
||||
.zoom(true)
|
||||
.monsterMultiple(1);
|
||||
.zoom(true);
|
||||
|
||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
if (perk instanceof AmmoPerk ammoPerk) {
|
||||
|
@ -207,12 +207,19 @@ public class FireMessage {
|
|||
float undeadMultiple = 1;
|
||||
|
||||
if (perk == ModPerks.SILVER_BULLET.get()) {
|
||||
int level_ = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
undeadMultiple = 1.0f + 0.5f * level_;
|
||||
int perkLevel = PerkHelper.getItemPerkLevel(perk, stack);
|
||||
undeadMultiple = 1.0f + 0.5f * perkLevel;
|
||||
} else if (perk == ModPerks.BEAST_BULLET.get()) {
|
||||
projectile.beast();
|
||||
}
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
|
||||
int perkLevel = PerkHelper.getItemPerkLevel(dmgPerk, stack);
|
||||
projectile.monsterMultiple(0.1f + 0.1f * perkLevel);
|
||||
arrow.setMonsterMultiplier(0.1f + 0.1f * perkLevel);
|
||||
}
|
||||
|
||||
projectile.bypassArmorRate(0);
|
||||
projectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
|
||||
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) (2 * power), 0);
|
||||
|
@ -221,7 +228,7 @@ public class FireMessage {
|
|||
|
||||
bypassArmorRate = Math.max(bypassArmorRate, 0);
|
||||
|
||||
BocekArrowEntity arrow = new BocekArrowEntity(player, level, monsterMultiple).bypassArmorRate(bypassArmorRate).undeadMultiple(undeadMultiple);
|
||||
arrow.bypassArmorRate(bypassArmorRate).setUndeadMultiplier(undeadMultiple);
|
||||
arrow.setBaseDamage(damage);
|
||||
arrow.setKnockback(0);
|
||||
arrow.setSilent(true);
|
||||
|
@ -286,15 +293,13 @@ public class FireMessage {
|
|||
double damage;
|
||||
float headshot = (float) tag.getDouble("headshot");
|
||||
float velocity = 2 * (float) tag.getDouble("speed");
|
||||
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), heldItem);
|
||||
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom;
|
||||
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
||||
|
||||
ProjectileEntity projectile = new ProjectileEntity(player.level())
|
||||
.shooter(player)
|
||||
.headShot(headshot)
|
||||
.zoom(zoom)
|
||||
.monsterMultiple(monsterMultiple);
|
||||
.zoom(zoom);
|
||||
|
||||
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
||||
if (perk instanceof AmmoPerk ammoPerk) {
|
||||
|
@ -318,6 +323,12 @@ public class FireMessage {
|
|||
projectile.beast();
|
||||
}
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(heldItem, Perk.Type.DAMAGE);
|
||||
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
|
||||
int perkLevel = PerkHelper.getItemPerkLevel(dmgPerk, heldItem);
|
||||
projectile.monsterMultiple(0.1f + 0.1f * perkLevel);
|
||||
}
|
||||
|
||||
projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z);
|
||||
|
||||
damage = 2 * 0.008333333 * tag.getDouble("damage") * tag.getDouble("speed") * tag.getDouble("levelDamageMultiple");
|
||||
|
@ -373,15 +384,20 @@ public class FireMessage {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.getOrCreateTag().getBoolean("reloading")) {
|
||||
if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0) {
|
||||
|
||||
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
|
||||
double spread = stack.getOrCreateTag().getDouble("spread");
|
||||
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
|
||||
|
||||
Level level = player.level();
|
||||
if (!level.isClientSide()) {
|
||||
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), stack);
|
||||
GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage") * (float) stack.getOrCreateTag().getDouble("levelDamageMultiple"), monsterMultiple);
|
||||
GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level,
|
||||
(float) stack.getOrCreateTag().getDouble("damage") * (float) stack.getOrCreateTag().getDouble("levelDamageMultiple"));
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
|
||||
int perkLevel = PerkHelper.getItemPerkLevel(dmgPerk, stack);
|
||||
gunGrenadeEntity.setMonsterMultiplier(0.1f + 0.1f * perkLevel);
|
||||
}
|
||||
|
||||
gunGrenadeEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
|
||||
gunGrenadeEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) stack.getOrCreateTag().getDouble("velocity"),
|
||||
|
@ -416,18 +432,24 @@ public class FireMessage {
|
|||
if (player.isSpectator()) return;
|
||||
|
||||
Level level = player.level();
|
||||
ItemStack mainHandItem = player.getMainHandItem();
|
||||
CompoundTag tag = mainHandItem.getOrCreateTag();
|
||||
|
||||
if (!tag.getBoolean("reloading") && !player.getCooldowns().isOnCooldown(mainHandItem.getItem()) && tag.getInt("ammo") > 0) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
CompoundTag tag = stack.getOrCreateTag();
|
||||
|
||||
if (!tag.getBoolean("reloading") && !player.getCooldowns().isOnCooldown(stack.getItem()) && tag.getInt("ammo") > 0) {
|
||||
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
|
||||
double spread = mainHandItem.getOrCreateTag().getDouble("spread");
|
||||
double zoomSpread = mainHandItem.getOrCreateTag().getDouble("zoomSpread");
|
||||
double spread = stack.getOrCreateTag().getDouble("spread");
|
||||
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
|
||||
|
||||
if (!level.isClientSide()) {
|
||||
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem);
|
||||
RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple);
|
||||
RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level,
|
||||
(float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"));
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
|
||||
int perkLevel = PerkHelper.getItemPerkLevel(dmgPerk, stack);
|
||||
rocketEntity.setMonsterMultiplier(0.1f + 0.1f * perkLevel);
|
||||
}
|
||||
|
||||
rocketEntity.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
|
||||
rocketEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) tag.getDouble("velocity"),
|
||||
(float) (zoom ? zoomSpread : spread));
|
||||
|
@ -446,7 +468,7 @@ public class FireMessage {
|
|||
tag.putBoolean("close_hammer", true);
|
||||
}
|
||||
|
||||
player.getCooldowns().addCooldown(mainHandItem.getItem(), 10);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), 10);
|
||||
|
||||
if (player instanceof ServerPlayer serverPlayer) {
|
||||
SoundTool.playLocalSound(serverPlayer, ModSounds.RPG_FIRE_1P.get(), 2, 1);
|
||||
|
@ -466,8 +488,8 @@ public class FireMessage {
|
|||
if (player.isSpectator()) return;
|
||||
|
||||
Level level = player.level();
|
||||
ItemStack mainHandItem = player.getMainHandItem();
|
||||
CompoundTag tag = mainHandItem.getOrCreateTag();
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
CompoundTag tag = stack.getOrCreateTag();
|
||||
|
||||
if (tag.getInt("SeekTime") < 20) return;
|
||||
|
||||
|
@ -482,8 +504,15 @@ public class FireMessage {
|
|||
firePos.rotateY(-yRot * Mth.DEG_TO_RAD);
|
||||
|
||||
if (!level.isClientSide()) {
|
||||
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem);
|
||||
JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple);
|
||||
JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level,
|
||||
(float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"));
|
||||
|
||||
var dmgPerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||
if (dmgPerk == ModPerks.MONSTER_HUNTER.get()) {
|
||||
int perkLevel = PerkHelper.getItemPerkLevel(dmgPerk, stack);
|
||||
missileEntity.setMonsterMultiplier(0.1f + 0.1f * perkLevel);
|
||||
}
|
||||
|
||||
missileEntity.setPos(player.getX() + firePos.x, player.getEyeY() + firePos.y, player.getZ() + firePos.z);
|
||||
missileEntity.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.3, player.getLookAngle().z, 3f, 1);
|
||||
missileEntity.setTargetUuid(tag.getString("TargetEntity"));
|
||||
|
@ -498,7 +527,7 @@ public class FireMessage {
|
|||
30, 0.4, 0.4, 0.4, 0.005, true);
|
||||
}
|
||||
|
||||
player.getCooldowns().addCooldown(mainHandItem.getItem(), 10);
|
||||
player.getCooldowns().addCooldown(stack.getItem(), 10);
|
||||
|
||||
if (player instanceof ServerPlayer serverPlayer) {
|
||||
SoundTool.playLocalSound(serverPlayer, ModSounds.JAVELIN_FIRE_1P.get(), 2, 1);
|
||||
|
|
|
@ -2,14 +2,14 @@ package net.mcreator.superbwarfare.tools;
|
|||
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.item.gun.Taser;
|
||||
import net.mcreator.superbwarfare.item.gun.special.TaserItem;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentCategory;
|
||||
|
||||
public class EnchantmentCategoryTool {
|
||||
public static final EnchantmentCategory TASER = EnchantmentCategory.create("superbwarfare:taser",
|
||||
item -> item instanceof Taser);
|
||||
item -> item instanceof TaserItem);
|
||||
public static final EnchantmentCategory GUN = EnchantmentCategory.create("superbwarfare:gun",
|
||||
item -> item instanceof GunItem && !(item instanceof Taser));
|
||||
item -> item instanceof GunItem && !(item instanceof TaserItem));
|
||||
public static final EnchantmentCategory CAN_RELOAD = EnchantmentCategory.create("superbwarfare:can_reload",
|
||||
item -> item.getDefaultInstance().is(ModTags.Items.CAN_RELOAD));
|
||||
}
|
||||
|
|
|
@ -223,6 +223,8 @@
|
|||
"des.superbwarfare.gutshot_straight": "Aiming down sights increases body shot damage",
|
||||
"item.superbwarfare.head_seeker": "Head Seeker",
|
||||
"des.superbwarfare.head_seeker": "Body shots landed with this weapon increase precision damage for a short time",
|
||||
"item.superbwarfare.monster_hunter": "Monster Hunter",
|
||||
"des.superbwarfare.monster_hunter": "Increases the damage of weapon against monsters",
|
||||
|
||||
"perk.superbwarfare.tips": "[Perks]",
|
||||
"perk.superbwarfare.slot": "Type: ",
|
||||
|
@ -300,8 +302,6 @@
|
|||
"enchantment.superbwarfare.super_recharge.desc": "Increases the recharge speed of TaserGun",
|
||||
"enchantment.superbwarfare.longer_wire": "Longer Wire",
|
||||
"enchantment.superbwarfare.longer_wire.desc": "Increases the range of TaserGun",
|
||||
"enchantment.superbwarfare.monster_hunter": "Monster Hunter",
|
||||
"enchantment.superbwarfare.monster_hunter.desc": "Increases bullet damage against monsters",
|
||||
|
||||
"des.superbwarfare.sensitivity": "Current Sensitivity of This Gun: %1$s",
|
||||
"des.superbwarfare.need_bolt_action": "[ Need Bolt Action ]",
|
||||
|
|
|
@ -223,6 +223,8 @@
|
|||
"des.superbwarfare.gutshot_straight": "瞄准时增加身体射击伤害",
|
||||
"item.superbwarfare.head_seeker": "死亡寻觅者",
|
||||
"des.superbwarfare.head_seeker": "使用此武器命中身体可在短时间内提高精准伤害",
|
||||
"item.superbwarfare.monster_hunter": "怪物猎人",
|
||||
"des.superbwarfare.monster_hunter": "增加武器对怪物的伤害",
|
||||
|
||||
"perk.superbwarfare.tips": "[武器模组]",
|
||||
"perk.superbwarfare.slot": "类型: ",
|
||||
|
@ -300,8 +302,6 @@
|
|||
"enchantment.superbwarfare.super_recharge.desc": "增加泰瑟枪充能的速度",
|
||||
"enchantment.superbwarfare.longer_wire": "延长导线",
|
||||
"enchantment.superbwarfare.longer_wire.desc": "增加泰瑟枪的射程",
|
||||
"enchantment.superbwarfare.monster_hunter": "怪物猎人",
|
||||
"enchantment.superbwarfare.monster_hunter.desc": "增加对怪物的子弹伤害",
|
||||
|
||||
"des.superbwarfare.sensitivity": "当前枪械的灵敏度为:%1$s",
|
||||
"des.superbwarfare.need_bolt_action": "【需要拉栓】",
|
||||
|
|
Loading…
Add table
Reference in a new issue