添加武器初始化方法

This commit is contained in:
17146 2024-05-07 15:15:08 +08:00
parent 0103750bea
commit 3d47f33ed1
10 changed files with 163 additions and 73 deletions

View file

@ -2,7 +2,7 @@ package net.mcreator.target.client.layer;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.item.gun.Vector; import net.mcreator.target.item.gun.VectorItem;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.texture.OverlayTexture;
@ -11,15 +11,15 @@ import software.bernie.geckolib.cache.object.BakedGeoModel;
import software.bernie.geckolib.renderer.GeoRenderer; import software.bernie.geckolib.renderer.GeoRenderer;
import software.bernie.geckolib.renderer.layer.GeoRenderLayer; import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
public class VectorLayer extends GeoRenderLayer<Vector> { public class VectorLayer extends GeoRenderLayer<VectorItem> {
private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/item/vector_e.png"); private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/item/vector_e.png");
public VectorLayer(GeoRenderer<Vector> entityRenderer) { public VectorLayer(GeoRenderer<VectorItem> entityRenderer) {
super(entityRenderer); super(entityRenderer);
} }
@Override @Override
public void render(PoseStack poseStack, Vector animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) { public void render(PoseStack poseStack, VectorItem animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
RenderType glowRenderType = RenderType.eyes(LAYER); RenderType glowRenderType = RenderType.eyes(LAYER);
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1); getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
} }

View file

