28 Commits

Author SHA1 Message Date
Thinkofdeath
b58808d54d Fix tree related crashes due to lazy BlockState updating 2014-12-02 11:51:49 +00:00
Thinkofdeath
24557bc2b3 Update to Minecraft 1.8
For more information please see http://www.spigotmc.org/
2014-11-28 17:16:30 +11:00
bloodshot
576758bc55 Refactored BlockPlaceEvent and BlockChangeDelegate. Adds BUKKIT-5558
23 classes have been removed as they are no longer needed using the new
capture logic. This should help quite a bit with future MC updates.

BlockPlaceEvent Refactor

Before calling Item.interactWith, a recording flag is turned on for
setTypeAndData to capture a blockstate for each block that attempts to be set.
When a block place event is cancelled, the recorded blockstate, stack
size, and metadata will revert back to the captured state. If the event is
not cancelled, a notification will be sent to clients and block physics
will be updated.

BlockChangeDelegate Refactor

Now that we have the ability to capture blockstates through world, there
is no need to modify world gen classes with BlockChangeDelegate. Instead
we will simply capture blocks during world generation in order to "replay"
all of the captured blockstates to send back to delegates.
StructureGrowDelegate and BlockSapling.TreeGenerator have also been
removed as part of this change. BlockSapling and BlockMushroom will
capture blockstates the same as block placement and revert back any grow
events if needed.
2014-04-23 21:25:55 -06:00
Travis Watkins
71a475f076 Don't update physics when block place is cancelled. Fixes BUKKIT-3939
When a block placement happens we currently update physics on the
attempted placement and update again if the placement is cancelled.
To correct the first one we simply set the block without applying
physics. To correct the second we have to add a new method to
BlockState that lets us update without applying physics and use
this method method when putting the block back.
2013-03-31 19:18:42 -05:00
Travis Watkins
5f089137ee Cleanup comments, formatting, etc 2013-03-25 00:51:36 -05:00
Travis Watkins
846a22304c Provide a faster way to get a location. Adds BUKKIT-3120
Currently when a plugin wants to get the location of something it calls
getLocation() which returns a new Location object. In some scenarios this
can cause enough object creation/destruction churn to be a significant
overhead. For this cases we add a method that updates a provided Location
object so there is no object creation done. This allows well written code
to work on several locations with only a single Location object getting
created.

Providing a more efficient way to set a location was also looked at but
the current solution is the fastest we can provide. You are not required
to create a new Location object every time you want to set something's
location so, with proper design, you can set locations with only a single
Location object being created.
2012-12-07 21:15:05 -06:00
Wesley Wolfe
e2b1514daf Bulk pending cleanup. 2012-09-09 23:19:28 -05:00
rmichela
1394926e53 [Bleeding] Implement Metadata framework for Entities, Blocks, and Worlds 2012-02-29 19:21:25 +01:00
Feildmaster
7792156fb2 [Bleeding] Added BlockGrowEvent. Addresses BUKKIT-104 2012-02-22 21:46:45 -05:00
Erik Broes
a4ce846d07 Fix formatting. 2012-01-15 10:54:57 +01:00
Nathan Adams
366d310186 Added .equals and .hashcode to CraftBlockState 2012-01-14 17:47:15 +00:00
Nathan Adams
61edd36378 Made BlockStates inform playes upon update 2011-11-24 18:48:23 +00:00
Erik Broes
cc9ccc8976 Removed some old deprecated code and clean up javadocs + warnings 2011-07-17 18:14:45 +02:00
Erik Broes
a98c7ba2c7 Massive renaming update in nms. If you bypassed Bukkit, you will likely break.
Also minimized all the nms diffs and generic cleanups all around.
2011-06-27 00:47:03 +02:00
Erik Broes
9adc03abab Generic cleanup of the org.bukkit.craftbukkit classes. 2011-06-12 12:51:54 +02:00
Erik Broes
309846d732 Whitespace + general cleanup 2011-05-15 13:41:46 +02:00
Erik Broes
324efa8224 Fix BlockPlace 2011-03-21 00:31:13 +01:00
Dinnerbone
770bb9e3b5 Removed Block.getRawData 2011-03-04 14:20:38 +00:00
Tahg
96435cfc76 refactor Items 2011-02-21 19:57:23 -05:00
Erik Broes
04be2b9b31 Generic cleanup/reformat. 2011-02-02 00:39:08 +01:00
VictorD
3477a86995 Added getBlockReplacedState to BlockPlaceEvent, in case one wants to see what type of block was there previously. 2011-01-24 23:22:28 +01:00
Dinnerbone
0db8d5d111 Moved block stuff from org.bukkit to org.bukkit.block 2011-01-15 21:36:57 +00:00
Erik Broes
dea72d6623 Global ID -> Id rename 2011-01-15 20:55:59 +01:00
Dinnerbone
e4a31ce206 Implemented BlockState MaterialData 2011-01-15 19:53:33 +00:00
Dinnerbone
2761b59845 Update to Minecraft Server 1.2 2011-01-14 13:31:10 +00:00
Dinnerbone
d374bff8d0 Implemented BlockState.update(boolean), signs should now work, cleaned up some code a little 2011-01-08 01:22:17 +00:00
Dinnerbone
55e9522955 Start of update() + added sign 2011-01-07 16:53:16 +00:00
Dinnerbone
08a62e37ac Implemented CraftBlockState 2011-01-07 16:26:06 +00:00