移除怪物猎人附魔

This commit is contained in:
17146 2024-09-09 01:15:26 +08:00
parent dd2cda38d9
commit 10421b98f5
38 changed files with 217 additions and 192 deletions

View file

@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.ModUtils; 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.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;

View file

@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.ModUtils; 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.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;

View file

@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.ModUtils; 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.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; 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.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer; 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"); 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); super(entityRenderer);
} }
@Override @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); 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); getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
} }

View file

@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.ModUtils; 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.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;

View file

@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.ModUtils; 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.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; 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.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer; 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"); 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); super(itemGeoRenderer);
} }
@Override @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); 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); getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, 255, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);

View file

@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.layer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.ModUtils; 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.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; 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.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer; 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"); 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); super(itemGeoRenderer);
} }
@Override @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); 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); getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, light, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);

View file

@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModTags; 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.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;

View file

@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModTags; 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.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;

View file

@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModTags; 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.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;

View file

@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModTags; 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.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; 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.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
public class MinigunItemModel extends GeoModel<Minigun> { public class MinigunItemModel extends GeoModel<MinigunItem> {
@Override @Override
public ResourceLocation getAnimationResource(Minigun animatable) { public ResourceLocation getAnimationResource(MinigunItem animatable) {
return new ResourceLocation(ModUtils.MODID, "animations/minigun.animation.json"); return new ResourceLocation(ModUtils.MODID, "animations/minigun.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(Minigun animatable) { public ResourceLocation getModelResource(MinigunItem animatable) {
return new ResourceLocation(ModUtils.MODID, "geo/minigun.geo.json"); return new ResourceLocation(ModUtils.MODID, "geo/minigun.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(Minigun animatable) { public ResourceLocation getTextureResource(MinigunItem animatable) {
return new ResourceLocation(ModUtils.MODID, "textures/item/minigun.png"); return new ResourceLocation(ModUtils.MODID, "textures/item/minigun.png");
} }
@Override @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 gun = getAnimationProcessor().getBone("barrel");
CoreGeoBone shen = getAnimationProcessor().getBone("shen"); CoreGeoBone shen = getAnimationProcessor().getBone("shen");
CoreGeoBone heat_barrels = getAnimationProcessor().getBone("heatbarrels"); CoreGeoBone heat_barrels = getAnimationProcessor().getBone("heatbarrels");

View file

@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModTags; 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.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;

View file

@ -2,7 +2,7 @@ package net.mcreator.superbwarfare.client.model.item;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.init.ModTags; 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.mcreator.superbwarfare.tools.ItemNBTTool;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; 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.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel; 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"; public static final String TAG_POWER = "Power";
@Override @Override
public ResourceLocation getAnimationResource(Taser animatable) { public ResourceLocation getAnimationResource(TaserItem animatable) {
return new ResourceLocation(ModUtils.MODID, "animations/taser.animation.json"); return new ResourceLocation(ModUtils.MODID, "animations/taser.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(Taser animatable) { public ResourceLocation getModelResource(TaserItem animatable) {
return new ResourceLocation(ModUtils.MODID, "geo/taser.geo.json"); return new ResourceLocation(ModUtils.MODID, "geo/taser.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(Taser animatable) { public ResourceLocation getTextureResource(TaserItem animatable) {
return new ResourceLocation(ModUtils.MODID, "textures/item/tasergun.png"); return new ResourceLocation(ModUtils.MODID, "textures/item/tasergun.png");
} }
@Override @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 gun = getAnimationProcessor().getBone("bone");
CoreGeoBone shen = getAnimationProcessor().getBone("shen"); CoreGeoBone shen = getAnimationProcessor().getBone("shen");
CoreGeoBone bar = getAnimationProcessor().getBone("bar"); CoreGeoBone bar = getAnimationProcessor().getBone("bar");

View file

@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.client.layer.BocekLayer; import net.mcreator.superbwarfare.client.layer.BocekLayer;
import net.mcreator.superbwarfare.client.model.item.BocekItemModel; 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.network.ModVariables;
import net.mcreator.superbwarfare.tools.AnimUtils; import net.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;

View file

@ -1,7 +1,7 @@
package net.mcreator.superbwarfare.client.renderer.item; package net.mcreator.superbwarfare.client.renderer.item;
import net.mcreator.superbwarfare.client.model.item.JavelinItemModel; 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.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;

View file

@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.client.layer.M79Layer; import net.mcreator.superbwarfare.client.layer.M79Layer;
import net.mcreator.superbwarfare.client.model.item.M79ItemModel; 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.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.PlayerModel; import net.minecraft.client.model.PlayerModel;

View file

@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.client.layer.MinigunLayer; import net.mcreator.superbwarfare.client.layer.MinigunLayer;
import net.mcreator.superbwarfare.client.model.item.MinigunItemModel; 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.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.PlayerModel; import net.minecraft.client.model.PlayerModel;
@ -25,14 +25,14 @@ import software.bernie.geckolib.util.RenderUtils;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
public class MinigunItemRenderer extends GeoItemRenderer<Minigun> { public class MinigunItemRenderer extends GeoItemRenderer<MinigunItem> {
public MinigunItemRenderer() { public MinigunItemRenderer() {
super(new MinigunItemModel()); super(new MinigunItemModel());
this.addRenderLayer(new MinigunLayer(this)); this.addRenderLayer(new MinigunLayer(this));
} }
@Override @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)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@ -41,7 +41,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
protected MultiBufferSource currentBuffer; protected MultiBufferSource currentBuffer;
protected RenderType renderType; protected RenderType renderType;
public ItemDisplayContext transformType; public ItemDisplayContext transformType;
protected Minigun animatable; protected MinigunItem animatable;
private final Set<String> hiddenBones = new HashSet<>(); private final Set<String> hiddenBones = new HashSet<>();
@Override @Override
@ -53,7 +53,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
} }
@Override @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) { int packedOverlayIn, float red, float green, float blue, float alpha) {
this.currentBuffer = renderTypeBuffer; this.currentBuffer = renderTypeBuffer;
this.renderType = type; this.renderType = type;
@ -65,7 +65,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
} }
@Override @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) { float green, float blue, float alpha) {
Minecraft mc = Minecraft.getInstance(); Minecraft mc = Minecraft.getInstance();
String name = bone.getName(); String name = bone.getName();
@ -133,7 +133,7 @@ public class MinigunItemRenderer extends GeoItemRenderer<Minigun> {
} }
@Override @Override
public ResourceLocation getTextureLocation(Minigun instance) { public ResourceLocation getTextureLocation(MinigunItem instance) {
return super.getTextureLocation(instance); return super.getTextureLocation(instance);
} }
} }

