移除怪物猎人附魔

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.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;

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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");

View file

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

View file

@ -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");

View file

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

View file

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

View file

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

View file

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

View file

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

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.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);
}
}

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 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) {

View file

@ -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) {

View file

@ -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) {
@ -172,12 +175,12 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
if (entity != null) {
if (entityData.get(TOP)) {
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 {
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 {
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) {
triggerExplode(entity);
@ -211,8 +214,8 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
double d1 = (pTarget.y - vec3.y) * 0.2;
double d2 = (pTarget.z - vec3.z) * 0.2;
double d3 = Math.sqrt(d0 * d0 + d2 * d2);
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.setXRot(Mth.wrapDegrees((float) (-(Mth.atan2(d1, d3) * 57.2957763671875))));
this.setYRot(Mth.wrapDegrees((float) (Mth.atan2(d2, d0) * 57.2957763671875) - 90.0F));
this.setYHeadRot(this.getYRot());
this.xRotO = this.getXRot();
this.yRotO = this.getYRot();
@ -273,7 +276,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo
@Override
protected float getGravity() {
return 0F ;
return 0F;
}
public String getSyncedAnimation() {

View file

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

View file

@ -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) {

View file

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

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

View file

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

View file

@ -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());

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.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;

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.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;

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.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;

View file

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

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.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;

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.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);
}

View file

@ -84,9 +84,9 @@ public class FireMessage {
var handItem = player.getMainHandItem();
var tag = handItem.getOrCreateTag();
handleJavelinFire(player);
tag.putBoolean("Seeking",false);
tag.putInt("SeekTime",0);
tag.putString("TargetEntity","none");
tag.putBoolean("Seeking", false);
tag.putInt("SeekTime", 0);
tag.putString("TargetEntity", "none");
if (player instanceof ServerPlayer serverPlayer) {
var clientboundstopsoundpacket = new ClientboundStopSoundPacket(new ResourceLocation(ModUtils.MODID, "javelin_lock"), SoundSource.PLAYERS);
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) {
Entity seekingEntity = SeekTool.seekEntity(player, player.level(), 384, 8);
if (seekingEntity != null) {
tag.putString("TargetEntity",seekingEntity.getStringUUID());
tag.putBoolean("Seeking",true);
tag.putInt("SeekTime",0);
tag.putString("TargetEntity", seekingEntity.getStringUUID());
tag.putBoolean("Seeking", true);
tag.putInt("SeekTime", 0);
}
}
@ -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);

View file

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

View file

@ -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 ]",

View file

@ -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": "【需要拉栓】",