Fix custom item entities not showing on the client
Fix crystal growth not syncing
This commit is contained in:
@@ -40,12 +40,15 @@ import appeng.core.features.registries.PartModels;
|
||||
import appeng.core.stats.AdvancementTriggers;
|
||||
import appeng.core.sync.network.NetworkHandler;
|
||||
import appeng.core.worlddata.WorldData;
|
||||
import appeng.entity.*;
|
||||
import appeng.hooks.TickHandler;
|
||||
import appeng.parts.PartPlacement;
|
||||
import appeng.parts.automation.PlaneModelLoader;
|
||||
import appeng.server.ServerHelper;
|
||||
import com.google.common.base.Stopwatch;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.inventory.container.ContainerType;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -73,6 +76,7 @@ import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.fml.CrashReportExtender;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.fml.ModLoadingContext;
|
||||
import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
import net.minecraftforge.fml.config.ModConfig;
|
||||
@@ -180,14 +184,11 @@ public final class AppEng
|
||||
|
||||
((ClientHelper) proxy).clientInit();
|
||||
|
||||
// Do not register the Fullbright hacks if Optifine is present or if the Forge lighting is disabled
|
||||
// FIXME if( !FMLClientHandler.instance().hasOptifine() && ForgeModContainer.forgeLightPipelineEnabled )
|
||||
// FIXME {
|
||||
// FIXME ModelLoaderRegistry.registerLoader( UVLModelLoader.INSTANCE );
|
||||
// FIXME }
|
||||
|
||||
// FIXME RenderingRegistry.registerEntityRenderingHandler( EntityTinyTNTPrimed.class, manager -> new RenderTinyTNTPrimed( manager ) );
|
||||
// FIXME RenderingRegistry.registerEntityRenderingHandler( EntityFloatingItem.class, manager -> new RenderFloatingItem( manager ) );
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityTinyTNTPrimed.TYPE, RenderTinyTNTPrimed::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityFloatingItem.TYPE, RenderFloatingItem::new);
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntitySingularity.TYPE, m -> new ItemRenderer(m, Minecraft.getInstance().getItemRenderer()));
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityGrowingCrystal.TYPE, m -> new ItemRenderer(m, Minecraft.getInstance().getItemRenderer()));
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityChargedQuartz.TYPE, m -> new ItemRenderer(m, Minecraft.getInstance().getItemRenderer()));
|
||||
|
||||
// TODO: Do not use the internal API
|
||||
final ApiDefinitions definitions = Api.INSTANCE.definitions();
|
||||
|
||||
@@ -56,6 +56,7 @@ import appeng.core.features.registries.cell.CreativeCellHandler;
|
||||
import appeng.core.stats.AdvancementTriggers;
|
||||
import appeng.core.stats.AeStats;
|
||||
import appeng.core.stats.PartItemPredicate;
|
||||
import appeng.entity.EntityFloatingItem;
|
||||
import appeng.fluids.client.gui.*;
|
||||
import appeng.fluids.container.*;
|
||||
import appeng.fluids.registries.BasicFluidCellGuiHandler;
|
||||
@@ -76,6 +77,7 @@ import appeng.worldgen.MeteoriteWorldGen;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.ScreenManager;
|
||||
import net.minecraft.entity.EntityClassification;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.inventory.container.ContainerType;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -527,9 +529,12 @@ final class Registration
|
||||
CraftingHelper.register( FeaturesEnabled.Serializer.INSTANCE );
|
||||
}
|
||||
|
||||
|
||||
public void registerEntities( RegistryEvent.Register<EntityType<?>> event )
|
||||
{
|
||||
// Special case only used on the client-side
|
||||
EntityFloatingItem.TYPE = EntityType.Builder.<EntityFloatingItem>create(EntityFloatingItem::new, EntityClassification.MISC)
|
||||
.build("appliedenergistics2:floating_item");
|
||||
|
||||
final IForgeRegistry<EntityType<?>> registry = event.getRegistry();
|
||||
// TODO: Do not use the internal API
|
||||
final ApiDefinitions definitions = Api.INSTANCE.definitions();
|
||||
|
||||
@@ -318,20 +318,17 @@ public final class ApiBlocks implements IBlocks
|
||||
} )
|
||||
.build() )
|
||||
.build();
|
||||
|
||||
EntityTinyTNTPrimed.TYPE = registry.<EntityTinyTNTPrimed>entity("tiny_tnt_primed", EntityTinyTNTPrimed::new, EntityClassification.MISC)
|
||||
.customize(p -> p.setTrackingRange(16)
|
||||
.setUpdateInterval(4)
|
||||
.setShouldReceiveVelocityUpdates(true))
|
||||
.build();
|
||||
|
||||
this.tinyTNT = registry.block( "tiny_tnt", BlockTinyTNT::new )
|
||||
.features( AEFeature.TINY_TNT )
|
||||
.bootstrap( ( block, item ) -> (IInitComponent) () -> DispenserBlock.registerDispenseBehavior( item,
|
||||
new DispenserBehaviorTinyTNT() ) )
|
||||
.bootstrap( ( block, item ) -> (IEntityRegistrationComponent) r ->
|
||||
{
|
||||
r.register(EntityType.Builder.<EntityTinyTNTPrimed>create(EntityTinyTNTPrimed::new, EntityClassification.MISC)
|
||||
.setTrackingRange(16)
|
||||
.setUpdateInterval(4)
|
||||
.setShouldReceiveVelocityUpdates(true)
|
||||
.build(AppEng.MOD_ID + ":tiny_tnt_primed")
|
||||
.setRegistryName(AppEng.MOD_ID + ":tiny_tnt_primed")
|
||||
);
|
||||
} )
|
||||
.build();
|
||||
this.securityStation = registry.block( "security_station", BlockSecurityStation::new )
|
||||
.features( AEFeature.SECURITY )
|
||||
|
||||
@@ -282,10 +282,8 @@ public final class ApiItems implements IItems
|
||||
.features( AEFeature.CRYSTAL_SEEDS )
|
||||
.build();
|
||||
|
||||
registry.<EntityGrowingCrystal>entity("growing_crystal", EntityGrowingCrystal::new, EntityClassification.MISC)
|
||||
.customize(builder -> builder.setTrackingRange(16)
|
||||
.setUpdateInterval(4)
|
||||
.setShouldReceiveVelocityUpdates(true))
|
||||
EntityGrowingCrystal.TYPE = registry.<EntityGrowingCrystal>entity("growing_crystal", EntityGrowingCrystal::new, EntityClassification.MISC)
|
||||
.customize(builder -> builder.size(0.25F, 0.25F))
|
||||
.build();
|
||||
|
||||
// rv1
|
||||
|
||||
@@ -120,11 +120,11 @@ public final class ApiMaterials implements IMaterials
|
||||
{
|
||||
this.registry = registry;
|
||||
|
||||
registry.<EntitySingularity>entity("singularity", EntitySingularity::new, EntityClassification.MISC)
|
||||
EntitySingularity.TYPE = registry.<EntitySingularity>entity("singularity", EntitySingularity::new, EntityClassification.MISC)
|
||||
.customize(builder -> builder.setTrackingRange(16).setUpdateInterval(4).setShouldReceiveVelocityUpdates(true))
|
||||
.build();
|
||||
|
||||
registry.<EntityChargedQuartz>entity("charged_quartz", EntityChargedQuartz::new, EntityClassification.MISC)
|
||||
EntityChargedQuartz.TYPE = registry.<EntityChargedQuartz>entity("charged_quartz", EntityChargedQuartz::new, EntityClassification.MISC)
|
||||
.customize(builder -> builder.setTrackingRange(16).setUpdateInterval(4).setShouldReceiveVelocityUpdates(true))
|
||||
.build();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user