添加武器初始化方法
This commit is contained in:
parent
0103750bea
commit
3d47f33ed1
10 changed files with 163 additions and 73 deletions
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Reference in a new issue