feat: testing, trying to make tabs wider

This commit is contained in:
TheClashFruit 2023-08-14 19:26:51 +02:00
parent 1a44d8d72a
commit 1d34d58d3d
Signed by: TheClashFruit
GPG key ID: CF4A319B9A73290C
4 changed files with 194 additions and 12 deletions

View file

@ -1,10 +1,133 @@
package me.theclashfruit.cc;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup;
import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents;
import net.minecraft.item.*;
import net.minecraft.registry.Registries;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.text.Text;
import net.minecraft.util.Identifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ClutteredCreative implements ModInitializer {
private static final ItemGroup YES = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup NO = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup SHIT = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup YES2 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup NO2 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup SHIT2 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup YES3 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup NO3 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup SHIT3 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup YES4 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup NO4 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
private static final ItemGroup SHIT4 = FabricItemGroup.builder()
.icon(() -> new ItemStack(Items.DIAMOND))
.displayName(Text.translatable("itemGroup.tutorial.test_group"))
.entries((displayContext, content) -> {
content.add(Items.DIAMOND);
})
.build();
public static final Logger LOGGER = LoggerFactory.getLogger("ClutteredCreative");
@Override
public void onInitialize() {
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "yes"), YES);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "no"), NO);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "shit"), SHIT);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "yes2"), YES2);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "no2"), NO2);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "shit2"), SHIT2);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "yes3"), YES3);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "no3"), NO3);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "shit3"), SHIT3);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "yes4"), YES4);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "no4"), NO4);
Registry.register(Registries.ITEM_GROUP, new Identifier("cc", "shit4"), SHIT4);
}
}

View file

@ -0,0 +1,28 @@
package me.theclashfruit.cc.mixin;
import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen;
import net.minecraft.item.ItemGroup;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(CreativeInventoryScreen.class)
public class CreativeInventoryScreenMixin {
/**
* @author TheClashFruit
* @reason pre 1.19.3 inventory layout :3
*/
@Overwrite
private int getTabX(ItemGroup group) {
int i = group.getColumn();
int j = 32;
int k = 32 * i;
if (group.isSpecial()) {
k = 176 - 32 * (6 - i) + 1;
}
return k;
}
}

View file

