Minecraft — Energy Client

// EnergyHudOverlay.java package com.example.energyclient.client; import com.example.energyclient.EnergyClientMod; import com.example.energyclient.component.EnergyComponent; import com.mojang.blaze3d.systems.RenderSystem; import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.render.RenderTickCounter; import net.minecraft.text.Text; import net.minecraft.util.Identifier;

@Override public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand) ItemStack stack = user.getStackInHand(hand); EnergyComponent energy = EnergyClientMod.ENERGY.get(user); if (energy.getEnergy() < energy.getMaxEnergy()) energy.addEnergy(charge); stack.decrementUnlessCreative(1, user); return TypedActionResult.success(stack); return TypedActionResult.fail(stack);

// BatteryItem.java public class BatteryItem extends Item private final int charge; public BatteryItem(Settings settings, int charge) super(settings); this.charge = charge; energy client minecraft

// Drain actions if (player.isSprinting() && player.isOnGround()) if (!consume(COST_SPRINT)) player.setSprinting(false);

@Override public void onInitialize() System.out.println("Energy Client initialized!"); // EnergyHudOverlay

@Override public void readFromNbt(NbtCompound tag, RegistryWrapper.WrapperLookup registryLookup) this.energy = tag.getInt("energy");

public class EnergyHudOverlay implements HudRenderCallback private static final Identifier ENERGY_BAR = Identifier.of("energyclient", "textures/gui/energy_bar.png"); @Override public TypedActionResult&lt

// EnergyConfig.java public class EnergyConfig private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); public int maxEnergy = 1000; public int genWalk = 2; public int genSprint = 5; public int costSprint = 3; public int costJump = 10; public int costAttack = 15; public int costBreak = 8; public static EnergyConfig load() File file = new File("config/energyclient.json"); if (file.exists()) try (Reader reader = new FileReader(file)) return GSON.fromJson(reader, EnergyConfig.class); catch (IOException e) e.printStackTrace(); EnergyConfig config = new EnergyConfig(); config.save(); return config;