Jump to content

SamB440

Members
  • Posts

    7
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

SamB440's Achievements

Tree Puncher

Tree Puncher (2/8)

0

Reputation

  1. You are a saviour! Thank you so much.
  2. But I want to use Minecraft's player model lol. I don't fancy rewriting that.
  3. I created a class extending CreatureEntity: public class FarmerEntity extends CreatureEntity { public FarmerEntity(EntityType<? extends CreatureEntity> type, World worldIn) { super(type, worldIn); } @Override protected void registerGoals() { this.goalSelector.addGoal(1, new LookAtGoal(this, PlayerEntity.class, 10.0F)); this.goalSelector.addGoal(2, new LookRandomlyGoal(this)); applyEntityAI(); } protected void applyEntityAI() { this.goalSelector.addGoal(1, new SwimGoal(this)); this.goalSelector.addGoal(2, new WaterAvoidingRandomWalkingGoal(this, 1.0D)); } @Override protected void registerAttributes() { super.registerAttributes(); this.getAttribute(SharedMonsterAttributes.MAX_HEALTH).setBaseValue(20.0D); } } I then registered entity types: public class EntityTypes { public static final EntityType<FarmerEntity> FARMER = null; @Mod.EventBusSubscriber(modid = Utils.MODID, bus = Bus.MOD) public static class RegistrationHandler { /** * Register this mod's {@link Entity} types. * * @param event The event */ @SubscribeEvent public static void registerEntities(final RegistryEvent.Register<EntityType<?>> event) { final EntityType<FarmerEntity> farmer = build( "farmer", EntityType.Builder.<FarmerEntity>create((FarmerEntity::new), EntityClassification.MISC) .size(0.5f, 0.5f) ); event.getRegistry().registerAll( farmer ); } /** * Build an {@link EntityType} from a {@link EntityType.Builder} using the specified name. * * @param name The entity type name * @param builder The entity type builder to build * @return The built entity type */ private static <T extends Entity> EntityType<T> build(final String name, final EntityType.Builder<T> builder) { final ResourceLocation registryName = new ResourceLocation(Utils.MODID, name); final EntityType<T> entityType = builder .build(registryName.toString()); entityType.setRegistryName(registryName); return entityType; } } } And finally made a class implementing IRenderFactory: public class RenderFarmerEntity implements IRenderFactory<FarmerEntity> { @Override public EntityRenderer<? super FarmerEntity> createRenderFor(EntityRendererManager manager) { return Minecraft.getInstance().getRenderManager().getRenderer(RabbitEntity.class); } }
  4. Please explain how to create my own entity then. As I stated, I tried this and it simply refuses to render via Minecraft's default renders.
  5. Thanks for your response. I am trying to create player NPCs that function just like a real player but I am able to modify to open GUIs, set their AI goals etc. I tried creating a custom entity and setting the model as a player, however there is no player model in the minecraft render manager that supports Forge's IRenderFactory. I tried getting the entity to at least show by setting it to a rabbit but that just created an invisible entity with a shadow.
  6. I have tried using the FakePlayerFactory in 1.14, however upon using it, the game crashes: java.lang.NullPointerException: Exception ticking world at net.minecraft.world.TrackedEntity.func_219451_a(TrackedEntity.java:284) ~[?:?] {re:classloading} at net.minecraft.world.TrackedEntity.func_219457_c(TrackedEntity.java:256) ~[?:?] {re:classloading} at net.minecraft.world.TrackedEntity.func_219453_a(TrackedEntity.java:153) ~[?:?] {re:classloading} at net.minecraft.world.server.ChunkManager.func_219169_g(ChunkManager.java:978) ~[?:?] {re:classloading} at net.minecraft.world.server.ServerChunkProvider.func_217220_m(SourceFile:417) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerChunkProvider.func_217207_a(SourceFile:335) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.world.server.ServerWorld.func_72835_b(ServerWorld.java:309) ~[?:?] {re:classloading} at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:829) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:764) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:112) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:622) [?:?] {re:classloading,pl:accesstransformer:B} at java.lang.Thread.run(Thread.java:745) [?:1.8.0_51] {} I used: world.addEntity(FakePlayerFactory.get(ServerLifecycleHooks.getCurrentServer().getWorld(DimensionType.OVERWORLD), new GameProfile(UUID.randomUUID(), "Farmer")));
  7. I am looking to create a custom GUI in 1.13.2, one with buttons and labels. I was able to achieve this in 1.12, however in 1.13 it has changed drasticly and I simply cannot work it out, even when looking at the source classes. Unfortunately, there is little to no documentation on this.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.