Fix CreativeTab ordering and erronous adding to all item groups for some items.

This commit is contained in:
Sebastian Hartte
2020-06-09 10:58:09 +02:00
parent 97e065ea1f
commit 7d3ecd580e
8 changed files with 77 additions and 37 deletions
@@ -0,0 +1,40 @@
package appeng.core;
import appeng.api.AEApi;
import appeng.api.definitions.IBlocks;
import appeng.api.definitions.IDefinitions;
import appeng.api.definitions.IItemDefinition;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import java.util.ArrayList;
import java.util.List;
public class AEItemGroup extends ItemGroup {
private final List<IItemDefinition> itemDefs = new ArrayList<>();
public AEItemGroup(String label) {
super(label);
}
@Override
public ItemStack createIcon() {
final IDefinitions definitions = AEApi.instance().definitions();
final IBlocks blocks = definitions.blocks();
return blocks.controller().stack(1);
}
public void add(IItemDefinition itemDef) {
this.itemDefs.add(itemDef);
}
@Override
public void fill(NonNullList<ItemStack> items) {
for (IItemDefinition itemDef : this.itemDefs) {
itemDef.item().fillItemGroup(this, items);
}
}
}
+4 -22
View File
@@ -19,31 +19,13 @@
package appeng.core;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import appeng.api.AEApi;
import appeng.api.definitions.IBlocks;
import appeng.api.definitions.IDefinitions;
public final class CreativeTab
{
public static ItemGroup instance = null;
static void init()
{
instance = new ItemGroup( "appliedenergistics2" )
{
public static AEItemGroup INSTANCE;
@Override
public ItemStack createIcon()
{
final IDefinitions definitions = AEApi.instance().definitions();
final IBlocks blocks = definitions.blocks();
return blocks.controller().stack(1);
}
};
public static void init() {
INSTANCE = new AEItemGroup( "appliedenergistics2" );
}
}
@@ -220,7 +220,7 @@ public final class ApiParts implements IParts
private <T extends IPart> IItemDefinition createPart(FeatureFactory registry, String id, PartType type, Function<ItemStack, T> factory) {
return registry.item(id, props -> new ItemPart<>(props, type, factory))
.itemGroup(CreativeTab.instance)
.itemGroup(CreativeTab.INSTANCE)
.rendering(new ItemPartRendering())
.build();
}
@@ -234,7 +234,7 @@ public final class ApiParts implements IParts
String id = color.registryPrefix + '_' + idSuffix;
IItemDefinition itemDef = registry.item(id, props -> new ColoredPartItem<>(props, type, factory, color))
.itemGroup(CreativeTab.instance)
.itemGroup(CreativeTab.INSTANCE)
.rendering(new ItemPartRendering(color))
.build();