新的换弹逻辑
This commit is contained in:
parent
bfaeb94f8e
commit
1736dacb98
30 changed files with 381 additions and 135 deletions
|
@ -4,9 +4,12 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.entity.ProjectileEntity;
|
||||
import net.mcreator.target.init.*;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.tools.GunInfo;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.mcreator.target.tools.ParticleTool;
|
||||
import net.mcreator.target.tools.SoundTool;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
|
@ -36,6 +39,7 @@ public class GunEventHandler {
|
|||
if (event.phase == TickEvent.Phase.END && stack.is(TargetModTags.Items.GUN)) {
|
||||
handleGunFire(player);
|
||||
handleMiniGunFire(player);
|
||||
handleGunReload(player);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -338,4 +342,115 @@ public class GunEventHandler {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用的武器换弹流程
|
||||
*/
|
||||
private static void handleGunReload(Player player) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
CompoundTag tag = stack.getOrCreateTag();
|
||||
|
||||
if (player.getPersistentData().getBoolean("start_reload")) {
|
||||
if (stack.is(TargetModTags.Items.OPEN_BOLT)) {
|
||||
if(tag.getInt("ammo") == 0) {
|
||||
player.getPersistentData().putInt("gun_reloading_time",(int)tag.getDouble("empty_reload_time"));
|
||||
player.getPersistentData().putBoolean("is_empty_reloading",true);
|
||||
playGunEmptyReloadSounds(player);
|
||||
player.getPersistentData().putBoolean("start_reload",false);
|
||||
} else {
|
||||
player.getPersistentData().putInt("gun_reloading_time",(int)tag.getDouble("normal_reload_time"));
|
||||
player.getPersistentData().putBoolean("is_reloading",true);
|
||||
playGunNormalReloadSounds(player);
|
||||
player.getPersistentData().putBoolean("start_reload",false);
|
||||
}
|
||||
} else {
|
||||
player.getPersistentData().putInt("gun_reloading_time",(int)tag.getDouble("normal_reload_time"));
|
||||
player.getPersistentData().putBoolean("is_reloading",true);
|
||||
playGunNormalReloadSounds(player);
|
||||
player.getPersistentData().putBoolean("start_reload",false);
|
||||
}
|
||||
}
|
||||
|
||||
if (player.getPersistentData().getInt("gun_reloading_time") > 0) {
|
||||
player.getPersistentData().putInt("gun_reloading_time",player.getPersistentData().getInt("gun_reloading_time") - 1);
|
||||
}
|
||||
|
||||
if (player.getPersistentData().getInt("gun_reloading_time") == 0 && (player.getPersistentData().getBoolean("is_empty_reloading") || player.getPersistentData().getBoolean("is_reloading"))) {
|
||||
if (stack.is(TargetModTags.Items.OPEN_BOLT)) {
|
||||
if(tag.getInt("ammo") == 0) {
|
||||
|
||||
if (stack.is(TargetModTags.Items.SHOTGUN)) {
|
||||
GunsTool.reload(player, GunInfo.Type.SHOTGUN);
|
||||
} else if (stack.is(TargetModTags.Items.SNIPER_RIFLE)) {
|
||||
GunsTool.reload(player, GunInfo.Type.SNIPER);
|
||||
} else if (stack.is(TargetModTags.Items.HANDGUN) || stack.is(TargetModTags.Items.SMG)) {
|
||||
GunsTool.reload(player, GunInfo.Type.HANDGUN);
|
||||
} else if (stack.is(TargetModTags.Items.RIFLE)) {
|
||||
GunsTool.reload(player, GunInfo.Type.RIFLE);
|
||||
}
|
||||
player.getPersistentData().putBoolean("is_empty_reloading",false);
|
||||
|
||||
} else {
|
||||
|
||||
if (stack.is(TargetModTags.Items.SHOTGUN)) {
|
||||
GunsTool.reload(player, GunInfo.Type.SHOTGUN ,true);
|
||||
} else if (stack.is(TargetModTags.Items.SNIPER_RIFLE)) {
|
||||
GunsTool.reload(player, GunInfo.Type.SNIPER ,true);
|
||||
} else if (stack.is(TargetModTags.Items.HANDGUN) || stack.is(TargetModTags.Items.SMG)) {
|
||||
GunsTool.reload(player, GunInfo.Type.HANDGUN ,true);
|
||||
} else if (stack.is(TargetModTags.Items.RIFLE)) {
|
||||
GunsTool.reload(player, GunInfo.Type.RIFLE ,true);
|
||||
}
|
||||
player.getPersistentData().putBoolean("is_reloading",false);
|
||||
|
||||
}
|
||||
} else {
|
||||
|
||||
if (stack.is(TargetModTags.Items.SHOTGUN)) {
|
||||
GunsTool.reload(player, GunInfo.Type.SHOTGUN);
|
||||
} else if (stack.is(TargetModTags.Items.SNIPER_RIFLE)) {
|
||||
GunsTool.reload(player, GunInfo.Type.SNIPER);
|
||||
} else if (stack.is(TargetModTags.Items.HANDGUN) || stack.is(TargetModTags.Items.SMG)) {
|
||||
GunsTool.reload(player, GunInfo.Type.HANDGUN);
|
||||
} else if (stack.is(TargetModTags.Items.RIFLE)) {
|
||||
GunsTool.reload(player, GunInfo.Type.RIFLE);
|
||||
}
|
||||
player.getPersistentData().putBoolean("is_reloading",false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void playGunEmptyReloadSounds(Player player) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.level().isClientSide) {
|
||||
String origin = stack.getItem().getDescriptionId();
|
||||
String name = origin.substring(origin.lastIndexOf(".") + 1);
|
||||
|
||||
SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_reload_empty"));
|
||||
if (sound1p != null && player instanceof ServerPlayer serverPlayer) {
|
||||
SoundTool.playLocalSound(serverPlayer, sound1p, 2f, 1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void playGunNormalReloadSounds(Player player) {
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!player.level().isClientSide) {
|
||||
String origin = stack.getItem().getDescriptionId();
|
||||
String name = origin.substring(origin.lastIndexOf(".") + 1);
|
||||
|
||||
SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(TargetMod.MODID, name + "_reload_normal"));
|
||||
if (sound1p != null && player instanceof ServerPlayer serverPlayer) {
|
||||
SoundTool.playLocalSound(serverPlayer, sound1p, 2f, 1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -144,6 +144,10 @@ public class LivingEventHandler {
|
|||
ItemStack oldStack = event.getFrom();
|
||||
ItemStack newStack = event.getTo();
|
||||
|
||||
if (!newStack.is(TargetModTags.Items.GUN) ){
|
||||
return;
|
||||
}
|
||||
|
||||
if (player instanceof ServerPlayer serverPlayer) {
|
||||
var newTag = newStack.getTag();
|
||||
var oldTag = oldStack.getTag();
|
||||
|
@ -167,13 +171,18 @@ public class LivingEventHandler {
|
|||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
|
||||
player.getPersistentData().putDouble("zoom_pos", 0);
|
||||
player.getPersistentData().putDouble("zoom_animation_time", 0);
|
||||
if (newStack.getOrCreateTag().getInt("bolt_action_time") > 0) {
|
||||
newStack.getOrCreateTag().putInt("bolt_action_anim", 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
player.getPersistentData().putDouble("zoom_pos", 0);
|
||||
player.getPersistentData().putDouble("zoom_animation_time", 0);
|
||||
player.getPersistentData().putBoolean("is_reloading",false);
|
||||
player.getPersistentData().putBoolean("is_empty_reloading",false);
|
||||
player.getPersistentData().putInt("gun_reloading_time",0);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ public class TargetModTags {
|
|||
public static final TagKey<Item> NORMAL_GUN = tag("normal_gun");
|
||||
public static final TagKey<Item> LEGENDARY_GUN = tag("legendary_gun");
|
||||
public static final TagKey<Item> SPECIAL_GUN = tag("special_gun");
|
||||
public static final TagKey<Item> OPEN_BOLT = tag("open_bolt");
|
||||
|
||||
private static TagKey<Item> tag(String name) {
|
||||
return ItemTags.create(new ResourceLocation(TargetMod.MODID, name));
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.AK47ItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -78,7 +79,9 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
@ -90,11 +93,11 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.fire"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("reloading") && stack.getOrCreateTag().getBoolean("empty_reload")) {
|
||||
if (player.getPersistentData().getBoolean("is_empty_reloading") && player.getPersistentData().getInt("gun_reloading_time") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_empty"));
|
||||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("reloading") && !stack.getOrCreateTag().getBoolean("empty_reload")) {
|
||||
if (player.getPersistentData().getBoolean("is_reloading") && player.getPersistentData().getInt("gun_reloading_time") > 0) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_normal"));
|
||||
}
|
||||
|
||||
|
@ -170,61 +173,60 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inventoryTick(ItemStack itemStack, Level world, Entity entity, int slot, boolean selected) {
|
||||
super.inventoryTick(itemStack, world, entity, slot, selected);
|
||||
|
||||
if (entity instanceof Player player) {
|
||||
var tag = itemStack.getOrCreateTag();
|
||||
double id = tag.getDouble("id");
|
||||
if (player.getMainHandItem().getOrCreateTag().getDouble("id") != tag.getDouble("id")) {
|
||||
tag.putBoolean("empty_reload", false);
|
||||
tag.putBoolean("reloading", false);
|
||||
tag.putDouble("reload_time", 0);
|
||||
}
|
||||
if (tag.getBoolean("reloading") && tag.getInt("ammo") == 0) {
|
||||
if (tag.getDouble("reload_time") == 66) {
|
||||
entity.getPersistentData().putDouble("id", id);
|
||||
if (!entity.level().isClientSide()) {
|
||||
SoundTool.playLocalSound(player, TargetModSounds.AK_47_RELOAD_EMPTY.get(), 100, 1);
|
||||
}
|
||||
}
|
||||
if (player.getMainHandItem().getItem() == itemStack.getItem()
|
||||
&& player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
if (tag.getDouble("reload_time") > 0) {
|
||||
tag.putDouble("reload_time", (tag.getDouble("reload_time") - 1));
|
||||
}
|
||||
} else {
|
||||
tag.putBoolean("reloading", false);
|
||||
tag.putBoolean("empty_reload", false);
|
||||
tag.putDouble("reload_time", 0);
|
||||
}
|
||||
if (tag.getDouble("reload_time") == 1 && player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
GunsTool.reload(entity, GunInfo.Type.RIFLE);
|
||||
}
|
||||
} else if (tag.getBoolean("reloading") && tag.getInt("ammo") > 0) {
|
||||
if (tag.getDouble("reload_time") == 51) {
|
||||
entity.getPersistentData().putDouble("id", id);
|
||||
if (!entity.level().isClientSide()) {
|
||||
SoundTool.playLocalSound(player, TargetModSounds.AK_47_RELOAD_NORMAL.get(), 100, 1);
|
||||
}
|
||||
}
|
||||
if (player.getMainHandItem().getItem() == itemStack.getItem()
|
||||
&& player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
if (tag.getDouble("reload_time") > 0) {
|
||||
tag.putDouble("reload_time", (tag.getDouble("reload_time") - 1));
|
||||
}
|
||||
} else {
|
||||
tag.putBoolean("reloading", false);
|
||||
tag.putBoolean("empty_reload", false);
|
||||
tag.putDouble("reload_time", 0);
|
||||
}
|
||||
if (tag.getDouble("reload_time") == 1 && player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
GunsTool.reload(entity, GunInfo.Type.RIFLE, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// @Override
|
||||
// public void inventoryTick(ItemStack itemStack, Level world, Entity entity, int slot, boolean selected) {
|
||||
// super.inventoryTick(itemStack, world, entity, slot, selected);
|
||||
// if (entity instanceof Player player) {
|
||||
// var tag = itemStack.getOrCreateTag();
|
||||
// double id = tag.getDouble("id");
|
||||
// if (player.getMainHandItem().getOrCreateTag().getDouble("id") != tag.getDouble("id")) {
|
||||
// tag.putBoolean("empty_reload", false);
|
||||
// tag.putBoolean("reloading", false);
|
||||
// tag.putDouble("reload_time", 0);
|
||||
// }
|
||||
// if (tag.getBoolean("reloading") && tag.getInt("ammo") == 0) {
|
||||
// if (tag.getDouble("reload_time") == 66) {
|
||||
// entity.getPersistentData().putDouble("id", id);
|
||||
// if (!entity.level().isClientSide()) {
|
||||
// SoundTool.playLocalSound(player, TargetModSounds.AK_47_RELOAD_EMPTY.get(), 100, 1);
|
||||
// }
|
||||
// }
|
||||
// if (player.getMainHandItem().getItem() == itemStack.getItem()
|
||||
// && player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
// if (tag.getDouble("reload_time") > 0) {
|
||||
// tag.putDouble("reload_time", (tag.getDouble("reload_time") - 1));
|
||||
// }
|
||||
// } else {
|
||||
// tag.putBoolean("reloading", false);
|
||||
// tag.putBoolean("empty_reload", false);
|
||||
// tag.putDouble("reload_time", 0);
|
||||
// }
|
||||
// if (tag.getDouble("reload_time") == 1 && player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
// GunsTool.reload(entity, GunInfo.Type.RIFLE);
|
||||
// }
|
||||
// } else if (tag.getBoolean("reloading") && tag.getInt("ammo") > 0) {
|
||||
// if (tag.getDouble("reload_time") == 51) {
|
||||
// entity.getPersistentData().putDouble("id", id);
|
||||
// if (!entity.level().isClientSide()) {
|
||||
// SoundTool.playLocalSound(player, TargetModSounds.AK_47_RELOAD_NORMAL.get(), 100, 1);
|
||||
// }
|
||||
// }
|
||||
// if (player.getMainHandItem().getItem() == itemStack.getItem()
|
||||
// && player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
// if (tag.getDouble("reload_time") > 0) {
|
||||
// tag.putDouble("reload_time", (tag.getDouble("reload_time") - 1));
|
||||
// }
|
||||
// } else {
|
||||
// tag.putBoolean("reloading", false);
|
||||
// tag.putBoolean("empty_reload", false);
|
||||
// tag.putDouble("reload_time", 0);
|
||||
// }
|
||||
// if (tag.getDouble("reload_time") == 1 && player.getMainHandItem().getOrCreateTag().getDouble("id") == id) {
|
||||
// GunsTool.reload(entity, GunInfo.Type.RIFLE, true);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
ItemStack stack = new ItemStack(TargetModItems.AK_47.get());
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.AbekiriItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -79,7 +80,9 @@ public class Abekiri extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.google.common.collect.Multimap;
|
|||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.client.renderer.item.BocekItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.mcreator.target.tools.RarityTool;
|
||||
|
@ -72,9 +73,10 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
if (transformType != null && transformType.firstPerson()) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (stack.getOrCreateTag().getInt("draw_time") < 16) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.bocek.draw"));
|
||||
|
@ -84,7 +86,7 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
event.getController().setAnimation(RawAnimation.begin().thenLoop("animation.bocek.idle"));
|
||||
return PlayState.CONTINUE;
|
||||
}
|
||||
}
|
||||
|
||||
return PlayState.STOP;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.DevotionItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class Devotion extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.Hk416ItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.HuntingRifleItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -78,7 +79,9 @@ public class HuntingRifle extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.KraberItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -86,7 +87,10 @@ public class Kraber extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
if (stack.getOrCreateTag().getInt("draw_time") < 29) {
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.M4ItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.M60ItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class M60Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.M79ItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.mcreator.target.tools.SoundTool;
|
||||
|
@ -81,7 +82,9 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.M870ItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
|
@ -77,9 +78,10 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (transformType != null && transformType.firstPerson()) {
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.M98bItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class M98bItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.MarlinItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
|
@ -76,9 +77,10 @@ public class MarlinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (transformType != null && transformType.firstPerson()) {
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.google.common.collect.Multimap;
|
|||
import net.mcreator.target.TargetMod;
|
||||
import net.mcreator.target.client.renderer.item.MinigunItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.mcreator.target.tools.ItemNBTTool;
|
||||
|
@ -109,7 +110,9 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.Mk14ItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class Mk14Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.RpgItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
import net.mcreator.target.tools.SoundTool;
|
||||
|
@ -75,7 +76,9 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
var tag = stack.getOrCreateTag();
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.RpkItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class RpkItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.SentinelItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -93,7 +94,9 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.SksItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -79,7 +80,9 @@ public class SksItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.SvdItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -74,7 +75,9 @@ public class SvdItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
var tag = stack.getOrCreateTag();
|
||||
|
|
|
@ -7,6 +7,7 @@ import net.mcreator.target.client.renderer.item.TaserItemRenderer;
|
|||
import net.mcreator.target.init.TargetModEnchantments;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
@ -97,9 +98,11 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem {
|
|||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<Taser> event) {
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
|
@ -124,7 +127,7 @@ public class Taser extends GunItem implements GeoItem, AnimatedItem {
|
|||
return PlayState.STOP;
|
||||
}
|
||||
|
||||
private PlayState procedurePredicate(AnimationState<Taser> event) {
|
||||
private PlayState procedurePredicate(AnimationState 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));
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.TracheliumItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.*;
|
||||
import net.minecraft.ChatFormatting;
|
||||
|
@ -82,9 +83,12 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
|||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<Trachelium> event) {
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
|
||||
if (stack.getOrCreateTag().getInt("draw_time") < 11) {
|
||||
|
@ -108,7 +112,7 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
|||
return PlayState.STOP;
|
||||
}
|
||||
|
||||
private PlayState procedurePredicate(AnimationState<Trachelium> event) {
|
||||
private PlayState procedurePredicate(AnimationState 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));
|
||||
|
|
|
@ -6,6 +6,7 @@ import net.mcreator.target.TargetMod;
|
|||
import net.mcreator.target.client.renderer.item.VectorItemRenderer;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModSounds;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.AnimatedItem;
|
||||
import net.mcreator.target.tools.GunInfo;
|
||||
import net.mcreator.target.tools.GunsTool;
|
||||
|
@ -78,48 +79,11 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
transformType = type;
|
||||
}
|
||||
|
||||
private PlayState procedurePredicate(AnimationState<VectorItem> 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));
|
||||
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||
this.animationProcedure = "empty";
|
||||
event.getController().forceAnimationReset();
|
||||
}
|
||||
} else if (this.animationProcedure.equals("empty")) {
|
||||
return PlayState.STOP;
|
||||
}
|
||||
}
|
||||
return PlayState.CONTINUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
AnimationController<VectorItem> procedureController = new AnimationController<>(this, "procedureController", 0, this::procedurePredicate);
|
||||
data.add(procedureController);
|
||||
AnimationController<VectorItem> idleController = new AnimationController<>(this, "idleController", 4, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
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(TargetModItems.VECTOR.get());
|
||||
GunsTool.initCreativeGun(stack, TargetModItems.VECTOR.getId().getPath());
|
||||
return stack;
|
||||
}
|
||||
|
||||
private PlayState idlePredicate(AnimationState<VectorItem> event) {
|
||||
private PlayState idlePredicate(AnimationState event) {
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
if (player == null) return PlayState.STOP;
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(TargetModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
if (this.animationProcedure.equals("empty")) {
|
||||
if (stack.getOrCreateTag().getInt("draw_time") < 11) {
|
||||
|
@ -159,6 +123,45 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return PlayState.STOP;
|
||||
}
|
||||
|
||||
private PlayState procedurePredicate(AnimationState 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));
|
||||
if (event.getController().getAnimationState() == AnimationController.State.STOPPED) {
|
||||
this.animationProcedure = "empty";
|
||||
event.getController().forceAnimationReset();
|
||||
}
|
||||
} else if (this.animationProcedure.equals("empty")) {
|
||||
return PlayState.STOP;
|
||||
}
|
||||
}
|
||||
return PlayState.CONTINUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
AnimationController<VectorItem> procedureController = new AnimationController<>(this, "procedureController", 0, this::procedurePredicate);
|
||||
data.add(procedureController);
|
||||
AnimationController<VectorItem> idleController = new AnimationController<>(this, "idleController", 4, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||
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(TargetModItems.VECTOR.get());
|
||||
GunsTool.initCreativeGun(stack, TargetModItems.VECTOR.getId().getPath());
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(TargetModSounds.VECTOR_RELOAD_NORMAL.get(), TargetModSounds.VECTOR_RELOAD_EMPTY.get());
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
package net.mcreator.target.network.message;
|
||||
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.procedures.PlayerReloadProcedure;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.network.NetworkEvent;
|
||||
|
||||
|
@ -39,8 +44,37 @@ public class ReloadMessage {
|
|||
if (!world.hasChunkAt(entity.blockPosition()))
|
||||
return;
|
||||
if (type == 0) {
|
||||
|
||||
PlayerReloadProcedure.execute(entity);
|
||||
|
||||
ItemStack stack = entity.getMainHandItem();
|
||||
var capability = entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables());
|
||||
|
||||
if (!entity.isSpectator()
|
||||
&& stack.is(TargetModTags.Items.GUN)
|
||||
&& !capability.zooming
|
||||
&& !(entity.getCooldowns().isOnCooldown(stack.getItem()))
|
||||
&& entity.getPersistentData().getInt("gun_reloading_time") == 0
|
||||
) {
|
||||
CompoundTag tag = stack.getOrCreateTag();
|
||||
|
||||
if (stack.is(TargetModTags.Items.SHOTGUN) && capability.shotgunAmmo == 0) {
|
||||
return;
|
||||
} else if (stack.is(TargetModTags.Items.SNIPER_RIFLE) && capability.sniperAmmo == 0) {
|
||||
return;
|
||||
} else if ((stack.is(TargetModTags.Items.HANDGUN) || stack.is(TargetModTags.Items.SMG)) && capability.handgunAmmo == 0) {
|
||||
return;
|
||||
} else if (stack.is(TargetModTags.Items.RIFLE) && capability.rifleAmmo == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (stack.is(TargetModTags.Items.OPEN_BOLT) && (tag.getDouble("normal_reload_time") != 0 || tag.getDouble("empty_reload_time") != 0)) {
|
||||
if(tag.getInt("ammo") < tag.getDouble("mag") + 1) {
|
||||
entity.getPersistentData().putBoolean("start_reload",true);
|
||||
}
|
||||
} else if (tag.getInt("ammo") < tag.getDouble("mag")){
|
||||
entity.getPersistentData().putBoolean("start_reload",true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -169,23 +169,23 @@ public class PlayerReloadProcedure {
|
|||
tag.putDouble("reload_time", 72);
|
||||
}
|
||||
}
|
||||
if (player.getMainHandItem().getItem() == TargetModItems.AK_47.get()
|
||||
&& !(player.getCooldowns().isOnCooldown(player.getMainHandItem().getItem()))
|
||||
&& !tag.getBoolean("reloading")
|
||||
&& tag.getInt("ammo") < 31
|
||||
&& (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleAmmo > 0) {
|
||||
if (tag.getInt("ammo") > 0) {
|
||||
tag.putBoolean("reloading", true);
|
||||
tag.putBoolean("empty_reload", false);
|
||||
tag.putDouble("id", (Mth.nextDouble(RandomSource.create(), 1, 1919810)));
|
||||
tag.putDouble("reload_time", 51);
|
||||
} else if (tag.getInt("ammo") == 0) {
|
||||
tag.putBoolean("reloading", true);
|
||||
tag.putDouble("empty_reload", 1);
|
||||
tag.putDouble("id", (Mth.nextDouble(RandomSource.create(), 1, 1919810)));
|
||||
tag.putDouble("reload_time", 66);
|
||||
}
|
||||
}
|
||||
// if (player.getMainHandItem().getItem() == TargetModItems.AK_47.get()
|
||||
// && !(player.getCooldowns().isOnCooldown(player.getMainHandItem().getItem()))
|
||||
// && !tag.getBoolean("reloading")
|
||||
// && tag.getInt("ammo") < 31
|
||||
// && (entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleAmmo > 0) {
|
||||
// if (tag.getInt("ammo") > 0) {
|
||||
// tag.putBoolean("reloading", true);
|
||||
// tag.putBoolean("empty_reload", false);
|
||||
// tag.putDouble("id", (Mth.nextDouble(RandomSource.create(), 1, 1919810)));
|
||||
// tag.putDouble("reload_time", 51);
|
||||
// } else if (tag.getInt("ammo") == 0) {
|
||||
// tag.putBoolean("reloading", true);
|
||||
// tag.putDouble("empty_reload", 1);
|
||||
// tag.putDouble("id", (Mth.nextDouble(RandomSource.create(), 1, 1919810)));
|
||||
// tag.putDouble("reload_time", 66);
|
||||
// }
|
||||
// }
|
||||
if ((player.getMainHandItem().getItem() == TargetModItems.M_4.get()
|
||||
|| player.getMainHandItem().getItem() == TargetModItems.HK_416.get())
|
||||
&& !(player.getCooldowns().isOnCooldown(player.getMainHandItem().getItem()))
|
||||
|
|
|
@ -15,5 +15,7 @@
|
|||
"semi": 1,
|
||||
"burst": 0,
|
||||
"auto": 1,
|
||||
"burst_size": 1
|
||||
"burst_size": 1,
|
||||
"normal_reload_time": 51,
|
||||
"empty_reload_time": 66
|
||||
}
|
18
src/main/resources/data/target/tags/items/open_bolt.json
Normal file
18
src/main/resources/data/target/tags/items/open_bolt.json
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"target:ak_47",
|
||||
"target:svd",
|
||||
"target:mk_14",
|
||||
"target:vector",
|
||||
"target:sks",
|
||||
"target:rpk",
|
||||
"target:hk_416",
|
||||
"target:aa_12",
|
||||
"target:m_4",
|
||||
"target:devotion",
|
||||
"target:kraber",
|
||||
"target:m_98b",
|
||||
"target:sentinel"
|
||||
]
|
||||
}
|
Loading…
Add table
Reference in a new issue