优化特殊武器的tooltip
This commit is contained in:
parent
47dfc2692a
commit
78698441e9
13 changed files with 108 additions and 208 deletions
|
@ -1,5 +1,6 @@
|
|||
package net.mcreator.superbwarfare.client.tooltip;
|
||||
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
import net.mcreator.superbwarfare.init.ModKeyMappings;
|
||||
import net.mcreator.superbwarfare.init.ModPerks;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
|
@ -21,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
|||
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
// TODO 等nbt重置后,修改nbt位置
|
||||
public class ClientImageTooltip implements ClientTooltipComponent {
|
||||
|
||||
private final int width;
|
||||
|
@ -73,8 +75,6 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
return PerkHelper.getPerkByType(stack, Perk.Type.AMMO) != null || PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE) != null || PerkHelper.getPerkByType(stack, Perk.Type.FUNCTIONAL) != null;
|
||||
}
|
||||
|
||||
// TODO 等nbt重置后,修改nbt位置
|
||||
|
||||
/**
|
||||
* 渲染武器伤害和射速
|
||||
*/
|
||||
|
@ -88,6 +88,13 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
* 获取武器伤害的文本组件
|
||||
*/
|
||||
private Component getDamageComponent() {
|
||||
if (stack.is(ModItems.BOCEK.get())) {
|
||||
return getBocekDamageComponent();
|
||||
}
|
||||
if (stack.is(ModTags.Items.SHOTGUN)) {
|
||||
return getShotgunDamageComponent();
|
||||
}
|
||||
|
||||
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack);
|
||||
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
|
@ -95,6 +102,52 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
+ new DecimalFormat("##.#").format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN));
|
||||
}
|
||||
|
||||
private Component getShotgunDamageComponent() {
|
||||
boolean slug = false;
|
||||
|
||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) {
|
||||
slug = true;
|
||||
}
|
||||
|
||||
if (slug) {
|
||||
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "projectile_amount", 0) * TooltipTool.perkDamage(stack);
|
||||
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(damage) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#")
|
||||
.format(0.8 * damage * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN));
|
||||
} else {
|
||||
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack);
|
||||
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + new DecimalFormat("##").format(ItemNBTTool.getDouble(stack, "projectile_amount", 0))).withStyle(ChatFormatting.GREEN));
|
||||
}
|
||||
}
|
||||
|
||||
private Component getBocekDamageComponent() {
|
||||
boolean slug = false;
|
||||
|
||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) {
|
||||
slug = true;
|
||||
}
|
||||
|
||||
double total = ItemNBTTool.getDouble(stack, "damage", 0) * TooltipTool.perkDamage(stack);
|
||||
|
||||
if (slug) {
|
||||
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(total) + (TooltipTool.heBullet(stack) ? " + " + new DecimalFormat("##.#")
|
||||
.format(0.8 * total * (1 + 0.1 * TooltipTool.heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN));
|
||||
} else {
|
||||
return Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(total * 0.1) + " * 10").withStyle(ChatFormatting.GREEN))
|
||||
.append(Component.literal(" / ").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(total)).withStyle(ChatFormatting.GREEN));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取武器射速的文本组件
|
||||
*/
|
||||
|
@ -152,7 +205,7 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
int upgradePoint = Mth.floor(ItemNBTTool.getDouble(stack, "UpgradePoint", 0));
|
||||
return Component.translatable("des.superbwarfare.tips.upgrade_point").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(String.valueOf(upgradePoint)).withStyle(ChatFormatting.GRAY).withStyle(ChatFormatting.BOLD));
|
||||
.append(Component.literal(String.valueOf(upgradePoint)).withStyle(ChatFormatting.WHITE).withStyle(ChatFormatting.BOLD));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -276,11 +329,11 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
|
||||
guiGraphics.drawString(font, Component.translatable("perk.superbwarfare.tips").withStyle(ChatFormatting.GOLD).withStyle(ChatFormatting.UNDERLINE), x, y + 10, 0xFFFFFF);
|
||||
|
||||
int yOffset = -10;
|
||||
int yOffset = -5;
|
||||
|
||||
Perk ammoPerk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
if (ammoPerk != null && PerkHelper.getPerkItem(ammoPerk).isPresent()) {
|
||||
yOffset += 30;
|
||||
yOffset += 25;
|
||||
var ammoItem = PerkHelper.getPerkItem(ammoPerk).get().get();
|
||||
guiGraphics.renderItem(ammoItem.getDefaultInstance(), x, y + 4 + yOffset);
|
||||
|
||||
|
@ -302,7 +355,7 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
|
||||
Perk funcPerk = PerkHelper.getPerkByType(stack, Perk.Type.FUNCTIONAL);
|
||||
if (funcPerk != null && PerkHelper.getPerkItem(funcPerk).isPresent()) {
|
||||
yOffset += 30;
|
||||
yOffset += 25;
|
||||
var funcItem = PerkHelper.getPerkItem(funcPerk).get().get();
|
||||
guiGraphics.renderItem(funcItem.getDefaultInstance(), x, y + 4 + yOffset);
|
||||
|
||||
|
@ -324,7 +377,7 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
|
||||
Perk damagePerk = PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE);
|
||||
if (damagePerk != null && PerkHelper.getPerkItem(damagePerk).isPresent()) {
|
||||
yOffset += 30;
|
||||
yOffset += 25;
|
||||
var damageItem = PerkHelper.getPerkItem(damagePerk).get().get();
|
||||
guiGraphics.renderItem(damageItem.getDefaultInstance(), x, y + 4 + yOffset);
|
||||
|
||||
|
@ -410,13 +463,13 @@ public class ClientImageTooltip implements ClientTooltipComponent {
|
|||
} else {
|
||||
height += 20;
|
||||
if (PerkHelper.getPerkByType(stack, Perk.Type.AMMO) != null) {
|
||||
height += 30;
|
||||
height += 25;
|
||||
}
|
||||
if (PerkHelper.getPerkByType(stack, Perk.Type.FUNCTIONAL) != null) {
|
||||
height += 30;
|
||||
height += 25;
|
||||
}
|
||||
if (PerkHelper.getPerkByType(stack, Perk.Type.DAMAGE) != null) {
|
||||
height += 30;
|
||||
height += 25;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,10 +11,8 @@ import net.mcreator.superbwarfare.perk.Perk;
|
|||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.ItemNBTTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
|
@ -27,7 +25,6 @@ import net.minecraft.world.entity.player.Player;
|
|||
import net.minecraft.world.inventory.tooltip.TooltipComponent;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -36,7 +33,6 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|||
import net.minecraftforge.fml.common.Mod;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
@ -119,11 +115,6 @@ public abstract class GunItem extends Item {
|
|||
return map;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
||||
// TooltipTool.addGunTips(list, stack);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public @NotNull Optional<TooltipComponent> getTooltipImage(@NotNull ItemStack pStack) {
|
||||
return Optional.of(new ImageTooltip(pStack));
|
||||
|
|
|
@ -44,6 +44,7 @@ import java.util.Set;
|
|||
import java.util.function.Consumer;
|
||||
|
||||
public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
|
@ -131,14 +132,13 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, @Nullable Level level, List<Component> list, TooltipFlag flag) {
|
||||
list.add(Component.literal(""));
|
||||
list.add(Component.translatable("des.superbwarfare.trachelium_1").withStyle(ChatFormatting.GRAY).withStyle(ChatFormatting.ITALIC));
|
||||
list.add(Component.translatable("des.superbwarfare.trachelium_2").withStyle(ChatFormatting.GRAY));
|
||||
|
||||
TooltipTool.addHideText(list, Component.literal(""));
|
||||
TooltipTool.addHideText(list, Component.translatable("des.superbwarfare.trachelium_3").withStyle(ChatFormatting.WHITE));
|
||||
TooltipTool.addHideText(list, Component.translatable("des.superbwarfare.trachelium_4").withStyle(Style.EMPTY.withColor(0xF4F0FF)));
|
||||
|
||||
TooltipTool.addGunTips(list, stack);
|
||||
}
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
|
@ -160,7 +160,7 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/trachelium_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/trachelium_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -172,4 +172,5 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
|||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.HANDGUN_PERKS.test(perk);
|
||||
}
|
||||
|
||||
}
|
|
@ -16,7 +16,6 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
|
@ -28,7 +27,6 @@ import net.minecraft.world.entity.LivingEntity;
|
|||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
|
@ -40,11 +38,11 @@ import software.bernie.geckolib.core.animation.RawAnimation;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
|
@ -181,7 +179,7 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/javelin_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/javelin_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -189,13 +187,9 @@ public class JavelinItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return "FGM-148";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addLauncherTips(list, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.LAUNCHER_PERKS.test(perk);
|
||||
}
|
||||
|
||||
}
|
|
@ -12,12 +12,10 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
|
@ -25,7 +23,10 @@ import net.minecraft.world.effect.MobEffects;
|
|||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
|
@ -37,11 +38,11 @@ import software.bernie.geckolib.core.animation.RawAnimation;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
|
@ -153,7 +154,7 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/m79_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/m79_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -161,13 +162,9 @@ public class M79Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return "M79 LAUNCHER";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addLauncherTips(list, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.LAUNCHER_PERKS.test(perk);
|
||||
}
|
||||
|
||||
}
|
|
@ -12,12 +12,10 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
|
@ -25,7 +23,10 @@ import net.minecraft.world.effect.MobEffects;
|
|||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
|
@ -37,11 +38,11 @@ import software.bernie.geckolib.core.animation.RawAnimation;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
|
@ -77,10 +78,6 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
ItemStack stack = player.getMainHandItem();
|
||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||
|
||||
var tag = stack.getOrCreateTag();
|
||||
|
||||
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.rpg.reload"));
|
||||
}
|
||||
|
@ -167,7 +164,7 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/rpg_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/rpg_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -175,13 +172,9 @@ public class RpgItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return " RPG-7";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addLauncherTips(list, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.LAUNCHER_PERKS.test(perk);
|
||||
}
|
||||
|
||||
}
|
|
@ -14,12 +14,10 @@ import net.mcreator.superbwarfare.perk.Perk;
|
|||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.RarityTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
|
@ -28,10 +26,7 @@ import net.minecraft.world.entity.LivingEntity;
|
|||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
|
@ -41,11 +36,11 @@ import software.bernie.geckolib.core.animation.RawAnimation;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public String animationProcedure = "empty";
|
||||
public static ItemDisplayContext transformType;
|
||||
|
@ -133,11 +128,6 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, @Nullable Level level, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addShotgunTips(list, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(ModSounds.AA_12_RELOAD_EMPTY.get(), ModSounds.AA_12_RELOAD_NORMAL.get());
|
||||
|
@ -156,7 +146,7 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/aa_12_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/aa_12_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -168,4 +158,5 @@ public class Aa12Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk) || perk == ModPerks.DESPERADO.get();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.shotgun;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.AbekiriItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -11,22 +12,20 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
|
@ -36,11 +35,11 @@ import software.bernie.geckolib.core.animation.RawAnimation;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
|
@ -111,11 +110,6 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, @Nullable Level level, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addShotgunTips(list, stack);
|
||||
}
|
||||
|
||||
public static ItemStack getGunInstance() {
|
||||
ItemStack stack = new ItemStack(ModItems.ABEKIRI.get());
|
||||
GunsTool.initCreativeGun(stack, ModItems.ABEKIRI.getId().getPath());
|
||||
|
@ -128,7 +122,7 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/abekiri_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/abekiri_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -140,4 +134,5 @@ public class AbekiriItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.SHOTGUN_PERKS.test(perk);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -12,21 +12,20 @@ import net.mcreator.superbwarfare.item.gun.GunItem;
|
|||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemDisplayContext;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Rarity;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
import software.bernie.geckolib.core.animation.AnimatableManager;
|
||||
|
@ -36,11 +35,11 @@ import software.bernie.geckolib.core.animation.RawAnimation;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
|
@ -138,11 +137,6 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, @Nullable Level level, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addShotgunTips(list, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<SoundEvent> getReloadSound() {
|
||||
return Set.of(ModSounds.M_870_PREPARE_LOAD.get(),
|
||||
|
@ -162,7 +156,7 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/m870_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/m870_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -174,4 +168,5 @@ public class M870Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
public boolean canApplyPerk(Perk perk) {
|
||||
return PerkHelper.SHOTGUN_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk);
|
||||
}
|
||||
|
||||
}
|
|
@ -10,13 +10,11 @@ import net.mcreator.superbwarfare.item.AnimatedItem;
|
|||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
|
@ -35,10 +33,10 @@ import software.bernie.geckolib.core.animation.RawAnimation;
|
|||
import software.bernie.geckolib.core.object.PlayState;
|
||||
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
|
||||
|
||||
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||
public static ItemDisplayContext transformType;
|
||||
|
||||
|
@ -96,11 +94,6 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
return this.cache;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void appendHoverText(ItemStack stack, Level world, List<Component> list, TooltipFlag flag) {
|
||||
TooltipTool.addBocekTips(list, stack);
|
||||
}
|
||||
|
||||
public static int getAmmoCount(Player player) {
|
||||
int count = 0;
|
||||
for (var inv : player.getInventory().items) {
|
||||
|
@ -151,7 +144,7 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/bocek_icon.png");
|
||||
return ModUtils.loc("textures/gun_icon/bocek_icon.png");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -167,4 +160,5 @@ public class BocekItem extends GunItem implements GeoItem, AnimatedItem {
|
|||
case DAMAGE -> perk == ModPerks.MONSTER_HUNTER.get() || perk == ModPerks.KILLING_TALLY.get();
|
||||
};
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
package net.mcreator.superbwarfare.tools;
|
||||
|
||||
import net.mcreator.superbwarfare.init.ModKeyMappings;
|
||||
import net.mcreator.superbwarfare.init.ModPerks;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.perk.AmmoPerk;
|
||||
|
@ -47,71 +46,12 @@ public class TooltipTool {
|
|||
return 0;
|
||||
}
|
||||
|
||||
public static void addGunTips(List<Component> tooltip, ItemStack stack) {
|
||||
tooltip.add(Component.literal(""));
|
||||
|
||||
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * perkDamage(stack);
|
||||
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(damage) + (heBullet(stack) ? " + " + new DecimalFormat("##.#").format(0.8 * damage * (1 + 0.1 * heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)));
|
||||
if (stack.is(ModTags.Items.IS_AUTO_WEAPON)) {
|
||||
addRpmTips(tooltip, stack);
|
||||
}
|
||||
addLevelTips(tooltip, stack);
|
||||
addBypassTips(tooltip, stack);
|
||||
addPerkTips(tooltip, stack);
|
||||
if (stack.is(ModTags.Items.CAN_CUSTOM_GUN)) {
|
||||
addEditTips(tooltip);
|
||||
}
|
||||
}
|
||||
|
||||
public static void addShotgunTips(List<Component> tooltip, ItemStack stack) {
|
||||
tooltip.add(Component.literal(""));
|
||||
|
||||
boolean slug = false;
|
||||
|
||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) {
|
||||
slug = true;
|
||||
}
|
||||
|
||||
if (slug) {
|
||||
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * ItemNBTTool.getDouble(stack, "projectile_amount", 0) * perkDamage(stack);
|
||||
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(damage) + (heBullet(stack) ? " + " + new DecimalFormat("##.#").format(0.8 * damage * (1 + 0.1 * heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)));
|
||||
|
||||
} else {
|
||||
double damage = ItemNBTTool.getDouble(stack, "damage", 0) * perkDamage(stack);
|
||||
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(damage) + " * " + new DecimalFormat("##").format(ItemNBTTool.getDouble(stack, "projectile_amount", 0))).withStyle(ChatFormatting.GREEN)));
|
||||
}
|
||||
|
||||
if (stack.is(ModTags.Items.IS_AUTO_WEAPON)) {
|
||||
addRpmTips(tooltip, stack);
|
||||
}
|
||||
addLevelTips(tooltip, stack);
|
||||
addBypassTips(tooltip, stack);
|
||||
addPerkTips(tooltip, stack);
|
||||
|
||||
}
|
||||
|
||||
private static void addRpmTips(List<Component> tooltip, ItemStack stack) {
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.rpm").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##").format(ItemNBTTool.getDouble(stack, "rpm", 0) + ItemNBTTool.getDouble(stack, "customRpm", 0))).withStyle(ChatFormatting.GREEN)));
|
||||
}
|
||||
|
||||
private static void addEditTips(List<Component> tooltip) {
|
||||
tooltip.add(Component.literal(" ").withStyle(ChatFormatting.GRAY));
|
||||
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.edit", "[" + ModKeyMappings.EDIT_MODE.getKey().getDisplayName().getString() + "]").withStyle(ChatFormatting.LIGHT_PURPLE));
|
||||
}
|
||||
|
||||
private static void addLevelTips(List<Component> tooltip, ItemStack stack) {
|
||||
int level = ItemNBTTool.getInt(stack, "Level", 0);
|
||||
double rate = ItemNBTTool.getDouble(stack, "Exp", 0) / (20 * Math.pow(level, 2) + 160 * level + 20);
|
||||
|
@ -221,34 +161,6 @@ public class TooltipTool {
|
|||
}
|
||||
}
|
||||
|
||||
public static void addBocekTips(List<Component> tooltip, ItemStack stack) {
|
||||
tooltip.add(Component.literal(""));
|
||||
boolean slug = false;
|
||||
|
||||
var perk = PerkHelper.getPerkByType(stack, Perk.Type.AMMO);
|
||||
if (perk instanceof AmmoPerk ammoPerk && ammoPerk.slug) {
|
||||
slug = true;
|
||||
}
|
||||
|
||||
double total = ItemNBTTool.getDouble(stack, "damage", 0) * perkDamage(stack);
|
||||
|
||||
if (slug) {
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(total) + (heBullet(stack) ? " + " + new DecimalFormat("##.#").format(0.8 * total * (1 + 0.1 * heBulletLevel(stack))) : "")).withStyle(ChatFormatting.GREEN)));
|
||||
} else {
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(total * 0.1) + " * 10").withStyle(ChatFormatting.GREEN))
|
||||
.append(Component.literal(" / ").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(total)).withStyle(ChatFormatting.GREEN)));
|
||||
}
|
||||
|
||||
addLevelTips(tooltip, stack);
|
||||
addBypassTips(tooltip, stack);
|
||||
addPerkTips(tooltip, stack);
|
||||
}
|
||||
|
||||
public static void addSentinelTips(List<Component> tooltip, ItemStack stack) {
|
||||
tooltip.add(Component.literal(""));
|
||||
|
||||
|
@ -308,18 +220,4 @@ public class TooltipTool {
|
|||
);
|
||||
}
|
||||
|
||||
public static void addLauncherTips(List<Component> tooltip, ItemStack stack) {
|
||||
tooltip.add(Component.literal(""));
|
||||
|
||||
double damage = ItemNBTTool.getDouble(stack, "damage", 0);
|
||||
|
||||
tooltip.add(Component.translatable("des.superbwarfare.tips.damage").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(damage)).withStyle(ChatFormatting.GREEN)));
|
||||
|
||||
addLevelTips(tooltip, stack);
|
||||
addPerkTips(tooltip, stack);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,5 @@
|
|||
"mag": 1,
|
||||
"weight": 10,
|
||||
"EmptyReloadTime": 78,
|
||||
"damage": 700,
|
||||
"BypassesArmor": 1
|
||||
"damage": 700
|
||||
}
|
|
@ -6,6 +6,5 @@
|
|||
"velocity": 4,
|
||||
"mag": 1,
|
||||
"weight": 7,
|
||||
"EmptyReloadTime": 103,
|
||||
"BypassesArmor": 1
|
||||
"EmptyReloadTime": 103
|
||||
}
|
Loading…
Add table
Reference in a new issue