Skip to content

Commit

Permalink
Restore Seed Pouch variants in creative
Browse files Browse the repository at this point in the history
  • Loading branch information
quat1024 committed Jan 2, 2024
1 parent 12dcd48 commit d4795dd
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.core.RegistryAccess;
import net.minecraft.network.chat.Component;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
Expand All @@ -12,6 +13,7 @@
import net.minecraft.world.phys.BlockHitResult;
import net.minecraftforge.client.ConfigScreenHandler.ConfigScreenFactory;
import net.minecraftforge.fml.ModLoadingContext;
import org.jetbrains.annotations.Nullable;
import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.base.QuarkClient;
import org.violetmoon.quark.base.client.config.QButtonHandler;
Expand Down Expand Up @@ -106,6 +108,11 @@ public float getVisualTime() {
return QuarkClient.ticker.total;
}

@Override
public @Nullable RegistryAccess hackilyGetCurrentClientLevelRegistryAccess() {
return QuarkClient.ZETA_CLIENT.hackilyGetCurrentClientLevelRegistryAccess();
}

private static void copyProgrammerArtIfMissing() {
File dir = new File(".", "resourcepacks");
File target = new File(dir, "Quark Programmer Art.zip");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.violetmoon.quark.base.proxy;

import net.minecraft.core.RegistryAccess;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
Expand All @@ -13,6 +14,7 @@
import net.minecraftforge.fml.event.config.ModConfigEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;

import org.jetbrains.annotations.Nullable;
import org.violetmoon.quark.QuarkForgeCapabilities;
import org.violetmoon.quark.api.*;
import org.violetmoon.quark.base.Quark;
Expand Down Expand Up @@ -150,4 +152,8 @@ public boolean isClientPlayerHoldingShift() {
public float getVisualTime() {
return 0f;
}

public @Nullable RegistryAccess hackilyGetCurrentClientLevelRegistryAccess() {
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.core.BlockPos;
import net.minecraft.core.RegistryAccess;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
Expand All @@ -27,16 +28,21 @@

import org.violetmoon.quark.api.ITrowelable;
import org.violetmoon.quark.api.IUsageTickerOverride;
import org.violetmoon.quark.base.Quark;
import org.violetmoon.quark.content.tools.module.SeedPouchModule;
import org.violetmoon.zeta.item.ZetaItem;
import org.violetmoon.zeta.module.IDisableable;
import org.violetmoon.zeta.module.ZetaModule;
import org.violetmoon.zeta.registry.CreativeTabManager;
import org.violetmoon.zeta.util.ItemNBTHelper;
import org.violetmoon.zeta.util.RegistryUtil;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.function.Predicate;

public class SeedPouchItem extends ZetaItem implements IUsageTickerOverride, ITrowelable {
public class SeedPouchItem extends ZetaItem implements IUsageTickerOverride, ITrowelable, CreativeTabManager.AppendsUniquely {

public static final String TAG_STORED_ITEM = "storedItem";
public static final String TAG_COUNT = "itemCount";
Expand Down Expand Up @@ -290,31 +296,32 @@ private InteractionResult placeSeed(UseOnContext context, ItemStack target, Bloc
return res;
}

//TODO 1.20
// @Override
// public void fillItemCategory(@NotNull CreativeModeTab group, @NotNull NonNullList<ItemStack> items) {
// super.fillItemCategory(group, items);
//
// if(SeedPouchModule.showAllVariantsInCreative && isEnabled() && allowedIn(group)) {
// List<Item> tagItems;
//
// try {
// tagItems = RegistryUtil.getTagValues(RegistryAccessUtil.getRegistryAccess(), SeedPouchModule.seedPouchHoldableTag);
// } catch(IllegalStateException e) { // Tag not bound yet
// return;
// }
//
// for(Item i : tagItems) {
// if(!IDisableable.isEnabled(i))
// continue;
//
// ItemStack stack = new ItemStack(this);
// setItemStack(stack, new ItemStack(i));
// setCount(stack, SeedPouchModule.maxItems);
// items.add(stack);
// }
// }
// }
@Override
public List<ItemStack> appendItemsToCreativeTab() {
if(!isEnabled())
return List.of();

List<ItemStack> list = new ArrayList<>();
list.add(new ItemStack(this));

if(SeedPouchModule.showAllVariantsInCreative) {
RegistryAccess access = Quark.proxy.hackilyGetCurrentClientLevelRegistryAccess();
if(access != null) {
for(Item seed : RegistryUtil.getTagValues(access, SeedPouchModule.seedPouchHoldableTag)) {
if(!IDisableable.isEnabled(seed))
continue;

ItemStack pouch = new ItemStack(this);
setItemStack(pouch, new ItemStack(seed));
setCount(pouch, SeedPouchModule.maxItems);
list.add(pouch);
}
}

}

return list;
}

@Override
public ItemStack getUsageTickerItem(ItemStack stack) {
Expand Down

0 comments on commit d4795dd

Please sign in to comment.