1.15 port

This commit is contained in:
yueh
2020-05-18 14:02:45 +02:00
parent 0ea86c939c
commit 16d6d55d7f
630 changed files with 4211 additions and 12664 deletions
@@ -30,17 +30,17 @@ import java.util.function.Supplier;
import javax.annotation.Nullable;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemGroup;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.api.definitions.IBlockDefinition;
import appeng.block.AEBaseBlock;
import appeng.block.AEBaseItemBlock;
import appeng.block.AEBaseBlockItem;
import appeng.block.AEBaseTileBlock;
import appeng.bootstrap.components.IBlockRegistrationComponent;
import appeng.bootstrap.components.IItemRegistrationComponent;
@@ -71,18 +71,18 @@ class BlockDefinitionBuilder implements IBlockBuilder
private final EnumSet<AEFeature> features = EnumSet.noneOf( AEFeature.class );
private CreativeTabs creativeTab = CreativeTab.instance;
private ItemGroup itemGroup = CreativeTab.instance;
private TileEntityDefinition tileEntityDefinition;
private boolean disableItem = false;
private Function<Block, ItemBlock> itemFactory;
private Function<Block, BlockItem> itemFactory;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private BlockRendering blockRendering;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private ItemRendering itemRendering;
BlockDefinitionBuilder( FeatureFactory factory, String id, Supplier<? extends Block> blockSupplier )
@@ -144,7 +144,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
this.rendering( new BlockRenderingCustomizer()
{
@Override
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public void customize( IBlockRendering rendering, IItemRendering itemRendering )
{
ModelResourceLocation model = new ModelResourceLocation( new ResourceLocation( AppEng.MOD_ID, BlockDefinitionBuilder.this.registryName ), "inventory" );
@@ -156,7 +156,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
}
@Override
public IBlockBuilder item( Function<Block, ItemBlock> factory )
public IBlockBuilder item( Function<Block, BlockItem> factory )
{
this.itemFactory = factory;
return this;
@@ -169,7 +169,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
return this;
}
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private void customizeForClient( BlockRenderingCustomizer callback )
{
callback.customize( this.blockRendering, this.itemRendering );
@@ -187,9 +187,8 @@ class BlockDefinitionBuilder implements IBlockBuilder
// Create block and matching item, and set factory name of both
Block block = this.blockSupplier.get();
block.setRegistryName( AppEng.MOD_ID, this.registryName );
block.setUnlocalizedName( "appliedenergistics2." + this.registryName );
ItemBlock item = this.constructItemFromBlock( block );
BlockItem item = this.constructItemFromBlock( block );
if( item != null )
{
item.setRegistryName( AppEng.MOD_ID, this.registryName );
@@ -202,8 +201,6 @@ class BlockDefinitionBuilder implements IBlockBuilder
this.factory.addBootstrapComponent( (IItemRegistrationComponent) ( side, registry ) -> registry.register( item ) );
}
block.setCreativeTab( this.creativeTab );
// Register all extra handlers
this.bootstrapComponents.forEach( component -> this.factory.addBootstrapComponent( component.apply( block, item ) ) );
@@ -241,7 +238,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
{
AEBaseTile.registerTileItem(
this.tileEntityDefinition == null ? ( (AEBaseTileBlock) block ).getTileEntityClass() : this.tileEntityDefinition.getTileEntityClass(),
new BlockStackSrc( block, 0, ActivityState.Enabled ) );
new BlockStackSrc( block, ActivityState.Enabled ) );
} );
if( this.tileEntityDefinition != null )
@@ -258,7 +255,7 @@ class BlockDefinitionBuilder implements IBlockBuilder
}
@Nullable
private ItemBlock constructItemFromBlock( Block block )
private BlockItem constructItemFromBlock( Block block )
{
if( this.disableItem )
{
@@ -271,11 +268,11 @@ class BlockDefinitionBuilder implements IBlockBuilder
}
else if( block instanceof AEBaseBlock )
{
return new AEBaseItemBlock( block );
return new AEBaseBlockItem( block );
}
else
{
return new ItemBlock( block );
return new BlockItem( block, null );
}
}
}
@@ -30,8 +30,8 @@ import net.minecraft.client.renderer.block.statemap.IStateMapper;
import net.minecraft.client.renderer.color.IBlockColor;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.block.AEBaseTileBlock;
import appeng.bootstrap.components.BlockColorComponent;
@@ -43,30 +43,30 @@ import appeng.client.render.model.AutoRotatingModel;
class BlockRendering implements IBlockRendering
{
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private BiFunction<ModelResourceLocation, IBakedModel, IBakedModel> modelCustomizer;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private IBlockColor blockColor;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private TileEntitySpecialRenderer<?> tesr;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private IStateMapper stateMapper;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private Map<String, IModel> builtInModels = new HashMap<>();
@Override
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public IBlockRendering modelCustomizer( BiFunction<ModelResourceLocation, IBakedModel, IBakedModel> customizer )
{
this.modelCustomizer = customizer;
return this;
}
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
@Override
public IBlockRendering blockColor( IBlockColor blockColor )
{
@@ -74,7 +74,7 @@ class BlockRendering implements IBlockRendering
return this;
}
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
@Override
public IBlockRendering tesr( TileEntitySpecialRenderer<?> tesr )
{
@@ -89,7 +89,7 @@ class BlockRendering implements IBlockRendering
return this;
}
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
@Override
public IBlockRendering stateMapper( IStateMapper mapper )
{
@@ -19,19 +19,19 @@
package appeng.bootstrap;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
/**
* A callback that allows the rendering of a block to be customized. Sadly this class is required and no lambdas can be
* used
* due to them not being able to be annotated with @SideOnly(CLIENT).
* due to them not being able to be annotated with @OnlyIn(CLIENT).
*/
public abstract class BlockRenderingCustomizer
{
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public abstract void customize( IBlockRendering rendering, IItemRendering itemRendering );
}
@@ -30,12 +30,12 @@ import java.util.function.BiFunction;
import java.util.function.Supplier;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.api.definitions.IItemDefinition;
import appeng.api.util.AEColor;
@@ -57,10 +57,10 @@ public class FeatureFactory
private final Map<Class<? extends IBootstrapComponent>, List<IBootstrapComponent>> bootstrapComponents;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private ModelOverrideComponent modelOverrideComponent;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private BuiltInModelComponent builtInModelComponent;
public final TileEntityComponent tileEntityComponent;
@@ -115,7 +115,7 @@ public class FeatureFactory
{
final ActivityState state = ActivityState.from( target.isEnabled() );
definition.add( color, new ItemStackSrc( targetItem, offset + color.ordinal(), state ) );
definition.add( color, new ItemStackSrc( targetItem, state ) );
}
} );
@@ -139,13 +139,13 @@ public class FeatureFactory
this.bootstrapComponents.computeIfAbsent( eventType, c -> new ArrayList<IBootstrapComponent>() ).add( component );
}
@SideOnly( Side.CLIENT )
void addBuiltInModel( String path, IModel model )
@OnlyIn( Dist.CLIENT )
void addBuiltInModel( String path, IUnbakedModel model )
{
this.builtInModelComponent.addModel( path, model );
}
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
void addModelOverride( String resourcePath, BiFunction<ModelResourceLocation, IBakedModel, IBakedModel> customizer )
{
this.modelOverrideComponent.addOverride( resourcePath, customizer );
@@ -23,8 +23,8 @@ import java.util.function.BiFunction;
import java.util.function.Function;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import appeng.api.definitions.IBlockDefinition;
import appeng.bootstrap.definitions.TileEntityDefinition;
@@ -54,7 +54,7 @@ public interface IBlockBuilder
*/
IBlockBuilder useCustomItemModel();
IBlockBuilder item( Function<Block, ItemBlock> factory );
IBlockBuilder item( Function<Block, BlockItem> factory );
<T extends IBlockDefinition> T build();
}
@@ -21,14 +21,13 @@ package appeng.bootstrap;
import java.util.function.BiFunction;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.IStateMapper;
import net.minecraft.client.renderer.color.IBlockColor;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
/**
@@ -37,22 +36,22 @@ import net.minecraftforge.fml.relauncher.SideOnly;
public interface IBlockRendering
{
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IBlockRendering modelCustomizer( BiFunction<ModelResourceLocation, IBakedModel, IBakedModel> customizer );
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IBlockRendering blockColor( IBlockColor blockColor );
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IBlockRendering stateMapper( IStateMapper mapper );
@SideOnly( Side.CLIENT )
IBlockRendering tesr( TileEntitySpecialRenderer<?> tesr );
@OnlyIn( Dist.CLIENT )
IBlockRendering tesr( TileEntityRenderer<?> ter );
/**
* Registers a built-in model under the given resource path.
*/
@SideOnly( Side.CLIENT )
IBlockRendering builtInModel( String name, IModel model );
@OnlyIn( Dist.CLIENT )
IBlockRendering builtInModel( String name, IUnbakedModel model );
}
@@ -22,9 +22,9 @@ package appeng.bootstrap;
import java.util.function.Function;
import java.util.function.Supplier;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.dispenser.IBehaviorDispenseItem;
import net.minecraft.dispenser.IDispenseItemBehavior;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import appeng.core.features.AEFeature;
import appeng.core.features.ItemDefinition;
@@ -42,14 +42,14 @@ public interface IItemBuilder
IItemBuilder addFeatures( AEFeature... features );
IItemBuilder creativeTab( CreativeTabs tab );
IItemBuilder itemGroup( ItemGroup tab );
IItemBuilder rendering( ItemRenderingCustomizer callback );
/**
* Registers a custom dispenser behavior for this item.
*/
IItemBuilder dispenserBehavior( Supplier<IBehaviorDispenseItem> behavior );
IItemBuilder dispenserBehavior( Supplier<IDispenseItemBehavior> behavior );
ItemDefinition build();
}
@@ -23,12 +23,12 @@ import java.util.Arrays;
import java.util.Collection;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
/**
@@ -42,31 +42,31 @@ public interface IItemRendering
* item model to be used for rendering by inspecting the item stack (i.e. for NBT data).
* Please
*/
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IItemRendering meshDefinition( ItemMeshDefinition meshDefinition );
/**
* Registers an item model for meta=0, see {@link #model(int, ModelResourceLocation)}.
*/
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
default IItemRendering model( ModelResourceLocation model )
{
return model( 0, model );
return this.model( 0, model );
}
/**
* Registers an item model for a given meta.
*/
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IItemRendering model( int meta, ModelResourceLocation model );
/**
* Convenient override for {@link #variants(Collection)}.
*/
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
default IItemRendering variants( ResourceLocation... resources )
{
return variants( Arrays.asList( resources ) );
return this.variants( Arrays.asList( resources ) );
}
/**
@@ -76,20 +76,20 @@ public interface IItemRendering
*
* Models registered via {@link #model(int, ModelResourceLocation)} are automatically added here.
*/
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IItemRendering variants( Collection<ResourceLocation> resources );
/**
* Registers a custom item color definition that inspects an item stack and tint and
* returns a color multiplier.
*/
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IItemRendering color( IItemColor itemColor );
/**
* Registers a built-in model under the given resource path.
*/
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
IItemRendering builtInModel( String name, IModel model );
}
@@ -20,9 +20,7 @@ package appeng.bootstrap;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.IStateMapper;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
@@ -26,12 +26,12 @@ import java.util.List;
import java.util.function.Function;
import java.util.function.Supplier;
import net.minecraft.block.BlockDispenser;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.dispenser.IBehaviorDispenseItem;
import net.minecraft.block.DispenserBlock;
import net.minecraft.dispenser.IDispenseItemBehavior;
import net.minecraft.item.Item;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraft.item.ItemGroup;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import appeng.bootstrap.components.IItemRegistrationComponent;
import appeng.bootstrap.components.IPostInitComponent;
@@ -56,12 +56,12 @@ class ItemDefinitionBuilder implements IItemBuilder
private final List<Function<Item, IBootstrapComponent>> boostrapComponents = new ArrayList<>();
private Supplier<IBehaviorDispenseItem> dispenserBehaviorSupplier;
private Supplier<IDispenseItemBehavior> dispenserBehaviorSupplier;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private ItemRendering itemRendering;
private CreativeTabs creativeTab = CreativeTab.instance;
private ItemGroup itemGroup = CreativeTab.instance;
ItemDefinitionBuilder( FeatureFactory factory, String registryName, Supplier<Item> itemSupplier )
{
@@ -97,9 +97,9 @@ class ItemDefinitionBuilder implements IItemBuilder
}
@Override
public IItemBuilder creativeTab( CreativeTabs tab )
public IItemBuilder itemGroup( ItemGroup itemGroup )
{
this.creativeTab = tab;
this.itemGroup = itemGroup;
return this;
}
@@ -115,13 +115,13 @@ class ItemDefinitionBuilder implements IItemBuilder
}
@Override
public IItemBuilder dispenserBehavior( Supplier<IBehaviorDispenseItem> behavior )
public IItemBuilder dispenserBehavior( Supplier<IDispenseItemBehavior> behavior )
{
this.dispenserBehaviorSupplier = behavior;
return this;
}
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private void customizeForClient( ItemRenderingCustomizer callback )
{
callback.customize( this.itemRendering );
@@ -140,9 +140,6 @@ class ItemDefinitionBuilder implements IItemBuilder
ItemDefinition definition = new ItemDefinition( this.registryName, item );
item.setUnlocalizedName( "appliedenergistics2." + this.registryName );
item.setCreativeTab( this.creativeTab );
// Register all extra handlers
this.boostrapComponents.forEach( component -> this.factory.addBootstrapComponent( component.apply( item ) ) );
@@ -151,8 +148,8 @@ class ItemDefinitionBuilder implements IItemBuilder
{
this.factory.addBootstrapComponent( (IPostInitComponent) side ->
{
IBehaviorDispenseItem behavior = this.dispenserBehaviorSupplier.get();
BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject( item, behavior );
IDispenseItemBehavior behavior = this.dispenserBehaviorSupplier.get();
DispenserBlock.registerDispenseBehavior( item, behavior );
} );
}
@@ -29,17 +29,17 @@ import java.util.Set;
import com.google.common.collect.ImmutableMap;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.block.BlockState;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.block.statemap.StateMapperBase;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.bootstrap.components.ItemColorComponent;
import appeng.bootstrap.components.ItemMeshDefinitionComponent;
@@ -50,23 +50,23 @@ import appeng.bootstrap.components.ItemVariantsComponent;
class ItemRendering implements IItemRendering
{
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private IItemColor itemColor;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private ItemMeshDefinition itemMeshDefinition;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private Map<Integer, ModelResourceLocation> itemModels = new HashMap<>();
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private Set<ResourceLocation> variants = new HashSet<>();
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
private Map<String, IModel> builtInModels = new HashMap<>();
@Override
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public IItemRendering meshDefinition( ItemMeshDefinition meshDefinition )
{
this.itemMeshDefinition = meshDefinition;
@@ -74,7 +74,7 @@ class ItemRendering implements IItemRendering
}
@Override
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public IItemRendering model( int meta, ModelResourceLocation model )
{
this.itemModels.put( meta, model );
@@ -89,7 +89,7 @@ class ItemRendering implements IItemRendering
}
@Override
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public IItemRendering color( IItemColor itemColor )
{
this.itemColor = itemColor;
@@ -123,9 +123,9 @@ class ItemRendering implements IItemRendering
ModelResourceLocation model;
// For block items, the default will try to use the default state of the associated block
if( item instanceof ItemBlock )
if( item instanceof BlockItem )
{
Block block = ( (ItemBlock) item ).getBlock();
Block block = ( (BlockItem) item ).getBlock();
// We can only do this once the blocks are actually registered...
StateMapperHelper helper = new StateMapperHelper( item.getRegistryName() );
@@ -169,7 +169,7 @@ class ItemRendering implements IItemRendering
}
@Override
protected ModelResourceLocation getModelResourceLocation( IBlockState state )
protected ModelResourceLocation getModelResourceLocation( BlockState state )
{
return new ModelResourceLocation( this.registryName, this.getPropertyString( state.getProperties() ) );
}
@@ -19,18 +19,18 @@
package appeng.bootstrap;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
/**
* A callback that allows the rendering of a item to be customized. Sadly this class is required and no lambdas can be
* used
* due to them not being able to be annotated with @SideOnly(CLIENT).
* due to them not being able to be annotated with @OnlyIn(CLIENT).
*/
public abstract class ItemRenderingCustomizer
{
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public abstract void customize( IItemRendering rendering );
}
@@ -22,7 +22,7 @@ package appeng.bootstrap.components;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.color.IBlockColor;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
public class BlockColorComponent implements IInitComponent
@@ -39,9 +39,9 @@ public class BlockColorComponent implements IInitComponent
}
@Override
public void initialize( Side side )
public void initialize( Dist dist )
{
Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler( this.blockColor, this.block );
Minecraft.getInstance().getBlockColors().register( this.blockColor, this.block );
}
}
@@ -24,30 +24,30 @@ import java.util.Map;
import com.google.common.base.Preconditions;
import net.minecraftforge.client.model.IModel;
import net.minecraft.client.renderer.model.IUnbakedModel;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.model.ModelLoaderRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import appeng.client.render.model.BuiltInModelLoader;
@SideOnly( Side.CLIENT )
@OnlyIn( Dist.CLIENT )
public class BuiltInModelComponent implements IPreInitComponent
{
private final Map<String, IModel> builtInModels = new HashMap<>();
private final Map<String, IUnbakedModel> builtInModels = new HashMap<>();
private boolean hasInitialized = false;
public void addModel( String path, IModel model )
public void addModel( String path, IUnbakedModel model )
{
Preconditions.checkState( !this.hasInitialized );
this.builtInModels.put( path, model );
}
@Override
public void preInitialize( Side side )
public void preInitialize( Dist dist )
{
this.hasInitialized = true;
@@ -3,7 +3,7 @@ package appeng.bootstrap.components;
import net.minecraft.block.Block;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.registries.IForgeRegistry;
import appeng.bootstrap.IBootstrapComponent;
@@ -12,5 +12,5 @@ import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IBlockRegistrationComponent extends IBootstrapComponent
{
void blockRegistration( Side side, IForgeRegistry<Block> blockRegistry );
void blockRegistration( Dist dist, IForgeRegistry<Block> blockRegistry );
}
@@ -2,7 +2,8 @@
package appeng.bootstrap.components;
import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraftforge.registries.IForgeRegistry;
import appeng.bootstrap.IBootstrapComponent;
@@ -11,5 +12,5 @@ import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IEntityRegistrationComponent extends IBootstrapComponent
{
void entityRegistration( IForgeRegistry<EntityEntry> entityRegistry );
void entityRegistration( IForgeRegistry<EntityType<? extends Entity>> entityRegistry );
}
@@ -19,7 +19,7 @@
package appeng.bootstrap.components;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IBootstrapComponent;
@@ -27,5 +27,5 @@ import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IInitComponent extends IBootstrapComponent
{
void initialize( Side side );
void initialize( Dist dist );
}
@@ -3,7 +3,7 @@ package appeng.bootstrap.components;
import net.minecraft.item.Item;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.registries.IForgeRegistry;
import appeng.bootstrap.IBootstrapComponent;
@@ -12,5 +12,5 @@ import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IItemRegistrationComponent extends IBootstrapComponent
{
void itemRegistration( Side side, IForgeRegistry<Item> itemRegistry );
void itemRegistration( Dist dist, IForgeRegistry<Item> itemRegistry );
}
@@ -19,7 +19,7 @@
package appeng.bootstrap.components;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IBootstrapComponent;
import appeng.bootstrap.IModelRegistry;
@@ -32,5 +32,5 @@ import appeng.bootstrap.IModelRegistry;
@FunctionalInterface
public interface IModelRegistrationComponent extends IBootstrapComponent
{
void modelRegistration( Side side, IModelRegistry registry );
void modelRegistration( Dist dist, IModelRegistry registry );
}
@@ -1,31 +0,0 @@
/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
*
* Applied Energistics 2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Applied Energistics 2 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
*/
package appeng.bootstrap.components;
import net.minecraftforge.fml.relauncher.Side;
import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IOreDictComponent extends IBootstrapComponent
{
void oreRegistration( Side side );
}
@@ -19,7 +19,7 @@
package appeng.bootstrap.components;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IBootstrapComponent;
@@ -27,5 +27,5 @@ import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IPostInitComponent extends IBootstrapComponent
{
void postInitialize( Side side );
void postInitialize( Dist dist );
}
@@ -19,7 +19,7 @@
package appeng.bootstrap.components;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IBootstrapComponent;
@@ -27,5 +27,5 @@ import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IPreInitComponent extends IBootstrapComponent
{
void preInitialize( Side side );
void preInitialize( Dist dist );
}
@@ -3,7 +3,7 @@ package appeng.bootstrap.components;
import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.registries.IForgeRegistry;
import appeng.bootstrap.IBootstrapComponent;
@@ -12,5 +12,5 @@ import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IRecipeRegistrationComponent extends IBootstrapComponent
{
void recipeRegistration( Side side, IForgeRegistry<IRecipe> recipeRegistry );
void recipeRegistration( Dist dist, IForgeRegistry<IRecipe> recipeRegistry );
}
@@ -22,7 +22,7 @@ package appeng.bootstrap.components;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.color.IItemColor;
import net.minecraft.item.Item;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
public class ItemColorComponent implements IInitComponent
@@ -39,8 +39,8 @@ public class ItemColorComponent implements IInitComponent
}
@Override
public void initialize( Side side )
public void initialize( Dist dist )
{
Minecraft.getMinecraft().getItemColors().registerItemColorHandler( this.itemColor, this.item );
Minecraft.getInstance().getItemColors().register( this.itemColor, this.item );
}
}
@@ -23,7 +23,7 @@ import javax.annotation.Nonnull;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.item.Item;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IModelRegistry;
@@ -46,7 +46,7 @@ public class ItemMeshDefinitionComponent implements IModelRegistrationComponent
}
@Override
public void modelRegistration( Side side, IModelRegistry registry )
public void modelRegistration( Dist dist, IModelRegistry registry )
{
registry.setCustomMeshDefinition( this.item, this.meshDefinition );
}
@@ -23,9 +23,9 @@ import java.util.Map;
import javax.annotation.Nonnull;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IModelRegistry;
@@ -48,7 +48,7 @@ public class ItemModelComponent implements IModelRegistrationComponent
}
@Override
public void modelRegistration( Side side, IModelRegistry registry )
public void modelRegistration( Dist dist, IModelRegistry registry )
{
this.modelsByMeta.forEach( ( meta, model ) ->
{
@@ -23,7 +23,7 @@ import java.util.Collection;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IModelRegistry;
@@ -42,7 +42,7 @@ public class ItemVariantsComponent implements IModelRegistrationComponent
}
@Override
public void modelRegistration( Side side, IModelRegistry registry )
public void modelRegistration( Dist dist, IModelRegistry registry )
{
ResourceLocation[] resourceArr = this.resources.toArray( new ResourceLocation[0] );
registry.registerItemVariants( this.item, resourceArr );
@@ -26,15 +26,15 @@ import java.util.function.BiFunction;
import com.google.common.collect.Sets;
import net.minecraft.client.renderer.block.model.IBakedModel;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.model.IBakedModel;
import net.minecraft.client.renderer.model.ModelResourceLocation;
import net.minecraft.util.registry.IRegistry;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.ModelBakeEvent;
import net.minecraftforge.client.model.IModel;
import net.minecraftforge.client.model.ModelLoaderRegistry;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import appeng.core.AppEng;
@@ -53,7 +53,7 @@ public class ModelOverrideComponent implements IPreInitComponent
}
@Override
public void preInitialize( Side side )
public void preInitialize( Dist dist )
{
MinecraftForge.EVENT_BUS.register( this );
}
@@ -24,7 +24,7 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.statemap.IStateMapper;
import net.minecraft.client.resources.IReloadableResourceManager;
import net.minecraft.client.resources.IResourceManagerReloadListener;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.api.distmarker.Dist;
import appeng.bootstrap.IModelRegistry;
@@ -46,12 +46,12 @@ public class StateMapperComponent implements IModelRegistrationComponent
}
@Override
public void modelRegistration( Side side, IModelRegistry registry )
public void modelRegistration( Dist dist, IModelRegistry registry )
{
registry.setCustomStateMapper( this.block, this.stateMapper );
if( this.stateMapper instanceof IResourceManagerReloadListener )
{
( (IReloadableResourceManager) Minecraft.getMinecraft().getResourceManager() )
( (IReloadableResourceManager) Minecraft.getInstance().getResourceManager() )
.registerReloadListener( (IResourceManagerReloadListener) this.stateMapper );
}
}
@@ -19,9 +19,13 @@
package appeng.bootstrap.components;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import java.util.function.Function;
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
import net.minecraft.tileentity.TileEntityType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.fml.client.registry.ClientRegistry;
import net.minecraftforge.fml.relauncher.Side;
import appeng.tile.AEBaseTile;
@@ -31,24 +35,23 @@ import appeng.tile.AEBaseTile;
*
* @param <T>
*/
// public class TesrComponent<T extends AEBaseTile> implements ModelRegComponent
public class TesrComponent<T extends AEBaseTile> implements IPreInitComponent
{
private final Class<T> tileEntityClass;
private final TileEntityType<T> tileEntityClass;
private final TileEntitySpecialRenderer<? super T> tesr;
private final Function<? super TileEntityRendererDispatcher, ? extends TileEntityRenderer<? super T>> ter;
public TesrComponent( Class<T> tileEntityClass, TileEntitySpecialRenderer<? super T> tesr )
public TesrComponent( TileEntityType<T> tileEntityClass, Function<? super TileEntityRendererDispatcher, ? extends TileEntityRenderer<? super T>> ter )
{
this.tileEntityClass = tileEntityClass;
this.tesr = tesr;
this.ter = ter;
}
@Override
// public void modelReg( Side side )
public void preInitialize( Side side )
// public void modelReg( Dist dist )
public void preInitialize( Dist dist )
{
ClientRegistry.bindTileEntitySpecialRenderer( this.tileEntityClass, this.tesr );
ClientRegistry.bindTileEntityRenderer( this.tileEntityClass, this.ter );
}
}
@@ -5,8 +5,8 @@ package appeng.bootstrap.components;
import java.util.ArrayList;
import java.util.List;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import appeng.bootstrap.definitions.TileEntityDefinition;
import appeng.core.AppEng;
@@ -32,7 +32,7 @@ public class TileEntityComponent implements IPreInitComponent
}
@Override
public void preInitialize( Side side )
public void preInitialize( Dist dist )
{
for( TileEntityDefinition tileEntityDefinition : this.tileEntityDefinitions )
{