移动热量条位置

This commit is contained in:
Atsuishio 2025-04-21 12:06:49 +08:00 committed by Light_Quanta
parent f3b9f9aaf1
commit 9ce26b0cb9
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
2 changed files with 19 additions and 21 deletions

View file

@ -54,6 +54,25 @@ public abstract class GunItem extends Item implements CustomRendererItem {
addReloadTimeBehavior(this.reloadTimeBehaviors);
}
@Override
public boolean isBarVisible(@NotNull ItemStack stack) {
var data = GunData.from(stack);
return data.heat.get() != 0;
}
@Override
public int getBarWidth(@NotNull ItemStack stack) {
var data = GunData.from(stack);
return Math.round((float) data.heat.get() * 13.0F / 100F);
}
@Override
public int getBarColor(@NotNull ItemStack stack) {
var data = GunData.from(stack);
double f = 1 - data.heat.get() / 100.0F;
return Mth.hsvToRgb((float) f / 3.0F, 1.0F, 1.0F);
}
@Override
@ParametersAreNonnullByDefault
public boolean canAttackBlock(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer) {

View file

@ -11,11 +11,9 @@ import com.atsuishio.superbwarfare.perk.Perk;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.NotNull;
import software.bernie.geckolib.animatable.GeoItem;
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
import software.bernie.geckolib.animation.*;
@ -37,25 +35,6 @@ public class MinigunItem extends GunItem implements GeoItem {
super(new Properties().stacksTo(1).rarity(ModEnumExtensions.getLegendary()));
}
@Override
public boolean isBarVisible(@NotNull ItemStack stack) {
var data = GunData.from(stack);
return data.heat.get() != 0;
}
@Override
public int getBarWidth(@NotNull ItemStack stack) {
var data = GunData.from(stack);
return Math.round((float) data.heat.get() * 13.0F / 100F);
}
@Override
public int getBarColor(@NotNull ItemStack stack) {
var data = GunData.from(stack);
double f = 1 - data.heat.get() / 100.0F;
return Mth.hsvToRgb((float) f / 3.0F, 1.0F, 1.0F);
}
@Override
public Supplier<GeoItemRenderer<? extends Item>> getRenderer() {
return MinigunItemRenderer::new;