Commit Graph
36 Commits
Author SHA1 Message Date
replaceitem 8aae23c983 Fixed AnnotationParser not detecting USE_METHOD_NAME (#1677) 2023-03-15 14:46:31 +01:00
altrisi cc24f79d47 Allow scarpet function name to be different to annotated method name 2023-03-08 20:53:35 +01:00
altrisi 883d887e11 Make OutputConverter.convert return Value
This is a breaking change, but there's only one use of the function on all github

The refactor also makes `register` take a function to `Value`, no one uses the one to `LazyValue` anyway. `registerToValue` is now deprecated
2023-03-08 14:07:50 +01:00
gnembon 2ff1f4fb71 refactored nonscarpet references yeet 2023-02-11 01:33:23 +01:00
gnembon 277872b33c warning cleanup 2023-02-08 21:13:15 +01:00
altrisi 5ab4a9e442 Document new and deprecated methods, catch exceptions 2023-02-08 21:13:14 +01:00
gnembon aea76d9764 removed static reference to server in annotation parser 2023-02-08 21:13:14 +01:00
gnembon fd93785fec added nonnull assertions 2023-02-05 12:56:06 +01:00
gnembon 8f61271606 semi-auto cleanup 2023-02-04 13:26:21 +01:00
gnembon bd5dfdbf9f refactor limit access to built-in registries 2023-01-18 04:07:55 +01:00
altrisi a60bc386cb Refactor Module into a single record type and fix system globals (#1383) 2022-05-17 20:11:49 +02:00
altrisi 6111dece61 Ease concrete restrictions on Annotated Scarpet API and make instantiating lazy
Prevents instantiating classes with all annotated methods static, making it also more flexible in that you can put annotated functions near to other API that may be initialized
2022-04-24 13:40:09 +02:00
altrisi b1c934da28 Fix a few IDE warnings (#1345) 2022-02-20 19:16:12 +01:00
altrisi 50c70de7e5 Improve Annotated Scarpet runtime performance (#1273)
- Change valueConverters list to array

- Remove references to `Class.cast` and use direct casts instead
2022-01-29 23:44:50 +01:00
altrisi 06af9ce8b1 Migrate the Carpet codebase to Mojang Mappings 2022-01-24 20:33:16 +01:00
gnembon 529a5b358d Merge branch 'master' into future
# Conflicts:
#	gradle.properties
#	src/main/java/carpet/script/annotation/AnnotationParser.java
#	src/main/java/carpet/script/utils/BiomeInfo.java
#	src/main/resources/fabric.mod.json
2022-01-11 23:44:52 +01:00
altrisi 9fb6ec91cb Minor improvements to scarpet annotation API (#1239) 2022-01-08 23:05:21 +01:00
Crec0 aa57b586cb Multi noise support for scarpet (#1176)
* fix: infinite params bug in AnnotationParser
feat: scarpet function query_noise()

* refactor: remove Method reflection

* fix: use BiomeCoords

* update: game version to 1.18-pre5

* feat: biome lookup from multinoise
fix: noise lookup wrongly scaled

* fix: jagged noise. Thanks, @Starmute

* fix: cave cheese and layer. Thanks, @Starmute

* fix: revert formatting
fix: caveLayer and caveCheese
feat: add terrain support

* more formatting reverts

* fix mapping issue

* use BlockPos

* docs: add documentation for query_noise

* docs: add documentation for biome(noise_map)
2021-11-30 02:47:28 +01:00
altrisi 7fb5e47da5 Use newer Java features in places where it makes sense and more (#1009) 2021-08-03 07:32:40 -03:00
gnembon 3073bcfe4b Merge branch 'master' into 1.17
# Conflicts:
#	src/main/java/carpet/logging/HUDController.java
2021-06-25 22:45:49 -03:00
gnembon 096e62b865 removes retained player references, Fixes #953 2021-06-25 22:44:01 -03:00
gnembon 875545711b Merge branch 'master' into 1.17 2021-06-01 01:08:19 -03:00
altrisi 8f5667c244 Fix Value detection in ValueConverter selection (#896) 2021-05-31 21:59:15 -03:00
gnembon 5f630e7d1a Merge branch 'master' into 1.17 2021-05-31 15:54:32 -03:00
altrisi b359c6c76c Implement @Locator.Function and @Locator.Vec3d (#891)
* Implemente `@Locator.Function`

* Implement `@Locator.Vec3d`

* Small import cleanup

* Javadoc
2021-05-31 15:51:10 -03:00
gnembon b96a1b1216 Merge branch 'master' into 1.17 2021-05-25 17:25:55 -03:00
gnembon c3fe5d685b Merge pull request #884 from altrisi/annotated-block-locator
Implement `@Locator.Block`
2021-05-25 13:17:28 -03:00
gnembon c720c2c935 Merge branch 'master' into 1.17
# Conflicts:
#	src/main/java/carpet/script/api/Auxiliary.java
#	src/main/java/carpet/script/utils/ShapeDispatcher.java
#	src/main/java/carpet/script/value/EntityValue.java
#	src/main/java/carpet/script/value/ListValue.java
2021-05-25 01:08:32 -03:00
altrisi adee06ad3f Mention custom converters in Param javadoc, make a few things final and remove commented out LazyValue provider 2021-05-24 14:51:14 +02:00
altrisi aeba4520d4 Fix missing type in javadoc of @Locator.Block 2021-05-24 14:18:33 +02:00
altrisi ca1828d797 Allow more parameter types in @Locator.Block 2021-05-24 14:14:03 +02:00
altrisi 7f2cb0f4a7 Implement @Locator.Block 2021-05-24 13:04:51 +02:00
altrisi 05ff870d0b Allow static methods for Scarpet Functions
What was I thinking?
2021-05-24 12:40:20 +02:00
gnembon 1b49bfe21f updates 2021-05-21 04:45:23 -03:00
gnembon 22abf2fab6 minor docs 2021-05-21 04:40:32 -03:00
altrisi cc7a9c01be Annotated Scarpet (#772)
* Progress by now.

* Output conversions plus a few extra random things

* More progress, mostly list converting and a way to get converters

* Apply ValueConverters, refactor valueconverter getter to

accept types with annotations and generics, made listconverter pass
those params and annotations recursively. And probably more things.

* Some extra docs, the 100% most important thing

* Added MapConverter, strict Strings and Texts, some docs additions

and commented out heuristics

* Rework StrictParam to use SimpleTypeConverters and be saved in a map

* Minor changes and docs & added non-fully-functional context "converter"

* Added support for variable value count converters, multi-value eaters &

0 value eaters (Context).

* Docs update, enable Context converter, fix minor TODOs

* Move (most) parameter annotations into a single class,

remove deprecated ValueCaster#cast, update some docs.

* Small refactor of Param.Strict registering, added boolean to it

* Added PairConverter, moved Context and LV ValueConverters to Params

* Document public methods of AnnotationParser

* Add a lot more docs, make it ready for the first preview PR

* Move ValueConverter population outside of makeFunction,

check lv size for > max arguments, minor doc updates and workaround for
Mercury#28 until released

* Added optional parameters (declared using Java's Optional),

made evalAndConvert check for the presence of the next iteration,
updated test class

* Generalize Value OutputConverter

* ListConverter and MapConverter now follow ValueConverter contract of

incorrect value handling, returning a complete null for an incorrect
value anywhere. Also small fix to OptionalConverter and docs.
Getting ready for checking null in AnnotationParser!

* Change reflection's #invoke to a MethodHandle to boost speed by a lot

Commented

* Dedupe code, update and remove outdated todos, add 2 new ValueCasters

* Merge lambdas in display_title2 test function to be more accurate

* Check nulls somehow, I guess

* Move base function logic into a class to stop

passing hundreds of parameters into static functions and therefore simplify it

* Reduce visibility and fix a bug with PairConverter

* Hide Context provider in usage report

* Add support for primitive varargs

* Added TheLazyT converter

* Drop #getPrefixedTypeName and use 'something' as name of values

* Use value again because of varargs, document that

* Remove a completed TODO

* Remove old disabled heuristic value type name getter

* Fix TheLazyT

* Preparing locators before touching current Carpet infrastructure

* Add notes about non-implementedness of remaining locators

* Added APIs to register custom ValueConverters

* Mention new APIs in javadocs

* Adapt to new Carpet changes and deprecated non-implemented annotations

* Update example function for display_title()

* Better implementation for player_list example

* Fix example error message

* FunctionArgument no longer has generics

* Modernize Text converters

* OutputConverter is final, plus other small changes

* Few non-behavioural changes

* Rename LazyFunction to ScarpetFunction

* Drop LazyValue in parameters, not in return

Updating docs was a nightmare

* CARPET CHANGE - Make Fluff.AbstractLazyFunction.unpackArgs call unpackLazy (was duped)

* Make errors more like current Scarpet errors

* Allow customizing ContextType when evaluating arguments

* Add a few missing docs, comment out outdated ValueCaster doc

It's been a while, wow

* Fix for new Carpet signature :irritatered:

Please don't break API methods! Extensions may be using them, and they
will just crash the game or behave in unexpected ways else!

* Format all code to Carpet's. Powered by Eclipse

Reviewed to be sure it's ok. No functional changes, except from a small correction

* Always use full name for Context.Type

* Add parsing for all current Scarpet api and language classes

And remove test functions

* Allow void return type

* Fix no param methods

Whoops!

* Remove outdated comment and fix small javadoc linting problem

* Drop Param.TheLazyT in favour of just Context.Type type

And small performance improvement to varargs varargs since fastutil's toArray is crap

* Quote functions in error messages

* Make SimpleTypeConverter independent of ValueCaster

'Real world' usage demonstrated it can be annoying else, mostly for wrapper only values where you just want the wrapped object
2021-05-21 01:33:00 -03:00