@ -1,6 +1,6 @@
package net.mcreator.target.client.model.item; package net.mcreator.target.client.model.item;
import net.mcreator.target.item.gun.Vector; import net.mcreator.target.item.gun.VectorItem;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
@ -9,24 +9,24 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
public class VectorItemModel extends GeoModel<Vector> { public class VectorItemModel extends GeoModel<VectorItem> {
@Override @Override
public ResourceLocation getAnimationResource(Vector animatable) { public ResourceLocation getAnimationResource(VectorItem animatable) {
return new ResourceLocation("target", "animations/vector.animation.json"); return new ResourceLocation("target", "animations/vector.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(Vector animatable) { public ResourceLocation getModelResource(VectorItem animatable) {
return new ResourceLocation("target", "geo/vector.geo.json"); return new ResourceLocation("target", "geo/vector.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(Vector animatable) { public ResourceLocation getTextureResource(VectorItem animatable) {
return new ResourceLocation("target", "textures/item/vector.png"); return new ResourceLocation("target", "textures/item/vector.png");
} }
@Override @Override
public void setCustomAnimations(Vector animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(VectorItem animatable, long instanceId, AnimationState animationState) {
CoreGeoBone gun = getAnimationProcessor().getBone("bone"); CoreGeoBone gun = getAnimationProcessor().getBone("bone");
CoreGeoBone shen = getAnimationProcessor().getBone("shen"); CoreGeoBone shen = getAnimationProcessor().getBone("shen");
CoreGeoBone scope = getAnimationProcessor().getBone("scope"); CoreGeoBone scope = getAnimationProcessor().getBone("scope");

View file

@ -2,7 +2,7 @@ package net.mcreator.target.client.renderer.item;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.blaze3d.vertex.VertexConsumer;
import net.mcreator.target.item.gun.Vector; import net.mcreator.target.item.gun.VectorItem;
import net.mcreator.target.client.layer.VectorLayer; import net.mcreator.target.client.layer.VectorLayer;
import net.mcreator.target.client.model.item.VectorItemModel; import net.mcreator.target.client.model.item.VectorItemModel;
import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.MultiBufferSource;
@ -16,14 +16,14 @@ import software.bernie.geckolib.renderer.GeoItemRenderer;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
public class VectorItemRenderer extends GeoItemRenderer<Vector> { public class VectorItemRenderer extends GeoItemRenderer<VectorItem> {
public VectorItemRenderer() { public VectorItemRenderer() {
super(new VectorItemModel()); super(new VectorItemModel());
this.addRenderLayer(new VectorLayer(this)); this.addRenderLayer(new VectorLayer(this));
} }
@Override @Override
public RenderType getRenderType(Vector animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { public RenderType getRenderType(VectorItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
return RenderType.entityTranslucent(getTextureLocation(animatable)); return RenderType.entityTranslucent(getTextureLocation(animatable));
} }
@ -32,7 +32,7 @@ public class VectorItemRenderer extends GeoItemRenderer<Vector> {
protected MultiBufferSource currentBuffer; protected MultiBufferSource currentBuffer;
protected RenderType renderType; protected RenderType renderType;
public ItemDisplayContext transformType; public ItemDisplayContext transformType;
protected Vector animatable; protected VectorItem animatable;
private final Set<String> hiddenBones = new HashSet<>(); private final Set<String> hiddenBones = new HashSet<>();
private final Set<String> suppressedBones = new HashSet<>(); private final Set<String> suppressedBones = new HashSet<>();
@ -45,7 +45,7 @@ public class VectorItemRenderer extends GeoItemRenderer<Vector> {
} }
@Override @Override
public void actuallyRender(PoseStack matrixStackIn, Vector animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, public void actuallyRender(PoseStack matrixStackIn, VectorItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
int packedOverlayIn, float red, float green, float blue, float alpha) { int packedOverlayIn, float red, float green, float blue, float alpha) {
this.currentBuffer = renderTypeBuffer; this.currentBuffer = renderTypeBuffer;
this.renderType = type; this.renderType = type;
@ -57,7 +57,7 @@ public class VectorItemRenderer extends GeoItemRenderer<Vector> {
} }
@Override @Override
public ResourceLocation getTextureLocation(Vector instance) { public ResourceLocation getTextureLocation(VectorItem instance) {
return super.getTextureLocation(instance); return super.getTextureLocation(instance);
} }
} }

View file

@ -47,7 +47,7 @@ public class ItemAnimationFactory {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getMainHandItem().getItem() instanceof Vector animatable) if (event.player.getMainHandItem().getItem() instanceof VectorItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
@ -181,7 +181,7 @@ public class ItemAnimationFactory {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();
} }
if (event.player.getOffhandItem().getItem() instanceof Vector animatable) if (event.player.getOffhandItem().getItem() instanceof VectorItem animatable)
if (event.player.level().isClientSide()) { if (event.player.level().isClientSide()) {
animatable.animationprocedure = animation; animatable.animationprocedure = animation;
disableUseAnim(); disableUseAnim();

View file

@ -29,7 +29,7 @@ public class TargetModItems {
public static final RegistryObject<Item> TASER = GUNS.register("taser", Taser::new); public static final RegistryObject<Item> TASER = GUNS.register("taser", Taser::new);
public static final RegistryObject<Item> ABEKIRI = GUNS.register("abekiri", Abekiri::new); public static final RegistryObject<Item> ABEKIRI = GUNS.register("abekiri", Abekiri::new);
public static final RegistryObject<Item> TRACHELIUM = GUNS.register("trachelium", Trachelium::new); public static final RegistryObject<Item> TRACHELIUM = GUNS.register("trachelium", Trachelium::new);
public static final RegistryObject<Item> VECTOR = GUNS.register("vector", Vector::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); public static final RegistryObject<Item> AK_47 = GUNS.register("ak_47", AK47Item::new);
public static final RegistryObject<Item> SKS = GUNS.register("sks", SksItem::new); public static final RegistryObject<Item> SKS = GUNS.register("sks", SksItem::new);
public static final RegistryObject<Item> M_4 = GUNS.register("m_4", M4Item::new); public static final RegistryObject<Item> M_4 = GUNS.register("m_4", M4Item::new);

View file

@ -1,6 +1,9 @@
package net.mcreator.target.init; package net.mcreator.target.init;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.item.gun.Abekiri;
import net.mcreator.target.item.gun.Trachelium;
import net.mcreator.target.item.gun.VectorItem;
import net.minecraft.core.registries.Registries; import net.minecraft.core.registries.Registries;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.CreativeModeTab;
@ -20,7 +23,14 @@ public class TargetModTabs {
() -> CreativeModeTab.builder() () -> CreativeModeTab.builder()
.title(Component.translatable("item_group.target.target_guns")) .title(Component.translatable("item_group.target.target_guns"))
.icon(() -> new ItemStack(TargetModItems.TASER.get())) .icon(() -> new ItemStack(TargetModItems.TASER.get()))
.displayItems((param, output) -> TargetModItems.GUNS.getEntries().forEach(registryObject -> output.accept(registryObject.get()))) .displayItems(
(param, output) -> {
output.accept(TargetModItems.TASER.get());
output.accept(Abekiri.getGunInstance());
output.accept(Trachelium.getGunInstance());
output.accept(VectorItem.getGunInstance());
}
)
.build()); .build());
public static final RegistryObject<CreativeModeTab> AMMO_TAB = TABS.register("ammo", public static final RegistryObject<CreativeModeTab> AMMO_TAB = TABS.register("ammo",

View file

@ -4,7 +4,9 @@ import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.client.renderer.item.AbekiriItemRenderer; import net.mcreator.target.client.renderer.item.AbekiriItemRenderer;
import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.procedures.AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure; import net.mcreator.target.procedures.AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.mcreator.target.tools.ItemNBTTool;
import net.mcreator.target.tools.TooltipTool; import net.mcreator.target.tools.TooltipTool;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.HumanoidModel;
@ -152,7 +154,31 @@ public class Abekiri extends GunItem implements GeoItem {
@Override @Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected);
AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack); AbekiriWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack);
if (!ItemNBTTool.getBoolean(itemstack, "init", false)) {
initGun(itemstack);
}
}
public static ItemStack getGunInstance() {
ItemStack stack = new ItemStack(TargetModItems.ABEKIRI.get());
initGun(stack);
return stack;
}
private static void initGun(ItemStack stack) {
stack.getOrCreateTag().putDouble("zoomspeed", 1.4);
stack.getOrCreateTag().putDouble("zoom", 1.25);
stack.getOrCreateTag().putDouble("dev", 5);
stack.getOrCreateTag().putDouble("shotgun", 1);
stack.getOrCreateTag().putDouble("recoilx", 0.005);
stack.getOrCreateTag().putDouble("recoily", 0.026);
stack.getOrCreateTag().putDouble("damage", 2.5);
stack.getOrCreateTag().putDouble("headshot", 1.5);
stack.getOrCreateTag().putDouble("velocity", 15);
stack.getOrCreateTag().putDouble("mag", 2);
stack.getOrCreateTag().putBoolean("init", true);
} }
} }

View file

@ -4,7 +4,9 @@ import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.TargetMod; import net.mcreator.target.TargetMod;
import net.mcreator.target.client.renderer.item.TracheliumItemRenderer; import net.mcreator.target.client.renderer.item.TracheliumItemRenderer;
import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.procedures.ReloadingProcedure; import net.mcreator.target.procedures.ReloadingProcedure;
import net.mcreator.target.tools.ItemNBTTool;
import net.mcreator.target.tools.RarityTool; import net.mcreator.target.tools.RarityTool;
import net.mcreator.target.tools.TooltipTool; import net.mcreator.target.tools.TooltipTool;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
@ -71,7 +73,7 @@ public class Trachelium extends GunItem implements GeoItem {
transformType = type; transformType = type;
} }
private PlayState idlePredicate(AnimationState event) { private PlayState idlePredicate(AnimationState<Trachelium> event) {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
if (this.animationprocedure.equals("empty")) { if (this.animationprocedure.equals("empty")) {
@ -97,7 +99,7 @@ public class Trachelium extends GunItem implements GeoItem {
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState event) { private PlayState procedurePredicate(AnimationState<Trachelium> event) {
if (transformType != null && transformType.firstPerson()) { if (transformType != null && transformType.firstPerson()) {
if (!(this.animationprocedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!(this.animationprocedure.equals("empty")) && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
@ -112,9 +114,9 @@ public class Trachelium extends GunItem implements GeoItem {
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
AnimationController procedureController = new AnimationController(this, "procedureController", 0, this::procedurePredicate); AnimationController<Trachelium> procedureController = new AnimationController<>(this, "procedureController", 0, this::procedurePredicate);
data.add(procedureController); data.add(procedureController);
AnimationController idleController = new AnimationController(this, "idleController", 6, this::idlePredicate); AnimationController<Trachelium> idleController = new AnimationController<>(this, "idleController", 6, this::idlePredicate);
data.add(idleController); data.add(idleController);
} }
@ -147,8 +149,12 @@ public class Trachelium extends GunItem implements GeoItem {
@Override @Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected); // TODO 把这坨procedure删了
ReloadingProcedure.execute(entity, itemstack); ReloadingProcedure.execute(entity, itemstack);
if (!ItemNBTTool.getBoolean(itemstack, "init", false)) {
initGun(itemstack);
}
} }
@Override @Override
@ -158,4 +164,25 @@ public class Trachelium extends GunItem implements GeoItem {
TooltipTool.addGunTips(list, stack); TooltipTool.addGunTips(list, stack);
} }
public static ItemStack getGunInstance() {
ItemStack stack = new ItemStack(TargetModItems.TRACHELIUM.get());
initGun(stack);
return stack;
}
private static void initGun(ItemStack stack) {
stack.getOrCreateTag().putDouble("zoomspeed", 1.7);
stack.getOrCreateTag().putDouble("zoom", 1.25);
stack.getOrCreateTag().putDouble("dev", 3);
stack.getOrCreateTag().putDouble("handgun", 1);
stack.getOrCreateTag().putDouble("recoilx", 0.005);
stack.getOrCreateTag().putDouble("recoily", 0.022);
stack.getOrCreateTag().putDouble("damage", 18);
stack.getOrCreateTag().putDouble("headshot", 1.5);
stack.getOrCreateTag().putDouble("velocity", 60);
stack.getOrCreateTag().putDouble("mag", 8);
stack.getOrCreateTag().putBoolean("init", true);
}
} }

View file

@ -2,8 +2,11 @@ package net.mcreator.target.item.gun;
import com.google.common.collect.HashMultimap; import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import net.mcreator.target.TargetMod;
import net.mcreator.target.client.renderer.item.VectorItemRenderer; import net.mcreator.target.client.renderer.item.VectorItemRenderer;
import net.mcreator.target.init.TargetModItems;
import net.mcreator.target.procedures.VectorWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure; import net.mcreator.target.procedures.VectorWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure;
import net.mcreator.target.tools.ItemNBTTool;
import net.mcreator.target.tools.TooltipTool; import net.mcreator.target.tools.TooltipTool;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.HumanoidModel;
@ -33,12 +36,12 @@ import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer; import java.util.function.Consumer;
public class Vector extends GunItem implements GeoItem { public class VectorItem extends GunItem implements GeoItem {
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
public String animationprocedure = "empty"; public String animationprocedure = "empty";
public static ItemDisplayContext transformType; public static ItemDisplayContext transformType;
public Vector() { public VectorItem() {
super(new Item.Properties().stacksTo(1).rarity(Rarity.EPIC)); super(new Item.Properties().stacksTo(1).rarity(Rarity.EPIC));
} }
@ -64,7 +67,7 @@ public class Vector extends GunItem implements GeoItem {
transformType = type; transformType = type;
} }
private PlayState idlePredicate(AnimationState<Vector> event) { private PlayState idlePredicate(AnimationState<VectorItem> event) {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
@ -107,7 +110,7 @@ public class Vector extends GunItem implements GeoItem {
return PlayState.STOP; return PlayState.STOP;
} }
private PlayState procedurePredicate(AnimationState<Vector> event) { private PlayState procedurePredicate(AnimationState<VectorItem> event) {
if (transformType != null && transformType.firstPerson()) { if (transformType != null && transformType.firstPerson()) {
if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { if (!this.animationprocedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) {
event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure)); event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationprocedure));
@ -124,9 +127,9 @@ public class Vector extends GunItem implements GeoItem {
@Override @Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) { public void registerControllers(AnimatableManager.ControllerRegistrar data) {
AnimationController<Vector> procedureController = new AnimationController<>(this, "procedureController", 0, this::procedurePredicate); AnimationController<VectorItem> procedureController = new AnimationController<>(this, "procedureController", 0, this::procedurePredicate);
data.add(procedureController); data.add(procedureController);
AnimationController<Vector> idleController = new AnimationController<>(this, "idleController", 4, this::idlePredicate); AnimationController<VectorItem> idleController = new AnimationController<>(this, "idleController", 4, this::idlePredicate);
data.add(idleController); data.add(idleController);
} }
@ -142,8 +145,11 @@ public class Vector extends GunItem implements GeoItem {
@Override @Override
public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) { public void inventoryTick(ItemStack itemstack, Level world, Entity entity, int slot, boolean selected) {
super.inventoryTick(itemstack, world, entity, slot, selected);
VectorWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack); VectorWuPinZaiBeiBaoZhongShiMeiKeFaShengProcedure.execute(entity, itemstack);
if (!ItemNBTTool.getBoolean(itemstack, "init", false)) {
initGun(itemstack);
}
} }
@Override @Override
@ -163,8 +169,30 @@ public class Vector extends GunItem implements GeoItem {
if (slot == EquipmentSlot.MAINHAND) { if (slot == EquipmentSlot.MAINHAND) {
map = HashMultimap.create(map); map = HashMultimap.create(map);
map.put(Attributes.MOVEMENT_SPEED, map.put(Attributes.MOVEMENT_SPEED,
new AttributeModifier(uuid, "henghengaaa", -0.03f, AttributeModifier.Operation.MULTIPLY_BASE)); new AttributeModifier(uuid, TargetMod.ATTRIBUTE_MODIFIER, -0.03f, AttributeModifier.Operation.MULTIPLY_BASE));
} }
return map; return map;
} }
public static ItemStack getGunInstance() {
ItemStack stack = new ItemStack(TargetModItems.TRACHELIUM.get());
initGun(stack);
return stack;
}
private static void initGun(ItemStack stack) {
stack.getOrCreateTag().putDouble("zoomspeed", 1.6);
stack.getOrCreateTag().putDouble("zoom", 1.25);
stack.getOrCreateTag().putDouble("autorifle", 1);
stack.getOrCreateTag().putDouble("dev", 3.5);
stack.getOrCreateTag().putDouble("smg", 1);
stack.getOrCreateTag().putDouble("recoilx", 0.011);
stack.getOrCreateTag().putDouble("recoily", 0.004);
stack.getOrCreateTag().putDouble("damage", 4.5);
stack.getOrCreateTag().putDouble("headshot", 1.5);
stack.getOrCreateTag().putDouble("velocity", 22);
stack.getOrCreateTag().putDouble("mag", 33);
stack.getOrCreateTag().putBoolean("init", true);
}
} }

View file

@ -38,7 +38,7 @@ public class GunsDataProcedure {
if (itemstackiterator.is(ItemTags.create(new ResourceLocation("target:gun")))) { if (itemstackiterator.is(ItemTags.create(new ResourceLocation("target:gun")))) {
if (TargetModVariables.MapVariables.get(world).pvpmode == false) { if (!TargetModVariables.MapVariables.get(world).pvpmode) {
if (itemstackiterator.getOrCreateTag().getDouble("level") >= 10) { if (itemstackiterator.getOrCreateTag().getDouble("level") >= 10) {
itemstackiterator.getOrCreateTag().putDouble("damageadd", 1 + 0.05 * (itemstackiterator.getOrCreateTag().getDouble("level") - 10)); itemstackiterator.getOrCreateTag().putDouble("damageadd", 1 + 0.05 * (itemstackiterator.getOrCreateTag().getDouble("level") - 10));
} else { } else {
@ -90,19 +90,18 @@ public class GunsDataProcedure {
itemstackiterator.getOrCreateTag().putDouble("mag", 55); itemstackiterator.getOrCreateTag().putDouble("mag", 55);
itemstackiterator.getOrCreateTag().putDouble("firemode", 2); itemstackiterator.getOrCreateTag().putDouble("firemode", 2);
} }
if (itemstackiterator.getItem() == TargetModItems.TRACHELIUM.get()) { // if (itemstackiterator.getItem() == TargetModItems.TRACHELIUM.get()) {
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.7); // itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.7);
itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25); // itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25);
itemstackiterator.getOrCreateTag().putDouble("dev", 3); // itemstackiterator.getOrCreateTag().putDouble("dev", 3);
itemstackiterator.getOrCreateTag().putDouble("handgun", 1); // itemstackiterator.getOrCreateTag().putDouble("handgun", 1);
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.005); // itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.005);
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.022); // itemstackiterator.getOrCreateTag().putDouble("recoily", 0.022);
itemstackiterator.getOrCreateTag().putDouble("damage", 18); // itemstackiterator.getOrCreateTag().putDouble("damage", 18);
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); // itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
itemstackiterator.getOrCreateTag().putDouble("velocity", 60); // itemstackiterator.getOrCreateTag().putDouble("velocity", 60);
itemstackiterator.getOrCreateTag().putDouble("mag", 8); // itemstackiterator.getOrCreateTag().putDouble("mag", 8);
// }
}
if (itemstackiterator.getItem() == TargetModItems.HUNTING_RIFLE.get()) { if (itemstackiterator.getItem() == TargetModItems.HUNTING_RIFLE.get()) {
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1); itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1);
itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25); itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25);
@ -135,18 +134,18 @@ public class GunsDataProcedure {
itemstackiterator.getOrCreateTag().putDouble("velocity", 3.75); itemstackiterator.getOrCreateTag().putDouble("velocity", 3.75);
itemstackiterator.getOrCreateTag().putDouble("mag", 1); itemstackiterator.getOrCreateTag().putDouble("mag", 1);
} }
if (itemstackiterator.getItem() == TargetModItems.ABEKIRI.get()) { // if (itemstackiterator.getItem() == TargetModItems.ABEKIRI.get()) {
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.4); // itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.4);
itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25); // itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25);
itemstackiterator.getOrCreateTag().putDouble("dev", 5); // itemstackiterator.getOrCreateTag().putDouble("dev", 5);
itemstackiterator.getOrCreateTag().putDouble("shotgun", 1); // itemstackiterator.getOrCreateTag().putDouble("shotgun", 1);
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.005); // itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.005);
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.026); // itemstackiterator.getOrCreateTag().putDouble("recoily", 0.026);
itemstackiterator.getOrCreateTag().putDouble("damage", 2.5); // itemstackiterator.getOrCreateTag().putDouble("damage", 2.5);
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); // itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
itemstackiterator.getOrCreateTag().putDouble("velocity", 15); // itemstackiterator.getOrCreateTag().putDouble("velocity", 15);
itemstackiterator.getOrCreateTag().putDouble("mag", 2); // itemstackiterator.getOrCreateTag().putDouble("mag", 2);
} // }
if (itemstackiterator.getItem() == TargetModItems.M_98B.get()) { if (itemstackiterator.getItem() == TargetModItems.M_98B.get()) {
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 0.85); itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 0.85);
itemstackiterator.getOrCreateTag().putDouble("zoom", 4); itemstackiterator.getOrCreateTag().putDouble("zoom", 4);
@ -247,19 +246,19 @@ public class GunsDataProcedure {
itemstackiterator.getOrCreateTag().putDouble("velocity", 40); itemstackiterator.getOrCreateTag().putDouble("velocity", 40);
itemstackiterator.getOrCreateTag().putDouble("mag", 4); itemstackiterator.getOrCreateTag().putDouble("mag", 4);
} }
if (itemstackiterator.getItem() == TargetModItems.VECTOR.get()) { // if (itemstackiterator.getItem() == TargetModItems.VECTOR.get()) {
itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.6); // itemstackiterator.getOrCreateTag().putDouble("zoomspeed", 1.6);
itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25); // itemstackiterator.getOrCreateTag().putDouble("zoom", 1.25);
itemstackiterator.getOrCreateTag().putDouble("autorifle", 1); // itemstackiterator.getOrCreateTag().putDouble("autorifle", 1);
itemstackiterator.getOrCreateTag().putDouble("dev", 3.5); // itemstackiterator.getOrCreateTag().putDouble("dev", 3.5);
itemstackiterator.getOrCreateTag().putDouble("smg", 1); // itemstackiterator.getOrCreateTag().putDouble("smg", 1);
itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.011); // itemstackiterator.getOrCreateTag().putDouble("recoilx", 0.011);
itemstackiterator.getOrCreateTag().putDouble("recoily", 0.004); // itemstackiterator.getOrCreateTag().putDouble("recoily", 0.004);
itemstackiterator.getOrCreateTag().putDouble("damage", 4.5); // itemstackiterator.getOrCreateTag().putDouble("damage", 4.5);
itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5); // itemstackiterator.getOrCreateTag().putDouble("headshot", 1.5);
itemstackiterator.getOrCreateTag().putDouble("velocity", 22); // itemstackiterator.getOrCreateTag().putDouble("velocity", 22);
itemstackiterator.getOrCreateTag().putDouble("mag", 33); // itemstackiterator.getOrCreateTag().putDouble("mag", 33);
} // }
if (itemstackiterator.getItem() == TargetModItems.MINIGUN.get()) { if (itemstackiterator.getItem() == TargetModItems.MINIGUN.get()) {
itemstackiterator.getOrCreateTag().putDouble("zoom", 1); itemstackiterator.getOrCreateTag().putDouble("zoom", 1);
itemstackiterator.getOrCreateTag().putDouble("rifle", 1); itemstackiterator.getOrCreateTag().putDouble("rifle", 1);