添加了大部分的perk类型

This commit is contained in:
17146 2024-09-09 00:51:29 +08:00
parent 0fdc5cb086
commit dd2cda38d9
39 changed files with 206 additions and 135 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.Aa12Item;
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item;
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.Abekiri;
import net.mcreator.superbwarfare.item.gun.shotgun.AbekiriItem;
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 AbekiriLayer extends GeoRenderLayer<Abekiri> {
public class AbekiriLayer extends GeoRenderLayer<AbekiriItem> {
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/abekiri_e.png");
public AbekiriLayer(GeoRenderer<Abekiri> entityRenderer) {
public AbekiriLayer(GeoRenderer<AbekiriItem> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, Abekiri animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
public void render(PoseStack poseStack, AbekiriItem 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.Devotion;
import net.mcreator.superbwarfare.item.gun.machinegun.DevotionItem;
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 DevotionLayer extends GeoRenderLayer<Devotion> {
public class DevotionLayer extends GeoRenderLayer<DevotionItem> {
private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/devotion_e.png");
public DevotionLayer(GeoRenderer<Devotion> entityRenderer) {
public DevotionLayer(GeoRenderer<DevotionItem> entityRenderer) {
super(entityRenderer);
}
@Override
public void render(PoseStack poseStack, Devotion animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
public void render(PoseStack poseStack, DevotionItem 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.M60Item;
import net.mcreator.superbwarfare.item.gun.machinegun.M60Item;
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.M870Item;
import net.mcreator.superbwarfare.item.gun.shotgun.M870Item;
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.Minigun;
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
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.RpkItem;
import net.mcreator.superbwarfare.item.gun.machinegun.RpkItem;
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.VectorItem;
import net.mcreator.superbwarfare.item.gun.smg.VectorItem;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;

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.Aa12Item;
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item;
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.Abekiri;
import net.mcreator.superbwarfare.item.gun.shotgun.AbekiriItem;
import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
@ -12,24 +12,24 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
public class AbekiriItemModel extends GeoModel<Abekiri> {
public class AbekiriItemModel extends GeoModel<AbekiriItem> {
@Override
public ResourceLocation getAnimationResource(Abekiri animatable) {
public ResourceLocation getAnimationResource(AbekiriItem animatable) {
return new ResourceLocation(ModUtils.MODID, "animations/abekiri.animation.json");
}
@Override
public ResourceLocation getModelResource(Abekiri animatable) {
public ResourceLocation getModelResource(AbekiriItem animatable) {
return new ResourceLocation(ModUtils.MODID, "geo/abekiri.geo.json");
}
@Override
public ResourceLocation getTextureResource(Abekiri animatable) {
public ResourceLocation getTextureResource(AbekiriItem animatable) {
return new ResourceLocation(ModUtils.MODID, "textures/item/abekiri.png");
}
@Override
public void setCustomAnimations(Abekiri animatable, long instanceId, AnimationState animationState) {
public void setCustomAnimations(AbekiriItem animatable, long instanceId, AnimationState animationState) {
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
CoreGeoBone shen = getAnimationProcessor().getBone("shen");

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.Devotion;
import net.mcreator.superbwarfare.item.gun.machinegun.DevotionItem;
import net.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation;
@ -13,25 +13,25 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
public class DevotionItemModel extends GeoModel<Devotion> {
public class DevotionItemModel extends GeoModel<DevotionItem> {
@Override
public ResourceLocation getAnimationResource(Devotion animatable) {
public ResourceLocation getAnimationResource(DevotionItem animatable) {
return new ResourceLocation(ModUtils.MODID, "animations/devotion.animation.json");
}
@Override
public ResourceLocation getModelResource(Devotion animatable) {
public ResourceLocation getModelResource(DevotionItem animatable) {
return new ResourceLocation(ModUtils.MODID, "geo/devotion.geo.json");
}
@Override
public ResourceLocation getTextureResource(Devotion animatable) {
public ResourceLocation getTextureResource(DevotionItem animatable) {
return new ResourceLocation(ModUtils.MODID, "textures/item/devotion.png");
}
@Override
public void setCustomAnimations(Devotion animatable, long instanceId, AnimationState animationState) {
public void setCustomAnimations(DevotionItem animatable, long instanceId, AnimationState animationState) {
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
CoreGeoBone l = getAnimationProcessor().getBone("l");
CoreGeoBone r = getAnimationProcessor().getBone("r");

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.M60Item;
import net.mcreator.superbwarfare.item.gun.machinegun.M60Item;
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.M870Item;
import net.mcreator.superbwarfare.item.gun.shotgun.M870Item;
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.Minigun;
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
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.RpkItem;
import net.mcreator.superbwarfare.item.gun.machinegun.RpkItem;
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.VectorItem;
import net.mcreator.superbwarfare.item.gun.smg.VectorItem;
import net.mcreator.superbwarfare.network.ModVariables;
import net.minecraft.client.Minecraft;
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.Aa12Layer;
import net.mcreator.superbwarfare.client.model.item.Aa12ItemModel;
import net.mcreator.superbwarfare.item.gun.Aa12Item;
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item;
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.AbekiriLayer;
import net.mcreator.superbwarfare.client.model.item.AbekiriItemModel;
import net.mcreator.superbwarfare.item.gun.Abekiri;
import net.mcreator.superbwarfare.item.gun.shotgun.AbekiriItem;
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 AbekiriItemRenderer extends GeoItemRenderer<Abekiri> {
public class AbekiriItemRenderer extends GeoItemRenderer<AbekiriItem> {
public AbekiriItemRenderer() {
super(new AbekiriItemModel());
this.addRenderLayer(new AbekiriLayer(this));
}
@Override
public RenderType getRenderType(Abekiri animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
public RenderType getRenderType(AbekiriItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@ -41,7 +41,7 @@ public class AbekiriItemRenderer extends GeoItemRenderer<Abekiri> {
protected MultiBufferSource currentBuffer;
protected RenderType renderType;
public ItemDisplayContext transformType;
protected Abekiri animatable;
protected AbekiriItem animatable;
private final Set<String> hiddenBones = new HashSet<>();
@Override
@ -53,7 +53,7 @@ public class AbekiriItemRenderer extends GeoItemRenderer<Abekiri> {
}
@Override
public void actuallyRender(PoseStack matrixStackIn, Abekiri animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
public void actuallyRender(PoseStack matrixStackIn, AbekiriItem 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 AbekiriItemRenderer extends GeoItemRenderer<Abekiri> {
}
@Override
public void renderRecursively(PoseStack stack, Abekiri animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red,
public void renderRecursively(PoseStack stack, AbekiriItem 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();
@ -128,7 +128,7 @@ public class AbekiriItemRenderer extends GeoItemRenderer<Abekiri> {
}
@Override
public ResourceLocation getTextureLocation(Abekiri instance) {
public ResourceLocation getTextureLocation(AbekiriItem 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.DevotionLayer;
import net.mcreator.superbwarfare.client.model.item.DevotionItemModel;
import net.mcreator.superbwarfare.item.gun.Devotion;
import net.mcreator.superbwarfare.item.gun.machinegun.DevotionItem;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft;
@ -26,14 +26,14 @@ import software.bernie.geckolib.util.RenderUtils;
import java.util.HashSet;
import java.util.Set;
public class DevotionItemRenderer extends GeoItemRenderer<Devotion> {
public class DevotionItemRenderer extends GeoItemRenderer<DevotionItem> {
public DevotionItemRenderer() {
super(new DevotionItemModel());
this.addRenderLayer(new DevotionLayer(this));
}
@Override
public RenderType getRenderType(Devotion animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
public RenderType getRenderType(DevotionItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable));
}
@ -42,7 +42,7 @@ public class DevotionItemRenderer extends GeoItemRenderer<Devotion> {
protected MultiBufferSource currentBuffer;
protected RenderType renderType;
public ItemDisplayContext transformType;
protected Devotion animatable;
protected DevotionItem animatable;
private final Set<String> hiddenBones = new HashSet<>();
@Override
@ -54,7 +54,7 @@ public class DevotionItemRenderer extends GeoItemRenderer<Devotion> {
}
@Override
public void actuallyRender(PoseStack matrixStackIn, Devotion animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
public void actuallyRender(PoseStack matrixStackIn, DevotionItem 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 DevotionItemRenderer extends GeoItemRenderer<Devotion> {
}
@Override
public void renderRecursively(PoseStack stack, Devotion animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red,
public void renderRecursively(PoseStack stack, DevotionItem 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();
@ -141,7 +141,7 @@ public class DevotionItemRenderer extends GeoItemRenderer<Devotion> {
}
@Override
public ResourceLocation getTextureLocation(Devotion instance) {
public ResourceLocation getTextureLocation(DevotionItem 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.M60Layer;
import net.mcreator.superbwarfare.client.model.item.M60ItemModel;
import net.mcreator.superbwarfare.item.gun.M60Item;
import net.mcreator.superbwarfare.item.gun.machinegun.M60Item;
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.M870Layer;
import net.mcreator.superbwarfare.client.model.item.M870ItemModel;
import net.mcreator.superbwarfare.item.gun.M870Item;
import net.mcreator.superbwarfare.item.gun.shotgun.M870Item;
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.Minigun;
import net.mcreator.superbwarfare.item.gun.machinegun.Minigun;
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.RpkLayer;
import net.mcreator.superbwarfare.client.model.item.RpkItemModel;
import net.mcreator.superbwarfare.item.gun.RpkItem;
import net.mcreator.superbwarfare.item.gun.machinegun.RpkItem;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft;

View file

@ -4,7 +4,7 @@ import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.superbwarfare.client.layer.VectorLayer;
import net.mcreator.superbwarfare.client.model.item.VectorItemModel;
import net.mcreator.superbwarfare.item.gun.VectorItem;
import net.mcreator.superbwarfare.item.gun.smg.VectorItem;
import net.mcreator.superbwarfare.network.ModVariables;
import net.mcreator.superbwarfare.tools.AnimUtils;
import net.minecraft.client.Minecraft;

View file

@ -10,7 +10,15 @@ 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.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.RpkItem;
import net.mcreator.superbwarfare.item.gun.rifle.*;
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item;
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.tools.RarityTool;
import net.minecraft.world.item.BlockItem;
@ -37,7 +45,7 @@ public class ModItems {
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);
public static final RegistryObject<Item> ABEKIRI = GUNS.register("abekiri", Abekiri::new);
public static final RegistryObject<Item> ABEKIRI = GUNS.register("abekiri", AbekiriItem::new);
public static final RegistryObject<Item> TRACHELIUM = GUNS.register("trachelium", Trachelium::new);
public static final RegistryObject<Item> VECTOR = GUNS.register("vector", VectorItem::new);
public static final RegistryObject<Item> AK_47 = GUNS.register("ak_47", AK47Item::new);
@ -56,7 +64,7 @@ public class ModItems {
public static final RegistryObject<Item> NTW_20 = GUNS.register("ntw_20", Ntw20Item::new);
public static final RegistryObject<Item> M_870 = GUNS.register("m_870", M870Item::new);
public static final RegistryObject<Item> AA_12 = GUNS.register("aa_12", Aa12Item::new);
public static final RegistryObject<Item> DEVOTION = GUNS.register("devotion", Devotion::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> M_60 = GUNS.register("m_60", M60Item::new);
public static final RegistryObject<Item> MINIGUN = GUNS.register("minigun", Minigun::new);

View file

@ -6,7 +6,15 @@ 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.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.RpkItem;
import net.mcreator.superbwarfare.item.gun.rifle.*;
import net.mcreator.superbwarfare.item.gun.shotgun.Aa12Item;
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.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component;
@ -33,7 +41,7 @@ public class ModTabs {
output.accept(Glock17Item.getGunInstance());
output.accept(Glock18Item.getGunInstance());
output.accept(M1911Item.getGunInstance());
output.accept(Abekiri.getGunInstance());
output.accept(AbekiriItem.getGunInstance());
output.accept(Trachelium.getGunInstance());
output.accept(VectorItem.getGunInstance());
output.accept(SksItem.getGunInstance());
@ -52,7 +60,7 @@ public class ModTabs {
output.accept(Ntw20Item.getGunInstance());
output.accept(M870Item.getGunInstance());
output.accept(Aa12Item.getGunInstance());
output.accept(Devotion.getGunInstance());
output.accept(DevotionItem.getGunInstance());
output.accept(RpkItem.getGunInstance());
output.accept(M60Item.getGunInstance());
output.accept(Minigun.getGunInstance());

View file

@ -20,7 +20,8 @@ public class ModTags {
public static final TagKey<Item> HANDGUN = tag("handgun");
public static final TagKey<Item> RIFLE = tag("rifle");
public static final TagKey<Item> SNIPER_RIFLE = tag("sniper_rifle");
public static final TagKey<Item> MG = tag("mg");
public static final TagKey<Item> MACHINE_GUN = tag("machine_gun");
public static final TagKey<Item> SHOTGUN = tag("shotgun");
public static final TagKey<Item> NORMAL_GUN = tag("normal_gun");
public static final TagKey<Item> LEGENDARY_GUN = tag("legendary_gun");

View file

@ -13,7 +13,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvent;
@ -29,7 +28,6 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
@ -41,7 +39,6 @@ import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
@ -150,11 +147,6 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
return map;
}
@Override
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
TooltipTool.addGunTips(list, stack);
}
public static int getAmmoCount(Player player) {
int sum = 0;
for (int i = 0; i < player.getInventory().getContainerSize(); ++i) {
@ -194,15 +186,12 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
SoundTool.playLocalSound(serverPlayer, ModSounds.JAVELIN_LOCK.get(), 2, 1);
}
if (tag.getInt("SeekTime") > 20 && seekingEntity instanceof LivingEntity _entity && !_entity.level().isClientSide()) {
_entity.addEffect(new MobEffectInstance(MobEffects.GLOWING, 40, 0));
if (tag.getInt("SeekTime") > 20 && seekingEntity instanceof LivingEntity living && !living.level().isClientSide()) {
living.addEffect(new MobEffectInstance(MobEffects.GLOWING, 40, 0));
if (player instanceof ServerPlayer serverPlayer) {
SoundTool.playLocalSound(serverPlayer, ModSounds.JAVELIN_LOCKON.get(), 2, 1);
}
}
// if (seekingEntity != null) {
// player.displayClientMessage(Component.literal(" " + tag.getInt("SeekTime")), true);
// }
}
}
}

View file

@ -1,4 +1,4 @@
package net.mcreator.superbwarfare.item.gun;
package net.mcreator.superbwarfare.item.gun.machinegun;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
@ -8,6 +8,9 @@ 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.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.PoseTool;
import net.minecraft.client.Minecraft;
@ -41,12 +44,12 @@ import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
public class Devotion extends GunItem implements GeoItem, AnimatedItem {
public class DevotionItem extends GunItem implements GeoItem, AnimatedItem {
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty";
public static ItemDisplayContext transformType;
public Devotion() {
public DevotionItem() {
super(new Item.Properties().stacksTo(1).rarity(Rarity.EPIC));
}
@ -72,14 +75,13 @@ public class Devotion extends GunItem implements GeoItem, AnimatedItem {
transformType = type;
}
private PlayState idlePredicate(AnimationState event) {
private PlayState idlePredicate(AnimationState<DevotionItem> event) {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP;
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (this.animationProcedure.equals("empty")) {
if (stack.getOrCreateTag().getInt("draw_time") < 16) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.devotion.draw"));
}
@ -109,7 +111,7 @@ public class Devotion extends GunItem implements GeoItem, AnimatedItem {
return PlayState.STOP;
}
private PlayState procedurePredicate(AnimationState event) {
private PlayState procedurePredicate(AnimationState<DevotionItem> 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));
@ -172,4 +174,9 @@ public class Devotion extends GunItem implements GeoItem, AnimatedItem {
public String getGunDisplayName() {
return " Devotion";
}
@Override
public boolean canApplyPerk(Perk perk) {
return PerkHelper.MACHINE_GUN_PERKS.test(perk);
}
}

View file

@ -1,4 +1,4 @@
package net.mcreator.superbwarfare.item.gun;
package net.mcreator.superbwarfare.item.gun.machinegun;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
@ -8,14 +8,15 @@ 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.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.PoseTool;
import net.mcreator.superbwarfare.tools.TooltipTool;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand;
@ -25,8 +26,10 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.item.*;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
@ -37,7 +40,6 @@ import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
@ -73,14 +75,13 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
transformType = type;
}
private PlayState idlePredicate(AnimationState event) {
private PlayState idlePredicate(AnimationState<M60Item> event) {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP;
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (this.animationProcedure.equals("empty")) {
if (stack.getOrCreateTag().getInt("draw_time") < 29) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m60.draw"));
}
@ -122,7 +123,7 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
return PlayState.STOP;
}
private PlayState procedurePredicate(AnimationState event) {
private PlayState procedurePredicate(AnimationState<M60Item> 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));
@ -150,11 +151,6 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
return this.cache;
}
@Override
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
TooltipTool.addGunTips(list, stack);
}
@Override
public Set<SoundEvent> getReloadSound() {
return Set.of(ModSounds.M_60_RELOAD_EMPTY.get(), ModSounds.M_60_RELOAD_NORMAL.get());
@ -192,4 +188,9 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
public String getGunDisplayName() {
return " M60";
}
@Override
public boolean canApplyPerk(Perk perk) {
return PerkHelper.MACHINE_GUN_PERKS.test(perk);
}
}

View file

@ -1,21 +1,22 @@
package net.mcreator.superbwarfare.item.gun;
package net.mcreator.superbwarfare.item.gun.machinegun;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import net.mcreator.superbwarfare.ModUtils;
import net.mcreator.superbwarfare.client.renderer.item.MinigunItemRenderer;
import net.mcreator.superbwarfare.init.ModItems;
import net.mcreator.superbwarfare.init.ModPerks;
import net.mcreator.superbwarfare.init.ModTags;
import net.mcreator.superbwarfare.item.AnimatedItem;
import net.mcreator.superbwarfare.item.gun.GunItem;
import net.mcreator.superbwarfare.perk.Perk;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.ItemNBTTool;
import net.mcreator.superbwarfare.tools.RarityTool;
import net.mcreator.superbwarfare.tools.TooltipTool;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand;
@ -30,7 +31,6 @@ import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
@ -42,7 +42,6 @@ import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;
@ -172,11 +171,6 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
return map;
}
@Override
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
TooltipTool.addGunTips(list, stack);
}
@Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected);
@ -217,4 +211,13 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
public String getGunDisplayName() {
return "M134 MINIGUN";
}
@Override
public boolean canApplyPerk(Perk perk) {
return switch (perk.type) {
case AMMO -> true;
case FUNCTIONAL -> false;
case DAMAGE -> perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.KILLING_TALLY.get();
};
}
}

View file

@ -1,4 +1,4 @@
package net.mcreator.superbwarfare.item.gun;
package net.mcreator.superbwarfare.item.gun.machinegun;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
@ -8,14 +8,15 @@ 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.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.PoseTool;
import net.mcreator.superbwarfare.tools.TooltipTool;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand;
@ -25,8 +26,10 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.item.*;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
@ -37,7 +40,6 @@ import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
@ -73,14 +75,13 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
transformType = type;
}
private PlayState idlePredicate(AnimationState event) {
private PlayState idlePredicate(AnimationState<RpkItem> event) {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP;
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (this.animationProcedure.equals("empty")) {
if (stack.getOrCreateTag().getInt("draw_time") < 16) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.draw"));
}
@ -118,7 +119,7 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
return PlayState.STOP;
}
private PlayState procedurePredicate(AnimationState event) {
private PlayState procedurePredicate(AnimationState<RpkItem> 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));
@ -158,11 +159,6 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
return map;
}
@Override
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
TooltipTool.addGunTips(list, stack);
}
@Override
public Set<SoundEvent> getReloadSound() {
return Set.of(ModSounds.RPK_RELOAD_EMPTY.get(), ModSounds.RPK_RELOAD_NORMAL.get());
@ -188,4 +184,9 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
public String getGunDisplayName() {
return " RPK";
}
@Override
public boolean canApplyPerk(Perk perk) {
return PerkHelper.MACHINE_GUN_PERKS.test(perk);
}
}

View file

@ -1,4 +1,4 @@
package net.mcreator.superbwarfare.item.gun;
package net.mcreator.superbwarfare.item.gun.shotgun;
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.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;

View file

@ -1,4 +1,4 @@
package net.mcreator.superbwarfare.item.gun;
package net.mcreator.superbwarfare.item.gun.shotgun;
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.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;
@ -45,7 +46,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
public class Abekiri extends GunItem implements GeoItem, AnimatedItem {
public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationProcedure = "empty";
public static ItemDisplayContext transformType;
@ -55,7 +56,7 @@ public class Abekiri extends GunItem implements GeoItem, AnimatedItem {
return Set.of(ModSounds.ABEKIRI_RELOAD_EMPTY.get(), ModSounds.ABEKIRI_RELOAD_NORMAL.get());
}
public Abekiri() {
public AbekiriItem() {
super(new Item.Properties().durability(24).rarity(Rarity.COMMON));
}
@ -81,7 +82,7 @@ public class Abekiri extends GunItem implements GeoItem, AnimatedItem {
transformType = type;
}
private PlayState idlePredicate(AnimationState<Abekiri> event) {
private PlayState idlePredicate(AnimationState<AbekiriItem> event) {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP;
ItemStack stack = player.getMainHandItem();
@ -118,7 +119,7 @@ public class Abekiri extends GunItem implements GeoItem, AnimatedItem {
return PlayState.STOP;
}
private PlayState procedurePredicate(AnimationState<Abekiri> event) {
private PlayState procedurePredicate(AnimationState<AbekiriItem> event) {
if (transformType != null) {
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.shotgun;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
@ -8,6 +8,9 @@ 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.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.PoseTool;
import net.mcreator.superbwarfare.tools.TooltipTool;
@ -74,7 +77,7 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
transformType = type;
}
private PlayState idlePredicate(AnimationState event) {
private PlayState idlePredicate(AnimationState<M870Item> event) {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP;
ItemStack stack = player.getMainHandItem();
@ -82,7 +85,6 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
if (transformType != null && transformType.firstPerson()) {
if (this.animationProcedure.equals("empty")) {
if (stack.getOrCreateTag().getInt("draw_time") < 16) {
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.m870.draw"));
}
@ -126,7 +128,7 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
return PlayState.STOP;
}
private PlayState procedurePredicate(AnimationState event) {
private PlayState procedurePredicate(AnimationState<M870Item> 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));
@ -196,4 +198,9 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
public String getGunDisplayName() {
return " M870 MCS";
}
@Override
public boolean canApplyPerk(Perk perk) {
return PerkHelper.SHOTGUN_PERKS.test(perk);
}
}

View file

@ -1,4 +1,4 @@
package net.mcreator.superbwarfare.item.gun;
package net.mcreator.superbwarfare.item.gun.smg;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
@ -8,14 +8,15 @@ 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.perk.Perk;
import net.mcreator.superbwarfare.perk.PerkHelper;
import net.mcreator.superbwarfare.tools.GunsTool;
import net.mcreator.superbwarfare.tools.PoseTool;
import net.mcreator.superbwarfare.tools.TooltipTool;
import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.InteractionHand;
@ -25,8 +26,10 @@ import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeModifier;
import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.item.*;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Rarity;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
@ -37,7 +40,6 @@ import software.bernie.geckolib.core.animation.RawAnimation;
import software.bernie.geckolib.core.object.PlayState;
import software.bernie.geckolib.util.GeckoLibUtil;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.function.Consumer;
@ -149,11 +151,6 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
return this.cache;
}
@Override
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
TooltipTool.addGunTips(list, stack);
}
public static ItemStack getGunInstance() {
ItemStack stack = new ItemStack(ModItems.VECTOR.get());
GunsTool.initCreativeGun(stack, ModItems.VECTOR.getId().getPath());
@ -191,4 +188,9 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
public String getGunDisplayName() {
return "VECTOR";
}
@Override
public boolean canApplyPerk(Perk perk) {
return PerkHelper.SMG_PERKS.test(perk);
}
}

View file

@ -249,5 +249,39 @@ public class PerkHelper {
}
};
public static final Predicate<Perk> SMG_PERKS = perk -> {
switch (perk.type) {
case AMMO -> {
return true;
}
case FUNCTIONAL -> {
return perk == ModPerks.HEAL_CLIP.get() || perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.SUBSISTENCE.get();
}
case DAMAGE -> {
return perk == ModPerks.KILL_CLIP.get() || perk == ModPerks.GUTSHOT_STRAIGHT.get() ||
perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.HEAD_SEEKER.get();
}
default -> {
return false;
}
}
};
public static final Predicate<Perk> MACHINE_GUN_PERKS = perk -> {
switch (perk.type) {
case AMMO -> {
return true;
}
case FUNCTIONAL -> {
return perk == ModPerks.FOURTH_TIMES_CHARM.get() || perk == ModPerks.SUBSISTENCE.get();
}
case DAMAGE -> {
return perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.KILLING_TALLY.get();
}
default -> {
return false;
}
}
};
}

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"superbwarfare:abekiri",
"superbwarfare:aa_12",
"superbwarfare:m_870"
]
}