View file

@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.client.layer.RpgLayer; import net.mcreator.superbwarfare.client.layer.RpgLayer;
import net.mcreator.superbwarfare.client.model.item.RpgItemModel; 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.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.PlayerModel; import net.minecraft.client.model.PlayerModel;

View file

@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.client.layer.TaserLayer; import net.mcreator.superbwarfare.client.layer.TaserLayer;
import net.mcreator.superbwarfare.client.layer.TaserLayer2; import net.mcreator.superbwarfare.client.layer.TaserLayer2;
import net.mcreator.superbwarfare.client.model.item.TaserItemModel; 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.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.PlayerModel; import net.minecraft.client.model.PlayerModel;
@ -25,7 +25,7 @@ import software.bernie.geckolib.util.RenderUtils;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
public class TaserItemRenderer extends GeoItemRenderer<Taser> { public class TaserItemRenderer extends GeoItemRenderer<TaserItem> {
public TaserItemRenderer() { public TaserItemRenderer() {
super(new TaserItemModel()); super(new TaserItemModel());
this.addRenderLayer(new TaserLayer(this)); this.addRenderLayer(new TaserLayer(this));
@ -33,7 +33,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
} }
@Override @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)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@ -42,7 +42,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
protected MultiBufferSource currentBuffer; protected MultiBufferSource currentBuffer;
protected RenderType renderType; protected RenderType renderType;
public ItemDisplayContext transformType; public ItemDisplayContext transformType;
protected Taser animatable; protected TaserItem animatable;
private final Set<String> hiddenBones = new HashSet<>(); private final Set<String> hiddenBones = new HashSet<>();
@Override @Override
@ -54,7 +54,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
} }
@Override @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) { int packedOverlayIn, float red, float green, float blue, float alpha) {
this.currentBuffer = renderTypeBuffer; this.currentBuffer = renderTypeBuffer;
this.renderType = type; this.renderType = type;
@ -66,7 +66,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
} }
@Override @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) { float green, float blue, float alpha) {
Minecraft mc = Minecraft.getInstance(); Minecraft mc = Minecraft.getInstance();
String name = bone.getName(); String name = bone.getName();
@ -113,7 +113,7 @@ public class TaserItemRenderer extends GeoItemRenderer<Taser> {
} }
@Override @Override
public ResourceLocation getTextureLocation(Taser instance) { public ResourceLocation getTextureLocation(TaserItem instance) {
return super.getTextureLocation(instance); return super.getTextureLocation(instance);
} }
} }

View file

@ -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;
}
}

View file

