2525
2626import java .util .regex .Pattern ;
2727
28+ import com .mojang .blaze3d .systems .RenderSystem ;
2829import io .github .axolotlclient .AxolotlClientConfig .Color ;
30+ import io .github .axolotlclient .AxolotlClientConfig .util .ConfigUtils ;
31+ import io .github .axolotlclient .modules .hud .util .ItemUtil ;
32+ import io .github .axolotlclient .modules .hypixel .bedwars .BedwarsMod ;
33+ import net .minecraft .client .MinecraftClient ;
34+ import net .minecraft .client .gui .DrawableHelper ;
35+ import net .minecraft .client .texture .Sprite ;
36+ import net .minecraft .entity .effect .StatusEffects ;
37+ import net .minecraft .item .ItemStack ;
38+ import net .minecraft .item .Items ;
39+ import net .minecraft .util .Identifier ;
40+ import org .lwjgl .opengl .GL11 ;
2941
3042/**
3143 * @author DarkKronicle
@@ -37,51 +49,102 @@ public class BedwarsTeamUpgrades {
3749
3850 public final TeamUpgrade sharpness = new BinaryUpgrade (
3951 "sharp" , Pattern .compile ("^\\ b[A-Za-z0-9_§]{3,16}\\ b purchased Sharpened Swords" ),
40- 8 , 4 , new TextureInfo ("textures/item/stone_sword.png" ), new TextureInfo ("textures/item/diamond_sword.png" )
41- );
52+ 8 , 4 , (stack , x , y , width , height , upgradeLevel ) -> {
53+ if (upgradeLevel == 0 ){
54+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .STONE_SWORD ), x , y );
55+ } else {
56+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (),new ItemStack (Items .DIAMOND_SWORD ), x , y );
57+ }
58+ });
4259
4360 public final TeamUpgrade dragonBuff = new BinaryUpgrade (
4461 "dragonbuff" , Pattern .compile ("^\\ b[A-Za-z0-9_§]{3,16}\\ b purchased Dragon Buff\\ s*$" ),
45- 5 , 5 , new TextureInfo ("textures/item/end_crystal.png" , Color .DARK_GRAY ),
46- new TextureInfo ("textures/item/end_crystal.png" )
47- );
62+ 5 , 5 , (graphics , x , y , width , height , purchased ) -> {
63+ if (purchased > 0 ) {
64+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .END_CRYSTAL ), x , y );
65+ }
66+ });
4867
4968 public final TeamUpgrade healPool = new BinaryUpgrade (
5069 "healpool" , Pattern .compile ("^\\ b[A-Za-z0-9_§]{3,16}\\ b purchased Heal Pool\\ s*$" ),
51- 3 , 1 , new TextureInfo ("textures/mob_effect/health_boost.png" , 0 , 0 , 18 , 18 , Color .DARK_GRAY ),
52- new TextureInfo ("textures/mob_effect/health_boost.png" , 0 , 0 , 18 , 18 )
53- );
70+ 3 , 1 , (graphics , x , y , width , height , upgradeLevel ) -> {
71+ if (upgradeLevel == 0 ){
72+ Color color = Color .DARK_GRAY ;
73+ RenderSystem .color4f (color .getAlpha ()/255F , color .getRed ()/255F , color .getGreen ()/255F , color .getBlue ()/255F );
74+ }
75+ Sprite sprite = MinecraftClient .getInstance ().getStatusEffectSpriteManager ().getSprite (StatusEffects .HEALTH_BOOST );
76+ MinecraftClient .getInstance ().getTextureManager ().bindTexture (sprite .getAtlas ().getId ());
77+ DrawableHelper .drawSprite (graphics , x , y , 0 , width , height , sprite );
78+ });
5479
5580 public final TeamUpgrade protection = new TieredUpgrade (
5681 "prot" , Pattern .compile ("^\\ b[A-Za-z0-9_§]{3,16}\\ b purchased Reinforced Armor .{1,3}\\ s*$" ),
57- new int []{5 , 10 , 20 , 30 }, new int []{2 , 4 , 8 , 16 }, new TextureInfo []{
58- new TextureInfo ("textures/mob_effect/resistance.png" , 0 , 0 , 18 , 18 , Color .DARK_GRAY ),
59- new TextureInfo ("textures/mob_effect/resistance.png" , 0 , 0 , 18 , 18 ),
60- new TextureInfo ("textures/mob_effect/resistance.png" , 0 , 0 , 18 , 18 , Color .parse ("#FFFF00" )),
61- new TextureInfo ("textures/mob_effect/resistance.png" , 0 , 0 , 18 , 18 , Color .parse ("#00FF00" )),
62- new TextureInfo ("textures/mob_effect/resistance.png" , 0 , 0 , 18 , 18 , Color .parse ("#FF0000" )),
63- }
64- );
82+ new int []{5 , 10 , 20 , 30 }, new int []{2 , 4 , 8 , 16 }, (graphics , x , y , width , height , upgradeLevel ) -> {
83+ switch (upgradeLevel ){
84+ case 1 :
85+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .IRON_CHESTPLATE ), x , y );
86+ ConfigUtils .applyScissor (x , y +height /2 , width /2 , height );
87+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .DIAMOND_CHESTPLATE ), x , y );
88+ GL11 .glDisable (GL11 .GL_SCISSOR_TEST );
89+ break ;
90+ case 2 :
91+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .IRON_CHESTPLATE ), x , y );
92+ ConfigUtils .applyScissor (x , y , width /2 , height );
93+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .DIAMOND_CHESTPLATE ), x , y );
94+ GL11 .glDisable (GL11 .GL_SCISSOR_TEST );
95+ break ;
96+ case 3 :
97+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .DIAMOND_CHESTPLATE ), x , y );
98+ ConfigUtils .applyScissor (x +width /2 , y +height /2 , width /2 , height );
99+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .IRON_CHESTPLATE ), x , y );
100+ GL11 .glDisable (GL11 .GL_SCISSOR_TEST );
101+ break ;
102+ case 4 :
103+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .DIAMOND_CHESTPLATE ), x , y );
104+ break ;
105+ default :
106+ ItemUtil .renderGuiItemModel (BedwarsMod .getInstance ().getUpgradesOverlay ().getScale (), new ItemStack (Items .IRON_CHESTPLATE ), x , y );
107+ break ;
108+ }
109+ });
65110
66111 public final TeamUpgrade maniacMiner = new TieredUpgrade (
67112 "haste" , Pattern .compile ("^\\ b[A-Za-z0-9_§]{3,16}\\ b purchased Maniac Miner .{1,3}\\ s*$" ),
68- new int []{2 , 4 }, new int []{4 , 6 }, new TextureInfo []{
69- new TextureInfo ("textures/mob_effect/haste.png" , 0 , 0 , 18 , 18 , Color .DARK_GRAY ),
70- new TextureInfo ("textures/mob_effect/haste.png" , 0 , 0 , 18 , 18 , Color .GRAY ),
71- new TextureInfo ("textures/mob_effect/haste.png" , 0 , 0 , 18 , 18 ),
72- }
73- );
113+ new int []{2 , 4 }, new int []{4 , 6 }, (graphics , x , y , width , height , upgradeLevel ) -> {
114+ if (upgradeLevel == 1 ) {
115+ Color color = Color .GRAY ;
116+ RenderSystem .color4f (color .getAlpha () / 255F , color .getRed () / 255F , color .getGreen () / 255F , color .getBlue () / 255F );
117+ } else if (upgradeLevel == 0 ) {
118+ Color color = Color .DARK_GRAY ;
119+ RenderSystem .color4f (color .getAlpha () / 255F , color .getRed () / 255F , color .getGreen () / 255F , color .getBlue () / 255F );
120+ }
121+ Sprite sprite = MinecraftClient .getInstance ().getStatusEffectSpriteManager ().getSprite (StatusEffects .HASTE );
122+ MinecraftClient .getInstance ().getTextureManager ().bindTexture (sprite .getAtlas ().getId ());
123+ DrawableHelper .drawSprite (graphics , x , y , 0 , width , height , sprite );
124+ });
74125
75126 public final TeamUpgrade forge = new TieredUpgrade (
76127 "forge" , Pattern .compile ("^\\ b[A-Za-z0-9_§]{3,16}\\ b purchased (?:Iron|Golden|Emerald|Molten) Forge\\ s*$" ),
77- new int []{2 , 4 }, new int []{4 , 6 }, new TextureInfo []{
78- new TextureInfo ("textures/block/furnace_front.png" , 198 + 18 , 6 *18 , 18 , 18 ),
79- new TextureInfo ("textures/block/furnace_front_on.png" , 198 + 18 , 6 *18 , 18 , 18 ),
80- new TextureInfo ("textures/block/furnace_front_on.png" , 198 + 18 , 6 *18 , 18 , 18 , Color .parse ("#FFFF00" )),
81- new TextureInfo ("textures/block/furnace_front_on.png" , 198 + 18 , 6 *18 , 18 , 18 , Color .parse ("#00FF00" )),
82- new TextureInfo ("textures/block/furnace_front_on.png" , 198 + 18 , 6 *18 , 18 , 18 , Color .parse ("#FF0000" )),
83- }
84- );
128+ new int []{2 , 4 }, new int []{4 , 6 }, (graphics , x , y , width , height , upgradeLevel ) -> {
129+ if (upgradeLevel == 0 ){
130+ MinecraftClient .getInstance ().getTextureManager ().bindTexture (new Identifier ("textures/block/furnace_front.png" ));
131+ DrawableHelper .drawTexture (graphics , x , y , 0 , 0 , width , height , width , height );
132+ } else {
133+ if (upgradeLevel == 2 ){
134+ Color color = Color .parse ("#FFFF00" );
135+ RenderSystem .color4f (color .getAlpha () / 255F , color .getRed () / 255F , color .getGreen () / 255F , color .getBlue () / 255F );
136+ } else if (upgradeLevel == 3 ) {
137+ Color color = Color .parse ("#00FF00" );
138+ RenderSystem .color4f (color .getAlpha () / 255F , color .getRed () / 255F , color .getGreen () / 255F , color .getBlue () / 255F );
139+ } else if (upgradeLevel == 4 ){
140+ Color color = Color .parse ("#FF0000" );
141+ RenderSystem .color4f (color .getAlpha () / 255F , color .getRed () / 255F , color .getGreen () / 255F , color .getBlue () / 255F );
142+ }
143+ MinecraftClient .getInstance ().getTextureManager ().bindTexture (new Identifier ("textures/block/furnace_front_on.png" ));
144+ DrawableHelper .drawTexture (graphics , x , y , 0 , 0 , width , height , width , height );
145+ MinecraftClient .getInstance ().textRenderer .drawWithShadow (graphics , String .valueOf (upgradeLevel ), x +width -4 , y +height -6 , -1 );
146+ }
147+ });
85148
86149 public final TeamUpgrade [] upgrades = {trap , sharpness , dragonBuff , healPool , protection , maniacMiner , forge };
87150
0 commit comments