Skip to content

Commit 8c6ce8c

Browse files
haykam821Gegy
authored andcommitted
Add viral taters
1 parent c02c3fa commit 8c6ce8c

File tree

7 files changed

+49
-29
lines changed

7 files changed

+49
-29
lines changed

src/main/java/xyz/nucleoid/extras/lobby/NEBlocks.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ public class NEBlocks {
145145
}, "ewogICJ0aW1lc3RhbXAiIDogMTY0MDYyMDQyODY1MiwKICAicHJvZmlsZUlkIiA6ICJmODJmNTQ1MDIzZDA0MTFkYmVlYzU4YWI4Y2JlMTNjNyIsCiAgInByb2ZpbGVOYW1lIiA6ICJSZXNwb25kZW50cyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8zMmI3Y2QyYzVkNzBjYWI0NzZjZTk1MWUyYzUyMGM5YjM1NzkyNTBhZDkwMDE2NGQ2YzIzMjFjN2Y0M2Q2ZGM3IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=");
146146

147147
public static final Block WARDEN_TATER = createWardenTaterBlock("ewogICJ0aW1lc3RhbXAiIDogMTY0MDgxMTgxMjYwNCwKICAicHJvZmlsZUlkIiA6ICJkODAwZDI4MDlmNTE0ZjkxODk4YTU4MWYzODE0Yzc5OSIsCiAgInByb2ZpbGVOYW1lIiA6ICJ0aGVCTFJ4eCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81MmU0MTFhYTE1MDFjNzJkOTlkNzM4Y2IzOGUyNTBhMzk1YzY2MDRiOGJjY2M5ZjI5ZDdmMjZlOWNhY2Q4ZDZmIiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=");
148+
public static final Block VIRAL_TATER = createTaterBlock(ParticleTypes.SCRAPE, "ewogICJ0aW1lc3RhbXAiIDogMTY2MjEyODQxMTQ5NCwKICAicHJvZmlsZUlkIiA6ICIyNDEzZGZhMzk0NGQ0NDZhYTFiZjY3N2YwOThiNzhlZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJBenp6dXJhIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2IxMmY3NzBjNDU0MmM5ZjI2YmEwM2FhZWU2ODZlMDk0NjY5OGQzOTRhOGU3NDVkM2VhYzYwMTMzODNkY2ZmMjkiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ");
148149
public static final Block DICE_TATER = createDiceTaterBlock();
149150
public static final Block TATEROID = createTateroidBlock(SoundEvents.BLOCK_NOTE_BLOCK_BELL, "ewogICJ0aW1lc3RhbXAiIDogMTYzNDQ5MjYzNjAzNiwKICAicHJvZmlsZUlkIiA6ICI2MDBjMDE4YmM4ZmM0NGQ1YWJkYjUyODc5ZGUyY2Q0MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJzb2NrZnJpZW5kcyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS84ZDUzMWQ0MGQwOWVmZDNhOWE1ODViNTVlNjZhOWE2ZjA0YzczYWY4NGQ5NGQ3YzU2NTU0OWJmMjdiOGIyNmJkIiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=");
150151
public static final Block RED_TATEROID = createTateroidBlock(SoundEvents.BLOCK_NOTE_BLOCK_GUITAR, "ewogICJ0aW1lc3RhbXAiIDogMTYzNDU2OTEyODY5NywKICAicHJvZmlsZUlkIiA6ICI2MDBjMDE4YmM4ZmM0NGQ1YWJkYjUyODc5ZGUyY2Q0MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJzb2NrZnJpZW5kcyIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8yYmU1MWIyMjczNjBhYjY1Nzc2NzI1YTkxY2RlZDg0YjU2ZjY5MjBlZWMwZDZmYjVhNTdkNWYxYWRhMTQ3YWE2IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=");
@@ -524,6 +525,7 @@ public static void register() {
524525
register("demisexual_tater", DEMISEXUAL_TATER);
525526

526527
register("warden_tater", WARDEN_TATER);
528+
register("viral_tater", VIRAL_TATER);
527529
register("dice_tater", DICE_TATER);
528530
register("tateroid", TATEROID);
529531
register("red_tateroid", RED_TATEROID);

src/main/java/xyz/nucleoid/extras/lobby/NEItems.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,24 @@
22

33
import eu.pb4.polymer.api.block.PolymerHeadBlock;
44
import eu.pb4.polymer.api.item.PolymerItemGroup;
5+
import net.fabricmc.fabric.api.event.player.UseEntityCallback;
56
import net.fabricmc.fabric.api.networking.v1.PacketSender;
67
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
78
import net.minecraft.block.Block;
9+
import net.minecraft.entity.Entity;
10+
import net.minecraft.entity.player.PlayerEntity;
811
import net.minecraft.item.Item;
912
import net.minecraft.item.ItemStack;
1013
import net.minecraft.item.Items;
1114
import net.minecraft.server.MinecraftServer;
1215
import net.minecraft.server.network.ServerPlayNetworkHandler;
1316
import net.minecraft.text.Text;
17+
import net.minecraft.util.ActionResult;
18+
import net.minecraft.util.Hand;
19+
import net.minecraft.util.hit.EntityHitResult;
20+
import net.minecraft.util.math.Vec3d;
1421
import net.minecraft.util.registry.Registry;
22+
import net.minecraft.world.World;
1523
import xyz.nucleoid.extras.NucleoidExtras;
1624
import xyz.nucleoid.extras.NucleoidExtrasConfig;
1725
import xyz.nucleoid.extras.lobby.item.*;
@@ -80,6 +88,7 @@ public class NEItems {
8088
public static final Item NONBINARY_TATER = createHead(NEBlocks.NONBINARY_TATER);
8189
public static final Item PAN_TATER = createHead(NEBlocks.PAN_TATER);
8290
public static final Item WARDEN_TATER = createHead(NEBlocks.WARDEN_TATER);
91+
public static final Item VIRAL_TATER = createHead(NEBlocks.VIRAL_TATER);
8392
public static final Item TATEROID = createHead(NEBlocks.TATEROID);
8493
public static final Item RED_TATEROID = createHead(NEBlocks.RED_TATEROID);
8594
public static final Item ORANGE_TATEROID = createHead(NEBlocks.ORANGE_TATEROID);
@@ -405,6 +414,7 @@ public static void register() {
405414
register("nonbinary_tater", NONBINARY_TATER);
406415
register("pan_tater", PAN_TATER);
407416
register("warden_tater", WARDEN_TATER);
417+
register("viral_tater", VIRAL_TATER);
408418
register("tateroid", TATEROID);
409419
register("red_tateroid", RED_TATEROID);
410420
register("orange_tateroid", ORANGE_TATEROID);
@@ -666,6 +676,8 @@ public static void register() {
666676

667677
ServerPlayConnectionEvents.JOIN.register(NEItems::onPlayerJoin);
668678

679+
UseEntityCallback.EVENT.register(NEItems::onUseEntity);
680+
669681
ITEM_GROUP.setIcon(NUCLEOID_LOGO.getDefaultStack());
670682
}
671683

@@ -699,6 +711,20 @@ private static void onPlayerJoin(ServerPlayNetworkHandler handler, PacketSender
699711
});
700712
}
701713

714+
private static ActionResult onUseEntity(PlayerEntity player, World world, Hand hand, Entity entity, EntityHitResult hitResult) {
715+
if (!player.getWorld().isClient() && hitResult != null) {
716+
ItemStack stack = player.getStackInHand(hand);
717+
if (stack.getItem() instanceof TaterBoxItem taterBox) {
718+
Vec3d hitPos = hitResult.getPos().subtract(entity.getPos());
719+
ActionResult result = taterBox.tryAdd(entity, hitPos, stack, player);
720+
721+
return result.isAccepted() ? result : ActionResult.FAIL;
722+
}
723+
}
724+
725+
return ActionResult.PASS;
726+
}
727+
702728
private static <T extends Item> T register(String id, T item) {
703729
return Registry.register(Registry.ITEM, NucleoidExtras.identifier(id), item);
704730
}

src/main/java/xyz/nucleoid/extras/lobby/item/TaterBoxItem.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import net.minecraft.nbt.NbtList;
3535
import net.minecraft.nbt.NbtString;
3636
import net.minecraft.server.network.ServerPlayerEntity;
37+
import net.minecraft.tag.TagKey;
3738
import net.minecraft.text.MutableText;
3839
import net.minecraft.text.Text;
3940
import net.minecraft.util.ActionResult;
@@ -51,6 +52,7 @@
5152
import net.minecraft.world.World;
5253

5354
import org.jetbrains.annotations.Nullable;
55+
import xyz.nucleoid.extras.NucleoidExtras;
5456
import xyz.nucleoid.extras.lobby.NECriteria;
5557
import xyz.nucleoid.extras.lobby.NEItems;
5658
import xyz.nucleoid.extras.lobby.block.TinyPotatoBlock;
@@ -66,6 +68,9 @@ public class TaterBoxItem extends ArmorItem implements PolymerItem {
6668
private static final String SELECTED_TATER_KEY = "SelectedTater";
6769
private static final int COLOR = 0xCEADAA;
6870

71+
private static final Identifier VIRAL_TATERS_ID = NucleoidExtras.identifier("viral_taters");
72+
private static final TagKey<Block> VIRAL_TATERS = TagKey.of(Registry.BLOCK_KEY, VIRAL_TATERS_ID);
73+
6974
public TaterBoxItem(Settings settings) {
7075
super(ArmorMaterials.LEATHER, EquipmentSlot.HEAD, settings);
7176
}
@@ -192,6 +197,16 @@ public ActionResult tryAdd(Entity entity, Vec3d hitPos, ItemStack stack, PlayerE
192197
if (entity instanceof ArmorStandEntity armorStand) {
193198
EquipmentSlot slot = ((ArmorStandEntityAccessor) (Object) armorStand).callSlotFromPosition(hitPos);
194199
return this.tryAdd(armorStand.getEquippedStack(slot), stack, player);
200+
} else if (entity instanceof PlayerEntity targetPlayer) {
201+
ItemStack targetStack = targetPlayer.getEquippedStack(EquipmentSlot.HEAD);
202+
203+
if (targetStack.getItem() instanceof TaterBoxItem) {
204+
Block targetTater = TaterBoxItem.getSelectedTater(targetStack);
205+
206+
if (targetTater != null && targetTater.getDefaultState().isIn(VIRAL_TATERS)) {
207+
return this.tryAdd(targetTater, stack, player);
208+
}
209+
}
195210
}
196211

197212
return ActionResult.PASS;

src/main/java/xyz/nucleoid/extras/mixin/lobby/ArmorStandEntityMixin.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/resources/data/nucleoid_extras/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
"block.nucleoid_extras.genderfluid_tater": "Genderfluid Pride Tater",
7474
"block.nucleoid_extras.demisexual_tater": "Demisexual Pride Tater",
7575
"block.nucleoid_extras.warden_tater": "Warden Tater",
76+
"block.nucleoid_extras.viral_tater": "Viral Tater",
7677
"block.nucleoid_extras.tateroid": "Tateroid",
7778
"block.nucleoid_extras.red_tateroid": "Red Tateroid",
7879
"block.nucleoid_extras.orange_tateroid": "Orange Tateroid",
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"values": [
3+
"nucleoid_extras:viral_tater"
4+
]
5+
}

src/main/resources/extras.mixins.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"ServerEntityManagerAccessor",
1010
"ServerWorldAccessor",
1111
"lobby.ArmorStandEntityAccessor",
12-
"lobby.ArmorStandEntityMixin",
1312
"lobby.ServerPlayerEntityMixin",
1413
"patches.EntityMixin",
1514
"patches.StatusEffectMixin",

0 commit comments

Comments
 (0)