@ -40,17 +40,16 @@ import java.util.Optional;
public class BocekArrowEntity extends AbstractArrow implements ItemSupplier { public class BocekArrowEntity extends AbstractArrow implements ItemSupplier {
public static final ItemStack PROJECTILE_ITEM = new ItemStack(Items.ARROW); 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 bypassArmorRate = 0.0f;
private float undeadMultiple = 1.0f; private float undeadMultiplier = 1.0f;
public BocekArrowEntity(EntityType<? extends BocekArrowEntity> type, Level world) { public BocekArrowEntity(EntityType<? extends BocekArrowEntity> type, Level world) {
super(type, 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); super(ModEntities.BOCEK_ARROW.get(), entity, level);
this.monsterMultiplier = monsterMultiplier;
} }
public BocekArrowEntity(PlayMessages.SpawnEntity packet, Level world) { public BocekArrowEntity(PlayMessages.SpawnEntity packet, Level world) {
@ -62,9 +61,12 @@ public class BocekArrowEntity extends AbstractArrow implements ItemSupplier {
return this; return this;
} }
public BocekArrowEntity undeadMultiple(float undeadMultiple) { public void setUndeadMultiplier(float undeadMultiplier) {
this.undeadMultiple = undeadMultiple; this.undeadMultiplier = undeadMultiplier;
return this; }
public void setMonsterMultiplier(float monsterMultiplier) {
this.monsterMultiplier = monsterMultiplier;
} }
@Override @Override
@ -159,9 +161,9 @@ public class BocekArrowEntity extends AbstractArrow implements ItemSupplier {
boolean hurt; boolean hurt;
if (entity instanceof Monster monster) { 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 { } 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) { if (!hurt) {

View file

@ -32,23 +32,26 @@ import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.PlayMessages; import net.minecraftforge.network.PlayMessages;
public class GunGrenadeEntity extends ThrowableItemProjectile { public class GunGrenadeEntity extends ThrowableItemProjectile {
private int monsterMultiplier = 0; private float monsterMultiplier = 0.0f;
private float damage = 5f; private float damage = 5.0f;
public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, Level world) { public GunGrenadeEntity(EntityType<? extends GunGrenadeEntity> type, Level world) {
super(type, 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); super(ModEntities.GUN_GRENADE.get(), entity, level);
this.damage = damage; this.damage = damage;
this.monsterMultiplier = monsterMultiplier;
} }
public GunGrenadeEntity(PlayMessages.SpawnEntity spawnEntity, Level level) { public GunGrenadeEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
this(ModEntities.GUN_GRENADE.get(), level); this(ModEntities.GUN_GRENADE.get(), level);
} }
public void setMonsterMultiplier(float monsterMultiplier) {
this.monsterMultiplier = monsterMultiplier;
}
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
@ -66,7 +69,7 @@ public class GunGrenadeEntity extends ThrowableItemProjectile {
@Override @Override
protected void onHitEntity(EntityHitResult result) { protected void onHitEntity(EntityHitResult result) {
float damageMultiplier = 1 + 0.2f * this.monsterMultiplier; float damageMultiplier = 1 + this.monsterMultiplier;
Entity entity = result.getEntity(); Entity entity = result.getEntity();
if (this.getOwner() instanceof LivingEntity living) { if (this.getOwner() instanceof LivingEntity living) {
if (!living.level().isClientSide() && living instanceof ServerPlayer player) { if (!living.level().isClientSide() && living instanceof ServerPlayer player) {

View file

@ -53,23 +53,26 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationprocedure = "empty"; public String animationprocedure = "empty";
private int monsterMultiplier = 0; private float monsterMultiplier = 0.0f;
private float damage = 300f; private float damage = 300.0f;
public JavelinMissileEntity(EntityType<? extends JavelinMissileEntity> type, Level world) { public JavelinMissileEntity(EntityType<? extends JavelinMissileEntity> type, Level world) {
super(type, 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); super(ModEntities.JAVELIN_MISSILE.get(), entity, level);
this.damage = damage; this.damage = damage;
this.monsterMultiplier = monsterMultiplier;
} }
public JavelinMissileEntity(PlayMessages.SpawnEntity spawnEntity, Level level) { public JavelinMissileEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
this(ModEntities.JAVELIN_MISSILE.get(), level); this(ModEntities.JAVELIN_MISSILE.get(), level);
} }
public void setMonsterMultiplier(float monsterMultiplier) {
this.monsterMultiplier = monsterMultiplier;
}
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
@ -101,7 +104,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
@Override @Override
protected void onHitEntity(EntityHitResult result) { protected void onHitEntity(EntityHitResult result) {
float damageMultiplier = 1 + 0.2f * this.monsterMultiplier; float damageMultiplier = 1 + this.monsterMultiplier;
Entity entity = result.getEntity(); Entity entity = result.getEntity();
if (this.getOwner() instanceof LivingEntity living) { if (this.getOwner() instanceof LivingEntity living) {
if (!living.level().isClientSide() && living instanceof ServerPlayer player) { if (!living.level().isClientSide() && living instanceof ServerPlayer player) {
@ -172,12 +175,12 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
if (entity != null) { if (entity != null) {
if (entityData.get(TOP)) { if (entityData.get(TOP)) {
if (this.position().distanceTo(entity.position()) > 40) { if (this.position().distanceTo(entity.position()) > 40) {
this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(),entity.getY() + 30,entity.getZ())); this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(), entity.getY() + 30, entity.getZ()));
} else { } else {
this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(),entity.getEyeY() + (entity instanceof EnderDragon? -3 : 1),entity.getZ())); this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(), entity.getEyeY() + (entity instanceof EnderDragon ? -3 : 1), entity.getZ()));
} }
} else { } else {
this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(),entity.getEyeY() + (entity instanceof EnderDragon? -3 : 1),entity.getZ())); this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(), entity.getEyeY() + (entity instanceof EnderDragon ? -3 : 1), entity.getZ()));
} }
if (this.position().distanceTo(entity.position()) < 4) { if (this.position().distanceTo(entity.position()) < 4) {
triggerExplode(entity); triggerExplode(entity);
@ -211,8 +214,8 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
double d1 = (pTarget.y - vec3.y) * 0.2; double d1 = (pTarget.y - vec3.y) * 0.2;
double d2 = (pTarget.z - vec3.z) * 0.2; double d2 = (pTarget.z - vec3.z) * 0.2;
double d3 = Math.sqrt(d0 * d0 + d2 * d2); double d3 = Math.sqrt(d0 * d0 + d2 * d2);
this.setXRot(Mth.wrapDegrees((float)(-(Mth.atan2(d1, d3) * 57.2957763671875)))); this.setXRot(Mth.wrapDegrees((float) (-(Mth.atan2(d1, d3) * 57.2957763671875))));
this.setYRot(Mth.wrapDegrees((float)(Mth.atan2(d2, d0) * 57.2957763671875) - 90.0F)); this.setYRot(Mth.wrapDegrees((float) (Mth.atan2(d2, d0) * 57.2957763671875) - 90.0F));
this.setYHeadRot(this.getYRot()); this.setYHeadRot(this.getYRot());
this.xRotO = this.getXRot(); this.xRotO = this.getXRot();
this.yRotO = this.getYRot(); this.yRotO = this.getYRot();
@ -273,7 +276,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
@Override @Override
protected float getGravity() { protected float getGravity() {
return 0F ; return 0F;
} }
public String getSyncedAnimation() { public String getSyncedAnimation() {

View file

@ -65,6 +65,7 @@ import java.util.function.Function;
import java.util.function.Predicate; import java.util.function.Predicate;
import java.util.function.Supplier; import java.util.function.Supplier;
@SuppressWarnings({"unused", "UnusedReturnValue", "SuspiciousNameCombination"})
public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnData, GeoEntity, AnimatedEntity { 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_R = SynchedEntityData.defineId(ProjectileEntity.class, EntityDataSerializers.FLOAT);
public static final EntityDataAccessor<Float> COLOR_G = 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); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty"; 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 private static final Predicate<BlockState> IGNORE_LEAVES = input -> input != null && (input.getBlock() instanceof LeavesBlock
|| input.getBlock() instanceof FenceBlock || input.getBlock() instanceof FenceBlock
|| input.getBlock() instanceof IronBarsBlock || input.getBlock() instanceof IronBarsBlock
@ -82,11 +83,12 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|| input.getBlock() instanceof DoorBlock || input.getBlock() instanceof DoorBlock
|| input.getBlock() instanceof TrapDoorBlock || input.getBlock() instanceof TrapDoorBlock
|| input.getBlock() instanceof BarbedWireBlock); || input.getBlock() instanceof BarbedWireBlock);
protected LivingEntity shooter; protected LivingEntity shooter;
protected int shooterId; protected int shooterId;
private float damage = 1f; private float damage = 1f;
private float headShot = 1f; private float headShot = 1f;
private int monsterMultiple = 0; private float monsterMultiple = 0.0f;
private float legShot = 0.5f; private float legShot = 0.5f;
private boolean beast = false; private boolean beast = false;
private boolean zoom = false; private boolean zoom = false;
@ -205,25 +207,19 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
} }
Vec3 hitBoxPos = hitPos.subtract(entity.position()); Vec3 hitBoxPos = hitPos.subtract(entity.position());
boolean headshot = false; boolean headshot = false;
boolean legshot = false; boolean legShot = false;
float eyeHeight = entity.getEyeHeight(); float eyeHeight = entity.getEyeHeight();
float BodyHeight = entity.getBbHeight(); float BodyHeight = entity.getBbHeight();
if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) && !(entity instanceof ClaymoreEntity if ((eyeHeight - 0.35) < hitBoxPos.y && hitBoxPos.y < (eyeHeight + 0.4) &&
|| entity instanceof MortarEntity !(entity instanceof ClaymoreEntity || entity instanceof MortarEntity || entity instanceof ICannonEntity || entity instanceof DroneEntity)) {
|| entity instanceof ICannonEntity
|| entity instanceof DroneEntity
)) {
headshot = true; headshot = true;
} }
if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity if (hitBoxPos.y < (0.33 * BodyHeight) && !(entity instanceof ClaymoreEntity || entity instanceof MortarEntity ||
|| entity instanceof MortarEntity entity instanceof ICannonEntity || entity instanceof DroneEntity)) {
|| entity instanceof ICannonEntity legShot = true;
|| entity instanceof DroneEntity
)) {
legshot = true;
} }
return new EntityResult(entity, hitPos, headshot, legshot); return new EntityResult(entity, hitPos, headshot, legShot);
} }
@Override @Override
@ -417,7 +413,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
// TODO 实现穿甲比例大于1时的穿透生物效果 // TODO 实现穿甲比例大于1时的穿透生物效果
protected void onHitEntity(Entity entity, boolean headshot, boolean legShot) { 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; 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_) { private static <T> T performRayTrace(ClipContext context, BiFunction<ClipContext, BlockPos, T> hitFunction, Function<ClipContext, T> p_217300_2_) {
Vec3 startVec = context.getFrom(); Vec3 startVec = context.getFrom();
Vec3 endVec = context.getTo(); Vec3 endVec = context.getTo();
if (startVec.equals(endVec)) { if (!startVec.equals(endVec)) {
return p_217300_2_.apply(context);
} else {
double startX = Mth.lerp(-0.0000001, endVec.x, startVec.x); double startX = Mth.lerp(-0.0000001, endVec.x, startVec.x);
double startY = Mth.lerp(-0.0000001, endVec.y, startVec.y); double startY = Mth.lerp(-0.0000001, endVec.y, startVec.y);
double startZ = Mth.lerp(-0.0000001, endVec.z, startVec.z); double startZ = Mth.lerp(-0.0000001, endVec.z, startVec.z);
@ -601,9 +595,8 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
return t1; return t1;
} }
} }
return p_217300_2_.apply(context);
} }
return p_217300_2_.apply(context);
} }
public LivingEntity getShooter() { public LivingEntity getShooter() {
@ -735,7 +728,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
return this; return this;
} }
public ProjectileEntity monsterMultiple(int monsterMultiple) { public ProjectileEntity monsterMultiple(float monsterMultiple) {
this.monsterMultiple = monsterMultiple; this.monsterMultiple = monsterMultiple;
return this; return this;
} }

