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
@@ -28,6 +28,7 @@ import java.util.function.Supplier;
import javax.annotation.Nullable;
import appeng.core.AEItemGroup;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
@@ -63,7 +64,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
private final EnumSet<AEFeature> features = EnumSet.noneOf( AEFeature.class );
private ItemGroup itemGroup = CreativeTab.instance;
private ItemGroup itemGroup = CreativeTab.INSTANCE;
private TileEntityDefinition tileEntityDefinition;
@@ -190,14 +191,21 @@ class BlockDefinitionBuilder implements IBlockBuilder
}
}
T definition;
if( block instanceof AEBaseTileBlock )
{
return (T) new TileDefinition( this.registryName, (AEBaseTileBlock) block, item, features );
definition = (T) new TileDefinition( this.registryName, (AEBaseTileBlock<?>) block, item, features );
}
else
{
return (T) new BlockDefinition( this.registryName, block, item, features );
definition = (T) new BlockDefinition( this.registryName, block, item, features );
}
if (itemGroup instanceof AEItemGroup) {
((AEItemGroup) itemGroup).add(definition);
}
return definition;
}
@Nullable
@@ -28,13 +28,13 @@ import java.util.function.Function;
import java.util.function.Supplier;
import appeng.bootstrap.components.IInitComponent;
import appeng.core.AEItemGroup;
import net.minecraft.block.DispenserBlock;
import net.minecraft.dispenser.IDispenseItemBehavior;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import appeng.bootstrap.components.IItemRegistrationComponent;
import appeng.bootstrap.components.IPostInitComponent;
import appeng.core.AppEng;
import appeng.core.CreativeTab;
import appeng.api.features.AEFeature;
@@ -64,7 +64,7 @@ class ItemDefinitionBuilder implements IItemBuilder
@OnlyIn( Dist.CLIENT )
private ItemRendering itemRendering;
private ItemGroup itemGroup = CreativeTab.instance;
private ItemGroup itemGroup = CreativeTab.INSTANCE;
ItemDefinitionBuilder( FeatureFactory factory, String registryName, Function<Item.Properties, Item> itemFactory )
{
@@ -167,6 +167,10 @@ class ItemDefinitionBuilder implements IItemBuilder
this.itemRendering.apply( this.factory, item );
}
if (itemGroup instanceof AEItemGroup) {
((AEItemGroup) itemGroup).add(definition);
}
return definition;
}