Flywheel/src/main/java/com/simibubi/create/CreateItemGroupBase.java
simibubi 2696fc2a51 BlockState gen progress
- Clutch, Gearshift and Gearbox joined the registrate
- Fixed belt and gearbox items not being assigned creative tabs properly
- Cleaned up and extended the blockstate generator helpers
- Removed advancements from static assets
- Added datagen .cache to gitignore
- Split the palettes section into its own Creative tab
- Fixed Clutch and Gearshift rendering their casing in the TER
2020-05-12 14:06:50 +02:00

69 lines
1.9 KiB
Java

package com.simibubi.create;
import com.tterrag.registrate.util.entry.RegistryEntry;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ItemRenderer;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.NonNullList;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public abstract class CreateItemGroupBase extends ItemGroup {
public CreateItemGroupBase(String id) {
super(getGroupCountSafe(), Create.ID + "." + id);
}
@Override
@OnlyIn(Dist.CLIENT)
public void fill(NonNullList<ItemStack> items) {
addItems(items, true);
addBlocks(items);
addItems(items, false);
}
@OnlyIn(Dist.CLIENT)
public void addBlocks(NonNullList<ItemStack> items) {
for (RegistryEntry<? extends Block> entry : Create.registrate()
.getAll(Block.class)) {
if (!shouldAdd(entry))
continue;
Block def = entry.get();
if (def == null)
continue;
Item item = def.asItem();
if (item != Items.AIR)
def.fillItemGroup(this, items);
}
}
protected abstract boolean shouldAdd(RegistryEntry<? extends Block> block);
protected abstract boolean shouldAdd(AllItems item);
@OnlyIn(Dist.CLIENT)
public void addItems(NonNullList<ItemStack> items, boolean specialItems) {
ItemRenderer itemRenderer = Minecraft.getInstance()
.getItemRenderer();
for (AllItems item : AllItems.values()) {
if (!shouldAdd(item))
continue;
if (item.get() == null)
continue;
IBakedModel model =
itemRenderer.getItemModelWithOverrides(item.asStack(), Minecraft.getInstance().world, null);
if (model.isGui3d() != specialItems)
continue;
item.get()
.fillItemGroup(this, items);
}
}
}