* Correct ordinal of `afterWorldChanged` mixin to the correct return
Co-authored-by: i509VCB <git@i509.me>
* Handle null entity when unable to be created
* Comply with Checkstyle
* Remove redundant ordinal and only use null return to check valid teleports
Co-authored-by: Player <player@player.to>
Co-authored-by: i509VCB <git@i509.me>
Co-authored-by: Player <player@player.to>
(cherry picked from commit c7d5c83208)
* Allow passing UV coordinates as Vec2f
Rotating UV coordinates using vector math becomes extremely annoying when every `sprite` call requires the individual `u` and `v` coordinates to be extracted again.
This change will allow passing UV coordinates in a container that will always be available.
* Revert b0fe27e0d7
* Allow Vec2f UVs in MutableQuadView
This seems like the better place to put this.
* Fix return type
oops
* Add override in QuadEmitter
* Fix JavaDoc styling
* Duplicate JavaDoc and function definition
There is probably a way in Java to override the method while keeping the JavaDoc, but I can't be bothered, and this way, the user gets a more relevant JavaDoc anyway.
* Remove Trailing Whitespace
I'm pretty sure QuadEmitter allowed trailing whitespace, though...
* Fix JavaDoc styling in QuadEmitter
Also removes trailing whitespace
(cherry picked from commit 00f5b23648)
* Add WorldRenderEvents
* Fix typos
* Incorporate PR feedback
* Simplify context and block outline events
* Update implementation
* Ensure the BLOCK_OUTLINE mixin does nothing if BEFORE_BLOCK_OUTLINE mixin is disabled
* Document event order in class header
* Update fabric-rendering-v1/src/main/java/net/fabricmc/fabric/api/client/rendering/v1/WorldRenderEvents.java
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
* Add environment tag to nested type
* More envionment tags
Co-authored-by: Juuxel <6596629+Juuxel@users.noreply.github.com>
(cherry picked from commit c26373137e)
* Extend ModelAppender to allow loading non-blockstate paths
* Use a new interface instead of adding to the old one
* Rename new interface
(cherry picked from commit 6bec8f284f)
* Entity Events v1.
First up is an event fired after a living entity is damaged. All vanilla living entities except armor stands work with this event.
* Events related to killing of entities, changing world, player respawn/copyFrom
Death related:
an entity killing something and an entity being killed by an adversary
Player related:
After respawn, copy to
* Adversary stuff isn't needed
* checkstyle again
* Call AFTER_KILLED_OTHER on a ServerPlayerEntity upon death.
* Add event which is fired when a player first joined a server and add functional interface annotations
* Update build.gradle
* mispelled
* Some renames, test events, drop damage event
Damage events need further consideration in future
* Comments and null check
* Update for mappings
* Warning comment
* Remove first join event and teleport helper
First join does not work atm and teleport is in dimensions pr
* Module dependencies
* Javadoc tweaks
* The serverening
(cherry picked from commit 79b23bee5b)
* Fix example implementation of using FAPI modules for Groovy
The previous implementation does not quite correctly describe what it does
* Improve description of adding dependencies
* Undo the last commit changes for Kotlin DSL
(cherry picked from commit a404f47683)
* Fix resource reload listeners not being sorted.
Fix missing/broken reload listener keys.
Add a debug log line for missing reload keys
Add some basic tests.
* Undo adding new keys, we can look at this later.
* use AssertionError
* Fix test on server
(cherry picked from commit 67abea83c2)
* Networking api v1
Some final docs?
Licenses and testmod
Fix a bunch o imports and make things work for v1 (v0 is bork)
Make the testmod pass checkstyle and work
Docs for v1
* Deprecate v0 and implement using v1
* Drop files down one package due to package check error
* Fix issue with channel registration, add another testmod
* jaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavadoc
* Make javadoc use `code`, move impl interface to package access
* this things
* Rename a few internal methods
* Mark all client side stuff client only, move client mixins
* Add null checks around the place, clarify some javadoc and method names
* Make FutureListeners uninstantiable
* Some internal nullable annotations
* An impl class I forgot to rename
* Some comments and clarify some client login handler javadoc
* Add a missing FunctionalInterface annotation
* Split play and login, move client stuff to right package
* No interface left behind
* Inline channel registries in api
* Login and play subpackages not needed
* Add helper method to create play custom packets
* hasGlobalChannel -> hasGlobalReceiver
* Just rename the collection method for now
* Inline PlayPacketSender into static methods
* Start on testmod idea for verifying dynamic registration
* Add client login events
* You don't say hello when talking to yourself.
Also more testmod stuff
* Make event names present tense
* Some javadoc and impl interface rename
* Change the test keybinding
* Begin working on dynamic reg
* Dynamic reg works, just need a lot of cleanup and reimpling global
* A few renames, readd global methods
* Try to reduce the amount of duplicate registration logic
* Reimplement dynamic accessors
* More impl
* Start reimplementing global receivers. Still very hacky solution.
* Reimplement some server global reciever stuff
* Add login init event for server login.
* Implement client login query start event
* Move event invocations into addon, don't dual register global recievers
* Finally reimplement global recievers for all networking phases
* A revelation: Send packets properly
This also finds the issue with screen getting the proper S2C channels, current on TODO list.
* Disconnect event does not need a packet sender
* Clarify, add methods to get channels net handler can recieve on client
* Unregister actually works now
* Bunch of null checks, add simpler login delay test for vanilla clients
* Add some debug logging entries, fix unregister on client's session reg
* Play channel event javadoc and rename login query handlers
* More channel -> channelName
* thisening
* Introduce the basics infrastructure for tracking global receivers
* Add more substantial javadoc to login connection events
* Javadoc, reimplement unreg methods on v0, 1 impl fix
* Implement tracking for global recievers
* Dont forget to start tracked sessions in 3/4 cases
* Global receiver docs and move methods in classes
* Complete null checks
* big boi javadoc part 1
* Finish the main javadoc, usage javadoc is left
* Set so has method is not needed
* Rename receiveable and sendable methods
* Add the two missing private ctors
* buildscript update to upstream
* Split out player finding stuff to networking player tracking API v1
Signed-off-by: liach <liach@users.noreply.github.com>
Forward v0 PlayerStream to new module, add entity track events
Rename module to player tracking
Well javadoc can make sense
Decide on tracking for the name
Update fabric-player-tracking-api-v1/src/main/java/net/fabricmc/fabric/api/networking/player/tracking/v1/package-info.java
Co-authored-by: Erlend Åmdal <erlend@aamdal.com>
Remove exceptions from javadoc that are not thrown
javadoc fix again
Handle a case where the player manager happens to be null
rename player tracking to player lookup
Yeet
* Cherrypick #1092
* Remove some redundant client networking methods, rename `(un)register` to `(un)registerReceiver`
* Simplify access to dynamic reg on client
* Param shifting, let users get sender.
* Warning about time and distance units
* Make sure these are client only
* Fix control flow in ClientPlayNetworking#send
* Correct example code javadoc
* javadoc correction in server login
* Put login delay tests behind system property
Also remove unnecessary junk added by old module that was merged together.
* Fix ordering so channel registrations during `PHASE`_INIT work
* Fix prod bug and an oversight
* Fix login when connecting to dedicated server
* Update registry sync to v0 to prevent issue with reg sync hanging client
* this is done
* Add tag builder method for the new optional entries
* Address comments
* Rename addOptional to addOptionalObject
* Flesh out doc
* Move mixin to target proper class
* Cache the fuel time map in the fuel registry
* Use a faster map for the fuel times
* Rebuild the fuel times map on the client side too
* Use more compatible mixins
* Replace a function overwrite by a TAIL inject
* Mixin formatting
* Indentation
* Make cache thread-safe, switch to boxed collection (IHM) since most
uses yield boxed results, refactor cache clearing
* fix import formatting
Co-authored-by: Player <player@player.to>
* Reimplement block entity (un)load events
This is pending testing to verify the tracking is reliable.
* Forgot that null check for parity
* Everything is implemented. Now for testing
* Fix server block entity unload events
* Bah indentations broke
* Handle world chunks instead of the positions
* Add command to audit mixin environment in game
* Throw assertion error instead and add success message
Assertion errors will bypass the command exceptions being eaten.
* First pass on PersistentDynamicRegistryHandler, not tested
* Extra debugging + fix it not working
* Fix build
* Minor tweaks
* checkstyle ;)
* Improve comments + fix issues with tag reading/writing
* Simplify mixin
* Create EndBiomes.java
* Revert "Create EndBiomes.java"
This reverts commit 4d1736fad9.
* Revert "Revert "Create EndBiomes.java""
This reverts commit 673c508d82.
* Rename ContinentalBiomeEntry to WeightedBiomeEntry
* Complete API for adding biomes to the end
* Mixin to end biome source
* Revert "Rename ContinentalBiomeEntry to WeightedBiomeEntry"
This reverts commit 849197e15d18c26af2a6f2aa1766b7d73d9a7144.
* Revert "Revert "Rename ContinentalBiomeEntry to WeightedBiomeEntry""
This reverts commit c2aa4ab097eb3daed71e82d4e77142671ed04316.
* Create SimpleLayerRandomnessSource for use with end biome source mixin
* Renamed MAIN region to MAIN_ISLANDS
* Create test mod
* Added pickFromNoise method to WeightedBiomePicker
* Javadoc and licensing info
* Comply with checkstyle
* Internalize EndRegion
* Added stretching when getting the biome for the end
* Rename EndBiomes to TheEndBiomes to be consistent with yarn mappings
* Fix typo
Courtesy of i509VBC
Co-authored-by: i509VCB <i509vcb@gmail.com>
* Add @Unique to private fields in MixinTheEndBiomeSource
* Made end test biome consistent in style with previous test
Courtesy of i509VBC
Co-authored-by: i509VCB <i509vcb@gmail.com>
* Fix imports
* Didn't know test mods needed to follow the checkstyle
* SimpleLayerRandomnessSource's random is now use to instantiate its noise sampler
* A very important note
* Update javadoc for adding biomes to the Main Island region
* Remove method that is leftover from when EndRegion was part of the API
* Ported 1.16.1 biomes-api-v1 to 1.16.2.
Public API changes:
- Removed flagging biomes as suitable for player spawns since that is now handled in the Biome Builder.
- Changed API over to RegistryKey's, not because it's necessary, but because it is more ergonomic since Vanilla Biomes in BuiltInBiomes are now all exposed as keys, rather than instances.
* Increase memory size to fix build failures.
* Add the ability to add modded dimensions to the regions of the end.
* Hopefully fixed everything that went wrong during the rebase
* Update fabric-biome-api-v1.mixins.json
* Finally got custom end biomes to generate
* Thanks for nothing, GitHub Desktop
* Bad GitHub Desktop
* Bad newline no cookie
* Got everything to follow the checkstyle
* Bring branch up-to-date with main repo (#11)
* Revert "Bring branch up-to-date with main repo (#11)"
This reverts commit dc47106241.
* Remove some stuff that's not supposed to be there
* Fix git silliness
* Update FabricBiomeTest.java
* TheEndBiomes is now Deprecated to match OverworldBiomes and NetherBiomes
* Update some checkNotNull messages
* Change the noise scale when replacing end biomes
* Bad space no cookie
* Remove unnecessary code
* Remove unused imports
* Set up InternalBiomeData to treat End Midlands and End Barrens as border biomes
* Changed the API to reflect midlands and barrens biomes being considered border biomes
* Start work on getting the new system fully working
* Finally got everything working and cleaned up the Javadoc
* Fixed checkstyle violations
* Fix checkstyle violations again
* Drop fabric_ prefix
* Calling SimpleLayerRandomnessSource#nextInt() now throws an exception
* If the midlands or barrens biome picker is null, the replacement key defaults to the vanilla one
* Fix usage of vanilla identifier
* Update MixinTheEndBiomeSource.java
* Fix checkstyle violations
Co-authored-by: i509VCB <i509vcb@gmail.com>
Co-authored-by: Sebastian Hartte <sebastian@hartte.de>