From 3a78b7dc371773c29a5e85369f16ae8eaf246424 Mon Sep 17 00:00:00 2001 From: TGGamesYT Date: Thu, 26 Feb 2026 18:44:01 +0100 Subject: [PATCH] I dont fckin know --- gradle.properties | 2 +- .../java/dev/tggamesyt/szar/FaszItem.java | 140 +++++++++++++++--- src/main/java/dev/tggamesyt/szar/Szar.java | 32 +++- .../resources/assets/szar/lang/en_us.json | 6 +- .../assets/szar/models/item/cndm.json | 6 + .../assets/szar/models/item/latex.json | 6 + .../assets/szar/models/item/white_liquid.json | 6 + .../textures/item/blue_cndm_base_original.png | Bin 0 -> 1339 bytes .../item/blue_cndm_overlay_original.png | Bin 0 -> 636 bytes .../assets/szar/textures/item/cndm.png | Bin 0 -> 1443 bytes .../assets/szar/textures/item/latex.png | Bin 0 -> 774 bytes .../szar/textures/item/white_liquid.png | Bin 0 -> 972 bytes .../resources/data/szar/damage_type/fck.json | 5 + .../resources/data/szar/recipes/cndm.json | 14 ++ .../resources/data/szar/recipes/latex.json | 20 +++ 15 files changed, 210 insertions(+), 27 deletions(-) create mode 100644 src/main/resources/assets/szar/models/item/cndm.json create mode 100644 src/main/resources/assets/szar/models/item/latex.json create mode 100644 src/main/resources/assets/szar/models/item/white_liquid.json create mode 100644 src/main/resources/assets/szar/textures/item/blue_cndm_base_original.png create mode 100644 src/main/resources/assets/szar/textures/item/blue_cndm_overlay_original.png create mode 100644 src/main/resources/assets/szar/textures/item/cndm.png create mode 100644 src/main/resources/assets/szar/textures/item/latex.png create mode 100644 src/main/resources/assets/szar/textures/item/white_liquid.png create mode 100644 src/main/resources/data/szar/damage_type/fck.json create mode 100644 src/main/resources/data/szar/recipes/cndm.json create mode 100644 src/main/resources/data/szar/recipes/latex.json diff --git a/gradle.properties b/gradle.properties index 6d5d5f7..e52c3bb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ minecraft_version=1.20.1 yarn_mappings=1.20.1+build.10 loader_version=0.18.3 # Mod Properties -mod_version=26.2.26 +mod_version=26.2.26.1 maven_group=dev.tggamesyt archives_base_name=szar # Dependencies diff --git a/src/main/java/dev/tggamesyt/szar/FaszItem.java b/src/main/java/dev/tggamesyt/szar/FaszItem.java index 3651b68..fcb8b16 100644 --- a/src/main/java/dev/tggamesyt/szar/FaszItem.java +++ b/src/main/java/dev/tggamesyt/szar/FaszItem.java @@ -1,52 +1,150 @@ package dev.tggamesyt.szar; import net.minecraft.block.Block; -import net.minecraft.block.Blocks; +import net.minecraft.entity.Entity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.damage.DamageType; +import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItem; import net.minecraft.item.ItemStack; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.nbt.NbtCompound; import net.minecraft.particle.BlockStateParticleEffect; import net.minecraft.particle.ParticleTypes; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.server.world.ServerWorld; +import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.TypedActionResult; import net.minecraft.world.World; -import java.util.ArrayList; import java.util.List; import java.util.Random; +import static dev.tggamesyt.szar.Szar.*; + public class FaszItem extends BlockItem { + private static final int MAX_CHARGE_CLICKS = 4; + private static final int COOLDOWN_TICKS = 1; // 1 tick + private static final String BURST_KEY = "BurstCount"; + private static final Random RANDOM = new Random(); + private static final ItemStack CNDM = new ItemStack(Szar.CNDM); + public FaszItem(Block block, Settings settings) { - super(block, settings); + super(block, settings.maxDamage(MAX_CHARGE_CLICKS)); + } + + // Allow sneak-place + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + if (context.getPlayer() != null && context.getPlayer().isSneaking()) { + return ActionResult.SUCCESS; + } + return ActionResult.FAIL; } @Override public TypedActionResult use(World world, PlayerEntity user, Hand hand) { ItemStack stack = user.getStackInHand(hand); - if (!world.isClient && stack.isOf(this) && new Random().nextInt(5) == 1) { - ServerWorld serverWorld = (ServerWorld) world; + if (hand != Hand.MAIN_HAND) return TypedActionResult.success(stack); - // Get the direction the player's torso is looking - var lookVec = user.getRotationVec(1.0F); // normalized direction vector + if (world.isClient) return TypedActionResult.success(stack); - // Calculate the particle spawn position 2 blocks ahead - double px = user.getX() + lookVec.x * 2; - double py = user.getBodyY(0.5); // torso height - double pz = user.getZ() + lookVec.z * 2; + boolean isCreative = user.isCreative(); - // Spawn block particles - serverWorld.spawnParticles( - new BlockStateParticleEffect(ParticleTypes.BLOCK, Szar.FASZ_BLOCK.getDefaultState()), - px, py, pz, // position - 20, // particle count - 0.3, 0.3, 0.3, // spread in x/y/z - 0.05 // velocity - ); + int damage = stack.getDamage(); + int maxDamage = stack.getMaxDamage(); + NbtCompound nbt = stack.getOrCreateNbt(); + int burstCount = nbt.getInt(BURST_KEY); + + // In creative, ignore charging/cooldown + if (isCreative) { + if (user.getOffHandStack().getItem() == Szar.CNDM) {user.getOffHandStack().decrement(1);} + spawnParticlesAndDamage((ServerWorld) world, user); + return TypedActionResult.success(stack); } - return TypedActionResult.pass(stack); + // Charging phase + if (damage < maxDamage) { + stack.setDamage(damage + 1); + return TypedActionResult.success(stack); + } + +// Burst phase (after full charge) + int burstClicks = nbt.getInt("BurstClicks"); // NEW NBT counter for burst clicks + if (burstClicks < 4) { // do 4 burst clicks + spawnParticlesAndDamage((ServerWorld) world, user); + + // Optional: handle offhand special item + if (user.getOffHandStack().getItem() == Szar.CNDM) { + user.dropStack(new ItemStack(Szar.WHITE_LIQUID)); + user.getOffHandStack().decrement(1); + } + + burstClicks++; + nbt.putInt("BurstClicks", burstClicks); + + // After 4 burst clicks → cooldown + reset + if (burstClicks >= 4) { + user.getItemCooldownManager().set(this, COOLDOWN_TICKS); + stack.setDamage(0); + nbt.putInt("BurstClicks", 0); + } + + return TypedActionResult.success(stack); + } + + return TypedActionResult.success(stack); } -} + + private void spawnParticlesAndDamage(ServerWorld world, PlayerEntity user) { + var lookVec = user.getRotationVec(1.0F); + double px = user.getX() + lookVec.x * 2; + double py = user.getBodyY(0.5); + double pz = user.getZ() + lookVec.z * 2; + + // Spawn particles + world.spawnParticles( + new BlockStateParticleEffect(ParticleTypes.BLOCK, Szar.FASZ_BLOCK.getDefaultState()), + px, py, pz, + 20, + 0.3, 0.3, 0.3, + 0.05 + ); + + // Damage ANY entity whose hitbox contains the particle + world.getEntitiesByClass(Entity.class, user.getBoundingBox().expand(2), e -> e != user).forEach(e -> { + if (e.getBoundingBox().contains(px, py, pz)) { + if (e instanceof LivingEntity living) { + // Always deal half a heart + RegistryEntry radiationEntry = SERVER.getRegistryManager() + .get(RegistryKeys.DAMAGE_TYPE) + .getEntry(FCK_DAMAGE) + .orElseThrow(() -> new IllegalStateException("FCK DamageType not registered!")); + living.damage(new DamageSource(radiationEntry, user), 1.0F); + + // If the entity is a player → apply special effect logic + if (living instanceof PlayerEntity target) { + int chance = 5; // 1/5 default + ItemStack offhand = user.getOffHandStack(); + if (!offhand.isEmpty() && offhand.isOf(CNDM.getItem())) { + chance = 100; // 1/100 if special offhand + } + + if (RANDOM.nextInt(chance) == 0) { + // Apply status effect + target.addStatusEffect(new StatusEffectInstance(Szar.PREGNANT, 20 * 60 * 20)); + // If special offhand → break 1 item + if (chance == 100) offhand.decrement(1); + } + } + } + } + }); + } +} \ No newline at end of file diff --git a/src/main/java/dev/tggamesyt/szar/Szar.java b/src/main/java/dev/tggamesyt/szar/Szar.java index 12a11cd..d761e49 100644 --- a/src/main/java/dev/tggamesyt/szar/Szar.java +++ b/src/main/java/dev/tggamesyt/szar/Szar.java @@ -287,6 +287,9 @@ public class Szar implements ModInitializer { entries.add(Szar.BAITER_DISK); entries.add(Szar.MERL_SPAWNEGG); entries.add(Szar.EFN_DISK); + entries.add(Szar.CNDM); + entries.add(Szar.LATEX); + entries.add(Szar.WHITE_LIQUID); }) .build() ); @@ -653,6 +656,21 @@ public class Szar implements ModInitializer { new BlockItem(OBELISK_CORE, new Item.Settings()) ); } + public static final Item CNDM = Registry.register( + Registries.ITEM, + new Identifier(MOD_ID, "cndm"), + new Item(new Item.Settings()) + ); + public static final Item WHITE_LIQUID = Registry.register( + Registries.ITEM, + new Identifier(MOD_ID, "white_liquid"), + new Item(new Item.Settings().food(new FoodComponent.Builder().alwaysEdible().hunger(1).build())) + ); + public static final Item LATEX = Registry.register( + Registries.ITEM, + new Identifier(MOD_ID, "latex"), + new Item(new Item.Settings()) + ); public static final StructurePieceType TNT_OBELISK_PIECE = Registry.register( Registries.STRUCTURE_PIECE, @@ -704,6 +722,8 @@ public class Szar implements ModInitializer { new PregnantEffect()); public static final RegistryKey RADIATION_DAMAGE = RegistryKey.of(RegistryKeys.DAMAGE_TYPE, new Identifier(MOD_ID, "radiation")); + public static final RegistryKey FCK_DAMAGE = + RegistryKey.of(RegistryKeys.DAMAGE_TYPE, new Identifier(MOD_ID, "fck")); public static final Item AK_AMMO = Registry.register( Registries.ITEM, new Identifier(MOD_ID, "bullet"), @@ -1186,9 +1206,9 @@ public class Szar implements ModInitializer { // Determine who is holding the special item if (isHoldingSpecial(sleeper)) { // The OTHER player gets the effect - givePregnantEffect(other, sleeper); + givePregnantEffect(other, sleeper, sleeper.getOffHandStack().getItem() == CNDM ? 100 : 5); } else if (isHoldingSpecial(other)) { - givePregnantEffect(sleeper, other); + givePregnantEffect(sleeper, other, other.getOffHandStack().getItem() == CNDM ? 100 : 5); } } } @@ -1199,10 +1219,14 @@ public class Szar implements ModInitializer { return p.getMainHandStack().getItem() == FASZITEM; } - private void givePregnantEffect(ServerPlayerEntity player, ServerPlayerEntity partner) { + private void givePregnantEffect(ServerPlayerEntity player, ServerPlayerEntity partner, int chance) { + if (partner.getOffHandStack().getItem() == Szar.CNDM) { + partner.getOffHandStack().decrement(1); + partner.dropStack(new ItemStack(WHITE_LIQUID)); + } Random r = new Random(); System.out.println(r.nextInt()); - if (r.nextInt(10) == 6) { + if (r.nextInt(chance) == 0) { player.addStatusEffect(new StatusEffectInstance(PREGNANT, 20 * 60 * 20, 0, false, false, true)); pregnantPartners.put(player.getUuid(), partner.getUuid()); } diff --git a/src/main/resources/assets/szar/lang/en_us.json b/src/main/resources/assets/szar/lang/en_us.json index 48fc540..37b30c4 100644 --- a/src/main/resources/assets/szar/lang/en_us.json +++ b/src/main/resources/assets/szar/lang/en_us.json @@ -73,5 +73,9 @@ "item.szar.merl_spawn_egg": "Merl Spawn Egg", "effect.szar.pregnant": "Pregnant", "entity.szar.kid": "Kid", - "block.szar.obelisk_core": "Towers Core Block" + "block.szar.obelisk_core": "Towers Core Block", + "item.szar.cndm": "Condom", + "item.szar.latex": "Latex", + "death.attack.fck": "%1$s got fucked too hard by %2$s", + "item.szar.white_liquid": "..." } diff --git a/src/main/resources/assets/szar/models/item/cndm.json b/src/main/resources/assets/szar/models/item/cndm.json new file mode 100644 index 0000000..10b5ebf --- /dev/null +++ b/src/main/resources/assets/szar/models/item/cndm.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "szar:item/cndm" + } +} diff --git a/src/main/resources/assets/szar/models/item/latex.json b/src/main/resources/assets/szar/models/item/latex.json new file mode 100644 index 0000000..1e93f97 --- /dev/null +++ b/src/main/resources/assets/szar/models/item/latex.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "szar:item/latex" + } +} diff --git a/src/main/resources/assets/szar/models/item/white_liquid.json b/src/main/resources/assets/szar/models/item/white_liquid.json new file mode 100644 index 0000000..d438bf3 --- /dev/null +++ b/src/main/resources/assets/szar/models/item/white_liquid.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "szar:item/white_liquid" + } +} diff --git a/src/main/resources/assets/szar/textures/item/blue_cndm_base_original.png b/src/main/resources/assets/szar/textures/item/blue_cndm_base_original.png new file mode 100644 index 0000000000000000000000000000000000000000..40e69e40dc052e6bf646405a27b848f3470ce8b6 GIT binary patch literal 1339 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~8rm~MB1$5BeXNr6bM+Ea@{>~aDsl^esu>t; z>?;Zqle1Gx6p~WYGxKcK-|yb9u8^5xs~&FZYv5bpoSKp8QB{;0T;&&%T$P<{nWAoQ z$IE3?VFffHH?<^Dp&~aYuh^=>Rtapd6_5=Q)>pE#DN0GR3UYCSssQqAl`=|73as?? z%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{^NN+B2DqdaCl_TFlw{`TDS!-2 zOv*1Uu~jN9%}lXMOH4CON=Y%*O-eLQ(KR$oNz_eDF*ejqF*Z&yH#M{{N;6DSf?8ja znTD`GuNWE(zyQ$)$>>wgQzXDnC zkO2h~Jakj@fI(Ug3_G1EGq@QTm~A~>978JN-p<;eC+sNDe!Nhp^^nk_$BY$BTwE$j zDqSHLmb=&p^E2rR`6@NKxbWNhPUubHF4||mtYPD|;@z8#cNdG_-sx|ZyJ=hg_wQ%# zsCw}wBqSVodh_PT)*)gE5pPIU7-~(Uduh$)Hcg+WrW_oi<-t!Os`&<&oyFH zUDGxH;^C#M#0rYuKfD&h7rOJ#uYIZv|GYPd1d0`FbXRJ}aD=-Bi+_2lva0AN7r!E- zM;`}ItXT1{Nwb#eO>%8%QeMO0qI^he3x97%M1hM6L#O8iw*5apD_3|tQ1NJ1)?z$R z;;ggBWXYG>kR~&WMPdy*ly-cWWT2QdKlhcArNty22F}+0+&Jd)b&D5s&JCKV+OSPg z=vGe8$B$ENPhI+dJE5;7g>mP@%pE|1eMh^uwx}?!e7H5yIl{|B=s`1gzThmONef(c z6+&v|V_EtazGd3VAiwX`cfmW0xI>thTz#)>)4mMIs=4s$yR6-I?oF&azR2EVGG^Q^ zdG9*wrPB^N2g?5@|GuC0BjyMb-_#t&-!Zi(L^r&Ds2F}gQ9yLUZ}#?Bb&UrXnw51K zXFZsFQg#=+iLdAKvbH%+9jtGpS6}V%t2`+-A^AR2-rrSGF8^20(M^zlpt6Fc(>8uzPmuEfFpo2i*ffQ)`eedu09Xoe!!7?O6qj!B$k$43_a%0o2~b6`!zv} zL8-fN_L)X&{q6F7DvTA%55?yCEPK;tdgR>Ex5{pl7^dHNwDD~5lbW!uD2Bg=OiY{$ zc$913XPFAGJ-blo0e8QLdDFuk&P^qICA1g~*O-YOE|T5Iud*?NKIPhsWX|p&-htIiG74_%j%in949}Ql0J~3+VN6xuIg{75x)loIm z4@V#5+QH4j8WFyqTgU2@c7pt&=!c>gSjDb>npk~rTEnWSoOhG1J-+V0-dggd)y6_# bDnA@Q(`2Dl{p%$upc2f})z4*}Q$iB}w_F-B literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/szar/textures/item/blue_cndm_overlay_original.png b/src/main/resources/assets/szar/textures/item/blue_cndm_overlay_original.png new file mode 100644 index 0000000000000000000000000000000000000000..dc3dc85dc0731a0245648a32dddc0b1ab4893ffb GIT binary patch literal 636 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~8rm~MB1$5BeXNr6bM+Ea@{>~aDsl^esu>t; z>?;Zqle1Gx6p~WYGxKcK-|yb9u8^5xs~&FZYv5bpoSKp8QB{;0T;&&%T$P<{nWAoQ z$IE3?VFffHH?<^Dp&~aYuh^=>Rtapd6_5=Q)>pE#DN0GR3UYCSssQqAl`=|73as?? z%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{^NN+B2DqdaCl_TFlw{`TDS!-2 zOv*1Uu~jN9%}lXMOH4CON=Y%*O-eLQ(KR$oNz_eDF*ejqF*Z&yH#M{{N;6DSf?8ja znTD`GuNWE(zyQ$)$>>wgQzXDnC zkO2h~Jakj@fI(Ug3_G1EGq{1_UgzoJ7*Y}U_L4VWivkZr!13SrcW&Oe?DB*Rp0tQP z+h4OYwdOK|V~Amfg3_YrVVk}mu|K--*xtCuOP{8Gy0ExA_G)$hv$U$G>@F@fe0#55 zoo6*6>iplVx@qBTA42%n@~gIgxV?8r&Dp9Cfi-#(Yb38`^FYjF_+G=Pbf|fGwfvQh OAQ4YjKbLh*2~7Z@F4~>| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/szar/textures/item/cndm.png b/src/main/resources/assets/szar/textures/item/cndm.png new file mode 100644 index 0000000000000000000000000000000000000000..f6984b387411f07282d8d352428f481a2ed49ac0 GIT binary patch literal 1443 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~8rm~MB1$5BeXNr6bM+Ea@{>~aDsl^esu>t; z>?;Zqle1Gx6p~WYGxKcK-|yb9u8^5xs~&FZYv5bpoSKp8QB{;0T;&&%T$P<{nWAoQ z$IE3?VFffHH?<^Dp&~aYuh^=>Rtapd6_5=Q)>pE#DN0GR3UYCSssQqAl`=|73as?? z%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{^NN+B2DqdaCl_TFlw{`TDS!-2 zOv*1Uu~jN9%}lXMOH4CON=Y%*O-eLQ(KR$oNz_eDF*ejqF*Z&yH#M{{N;6DSf?8ja znTD`GuNWE(zyQ$)$>>wgQzXDnC zkO2h~Jakj@fI(Ug3_G1EGq@QTn3sCGIEGZjy`6P1@3MnH+j3v!sm>}#df6Xv1{`Ia z%GK$te_-iyIl=Qsg1@kYtF&D53R(JyuUyZSGe~Pivh_m-;oM`pHyiIxp6pa#$ zs_*~H-h}xvn&sSh@ae^en!JnqYD~{(&6oe5$IoZK>Fr_l_miShPTyrzchHNz&|H1~ z-Q_&P@Z}8m-KTGjZ5ASp@>|#(53fjoUA8X4T^DN-9p6K<-=eL~hX=~W^ z%W=1l1Lx&O(Iv$zS8=|%w`=#6>CT~X`ftry4#;y(Q#zHzlWLgP!u{~njH|4+b6i5> z%nvzxFicWra-M#4hFp;G>h2W5g%3Ei87_8g;Ckz-NFB3lCGksLsmuZ4S{JwlURN{I27Ho ztVJawkeg%ezJ9Z&;}^mjqZ;_{zbY5JvxqB%Y02vQt`&T~qAOT_ELeTN^v4~o6Jif8 zl~!<{Vfl0R!#=GE_t=sc_x+YXJ)gVY&}LDrc58%#cnnYfw3fiilKV|Lj0>+mKlC8| z`<(8Ff^Xi=KXC8g$wlY?_8eb(Qs_YIaRb9U#Vbr~?uAvH5KZ9qS{!u8Ys0dSM>+m} z6NxwbF>lqr<@%5OB$#(D?fq?{^C-G<*ZWKF%~uziX=jQvFwEIsFZC~tgZ098ohZiG z$yy5vxijJnf3n4zOEEdM~hkms{p`PNg_XotR9?j0XjX9@icvy47qb-*)# zlf#yMM`*_63p@6G;ty^1IH@J1TA>0`=ePfo$zqgQ=oy)8={Kn%K(yiGlbV9- z*VoxC;c7UMa7U&1!Mf9D+m$^T>^ycj{{G8ooyfZ}yYO?zM3n=oW)(S~WGwBqU3DA& zNijCE1hh?@XFa#iCAkf$f0uh` zDKTF9pf^n^<3nWa<`NtBi48IVEnysO+u{nn9?yNy+-!bY-&Htl{^63ZRlB!%A9;GS z@WbP0l+XkKNL@^r literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/szar/textures/item/latex.png b/src/main/resources/assets/szar/textures/item/latex.png new file mode 100644 index 0000000000000000000000000000000000000000..f99f983906a1da232654293e07e8101769408f0f GIT binary patch literal 774 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufG}g$wN6f;hW5;mh>{3jAFJg2T)o7U{G?R9irfOAY6b=y z`-+0Zwic-?7f?V97Du6s&rHqo20xNy} z^73-Ma$~*xqI7*jOG`_A10#JSBVC{h-Qvo;lEez#ykcdj0WPV<$wiq3C7Jno3Lpa$ zlk!VTY?Vq&GgGY664OkRQc_HHlM;`)}WOyVia{(n(_!|m!*BBgIvgA${s LtDnm{r-UW|N&_Ku literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/szar/textures/item/white_liquid.png b/src/main/resources/assets/szar/textures/item/white_liquid.png new file mode 100644 index 0000000000000000000000000000000000000000..1c867ba21a24571b03303f777d60e51f16ea302f GIT binary patch literal 972 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sEXgD|57Yp@DXLwjaOL`j6Nk5zJhu3lnFep0GlMQ#C5H3Nf< zeMLcHa&~HoLQ-maW}dD3``!E16*5z7)x%AF4SWlnQ!_F>s)|yBtNcQetFn_VQ`GJ4 zc)4sUtbiuurj{fsROII56ON0GHI_ zN%^HEwo0X?nJHFjiD{-uDJiD9Nr}cOx`u`+iMoj?#)i5n#>Oe;riK zGN53Bhi+;fFi6XRVW%@?1~)KD&Uv~xhE&A8of+NNY{29CHd0)t@oE`oVr)v?tH37@ zCob7*zV^e!2~n3FYTqmgaA{KD0HNwdb_bM}PN~i5ubj8=zF<|sP7jmke?Dv!3XOeZ z>c#S8!6TvlUSGIEV*{A#Y97peGDm*BT0fhXL+JEPz0n&s?tPryxFyu{bjXL3i*D^> zsbf0qQo*S_NpIo2ob}Q^4AzCryVxppPHy6^ao@0z%VM{h#qIVMEeAfWed5WE!U4e# zXPw_8J&R%IiZ3_qR74n+wW7IQ8#+#G%k7`DStge)S}exF+evvDV@!k1>i5a>HgV5z zVBHc@FA~5Q6j^(CSA!;>-U88YRt(|`Zk6>Pj^j>X3i6s6dsZ%i=}F|-dtIBZF|KHc zn=$uuAXCoX7jI|D*?Aq{aBASc(<|_Rxm=m$$AP;ITme^?t(7^~mc7(ZJGptazA{V4WCNqh zM88I%`D^OWr*tqpYdt6G%p$Q^Y+rvv?MZ1CM}apVxTl6F9KH1WpbjWYdAj