Jump to content

[Solved][1.14.4] Problem with custom entity rendering (...I guess?)


Recommended Posts

Posted (edited)

Hi there,

 

I'm new to minecraft modelling, not to Java though. I try to make a custom mod, that adds a helicopter. For the start I tried to basically copy a boat. 

 

The problem:

When I spawn the custom entity, it is invisible. It is definitly there, since I can kill it with the ingame comments and TNT can destroy the entity, with the explosion dropping the item.

Basically i copied the minecraft boat classes, so i guess it has something to do with rendering or registration?

 

Here is the Github link if anyone is willing to help: https://github.com/Felixleh/helicopter

 

Would appreciate any help, as I have no idea where this comes from :D

 

 

Edited by Felix_
Solved
Posted
  On 9/9/2019 at 3:47 PM, diesieben07 said:

You are using SSpawnObjectPacket as your entity's spawning packet, this packet only handles a hardcoded list of vanilla entities. For non-living custom entities you need to write your own spawn packet.

Expand  

Does this mean entities are not automatically synced to the client anymore when they are spawned on the server? And you have to create a packet for this yourself?

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted
  On 9/9/2019 at 3:47 PM, diesieben07 said:
  • You don't own this domain.
  • Do not use @OnlyIn.
  • You are using SSpawnObjectPacket as your entity's spawning packet, this packet only handles a hardcoded list of vanilla entities. For non-living custom entities you need to write your own spawn packet.
Expand  

Hi first of all thanks for the answer.

 

  • I'm, of course, going to change the domain, when i came somewhat further.
  • Do I have to use something instead of @OnlyIn or can I just remove it?

For the custom Packet:

Can I use a class with a signature similar to this one:

public class SpawnHelicopterPacket implements IPacket<IClientPlayNetHandler>

And if yes, how could i use the  

handler.handleSpawnObject(this);

part?

 

Sorry if that's to basic, but I really can't find anything helpfull on google.

 

Posted (edited)
  On 9/9/2019 at 8:03 PM, diesieben07 said:

Just remove it.

 

Custom packets are explained in the documentation: https://mcforge.readthedocs.io/en/1.13.x/networking/simpleimpl/.

Expand  

Thanks! I found the documentation, but honestly I have no Idea where to start. Do you know any stripped down example code of a custom non-living entity, I could use to try to understand the concept? 

Edited by Felix_
Posted
  On 9/9/2019 at 9:07 PM, diesieben07 said:

Look at how the vanilla spawning packet (that I referenced above) works. Then replicate that in your own packet.

Expand  

Hi,

 

I stripped down the code to the most essential things: https://github.com/Felixleh/helicopter

And I found a possible solution by using some build in function:

@Override
	public IPacket<?> createSpawnPacket() {
		return NetworkHooks.getEntitySpawningPacket(this);
	}

Apperently this should solve the problem. I can place the entity in the world by rightclicking the item, but I can't create it with the summon command. When created it's invisible and has no collision. Is there anything I am doing obviously wrong?

 

I tried to create my own Packet but I still don't understand how to work with the handler part.

 

Posted (edited)
  On 9/10/2019 at 12:43 PM, diesieben07 said:

You need to provide the EntityType with an EntityType.IFactory so it can actually create your entity. You do that by using the version of EntityType.Builder.create that takes an IFactory as a parameter.

Expand  

many thanks :D 

 

That's what I wrote there now:

event.getRegistry().registerAll(
						EntityList.helicopter_entity = 
							(EntityType<HelicopterEntity>) EntityType
							.Builder
							.<HelicopterEntity>create(HelicopterEntity::new ,EntityClassification.MISC)
							.size(1f, 1f)
							.build(MOD_ID + ":helicopter_entity")
							.setRegistryName(location("helicopter_entity"))
					);

 

When I now try to place the entity i get a RunTime exception.

 

Edit by changing the code to: 

event.getRegistry().registerAll(
						EntityList.helicopter_entity = 
							(EntityType<HelicopterEntity>) EntityType
							.Builder
							.<HelicopterEntity>create(HelicopterEntity::new ,EntityClassification.MISC)
							.setCustomClientFactory(HelicopterEntity::new)
							.size(1f, 1f)
							.build(MOD_ID + ":helicopter_entity")
							.setRegistryName(location("helicopter_entity"))
					);

I don't get a exception anymore, but if I spawn the entity nothing is happening. It must be somewhere, since I can destroy it, but there is nothing visible. Do you know where the problem is in this code?

 

