082e3404c3
Potion: Implement potion effects
2017-12-23 15:07:39 +00:00
6e1df36188
Consumables refactor ( #1796 )
...
* Removed broken EntityEatEvents - these don't fit the pattern since they only apply to Human entities anyway. PlayerItemConsumeEvent and PlayerInteractEvent can be used for cancellation purposes, and plugins can do custom stuff without mess.
* Restrict item consuming to Living entities only
* Added FoodSource->requiresHunger()
* Only items implementing the Consumable interface can now be consumed.
* The effects from consuming items are now generic-ized by way of the Living->consume() function. This is overridden in Human to allow applying food and hunger.
* Fixed the hardcoded mess for buckets
2017-12-23 13:03:41 +00:00
375243860e
Potion: Restrict item stack size to 1
2017-12-21 15:02:56 +00:00
a842a5319f
Enchantment: Create constant name once, and reuse it
...
this is more readable and more maintainable.
2017-12-21 13:11:31 +00:00
c2b0f6af22
Enchantment: Simplify getEnchantment() with null coalesce
...
This is made possible by 0e538ee51d
.
2017-12-21 13:02:24 +00:00
6490d99ac2
Enchantment: Added a TODO (calculating XP min/max level cost bounds)
2017-12-21 12:55:55 +00:00
e0b063ac85
Enchantment: Added max level property
2017-12-21 12:49:34 +00:00
12ac2f4ac7
Enchantment: Fixed rarity constant values to match vanilla
...
Rarity is used for "weighting" enchantments on enchantment tables and such. Therefore higher numbers mean the enchantment is more common. This changes the rarity values to match vanilla.
2017-12-21 12:48:35 +00:00
cc1951c7ba
Enchantment: Remove activation type stuff
...
This isn't and won't be used anywhere.
2017-12-21 12:48:14 +00:00
0e538ee51d
Enchantment: Split up enchantment type data and enchantment instance data ( #1825 )
...
* Enchantment: Split enchantment type data from instance data
This commit splits enchantments into (effectively) enchantment TYPES vs enchantment INSTANCES.
When applying an enchantment to an item, it only needs to know 2 things:
1. the enchantment ID (identifier) which is used to identify the TYPE
2. the enchantment LEVEL which is used to modify the enchantment's power IN THIS INSTANCE.
Therefore, the LEVEL is not an immutable property. However, all other properties of the currently-named "Enchantment" class are immutable type properties.
Currently, when applying an enchantment to an item, a copy of the enchantment object is created from the registry, and returned. This copies all of the properties contained by the type, which is obviously sub optimal.
2017-12-21 12:40:33 +00:00
4f8e4f0522
Add EOF newlines where missing (bulk) ( #1836 )
...
This should solve issues with people making GitHub PRs and having the web editor messing things up. GitHub Web Editor sucks :(
2017-12-20 11:56:36 +00:00
914e4c9a72
Enchantment: Fix formatting issue
2017-12-16 13:04:25 +00:00
24387d1efe
Enchantment: Add some PhpDoc for fields
2017-12-16 10:01:42 +00:00
4bd4d42b82
Fixed raw porkchop being inedible
2017-12-14 09:09:47 +00:00
0004e7429f
Added some documentation on harvest level properties
2017-12-12 16:55:00 +00:00
e2e6b7516a
Removed WoodenTool classes
...
These were only needed for their fuel properties, which are the same for all tools of the wooden tier anyway.
2017-12-12 13:55:38 +00:00
b903161a5d
Refactored tool efficiency handling
...
This fixes lots of bugs with things like wool, cobwebs, swords.
2017-12-12 13:55:36 +00:00
dbc180315e
Declare tool harvest level as a property
2017-12-12 13:54:16 +00:00
a02af1053f
Remove redundant overrides from WoodenTools
2017-12-12 13:54:16 +00:00
58327d0514
Change block tool types to bitflags
...
This allows specification of multiple tool types for a block, such as cobwebs.
2017-12-12 13:51:33 +00:00
db31d13f96
Added Item->getBlockToolType()
2017-12-12 13:45:52 +00:00
55d0684565
Move block-breaking tool-type constants to a BlockToolType interface
2017-12-12 13:45:52 +00:00
7e3cd24444
Added TieredTool->getTier()
2017-12-12 13:45:51 +00:00
2088a43c56
Refactored tool hierarchy
2017-12-12 13:45:51 +00:00
79fd9b1c96
added RottenFlesh item
2017-11-24 10:46:55 +00:00
74b074753f
Bulk addition of constant visibilities
...
thanks PhpStorm inspections plugin for annoying the shit out of me until
I did this.
2017-11-21 14:44:10 +00:00
9da19b5f15
Added API methods for getting & setting armour dye colours
2017-11-21 14:10:33 +00:00
eaba105614
Durable: use new CompoundTag API
2017-11-18 11:13:35 +00:00
48a7627b96
add constants for NBT tag names in WritableBook
2017-11-17 10:48:48 +00:00
235fc4cd2f
remove redundant null coalesce
2017-11-17 10:45:14 +00:00
e0654b85ba
get rid of dynamic field assignments
...
nearly there now... eventually
2017-11-17 10:43:51 +00:00
19315dfd06
Some cleanup on WritableBook code, get rid of some CompoundTag magic
2017-11-17 10:43:51 +00:00
2794df34ab
Basic implementation of banners, including API to modify them with ease. ( #1331 )
...
Banner crafting is NOT implemented yet.
2017-11-15 11:10:46 +00:00
aa399a1109
migrate to new CompoundTag API ( #1515 )
2017-11-10 15:38:21 +00:00
733e61f815
add return typehints for Item fluent methods
...
to prevent issues like a2d4baf8b9
happening again >.>
2017-11-07 09:54:08 +00:00
a2d4baf8b9
Fixed ItemBlock->setDamage() not returning a value
2017-11-07 09:44:34 +00:00
eab7b93483
Fixed misuse of kill() and close() when deleting entities ( #1490 )
2017-11-04 19:30:48 +00:00
e95b1d4b00
look for item IDs in ItemIds instead of Item
...
Item is likely to be more polluted by other constants which aren't item IDs.
2017-11-03 12:42:51 +00:00
8ad02c9a4e
Remove redundant condition from ItemFactory
...
it's unrealistic to have a numeric constant name, so this condition is pointless.
2017-11-03 12:41:24 +00:00
d1db27016e
s/facePos/clickVector/
...
clickVector better describes this
2017-10-27 19:05:26 +01:00
3765511317
rename WritableBook->swapPage() to swapPages()
2017-10-23 17:55:01 +01:00
50be26958a
Added a helper function Entity->createBaseNBT() to cut down on boilerplate code
2017-10-19 17:36:51 +01:00
5a353012de
Clean up some unused imports
2017-10-19 16:39:34 +01:00
2db13bd114
added throwable eggs and refactor some projectile logic
...
close #1473
2017-10-19 14:12:50 +01:00
584810780a
Moved projectile-related classes to their own namespace
2017-10-19 12:27:44 +01:00
43be64baed
Register some more items
...
the item-blocks will allow their blocks to be placed, but they still won't work until the blocks themselves are added.
2017-10-18 19:52:19 +01:00
292e462ea0
Remove nullable return types on CompoundTag getters
...
this doesn't make sense because there are default value parameters for this
2017-10-16 18:22:45 +01:00
769a50faa5
Refactor confusing parameter names for Item->onActivate()
...
next: refactor the function itself
2017-10-16 13:30:36 +01:00
1641183674
added some typehints to Item
2017-10-16 10:29:44 +01:00
72531209bf
Added some constants for frequently-accessed item NBT tags
2017-10-16 10:24:32 +01:00