Sky Chest TESR / Tile Entity Registration Changes
This commit is contained in:
@@ -31,6 +31,7 @@ import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.particles.ParticleType;
|
||||
import net.minecraft.stats.StatType;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
@@ -102,7 +103,9 @@ public final class AppEng
|
||||
modEventBus.addGenericListener(Item.class, registration::registerItems);
|
||||
modEventBus.addGenericListener(EntityType.class, registration::registerEntities);
|
||||
modEventBus.addGenericListener(ParticleType.class, registration::registerParticleTypes);
|
||||
modEventBus.addGenericListener(TileEntityType.class, registration::registerTileEntities);
|
||||
modEventBus.addListener(registration::registerParticleFactories);
|
||||
modEventBus.addListener(registration::registerTextures);
|
||||
|
||||
modEventBus.addListener(this::commonSetup);
|
||||
|
||||
|
||||
@@ -20,14 +20,12 @@ package appeng.core;
|
||||
|
||||
|
||||
import appeng.bootstrap.IModelRegistry;
|
||||
import appeng.bootstrap.components.IBlockRegistrationComponent;
|
||||
import appeng.bootstrap.components.IEntityRegistrationComponent;
|
||||
import appeng.bootstrap.components.IItemRegistrationComponent;
|
||||
import appeng.bootstrap.components.IModelRegistrationComponent;
|
||||
import appeng.bootstrap.components.*;
|
||||
import appeng.client.render.effects.ChargedOreFX;
|
||||
import appeng.client.render.effects.LightningFX;
|
||||
import appeng.client.render.effects.VibrantFX;
|
||||
import appeng.client.render.model.GlassModelLoader;
|
||||
import appeng.client.render.tesr.SkyChestTESR;
|
||||
import appeng.core.stats.AeStats;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -36,15 +34,13 @@ import net.minecraft.client.renderer.model.ModelResourceLocation;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.particles.ParticleType;
|
||||
import net.minecraft.stats.IStatFormatter;
|
||||
import net.minecraft.stats.StatType;
|
||||
import net.minecraft.stats.Stats;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.event.ModelRegistryEvent;
|
||||
import net.minecraftforge.client.event.ParticleFactoryRegisterEvent;
|
||||
import net.minecraftforge.client.event.TextureStitchEvent;
|
||||
import net.minecraftforge.client.model.ModelLoaderRegistry;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.fml.loading.FMLEnvironment;
|
||||
@@ -225,6 +221,13 @@ final class Registration
|
||||
definitions.getRegistry().getBootstrapComponents( IItemRegistrationComponent.class ).forEachRemaining( b -> b.itemRegistration( dist, registry ) );
|
||||
}
|
||||
|
||||
public void registerTileEntities( RegistryEvent.Register<TileEntityType<?>> event )
|
||||
{
|
||||
final IForgeRegistry<TileEntityType<?>> registry = event.getRegistry();
|
||||
final ApiDefinitions definitions = Api.INSTANCE.definitions();
|
||||
definitions.getRegistry().getBootstrapComponents( ITileEntityRegistrationComponent.class ).forEachRemaining(b -> b.register( registry ) );
|
||||
}
|
||||
|
||||
// @SubscribeEvent
|
||||
// public void registerRecipes( RegistryEvent.Register<IRecipe> event )
|
||||
// {
|
||||
@@ -525,4 +528,8 @@ final class Registration
|
||||
//
|
||||
// }
|
||||
|
||||
public void registerTextures(TextureStitchEvent.Pre event) {
|
||||
SkyChestTESR.registerTextures(event);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,14 +24,16 @@ import appeng.api.definitions.IBlocks;
|
||||
import appeng.api.definitions.ITileDefinition;
|
||||
import appeng.block.misc.BlockQuartzFixture;
|
||||
import appeng.block.spatial.BlockMatrixFrame;
|
||||
import appeng.bootstrap.BlockRenderingCustomizer;
|
||||
import appeng.bootstrap.FeatureFactory;
|
||||
import appeng.bootstrap.IBlockRendering;
|
||||
import appeng.bootstrap.IItemRendering;
|
||||
import appeng.block.storage.BlockSkyChest;
|
||||
import appeng.block.storage.SkyChestRenderingCustomizer;
|
||||
import appeng.bootstrap.*;
|
||||
import appeng.bootstrap.definitions.TileEntityDefinition;
|
||||
import appeng.client.render.tesr.SkyChestTESR;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.features.registries.PartModels;
|
||||
import appeng.decorative.AEDecorativeBlock;
|
||||
import appeng.decorative.solid.*;
|
||||
import appeng.tile.storage.TileSkyChest;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.Material;
|
||||
@@ -197,17 +199,30 @@ public final class ApiBlocks implements IBlocks
|
||||
.addFeatures( AEFeature.SKY_STONE )
|
||||
.build();
|
||||
|
||||
// this.skyStoneChest = registry.block( "sky_stone_chest", () -> new BlockSkyChest( SkyChestType.STONE ) )
|
||||
// .features( AEFeature.SKY_STONE, AEFeature.SKY_STONE_CHESTS )
|
||||
// .tileEntity( new TileEntityDefinition( TileSkyChest.class, "sky_stone_chest" ) )
|
||||
// .rendering( new SkyChestRenderingCustomizer( SkyChestType.STONE ) )
|
||||
// .build();
|
||||
// this.smoothSkyStoneChest = registry.block( "smooth_sky_stone_chest", () -> new BlockSkyChest( SkyChestType.BLOCK ) )
|
||||
// .features( AEFeature.SKY_STONE, AEFeature.SKY_STONE_CHESTS )
|
||||
// .tileEntity( new TileEntityDefinition( TileSkyChest.class, "sky_stone_chest" ) )
|
||||
// .rendering( new SkyChestRenderingCustomizer( SkyChestType.BLOCK ) )
|
||||
// .build();
|
||||
//
|
||||
Block.Properties skyStoneChestProps = Block.Properties.create(Material.ROCK)
|
||||
.hardnessAndResistance(50, 150)
|
||||
.notSolid();
|
||||
|
||||
TileEntityDefinition skyChestTile = registry.tileEntity("sky_chest", TileSkyChest.class, TileSkyChest::new)
|
||||
.rendering(new TileEntityRenderingCustomizer<TileSkyChest>() {
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void customize(TileEntityRendering<TileSkyChest> rendering) {
|
||||
rendering.tileEntityRenderer(SkyChestTESR::new);
|
||||
}
|
||||
})
|
||||
.build();
|
||||
this.skyStoneChest = registry.block( "sky_stone_chest", () -> new BlockSkyChest( BlockSkyChest.SkyChestType.STONE, skyStoneChestProps ) )
|
||||
.features( AEFeature.SKY_STONE, AEFeature.SKY_STONE_CHESTS )
|
||||
.tileEntity( skyChestTile )
|
||||
// .rendering( new SkyChestRenderingCustomizer( BlockSkyChest.SkyChestType.STONE ) )
|
||||
.build();
|
||||
this.smoothSkyStoneChest = registry.block( "smooth_sky_stone_chest", () -> new BlockSkyChest( BlockSkyChest.SkyChestType.BLOCK, skyStoneChestProps ) )
|
||||
.features( AEFeature.SKY_STONE, AEFeature.SKY_STONE_CHESTS )
|
||||
.tileEntity( skyChestTile )
|
||||
// .rendering( new SkyChestRenderingCustomizer( BlockSkyChest.SkyChestType.BLOCK ) )
|
||||
.build();
|
||||
|
||||
// this.skyCompass = registry.block( "sky_compass", BlockSkyCompass::new )
|
||||
// .features( AEFeature.METEORITE_COMPASS )
|
||||
// .tileEntity( new TileEntityDefinition( TileSkyCompass.class ) )
|
||||
|
||||
Reference in New Issue
Block a user