Skip to content

Commit 502ef2f

Browse files
committed
Add item groups
1 parent 5f71159 commit 502ef2f

File tree

6 files changed

+104
-1
lines changed

6 files changed

+104
-1
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package gay.ampflower.mod.pet.fabric;
2+
3+
import gay.ampflower.mod.pet.util.VanillaPivot;
4+
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
5+
import net.minecraft.item.ItemGroup;
6+
7+
/**
8+
* @author Ampflower
9+
* @since 0.2.0
10+
**/
11+
public class FabricPivot extends VanillaPivot {
12+
@Override
13+
public ItemGroup.Builder createItemGroupBuilder() {
14+
return FabricItemGroup.builder();
15+
}
16+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
gay.ampflower.mod.pet.util.VanillaPivot
1+
gay.ampflower.mod.pet.fabric.FabricPivot
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package gay.ampflower.mod.pet.registry;
2+
3+
import gay.ampflower.mod.pet.util.Pivot;
4+
import net.minecraft.item.ItemGroup;
5+
import net.minecraft.registry.RegistryKeys;
6+
import net.minecraft.text.Text;
7+
8+
/**
9+
* @author Ampflower
10+
* @since 0.2.0
11+
**/
12+
public final class PetworksItemGroups {
13+
public static final ItemGroup COLLAR_GROUP = register("collars", Pivot.INSTANCE.createItemGroupBuilder()
14+
.icon(PetworksItems.PRIDE_COLLAR::getDefaultStack)
15+
.displayName(Text.translatable("itemGroup.petworks.collars"))
16+
.entries((context, entries) -> Pivot.registerCollars(entries::add))
17+
.build());
18+
19+
public static final ItemGroup GUISE_GROUP = register("guises", Pivot.INSTANCE.createItemGroupBuilder()
20+
.icon(PetworksItems.TAMED_CAT_GUISE::getDefaultStack)
21+
.displayName(Text.translatable("itemGroup.petworks.guises"))
22+
.entries((context, entries) -> Pivot.registerGuises(entries::add))
23+
.build());
24+
25+
private static ItemGroup register(final String id, final ItemGroup itemGroup) {
26+
return Pivot.INSTANCE.register(RegistryKeys.ITEM_GROUP, id, itemGroup);
27+
}
28+
29+
public static void init() {
30+
}
31+
}

xplat/src/main/java/gay/ampflower/mod/pet/util/Pivot.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ public interface Pivot {
6060

6161
<V, T extends V> T register(RegistryKey<Registry<V>> key, String id, T t);
6262

63+
ItemGroup.Builder createItemGroupBuilder();
64+
6365
static <A> void registerCollars(BiConsumer<Item, A> collarConsumer, A cosmetic, A armor, A gimick) {
6466
collarConsumer.accept(MAID_COLLAR, cosmetic);
6567
collarConsumer.accept(COLLAR, cosmetic);
@@ -90,12 +92,52 @@ static <A> void registerCollars(BiConsumer<Item, A> collarConsumer, A cosmetic,
9092
collarConsumer.accept(BEDROCK_COLLAR, gimick);
9193
}
9294

95+
static void registerCollars(Consumer<ItemConvertible> collarConsumer) {
96+
collarConsumer.accept(MAID_COLLAR);
97+
collarConsumer.accept(COLLAR);
98+
collarConsumer.accept(MISSING_COLLAR);
99+
collarConsumer.accept(PRIDE_COLLAR);
100+
collarConsumer.accept(TRANS_COLLAR);
101+
collarConsumer.accept(LESBIAN_COLLAR);
102+
collarConsumer.accept(GAY_COLLAR);
103+
collarConsumer.accept(GENDERQUEER_COLLAR);
104+
collarConsumer.accept(GENDERFLUID_COLLAR);
105+
collarConsumer.accept(AGENDER_COLLAR);
106+
collarConsumer.accept(ARO_COLLAR);
107+
collarConsumer.accept(ACE_COLLAR);
108+
collarConsumer.accept(AROACE_COLLAR);
109+
collarConsumer.accept(CLOTH_COLLAR);
110+
collarConsumer.accept(HIDE_COLLAR);
111+
collarConsumer.accept(LEATHER_COLLAR);
112+
collarConsumer.accept(CHAIN_COLLAR);
113+
collarConsumer.accept(IRON_COLLAR);
114+
collarConsumer.accept(GOLD_COLLAR);
115+
collarConsumer.accept(COPPER_COLLAR);
116+
collarConsumer.accept(QUARTZ_COLLAR);
117+
collarConsumer.accept(AMETHYST_COLLAR);
118+
collarConsumer.accept(EMERALD_COLLAR);
119+
collarConsumer.accept(DIAMOND_COLLAR);
120+
collarConsumer.accept(NETHERITE_COLLAR);
121+
collarConsumer.accept(OBSIDIAN_COLLAR);
122+
collarConsumer.accept(BEDROCK_COLLAR);
123+
}
124+
125+
static void registerGuises(Consumer<ItemConvertible> guiseConsumer) {
126+
guiseConsumer.accept(WOLF_GUISE);
127+
guiseConsumer.accept(TAMED_CAT_GUISE);
128+
guiseConsumer.accept(STRAY_CAT_GUISE);
129+
guiseConsumer.accept(OCELOT_GUISE);
130+
guiseConsumer.accept(FOX_GUISE);
131+
guiseConsumer.accept(RABBIT_GUISE);
132+
}
133+
93134
static void init() {
94135
PetworksBlocks.init();
95136
PetworksBlockTypes.init();
96137
PetworksBlockEntities.init();
97138
PetworksDataComponentTypes.init();
98139
PetworksItems.init();
99140
PetworksRecipeSerializers.init();
141+
PetworksItemGroups.init();
100142
}
101143
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,28 @@
11
package gay.ampflower.mod.pet.util;
22

3+
import com.mojang.logging.LogUtils;
4+
import net.minecraft.item.ItemGroup;
35
import net.minecraft.registry.Registries;
46
import net.minecraft.registry.Registry;
57
import net.minecraft.registry.RegistryKey;
8+
import org.slf4j.Logger;
69

710
/**
811
* @author Ampflower
912
* @since 0.1.0
1013
**/
1114
public class VanillaPivot implements Pivot {
15+
private static final Logger logger = LogUtils.getLogger();
16+
1217
@Override
1318
public <V, T extends V> T register(final RegistryKey<Registry<V>> key, final String id, final T t) {
1419
@SuppressWarnings("unchecked") final var registry = (Registry<V>) Registries.REGISTRIES.getOrEmpty(key.getValue()).orElseThrow();
1520
return Registry.register(registry, Util.id(id), t);
1621
}
22+
23+
@Override
24+
public ItemGroup.Builder createItemGroupBuilder() {
25+
logger.error("Stray call to VanillaPivot#createItemGroupBuilder(), providing dummy.", new Throwable());
26+
return ItemGroup.create(null, -1);
27+
}
1728
}

xplat/src/main/resources/assets/petworks/lang/en_us.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
"item.petworks.glowing.advanced": "Glowing (%d, %d)",
3737
"item.petworks.glowing": "Glowing",
3838

39+
"itemGroup.petworks.guises": "Caricatures",
40+
"itemGroup.petworks.collars": "Collars",
41+
3942
"trinkets.slot.chest.guise": "Caricature",
4043
"trinkets.slot.chest.collar": "Collar",
4144

0 commit comments

Comments
 (0)