Posts: 6,486
Threads: 176
Joined: Jan 2012
Thanks: 40
Given 157 thank(s) in 838 post(s)
FakeTruth, even with the best optimizations there are situations that you won't handle well. Even the vanilla client has troubles with some things. I remember when I was toying with the terrain generator, that I accidentally generated terrain that had too many block faces exposed to air - think "20% stone to 80% air dithering". The client would halt and finally, after half an hour, crash.
Your optimization could be broken in the same way - an alternating pattern of cobble, mossy cobble and air.
I'm not saying that it's normal, I'm just saying that there are cases that you won't be able to handle well. The question is, is anyone gonna get into such a situation? And if so, is there a better solution?
Posts: 1,162
Threads: 68
Joined: Mar 2013
Thanks: 0
Given 10 thank(s) in 100 post(s)
One question about OnBlockToPickups hook.
When a player breaks sugarcane/cacti, all blocks above are digged and a pickup it's spawned, would this be a natural reason (no Digger) or would there be a digger?
Posts: 4,621
Threads: 113
Joined: Dec 2011
Thanks: 51
Given 58 thank(s) in 410 post(s)
I think it would be a natural reason.
Posts: 1,162
Threads: 68
Joined: Mar 2013
Thanks: 0
Given 10 thank(s) in 100 post(s)
Could you add an OnFished hook? I'd like to add fisherman job to Jobs.
Something like
function OnFished(Player, Result)
Result would be the item player got fishing.
Posts: 6,486
Threads: 176
Joined: Jan 2012
Thanks: 40
Given 157 thank(s) in 838 post(s)
Nice idea. Make it a set of two - OnFishing(Player, ResultItem) that is fired just as the player decided to reel in and could override the result, and OnFished(Player, ResultItem) that is fired as a notification only after the catch has been decided.
Posts: 4,621
Threads: 113
Joined: Dec 2011
Thanks: 51
Given 58 thank(s) in 410 post(s)
The OnPlayerFished and OnPlayerFishing is implented.
Posts: 1,162
Threads: 68
Joined: Mar 2013
Thanks: 0
Given 10 thank(s) in 100 post(s)
What about an OnPlayerTick hook? Like OnPlayerMoving, but called every tick.
Posts: 6,486
Threads: 176
Joined: Jan 2012
Thanks: 40
Given 157 thank(s) in 838 post(s)
You have OnWorldTick() and cWorld::ForEachPlayer()