Edited by Felix_

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • UPDATE: this seems to be an Arch-specific issue. Switching to Ubuntu server fixed EVERYTHING.
    • Yes, Attapoll offers a $20 Sign-up bonus for new users using a code (AOVCQ). Enter the Attapoll Referral Code “AOVCQ” and submit. Yes, Attapoll offers $20 Referral Code {AOVCQ} For New Customers. If you are who wish to join Attapoll, then you should use this exclusive Attapoll referral code $20 Signup Bonus Use this Code (AOVCQ) and get $20 Welcome Bonus. You can get a $20 Signup bonus use this referral code {AOVCQ}. You can get a $20 Attpoll Referral Code {AOVCQ}. This Attapoll $20 Referral code is specifically for existing customers and can be redeemed to receive a $20. Enter $20 Attapoll Referral Code {AOVCQ} at checkout. Enjoy $20Welcome Bonus. Use the best Attapoll referral code $20 (AOVCQ) to get up to $20 first time survey as a new user. Complete the survey and get $20 credited on your Attapoll account. Plus, refer your friend to earn 10% commission on their earning If you're on the hunt for a little extra cash or some cool rewards without too much hassle, you've landed in the right place. Today, we're diving into the world of Attapoll referral codes, a nifty way to boost your earnings while taking surveys. Use this Attapoll Referral Link or code {{AOVCQ}} to get a $20 sign up bonus.
    • Yes, Attapoll offers a $20 Sign-up bonus for new users using a code (AOVCQ). Enter the Attapoll Referral Code “AOVCQ” and submit. Yes, Attapoll offers $20 Referral Code {AOVCQ} For New Customers. If you are who wish to join Attapoll, then you should use this exclusive Attapoll referral code $20 Signup Bonus Use this Code (AOVCQ) and get $20 Welcome Bonus. You can get a $20 Signup bonus use this referral code {AOVCQ}. You can get a $20 Attpoll Referral Code {AOVCQ}. This Attapoll $20 Referral code is specifically for existing customers and can be redeemed to receive a $20. Enter $20 Attapoll Referral Code {AOVCQ} at checkout. Enjoy $20Welcome Bonus. Use the best Attapoll referral code $20 (AOVCQ) to get up to $20 first time survey as a new user. Complete the survey and get $20 credited on your Attapoll account. Plus, refer your friend to earn 10% commission on their earning If you're on the hunt for a little extra cash or some cool rewards without too much hassle, you've landed in the right place. Today, we're diving into the world of Attapoll referral codes, a nifty way to boost your earnings while taking surveys. Use this Attapoll Referral Link or code {{AOVCQ}} to get a $20 sign up bonus.
    • Yes, Attapoll offers a $20 Sign-up bonus for new users using a code (AOVCQ). Enter the Attapoll Referral Code “AOVCQ” and submit. Yes, Attapoll offers $20 Referral Code {AOVCQ} For New Customers. If you are who wish to join Attapoll, then you should use this exclusive Attapoll referral code $20 Signup Bonus Use this Code (AOVCQ) and get $20 Welcome Bonus. You can get a $20 Signup bonus use this referral code {AOVCQ}. You can get a $20 Attpoll Referral Code {AOVCQ}. This Attapoll $20 Referral code is specifically for existing customers and can be redeemed to receive a $20. Enter $20 Attapoll Referral Code {AOVCQ} at checkout. Enjoy $20Welcome Bonus. Use the best Attapoll referral code $20 (AOVCQ) to get up to $20 first time survey as a new user. Complete the survey and get $20 credited on your Attapoll account. Plus, refer your friend to earn 10% commission on their earning If you're on the hunt for a little extra cash or some cool rewards without too much hassle, you've landed in the right place. Today, we're diving into the world of Attapoll referral codes, a nifty way to boost your earnings while taking surveys. Use this Attapoll Referral Link or code {{AOVCQ}} to get a $20 sign up bonus.
    • Yes, Attapoll offers a $20 Sign-up bonus for new users using a code (AOVCQ). Enter the Attapoll Referral Code “AOVCQ” and submit. Yes, Attapoll offers $20 Referral Code {AOVCQ} For New Customers. If you are who wish to join Attapoll, then you should use this exclusive Attapoll referral code $20 Signup Bonus Use this Code (AOVCQ) and get $20 Welcome Bonus. You can get a $20 Signup bonus use this referral code {AOVCQ}. You can get a $20 Attpoll Referral Code {AOVCQ}. This Attapoll $20 Referral code is specifically for existing customers and can be redeemed to receive a $20. Enter $20 Attapoll Referral Code {AOVCQ} at checkout. Enjoy $20Welcome Bonus. Use the best Attapoll referral code $20 (AOVCQ) to get up to $20 first time survey as a new user. Complete the survey and get $20 credited on your Attapoll account. Plus, refer your friend to earn 10% commission on their earning If you're on the hunt for a little extra cash or some cool rewards without too much hassle, you've landed in the right place. Today, we're diving into the world of Attapoll referral codes, a nifty way to boost your earnings while taking surveys. Use this Attapoll Referral Link or code {{AOVCQ}} to get a $20 sign up bonus.
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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