Commit Graph

68 Commits (a4cbe9fbb138405d0ec87712c5e5c65a97c2bb75)

Author SHA1 Message Date
madmaxoft 94f8884f60 Fixed the extreme strain on the world tick thread.
Block changes were sent even with empty changesets, causing a lot of lost CPU cycles.
2013-08-19 21:55:03 +02:00
madmaxoft 1a7912744f Moved entities into the Entities subfolder. 2013-08-19 11:39:13 +02:00
madmaxoft 909a9c6973 cChunk::SetBlock() now uses cChunk::FastSetBlock() for the common code path. 2013-08-19 09:19:45 +02:00
madmaxoft 82ce40e2cc Removed an unused CriticalSection from cChunk.
Fixes #109
2013-08-19 09:13:19 +02:00
madmaxoft 7b10068370 Implemented cWorld:QueueSetBlock(), as requested for delayed blocksetting.
Untested yet, so might not work.
2013-08-18 22:44:22 +02:00
madmaxoft 861d5c75c9 Removed SetServerBlock griefing. 2013-08-18 20:00:50 +02:00
Tiger Wang 8a3174164b Properly fixed piston non-animation
Fixes #57
2013-08-18 14:52:38 +01:00
madmaxoft@gmail.com b1d05b0f57 Improved function names for protocol packet sending; alpha-sorted the function lists
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1659 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-07-07 13:06:06 +00:00
madmaxoft@gmail.com 4fe7801cfc Unified the way mobs are spawned (egg vs natural). Fixed deadlocks in mob moving. Fixed mob destroying code.
Should fix FS #400 and partially fix FS #381

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1626 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-25 06:36:59 +00:00
madmaxoft@gmail.com 8dd5fe5070 Furnaces light up visually when they're cooking
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1612 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-20 11:41:44 +00:00
madmaxoft@gmail.com 03c6bb9f85 Added hopper entity, it can suck items out of chests, dispensers, droppers and other hopppers above it.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1587 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-13 07:36:43 +00:00
madmaxoft@gmail.com fe3712284e Added cWorld::SetSignLines(), re-exported to Lua manually to avoid ghost return values
FS #364

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1582 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-12 07:14:06 +00:00
madmaxoft@gmail.com 3ee5236284 Removed cLadder, cSign, cStairs, cTorch and cVine classes, moved their functionality into the appropriate BlockHandlers / ItemHandlers
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1555 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-04 19:22:14 +00:00
madmaxoft@gmail.com dff77e8e56 Implemented proper player crouching.
Fixes FS #365

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1553 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-06-04 14:18:03 +00:00
madmaxoft@gmail.com 9be27992e2 Moved BlockEntities to a separate folder
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1527 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-28 19:12:47 +00:00
madmaxoft@gmail.com 3138daa1f8 Block entities now receive the cChunk param in their Tick() function
They can safely access that chunk and any of its neighbors during ticking.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1526 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-28 18:50:44 +00:00
madmaxoft@gmail.com 9cd6333486 cChunk: Added the GetRelNeighborChunkAdjustCoords() function
Not only does it return the proper neighbor chunk, but also it adjusts the relative coords to be in that returned chunk.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1523 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-28 12:18:03 +00:00
madmaxoft@gmail.com 5f208f30ac Chunk / ChunkMap: Added support for unbounded querying blocktype-only or blockmeta-only
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1522 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-28 12:05:23 +00:00
madmaxoft@gmail.com 5c3235ecdc Implemented droppers
Added a common ancestor class "DropSpenser" that has the common code for dropper and dispenser and is Lua-accessible, too. The Debuggers plugin now triggers both droppers and dispensers when rclking them with a redstone torch.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1514 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-26 14:39:04 +00:00
madmaxoft@gmail.com 34fa53ca3a Fixed entity chunking.
Sand simulator was off, sand in negative coords wouldn't fall properly

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1489 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-19 11:49:01 +00:00
madmaxoft@gmail.com b7041c1bd2 Removed pickup logging
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1487 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-17 14:30:18 +00:00
madmaxoft@gmail.com fd26595b56 Added logging to pickup collection when a player is near and when collecting.
This should help fix the inactive pickups bug, http://forum.mc-server.org/showthread.php?tid=434&pid=8019#pid8019 )

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1480 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-13 20:26:45 +00:00
madmaxoft@gmail.com 5d4591de47 Fixed player teleporting too far away ("Entity lost")
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1452 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-05-06 18:32:22 +00:00
madmaxoft@gmail.com 5c6164b55a Fixed most of client slowdowns caused by sending too many block changes (bad condition in FastSetBlock)
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1431 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-28 18:54:56 +00:00
madmaxoft@gmail.com 1b7ea2ef82 Fixed a few possible crashes with out-of-bounds Y coords
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1413 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-27 13:23:20 +00:00
madmaxoft@gmail.com a49c004278 Rewritten entities so that they are owned by individual chunks and ticked within their chunk's Tick()
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1385 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-13 21:02:10 +00:00
madmaxoft@gmail.com 46197e3be6 Fixed chunk possibly writing to uninitialized memory
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1376 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-09 19:25:19 +00:00
madmaxoft@gmail.com 502935c061 Mineshafts: Added random loot to generated chests and fixed chest direction
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1365 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-06 21:21:57 +00:00
madmaxoft@gmail.com ef170348aa Added a debugging log for melon-growing to catch FS #349
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1355 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-03 16:43:37 +00:00
madmaxoft@gmail.com 578560d213 Proper fix for FS #347. Also unification of ticking block entities.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1348 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-04-01 20:56:25 +00:00
madmaxoft@gmail.com 3e4fb19321 Fixed block update queueing and water meta change not propagated to clients.
Fixes FS #333.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1297 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-22 16:48:45 +00:00
keyboard.osh@gmail.com 8557ed8359 Added support for the packet #28 (0x1C): ENTITY_VELOCITY
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1283 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-18 02:51:55 +00:00
madmaxoft@gmail.com 8090c13cde Huge performance boost in blockhandlers, they have direct access to chunk data when blockchecking.
Also fixed vines' placement.

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1278 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-15 20:18:11 +00:00
madmaxoft@gmail.com 6f883cba2d Small performance improvements in fluid simulator.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1276 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-14 21:56:01 +00:00
madmaxoft@gmail.com 7f71bfb58f Fix for the Vaporize fluid simulator when loading chunks.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1271 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-14 20:02:52 +00:00
madmaxoft@gmail.com 7593707713 Pickups are now being saved into Anvil.
Also changed cEntity rotation datatype to double

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1262 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-09 14:35:43 +00:00
madmaxoft@gmail.com 01b24d73ea Player can sit in minecarts (but not move them yet)
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1249 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-03 19:05:11 +00:00
madmaxoft@gmail.com 55326ee2a7 Simulators are woken up upon chunk load
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1248 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-03 15:33:55 +00:00
madmaxoft@gmail.com 66670f5d5c Floody fluid simulator has been converted to use direct chunk access
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1236 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-02 15:44:31 +00:00
madmaxoft@gmail.com 011e11af2c New fire simulator, fully rewritten to the new scheme of things, directly accessing chunk data.
http://forum.mc-server.org/showthread.php?tid=617&pid=6626#pid6626

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1233 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-03-01 19:35:29 +00:00
madmaxoft@gmail.com afee43d274 Fixed previous commit.
I'm too sleepy and shouldn't be let around the sources :P

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1230 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-28 21:42:16 +00:00
madmaxoft@gmail.com ee7f36f682 Fixed a bug in cChunk::QueueTickBlockNeighbors() that caused the tick thread to overload easily
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1229 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-28 21:36:43 +00:00
madmaxoft@gmail.com 2588f5a605 Simulators now have direct access to the cChunk object in the WakeUp() call
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1227 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-28 07:42:45 +00:00
madmaxoft@gmail.com dedb414a50 Added new hooks: OnChunkAvailable(), OnChunkUnloaded() and OnChunkUnloading(). Modified OnChunkGenerated() signature.
http://forum.mc-server.org/showthread.php?tid=464&pid=6312#pid6312

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1193 0a769ca7-a7f5-676a-18bf-c427514a06d6
2013-02-05 19:57:22 +00:00
luksor111@gmail.com 575abe8691 Dispensers can dispense items and liquids now
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1105 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-26 17:16:33 +00:00
madmaxoft@gmail.com afaf104b40 Added more constants into eEntityType; made them a compulsory parameter to the constructor, so that all entities have proper type.
Also added a few utility functions to cEntity for distinguishing the types (IsPlayer(), IsPickup() etc.)

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1092 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-21 12:52:14 +00:00
luksor111@gmail.com 05d71675f6 Added dispensers (they can't dispense items yet)
Fixed crash when digging snow
Moved BlockPlace hook check, so Core plugin will no longer block item usage
Player chat messages are now visible in the console

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1081 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-19 21:19:36 +00:00
madmaxoft@gmail.com 310c1076a7 cChunk now tracks its neighbors as direct pointers; used in UnboundedRelGetBlock et al.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1073 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-12-14 22:38:30 +00:00
madmaxoft@gmail.com 934d3fe565 Removed an unused obsolete function chain - cWorld::GetChunkBlockData()
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1036 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-11 15:06:31 +00:00
madmaxoft@gmail.com f948551971 Fixed FS #268 - if a block entity breaking is disallowed by a plugin, the entire blockentity is sent back to the client
git-svn-id: http://mc-server.googlecode.com/svn/trunk@1031 0a769ca7-a7f5-676a-18bf-c427514a06d6
2012-11-11 08:48:38 +00:00