Angel
309bed414f
Implemented sweet berries ( #4164 )
...
this doesn't implement the server-side logic for the "stickiness" (slowdown) because we don't have the system needed for it yet.
It also doesn't have parity with vanilla on the damage.
2021-07-19 20:01:33 +01:00
Dylan K. Taylor
7a35fdb1bb
Allow Blocks to specify their max stack size
2021-06-30 19:28:16 +01:00
Dylan K. Taylor
0ec869823b
Added potion display names to Potion and SplashPotion
2021-06-29 18:21:41 +01:00
Dylan K. Taylor
5387456e44
Move potion types to enum
2021-06-19 21:39:23 +01:00
Dylan K. Taylor
af678f985d
All types of coral now have fully dynamic types
2021-05-19 22:49:44 +01:00
Dylan K. Taylor
a32eb4ebc3
Implemented coral and coral fans
...
this implementation is very rough due to having to hack around lots more MCPE bullshit, and currently doesn't allow dynamic coral types; but it's there. We'll clean this up after 1.13 migration is done.
2021-04-17 02:04:10 +01:00
Dylan K. Taylor
01c3668375
ItemFactory: Check the bounds of durability, instead of trying to catch exceptions
2021-04-16 21:30:48 +01:00
Dylan K. Taylor
da51f106de
ItemFactory/BlockFactory: give more specific class descriptions
...
these classes both have a very specific purpose now, which is much lesser than it was in PM3.
2021-04-16 21:27:28 +01:00
Dylan K. Taylor
c979ab8aa0
Be more specific with documentation of ItemFactory::register() and BlockFactory::register()
2021-04-16 21:24:16 +01:00
Dylan K. Taylor
6071746993
Mark ItemFactory::get() and BlockFactory::get() as @deprecated
2021-04-16 21:16:27 +01:00
Dylan K. Taylor
142102a054
ItemFactory: remap bucket:9 and bucket:11 to their appropriate counterparts
2020-11-03 19:44:57 +00:00
Dylan K. Taylor
12e185e3f6
Relocate EntityLegacyIds to pocketmine\data\bedrock package
2020-11-01 17:07:34 +00:00
Dylan K. Taylor
7f9c4355f0
Revert back to floor/wall banner variants
...
this code largely duplicates the same code in FloorSign/WallSign and needs to be de-duplicated.
2020-10-04 19:05:43 +01:00
Dylan K. Taylor
505d4e402f
ItemFactory: do not reuse the same itemstack instance for air()
...
this is mutable, so it's possible for plugins to mess with it and break everything that references it.
2020-10-04 18:36:46 +01:00
Dylan K. Taylor
c42a6d7552
ItemBlock no longer depends on legacy ID/metadata
2020-10-04 18:27:20 +01:00
Dylan K. Taylor
d3a3a41d2b
Revert back to separated floor/wall sign
...
the conditionally useless properties are problematic.
2020-10-04 17:52:23 +01:00
Dylan T
bf401421fa
Implemented bamboo ( #3762 )
2020-08-16 20:39:51 +01:00
Jack Honour
ff2a3baa8e
Implemented Jukebox & Records ( #3742 )
...
Co-authored-by: Dylan K. Taylor <odigiman@gmail.com>
2020-08-07 21:07:58 +01:00
Dylan K. Taylor
68c408268c
Separate dye colour ID management from DyeColor enum
2020-07-05 19:04:22 +01:00
Dylan K. Taylor
4fc134bd04
Separate item ID/meta to ItemIdentifier structure
2020-06-29 12:16:34 +01:00
Dylan K. Taylor
62e7b0e2b1
(Splash)Potion: do not assume that META == potion ID
...
it probably will be, but meta might not be accessible anymore soon.
2020-06-20 09:31:06 +01:00
Dylan K. Taylor
4b528aa637
NBT is no longer needed to create an entity
...
it's still able to be provided, but shouldn't be needed in the majority of cases (constructor args and/or API methods should be sufficient).
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
1205432c34
Extract mandatory parameters into constructor parameters
...
the goal is obviously to ditch NBT entirely here, but there's more work to be done before that becomes possible.
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
6a26c0bebf
EntityFactory now exclusively handles loading data from disk
...
this commit removes the ability to replace centrally registered entity classes in favour of using constructors directly.
In future commits I may introduce a dedicated factory interface which allows an _actual_ factory pattern (e.g. factory->createArrow(world, pos, shooter, isCritical) with proper static analysability) but for now it's peripheral to my intended objective.
The purpose of this change is to facilitate untangling of NBT from entity constructors so that they can be properly created without using NBT at all, and instead use nice APIs.
Spawn eggs now support arbitrary entity creation functions like EntityFactory does, allowing much more flexibility in what can be passed to an entity's constructor (e.g. a Plugin reference can be injected by use()ing it in a closure or via traditional DI.
2020-06-19 10:51:27 +01:00
Dylan K. Taylor
c30dd9f1b6
Entity: add abstract getNetworkTypeId(), remove NETWORK_ID constant
...
this now requires that subclasses supply a proper NETWORK_ID.
2020-05-16 16:08:12 +01:00
Dylan K. Taylor
11ef9fb0c0
Item-from-string parsing no longer depends on ItemIds
...
after this is done I'm banning the constant() function.
2020-05-13 00:18:49 +01:00
Dylan K. Taylor
ec13aa659a
ItemFactory: do not explode on invalid damage values for durables
...
just treat them as unknown items instead
this might break some use cases, but at least this way they won't crash the server when read from disk and they won't get lost either.
2020-05-12 23:28:17 +01:00
Dylan K. Taylor
7d9df6af6f
Convert EntityFactory to singleton
2020-04-24 22:43:02 +01:00
Dylan K. Taylor
5cc03775d3
added a SingletonTrait to reduce code duplication
2020-04-24 00:31:55 +01:00
Dylan K. Taylor
5a94af40e2
Convert ItemFactory to singleton
2020-04-24 00:18:31 +01:00
Dylan K. Taylor
13d784cd0c
Convert BlockFactory to singleton
2020-04-23 23:45:13 +01:00
Dylan K. Taylor
67bcc1c0fb
phpdoc armageddon for master, pass 1
2020-01-22 11:55:03 +00:00
Dylan K. Taylor
137245ed7b
ItemFactory: fix var type doc in get()
2019-12-12 13:54:44 +00:00
Dylan K. Taylor
591d35889e
make use of EnumTrait->id()
2019-08-17 16:37:36 +01:00
Dylan K. Taylor
58e9728710
Removing useless armour descendent classes, move armour slot to ArmorTypeInfo
2019-08-02 16:17:04 +01:00
Dylan K. Taylor
056c5ed6cd
ItemFactory: break down init() a little
2019-08-01 20:01:29 +01:00
Dylan K. Taylor
5499ac620c
Removed pocketmine subdirectory, map PSR-4 style
2019-07-30 19:14:57 +01:00