View file

@ -48,23 +48,26 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit
public String animationprocedure = "empty"; public String animationprocedure = "empty";
private int monsterMultiplier = 0; private float monsterMultiplier = 0.0f;
private float damage = 150f; private float damage = 150f;
public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, Level world) { public RpgRocketEntity(EntityType<? extends RpgRocketEntity> type, Level world) {
super(type, 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); super(ModEntities.RPG_ROCKET.get(), entity, level);
this.damage = damage; this.damage = damage;
this.monsterMultiplier = monsterMultiplier;
} }
public RpgRocketEntity(PlayMessages.SpawnEntity spawnEntity, Level level) { public RpgRocketEntity(PlayMessages.SpawnEntity spawnEntity, Level level) {
this(ModEntities.RPG_ROCKET.get(), level); this(ModEntities.RPG_ROCKET.get(), level);
} }
public void setMonsterMultiplier(float monsterMultiplier) {
this.monsterMultiplier = monsterMultiplier;
}
@Override @Override
public Packet<ClientGamePacketListener> getAddEntityPacket() { public Packet<ClientGamePacketListener> getAddEntityPacket() {
return NetworkHooks.getEntitySpawningPacket(this); return NetworkHooks.getEntitySpawningPacket(this);
@ -82,7 +85,7 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit
@Override @Override
protected void onHitEntity(EntityHitResult result) { protected void onHitEntity(EntityHitResult result) {
float damageMultiplier = 1 + 0.2f * this.monsterMultiplier; float damageMultiplier = 1 + this.monsterMultiplier;
Entity entity = result.getEntity(); Entity entity = result.getEntity();
if (this.getOwner() instanceof LivingEntity living) { if (this.getOwner() instanceof LivingEntity living) {
if (!living.level().isClientSide() && living instanceof ServerPlayer player) { if (!living.level().isClientSide() && living instanceof ServerPlayer player) {

View file

@ -3,7 +3,10 @@ package net.mcreator.superbwarfare.event;
import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.entity.ProjectileEntity; import net.mcreator.superbwarfare.entity.ProjectileEntity;
import net.mcreator.superbwarfare.event.modevent.ReloadEvent; 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.network.ModVariables;
import net.mcreator.superbwarfare.perk.AmmoPerk; import net.mcreator.superbwarfare.perk.AmmoPerk;
import net.mcreator.superbwarfare.perk.Perk; 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.effect.MobEffectInstance;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.TickEvent;
@ -352,7 +354,6 @@ public class GunEventHandler {
if (!player.level().isClientSide()) { if (!player.level().isClientSide()) {
float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot"); 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"); 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; boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
@ -363,8 +364,7 @@ public class GunEventHandler {
.shooter(player) .shooter(player)
.damage(damage) .damage(damage)
.headShot(headshot) .headShot(headshot)
.zoom(zoom) .zoom(zoom);
.monsterMultiple(monsterMultiple);
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor"); float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO); var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
@ -396,6 +396,12 @@ public class GunEventHandler {
projectile.beast(); 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.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"), projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, 1 * (float) heldItem.getOrCreateTag().getDouble("velocity"),
(float) (zoom ? zoomSpread : spread)); (float) (zoom ? zoomSpread : spread));

View file

@ -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> 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> 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> LONGER_WIRE = REGISTRY.register("longer_wire", LongerWire::new);
public static final RegistryObject<Enchantment> MONSTER_HUNTER = REGISTRY.register("monster_hunter", MonsterHunter::new);
} }

View file

@ -5,14 +5,16 @@ import net.mcreator.superbwarfare.item.*;
import net.mcreator.superbwarfare.item.common.BlueprintItem; import net.mcreator.superbwarfare.item.common.BlueprintItem;
import net.mcreator.superbwarfare.item.common.MaterialPack; import net.mcreator.superbwarfare.item.common.MaterialPack;
import net.mcreator.superbwarfare.item.common.ammo.*; 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.Glock17Item;
import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item; import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item;
import net.mcreator.superbwarfare.item.gun.handgun.M1911Item; import net.mcreator.superbwarfare.item.gun.handgun.M1911Item;
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium; 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.DevotionItem;
import net.mcreator.superbwarfare.item.gun.machinegun.M60Item; 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.machinegun.RpkItem;
import net.mcreator.superbwarfare.item.gun.rifle.*; import net.mcreator.superbwarfare.item.gun.rifle.*;
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item; 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.shotgun.M870Item;
import net.mcreator.superbwarfare.item.gun.smg.VectorItem; import net.mcreator.superbwarfare.item.gun.smg.VectorItem;
import net.mcreator.superbwarfare.item.gun.sniper.*; 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.mcreator.superbwarfare.tools.RarityTool;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item; 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 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_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> GLOCK_18 = GUNS.register("glock_18", Glock18Item::new);
public static final RegistryObject<Item> M_1911 = GUNS.register("m_1911", M1911Item::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> DEVOTION = GUNS.register("devotion", DevotionItem::new);
public static final RegistryObject<Item> RPK = GUNS.register("rpk", RpkItem::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> 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> M_79 = GUNS.register("m_79", M79Item::new);
public static final RegistryObject<Item> RPG = GUNS.register("rpg", RpgItem::new); public static final RegistryObject<Item> RPG = GUNS.register("rpg", RpgItem::new);
public static final RegistryObject<Item> JAVELIN = GUNS.register("javelin", JavelinItem::new); public static final RegistryObject<Item> JAVELIN = GUNS.register("javelin", JavelinItem::new);

View file

@ -1,14 +1,16 @@
package net.mcreator.superbwarfare.init; package net.mcreator.superbwarfare.init;
import net.mcreator.superbwarfare.ModUtils; 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.Glock17Item;
import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item; import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item;
import net.mcreator.superbwarfare.item.gun.handgun.M1911Item; import net.mcreator.superbwarfare.item.gun.handgun.M1911Item;
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium; 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.DevotionItem;
import net.mcreator.superbwarfare.item.gun.machinegun.M60Item; 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.machinegun.RpkItem;
import net.mcreator.superbwarfare.item.gun.rifle.*; import net.mcreator.superbwarfare.item.gun.rifle.*;
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item; 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.shotgun.M870Item;
import net.mcreator.superbwarfare.item.gun.smg.VectorItem; import net.mcreator.superbwarfare.item.gun.smg.VectorItem;
import net.mcreator.superbwarfare.item.gun.sniper.*; 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.core.registries.Registries;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.CreativeModeTab;
@ -37,7 +41,7 @@ public class ModTabs {
.icon(() -> new ItemStack(ModItems.TASER.get())) .icon(() -> new ItemStack(ModItems.TASER.get()))
.displayItems( .displayItems(
(param, output) -> { (param, output) -> {
output.accept(Taser.getGunInstance()); output.accept(TaserItem.getGunInstance());
output.accept(Glock17Item.getGunInstance()); output.accept(Glock17Item.getGunInstance());
output.accept(Glock18Item.getGunInstance()); output.accept(Glock18Item.getGunInstance());
output.accept(M1911Item.getGunInstance()); output.accept(M1911Item.getGunInstance());
@ -63,7 +67,7 @@ public class ModTabs {
output.accept(DevotionItem.getGunInstance()); output.accept(DevotionItem.getGunInstance());
output.accept(RpkItem.getGunInstance()); output.accept(RpkItem.getGunInstance());
output.accept(M60Item.getGunInstance()); output.accept(M60Item.getGunInstance());
output.accept(Minigun.getGunInstance()); output.accept(MinigunItem.getGunInstance());
output.accept(BocekItem.getGunInstance()); output.accept(BocekItem.getGunInstance());
output.accept(M79Item.getGunInstance()); output.accept(M79Item.getGunInstance());
output.accept(RpgItem.getGunInstance()); output.accept(RpgItem.getGunInstance());

View file

@ -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.HashMultimap;
import com.google.common.collect.Multimap; 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.ModSounds;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.AnimatedItem;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.tools.*; import net.mcreator.superbwarfare.tools.*;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.HumanoidModel;

View file

@ -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.HashMultimap;
import com.google.common.collect.Multimap; 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.ModSounds;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.AnimatedItem;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.PoseTool; import net.mcreator.superbwarfare.tools.PoseTool;
import net.mcreator.superbwarfare.tools.TooltipTool; import net.mcreator.superbwarfare.tools.TooltipTool;

View file

@ -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.HashMultimap;
import com.google.common.collect.Multimap; 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.ModSounds;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.AnimatedItem;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.PoseTool; import net.mcreator.superbwarfare.tools.PoseTool;
import net.mcreator.superbwarfare.tools.TooltipTool; import net.mcreator.superbwarfare.tools.TooltipTool;

View file

@ -45,13 +45,13 @@ import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer; 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 static final String TAG_HEAT = "heat";
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty"; public String animationProcedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public Minigun() { public MinigunItem() {
super(new Item.Properties().stacksTo(1).rarity(RarityTool.LEGENDARY)); super(new Item.Properties().stacksTo(1).rarity(RarityTool.LEGENDARY));
} }
@ -107,7 +107,7 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
transformType = type; transformType = type;
} }
private PlayState idlePredicate(AnimationState<Minigun> event) { private PlayState idlePredicate(AnimationState<MinigunItem> event) {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP; if (player == null) return PlayState.STOP;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
@ -131,7 +131,7 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState<Minigun> event) { private PlayState procedurePredicate(AnimationState<MinigunItem> event) {
if (transformType != null && transformType.firstPerson()) { if (transformType != null && transformType.firstPerson()) {
if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure));

View file

@ -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.HashMultimap;
import com.google.common.collect.Multimap; 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.ModItems;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.AnimatedItem;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.TooltipTool; import net.mcreator.superbwarfare.tools.TooltipTool;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;

View file

@ -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.HashMultimap;
import com.google.common.collect.Multimap; 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.ModSounds;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.AnimatedItem; import net.mcreator.superbwarfare.item.AnimatedItem;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.tools.*; import net.mcreator.superbwarfare.tools.*;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.HumanoidModel;
@ -46,14 +47,14 @@ import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer; 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); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty"; public String animationProcedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public static final String TAG_POWER = "Power"; public static final String TAG_POWER = "Power";
public static final int MAX_POWER_SIZE = 1200; public static final int MAX_POWER_SIZE = 1200;
public Taser() { public TaserItem() {
super(new Item.Properties().stacksTo(1).rarity(Rarity.COMMON)); super(new Item.Properties().stacksTo(1).rarity(Rarity.COMMON));
} }
@ -147,9 +148,9 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem {
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { 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); 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); data.add(idleController);
} }

View file

@ -84,9 +84,9 @@ public class FireMessage {
var handItem = player.getMainHandItem(); var handItem = player.getMainHandItem();
var tag = handItem.getOrCreateTag(); var tag = handItem.getOrCreateTag();
handleJavelinFire(player); handleJavelinFire(player);
tag.putBoolean("Seeking",false); tag.putBoolean("Seeking", false);
tag.putInt("SeekTime",0); tag.putInt("SeekTime", 0);
tag.putString("TargetEntity","none"); tag.putString("TargetEntity", "none");
if (player instanceof ServerPlayer serverPlayer) { if (player instanceof ServerPlayer serverPlayer) {
var clientboundstopsoundpacket = new ClientboundStopSoundPacket(new ResourceLocation(ModUtils.MODID, "javelin_lock"), SoundSource.PLAYERS); var clientboundstopsoundpacket = new ClientboundStopSoundPacket(new ResourceLocation(ModUtils.MODID, "javelin_lock"), SoundSource.PLAYERS);
serverPlayer.connection.send(clientboundstopsoundpacket); serverPlayer.connection.send(clientboundstopsoundpacket);
@ -119,9 +119,9 @@ public class FireMessage {
if (handItem.getItem() == ModItems.JAVELIN.get() && player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming && tag.getInt("ammo") > 0) { if (handItem.getItem() == ModItems.JAVELIN.get() && player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming && tag.getInt("ammo") > 0) {
Entity seekingEntity = SeekTool.seekEntity(player, player.level(), 384, 8); Entity seekingEntity = SeekTool.seekEntity(player, player.level(), 384, 8);
if (seekingEntity != null) { if (seekingEntity != null) {
tag.putString("TargetEntity",seekingEntity.getStringUUID()); tag.putString("TargetEntity", seekingEntity.getStringUUID());
tag.putBoolean("Seeking",true); tag.putBoolean("Seeking", true);
tag.putInt("SeekTime",0); tag.putInt("SeekTime", 0);
} }
} }
@ -182,15 +182,15 @@ public class FireMessage {
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) { if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) {
Level level = player.level(); Level level = player.level();
if (!level.isClientSide()) { 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 damage = (float) (0.04 * stack.getOrCreateTag().getDouble("damage") * (1 + 0.05 * stack.getOrCreateTag().getInt("level")));
float bypassArmorRate = (float) stack.getOrCreateTag().getDouble("BypassArmor"); float bypassArmorRate = (float) stack.getOrCreateTag().getDouble("BypassArmor");
BocekArrowEntity arrow = new BocekArrowEntity(player, level);
ProjectileEntity projectile = new ProjectileEntity(player.level()) ProjectileEntity projectile = new ProjectileEntity(player.level())
.shooter(player) .shooter(player)
.headShot(1) .headShot(1)
.zoom(true) .zoom(true);
.monsterMultiple(1);
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO); var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
if (perk instanceof AmmoPerk ammoPerk) { if (perk instanceof AmmoPerk ammoPerk) {
@ -207,12 +207,19 @@ public class FireMessage {
float undeadMultiple = 1; float undeadMultiple = 1;
if (perk == ModPerks.SILVER_BULLET.get()) { if (perk == ModPerks.SILVER_BULLET.get()) {
int level_ = PerkHelper.getItemPerkLevel(perk, stack); int perkLevel = PerkHelper.getItemPerkLevel(perk, stack);
undeadMultiple = 1.0f + 0.5f * level_; undeadMultiple = 1.0f + 0.5f * perkLevel;
} else if (perk == ModPerks.BEAST_BULLET.get()) { } else if (perk == ModPerks.BEAST_BULLET.get()) {
projectile.beast(); 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.bypassArmorRate(0);
projectile.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ()); 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); 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); 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.setBaseDamage(damage);
arrow.setKnockback(0); arrow.setKnockback(0);
arrow.setSilent(true); arrow.setSilent(true);
@ -286,15 +293,13 @@ public class FireMessage {
double damage; double damage;
float headshot = (float) tag.getDouble("headshot"); float headshot = (float) tag.getDouble("headshot");
float velocity = 2 * (float) tag.getDouble("speed"); 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; boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom;
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor"); float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
ProjectileEntity projectile = new ProjectileEntity(player.level()) ProjectileEntity projectile = new ProjectileEntity(player.level())
.shooter(player) .shooter(player)
.headShot(headshot) .headShot(headshot)
.zoom(zoom) .zoom(zoom);
.monsterMultiple(monsterMultiple);
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO); var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
if (perk instanceof AmmoPerk ammoPerk) { if (perk instanceof AmmoPerk ammoPerk) {
@ -318,6 +323,12 @@ public class FireMessage {
projectile.beast(); 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); 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"); damage = 2 * 0.008333333 * tag.getDouble("damage") * tag.getDouble("speed") * tag.getDouble("levelDamageMultiple");
@ -373,15 +384,20 @@ public class FireMessage {
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (!stack.getOrCreateTag().getBoolean("reloading")) { if (!stack.getOrCreateTag().getBoolean("reloading")) {
if (!player.getCooldowns().isOnCooldown(stack.getItem()) && stack.getOrCreateTag().getInt("ammo") > 0) { 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; boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = stack.getOrCreateTag().getDouble("spread"); double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread"); double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
Level level = player.level(); Level level = player.level();
if (!level.isClientSide()) { if (!level.isClientSide()) {
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), stack); GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level,
GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(player, level, (float) stack.getOrCreateTag().getDouble("damage") * (float) stack.getOrCreateTag().getDouble("levelDamageMultiple"), monsterMultiple); (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.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"), 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; if (player.isSpectator()) return;
Level level = player.level(); Level level = player.level();
ItemStack mainHandItem = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
CompoundTag tag = mainHandItem.getOrCreateTag(); CompoundTag tag = stack.getOrCreateTag();
if (!tag.getBoolean("reloading") && !player.getCooldowns().isOnCooldown(mainHandItem.getItem()) && tag.getInt("ammo") > 0) {
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; boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming;
double spread = mainHandItem.getOrCreateTag().getDouble("spread"); double spread = stack.getOrCreateTag().getDouble("spread");
double zoomSpread = mainHandItem.getOrCreateTag().getDouble("zoomSpread"); double zoomSpread = stack.getOrCreateTag().getDouble("zoomSpread");
if (!level.isClientSide()) { if (!level.isClientSide()) {
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem); RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level,
RpgRocketEntity rocketEntity = new RpgRocketEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple); (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.setPos(player.getX(), player.getEyeY() - 0.1, player.getZ());
rocketEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) tag.getDouble("velocity"), rocketEntity.shoot(player.getLookAngle().x, player.getLookAngle().y, player.getLookAngle().z, (float) tag.getDouble("velocity"),
(float) (zoom ? zoomSpread : spread)); (float) (zoom ? zoomSpread : spread));
@ -446,7 +468,7 @@ public class FireMessage {
tag.putBoolean("close_hammer", true); tag.putBoolean("close_hammer", true);
} }
player.getCooldowns().addCooldown(mainHandItem.getItem(), 10); player.getCooldowns().addCooldown(stack.getItem(), 10);
if (player instanceof ServerPlayer serverPlayer) { if (player instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.RPG_FIRE_1P.get(), 2, 1); SoundTool.playLocalSound(serverPlayer, ModSounds.RPG_FIRE_1P.get(), 2, 1);
@ -466,8 +488,8 @@ public class FireMessage {
if (player.isSpectator()) return; if (player.isSpectator()) return;
Level level = player.level(); Level level = player.level();
ItemStack mainHandItem = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
CompoundTag tag = mainHandItem.getOrCreateTag(); CompoundTag tag = stack.getOrCreateTag();
if (tag.getInt("SeekTime") < 20) return; if (tag.getInt("SeekTime") < 20) return;
@ -482,8 +504,15 @@ public class FireMessage {
firePos.rotateY(-yRot * Mth.DEG_TO_RAD); firePos.rotateY(-yRot * Mth.DEG_TO_RAD);
if (!level.isClientSide()) { if (!level.isClientSide()) {
int monsterMultiple = EnchantmentHelper.getTagEnchantmentLevel(ModEnchantments.MONSTER_HUNTER.get(), mainHandItem); JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level,
JavelinMissileEntity missileEntity = new JavelinMissileEntity(player, level, (float) tag.getDouble("damage") * (float) tag.getDouble("levelDamageMultiple"), monsterMultiple); (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.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.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.3, player.getLookAngle().z, 3f, 1);
missileEntity.setTargetUuid(tag.getString("TargetEntity")); missileEntity.setTargetUuid(tag.getString("TargetEntity"));
@ -498,7 +527,7 @@ public class FireMessage {
30, 0.4, 0.4, 0.4, 0.005, true); 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) { if (player instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.JAVELIN_FIRE_1P.get(), 2, 1); SoundTool.playLocalSound(serverPlayer, ModSounds.JAVELIN_FIRE_1P.get(), 2, 1);

View file

@ -2,14 +2,14 @@ package net.mcreator.superbwarfare.tools;
import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.gun.GunItem; 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; import net.minecraft.world.item.enchantment.EnchantmentCategory;
public class EnchantmentCategoryTool { public class EnchantmentCategoryTool {
public static final EnchantmentCategory TASER = EnchantmentCategory.create("superbwarfare:taser", 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", 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", public static final EnchantmentCategory CAN_RELOAD = EnchantmentCategory.create("superbwarfare:can_reload",
item -> item.getDefaultInstance().is(ModTags.Items.CAN_RELOAD)); item -> item.getDefaultInstance().is(ModTags.Items.CAN_RELOAD));
} }

View file

@ -223,6 +223,8 @@
"des.superbwarfare.gutshot_straight": "Aiming down sights increases body shot damage", "des.superbwarfare.gutshot_straight": "Aiming down sights increases body shot damage",
"item.superbwarfare.head_seeker": "Head Seeker", "item.superbwarfare.head_seeker": "Head Seeker",
"des.superbwarfare.head_seeker": "Body shots landed with this weapon increase precision damage for a short time", "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.tips": "[Perks]",
"perk.superbwarfare.slot": "Type: ", "perk.superbwarfare.slot": "Type: ",
@ -300,8 +302,6 @@
"enchantment.superbwarfare.super_recharge.desc": "Increases the recharge speed of TaserGun", "enchantment.superbwarfare.super_recharge.desc": "Increases the recharge speed of TaserGun",
"enchantment.superbwarfare.longer_wire": "Longer Wire", "enchantment.superbwarfare.longer_wire": "Longer Wire",
"enchantment.superbwarfare.longer_wire.desc": "Increases the range of TaserGun", "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.sensitivity": "Current Sensitivity of This Gun: %1$s",
"des.superbwarfare.need_bolt_action": "[ Need Bolt Action ]", "des.superbwarfare.need_bolt_action": "[ Need Bolt Action ]",

View file

@ -223,6 +223,8 @@
"des.superbwarfare.gutshot_straight": "瞄准时增加身体射击伤害", "des.superbwarfare.gutshot_straight": "瞄准时增加身体射击伤害",
"item.superbwarfare.head_seeker": "死亡寻觅者", "item.superbwarfare.head_seeker": "死亡寻觅者",
"des.superbwarfare.head_seeker": "使用此武器命中身体可在短时间内提高精准伤害", "des.superbwarfare.head_seeker": "使用此武器命中身体可在短时间内提高精准伤害",
"item.superbwarfare.monster_hunter": "怪物猎人",
"des.superbwarfare.monster_hunter": "增加武器对怪物的伤害",
"perk.superbwarfare.tips": "[武器模组]", "perk.superbwarfare.tips": "[武器模组]",
"perk.superbwarfare.slot": "类型: ", "perk.superbwarfare.slot": "类型: ",
@ -300,8 +302,6 @@
"enchantment.superbwarfare.super_recharge.desc": "增加泰瑟枪充能的速度", "enchantment.superbwarfare.super_recharge.desc": "增加泰瑟枪充能的速度",
"enchantment.superbwarfare.longer_wire": "延长导线", "enchantment.superbwarfare.longer_wire": "延长导线",
"enchantment.superbwarfare.longer_wire.desc": "增加泰瑟枪的射程", "enchantment.superbwarfare.longer_wire.desc": "增加泰瑟枪的射程",
"enchantment.superbwarfare.monster_hunter": "怪物猎人",
"enchantment.superbwarfare.monster_hunter.desc": "增加对怪物的子弹伤害",
"des.superbwarfare.sensitivity": "当前枪械的灵敏度为:%1$s", "des.superbwarfare.sensitivity": "当前枪械的灵敏度为:%1$s",
"des.superbwarfare.need_bolt_action": "【需要拉栓】", "des.superbwarfare.need_bolt_action": "【需要拉栓】",