Jump to content

[1.8] Few questions about forge chunk loading...


Elix_x

Recommended Posts

Hello there, i have few questions about forge chunk loading system:

1) I there "common" way of storing information in Tickets nbt?

2) If ticket is associated to entity, does it mean that it will load chunks around this entity?

3) Is there a way to get ticket's source position? Maybe somehow via 1?

4) Is there a way of getting all chunk loaders for my dimension (including player entities)?

5) Is there a way of disabling tickets, not containing chunk loader's position, in custom dimension?

 

I need all this, because in my dimension chunk structure is completely different, and a lot of things (including chunk loading) happen in another way...

 

Thanks for help!

If you have any questions - just ask!!!

Link to comment
Share on other sites

Few more questions:

6) Are EntityPlayer using tickets also, or they are doing it in another way?

7) Is there any common or existing parser for ticket's zone. Because i need to know in which shape chunks must be loaded and distances to borders...

Link to comment
Share on other sites

1) I there "common" way of storing information in Tickets nbt?

Ticket#getModData

2) If ticket is associated to entity, does it mean that it will load chunks around this entity?
I am not 100% sure, but yes, that is what it does I think. It will only load the one chunk the entity is in though, if anything.

3) Is there a way to get ticket's source position? Maybe somehow via 1?

The "source position"? It depends on what created the Ticket. If it's a TE you'd have to store that TE's coordinates in the custom data.

4) Is there a way of getting all chunk loaders for my dimension (including player entities)?
world.getPersistentChunks

5) Is there a way of disabling tickets, not containing chunk loader's position, in custom dimension?
Probably not, but I haven't looked into this too deeply.

6) Are EntityPlayer using tickets also, or they are doing it in another way?

No. They are using the vanilla stuff. Relevant classes are PlayerManager (keeps track of which player is loading which chunks) and EntityPlayerMP#onUpdate for loading and unloading of chunks for that player.

The difference here is that chunk loaders are saved to disk and loaded at world startup so that the relevant chunks can be loaded as well. Player chunks only load when the player is actually online. It is not saved which chunks the player loads.

7) Is there any common or existing parser for ticket's zone. Because i need to know in which shape chunks must be loaded and distances to borders...

Borders? Zones? Tickets contain a set of chunks (=chunk coordinates) which should be kept loaded.

 

[nobbc]8)[/nobbc] How chunk loading for players is handled?

See above.

Thanks for all that info, but "common" way i was asking is common way of writing position/source to the ticket...

 

Actually, all i need is to know x,y,z coord of chunk loader and it's range (if it is not special shape)... And if it is specially shaped or it's pos (especially y) is unknown, to disable it...

 

 

PS: Apearently with what i'm doing in my dim, i should use custom chunk loading system for it, and disable all others...

Link to comment
Share on other sites

As I said before, there is no concept of chunk loaders, shapes, position or anything like that in the forge system. Mods tell forge "keep these chunks loaded" and forge does that for them.

 

I find it very weird how your dimension is supposed to be different. Do you not have chunks with coordinates?

Yes, i have chunks with coordinates: x and z. Loading whole chunk at xz will just crash server with out of memory... What i'm doing is 65% done concept in the way that i'm doing it...

Basically, each chunk is separated in to minichunks (on y axis), which them are handling blocks, lighting, entities, tileentities, loading, unloading... Yes, this needs some asm in order to work. Especially for replacing AnvilChunkLoader with mine in chunk providers, and isValidBlockPos in World in order to "remove" 256 height limitation... (By creating minichunks on y, i can handle many more blocks in one chunk, because not all of it is loaded. Now you can see, why i need y of chunk loader)...

 

So apearently, i have to write my own system for chunk loading my dimension... Now the last question is: how to disable "modded" chunk loading in my dimension? Or maybe just remove all mapped values each tick/sec/min/...? (if it is impossible - i will have some problems)...

Link to comment
Share on other sites

You will have some problems :P Chunkloaders being the least of them.

I know... I will have a lot of problems... But for now, do i just remove my dim mapping from ForgeChunkManager.forcedChunks in order to disable modded chunk loading there?

Link to comment
Share on other sites

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



×
×
  • Create New...

Important Information

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