@ -5,30 +5,49 @@ import net.minecraft.enchantment.EnchantmentLevelEntry;
import net.minecraft.enchantment.EnchantmentTarget;
import net.minecraft.enchantment.Enchantments;
import net.minecraft.item.*;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionUtil;
import net.minecraft.potion.Potions;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKey;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.registry.RegistryWrapper;
import net.minecraft.registry.tag.InstrumentTags;
import net.minecraft.registry.tag.TagKey;
import net.minecraft.text.Text;
import net.minecraft.village.raid.Raid;
import org.spongepowered.asm.mixin.*;
import org.spongepowered.asm.mixin.gen.Invoker;
import java.util.EnumSet;
import java.util.Set;
import static me.theclashfruit.cc.ClutteredCreative.LOGGER;
import static net.minecraft.item.ItemGroups.*;
@Mixin(ItemGroups.class)
public class ItemGroupsMixin {
@Shadow @Final public static RegistryKey<ItemGroup> COLORED_BLOCKS;
@Shadow @Final public static RegistryKey<ItemGroup> REDSTONE;
@Shadow
private static RegistryKey<ItemGroup> register(String id) {
throw new AssertionError();
}
@Unique
private static final RegistryKey<ItemGroup> BUILDING_BLOCKS = register("building_blocks");
@Unique
private static final RegistryKey<ItemGroup> DECORATION = register("decoration");
@Unique
private static final RegistryKey<ItemGroup> REDSTONE = register("redstone");
@Unique
private static final RegistryKey<ItemGroup> TRANSPORTATION = register("transportation");
@Unique
private static final RegistryKey<ItemGroup> MISC = register("misc");
@Unique
private static final RegistryKey<ItemGroup> FOOD = register("food");
@Unique
private static final RegistryKey<ItemGroup> TOOLS = register("tools");
@Unique
private static final RegistryKey<ItemGroup> COMBAT = register("combat");
@Unique
private static final RegistryKey<ItemGroup> BREWING = register("brewing");
@Unique
private static final ItemGroup hotbarGroup = ItemGroup
.create(ItemGroup.Row.TOP, 5)
@ -52,10 +71,12 @@ public class ItemGroupsMixin {
/**
* @author TheClashFruit
* @reason pre 1.19.4 inventory layout :3
* @reason pre 1.19.3 inventory layout :3
*/
@Overwrite
public static ItemGroup registerAndGetDefault(Registry<ItemGroup> registry) {
LOGGER.info("ItemGroups Working!");
final ItemGroup searchGroup = ItemGroup
.create(ItemGroup.Row.TOP, 6)
.displayName(Text.translatable("itemGroup.search"))
@ -84,6 +105,7 @@ public class ItemGroupsMixin {
BUILDING_BLOCKS,
ItemGroup
.create(ItemGroup.Row.TOP, 0)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.buildingBlocks"))
.icon(() -> new ItemStack(Blocks.BRICKS))
.entries((displayContext, content) -> {
@ -535,9 +557,10 @@ public class ItemGroupsMixin {
Registry.register(
registry,
NATURAL,
DECORATION,
ItemGroup
.create(ItemGroup.Row.TOP, 1)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.decorations"))
.icon(() -> new ItemStack(Blocks.PEONY))
.entries((displayContext, content) -> {
@ -937,6 +960,7 @@ public class ItemGroupsMixin {
REDSTONE,
ItemGroup
.create(ItemGroup.Row.TOP, 2)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.redstone"))
.icon(() -> new ItemStack(Items.REDSTONE))
.entries((displayContext, content) -> {
@ -1034,9 +1058,10 @@ public class ItemGroupsMixin {
Registry.register(
registry,
FUNCTIONAL,
TRANSPORTATION,
ItemGroup
.create(ItemGroup.Row.TOP, 3)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.transportation"))
.icon(() -> new ItemStack(Items.POWERED_RAIL))
.entries((displayContext, content) -> {
@ -1080,9 +1105,10 @@ public class ItemGroupsMixin {
Registry.register(
registry,
INGREDIENTS,
MISC,
ItemGroup
.create(ItemGroup.Row.BOTTOM, 0)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.misc"))
.icon(() -> new ItemStack(Items.LAVA_BUCKET))
.entries((displayContext, content) -> {
@ -1323,9 +1349,10 @@ public class ItemGroupsMixin {
Registry.register(
registry,
FOOD_AND_DRINK,
FOOD,
ItemGroup
.create(ItemGroup.Row.BOTTOM, 1)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.food"))
.icon(() -> new ItemStack(Items.APPLE))
.entries((displayContext, content) -> {
@ -1376,6 +1403,7 @@ public class ItemGroupsMixin {
TOOLS,
ItemGroup
.create(ItemGroup.Row.BOTTOM, 2)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.tools"))
.icon(() -> new ItemStack(Items.IRON_AXE))
.entries((displayContext, content) -> {
@ -1441,6 +1469,7 @@ public class ItemGroupsMixin {
COMBAT,
ItemGroup
.create(ItemGroup.Row.BOTTOM, 3)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.combat"))
.icon(() -> new ItemStack(Items.GOLDEN_SWORD))
.entries((displayContext, content) -> {
@ -1504,9 +1533,10 @@ public class ItemGroupsMixin {
Registry.register(
registry,
COLORED_BLOCKS,
BREWING,
ItemGroup
.create(ItemGroup.Row.BOTTOM, 4)
.type(ItemGroup.Type.CATEGORY)
.displayName(Text.translatable("itemGroup.brewing"))
.icon(() -> new ItemStack(PotionUtil.setPotion(new ItemStack(Items.POTION), Potions.WATER).getItem()))
.entries((displayContext, content) -> {

View file

@ -8,6 +8,7 @@
"ItemGroupsMixin"
],
"client": [
"CreativeInventoryScreenMixin"
],
"injectors": {
"defaultRequire": 1