redscript-mc 2.6.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +11 -0
- package/CHANGELOG.md +18 -9
- package/README-benchmarks.md +48 -0
- package/README-vscode-test.md +251 -0
- package/RELEASE_NOTES.md +74 -0
- package/ROADMAP.md +131 -167
- package/benchmarks/_shared.ts +468 -0
- package/benchmarks/baseline.json +2816 -0
- package/benchmarks/baseline.md +13 -0
- package/benchmarks/compiler-perf.report.json +207 -0
- package/benchmarks/compiler-perf.ts +76 -0
- package/benchmarks/results.md +13 -0
- package/benchmarks/stdlib-complexity.report.json +2606 -0
- package/benchmarks/stdlib-complexity.ts +54 -0
- package/benchmarks/stdlib-size.md +57 -0
- package/benchmarks/stdlib-size.ts +91 -0
- package/coverage-report.md +177 -0
- package/dist/src/__tests__/budget.test.js +4 -0
- package/dist/src/__tests__/cache/cache-behavior.test.d.ts +10 -0
- package/dist/src/__tests__/cache/cache-behavior.test.js +425 -0
- package/dist/src/__tests__/cache-extra.test.d.ts +5 -0
- package/dist/src/__tests__/cache-extra.test.js +211 -0
- package/dist/src/__tests__/cli-init.test.d.ts +1 -0
- package/dist/src/__tests__/cli-init.test.js +97 -0
- package/dist/src/__tests__/cli-publish.test.d.ts +9 -0
- package/dist/src/__tests__/cli-publish.test.js +189 -0
- package/dist/src/__tests__/cli.test.js +76 -0
- package/dist/src/__tests__/compile-preprocess.test.d.ts +11 -0
- package/dist/src/__tests__/compile-preprocess.test.js +328 -0
- package/dist/src/__tests__/compiler/break-stmt.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/break-stmt.test.js +58 -0
- package/dist/src/__tests__/compiler/const-decl.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/const-decl.test.js +123 -0
- package/dist/src/__tests__/compiler/continue-stmt.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/continue-stmt.test.js +67 -0
- package/dist/src/__tests__/compiler/coroutine-extended.test.d.ts +17 -0
- package/dist/src/__tests__/compiler/coroutine-extended.test.js +565 -0
- package/dist/src/__tests__/compiler/deprecated.test.d.ts +4 -0
- package/dist/src/__tests__/compiler/deprecated.test.js +285 -0
- package/dist/src/__tests__/compiler/do-while.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/do-while.test.js +120 -0
- package/dist/src/__tests__/compiler/enum-payload.test.d.ts +9 -0
- package/dist/src/__tests__/compiler/enum-payload.test.js +272 -0
- package/dist/src/__tests__/compiler/interface.test.d.ts +10 -0
- package/dist/src/__tests__/compiler/interface.test.js +258 -0
- package/dist/src/__tests__/compiler/labeled-loops.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/labeled-loops.test.js +263 -0
- package/dist/src/__tests__/compiler/match-string.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/match-string.test.js +43 -0
- package/dist/src/__tests__/compiler/memoize.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/memoize.test.js +113 -0
- package/dist/src/__tests__/compiler/method-chain.test.d.ts +5 -0
- package/dist/src/__tests__/compiler/method-chain.test.js +115 -0
- package/dist/src/__tests__/compiler/module-import.test.d.ts +12 -0
- package/dist/src/__tests__/compiler/module-import.test.js +261 -0
- package/dist/src/__tests__/compiler/option-extensions.test.d.ts +6 -0
- package/dist/src/__tests__/compiler/option-extensions.test.js +191 -0
- package/dist/src/__tests__/compiler/profile-decorator.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/profile-decorator.test.js +69 -0
- package/dist/src/__tests__/compiler/string-advanced.test.d.ts +7 -0
- package/dist/src/__tests__/compiler/string-advanced.test.js +281 -0
- package/dist/src/__tests__/compiler/struct-extends.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/struct-extends.test.js +95 -0
- package/dist/src/__tests__/compiler/throttle-retry.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/throttle-retry.test.js +166 -0
- package/dist/src/__tests__/compiler/tuple-type.test.d.ts +10 -0
- package/dist/src/__tests__/compiler/tuple-type.test.js +229 -0
- package/dist/src/__tests__/compiler/watch-decorator.test.d.ts +1 -0
- package/dist/src/__tests__/compiler/watch-decorator.test.js +65 -0
- package/dist/src/__tests__/config/project-config.test.d.ts +1 -0
- package/dist/src/__tests__/config/project-config.test.js +199 -0
- package/dist/src/__tests__/config-decorator.test.d.ts +8 -0
- package/dist/src/__tests__/config-decorator.test.js +142 -0
- package/dist/src/__tests__/diagnostics-extra.test.d.ts +6 -0
- package/dist/src/__tests__/diagnostics-extra.test.js +132 -0
- package/dist/src/__tests__/emit/compile-branches.test.d.ts +1 -0
- package/dist/src/__tests__/emit/compile-branches.test.js +123 -0
- package/dist/src/__tests__/emit/compile-coverage.test.d.ts +25 -0
- package/dist/src/__tests__/emit/compile-coverage.test.js +617 -0
- package/dist/src/__tests__/emit/compile-extra-branches.test.d.ts +12 -0
- package/dist/src/__tests__/emit/compile-extra-branches.test.js +225 -0
- package/dist/src/__tests__/emit/compile-mocked-branches.test.d.ts +0 -0
- package/dist/src/__tests__/emit/compile-mocked-branches.test.js +238 -0
- package/dist/src/__tests__/emit/execute-chain.test.d.ts +10 -0
- package/dist/src/__tests__/emit/execute-chain.test.js +94 -0
- package/dist/src/__tests__/emit/index.test.js +2 -1
- package/dist/src/__tests__/emit/modules-branches.test.d.ts +1 -0
- package/dist/src/__tests__/emit/modules-branches.test.js +88 -0
- package/dist/src/__tests__/emit/modules-coverage.test.d.ts +15 -0
- package/dist/src/__tests__/emit/modules-coverage.test.js +221 -0
- package/dist/src/__tests__/emit/modules-errors.test.d.ts +12 -0
- package/dist/src/__tests__/emit/modules-errors.test.js +169 -0
- package/dist/src/__tests__/emit/modules-rewrite.test.d.ts +17 -0
- package/dist/src/__tests__/emit/modules-rewrite.test.js +204 -0
- package/dist/src/__tests__/emit/source-map.test.d.ts +1 -0
- package/dist/src/__tests__/emit/source-map.test.js +167 -0
- package/dist/src/__tests__/enum.test.js +9 -4
- package/dist/src/__tests__/error-recovery.test.d.ts +7 -0
- package/dist/src/__tests__/error-recovery.test.js +217 -0
- package/dist/src/__tests__/events-types-extra.test.d.ts +10 -0
- package/dist/src/__tests__/events-types-extra.test.js +91 -0
- package/dist/src/__tests__/events-types.test.d.ts +4 -0
- package/dist/src/__tests__/events-types.test.js +56 -0
- package/dist/src/__tests__/formatter.test.js +13 -5
- package/dist/src/__tests__/hir/lower-extra.test.d.ts +9 -0
- package/dist/src/__tests__/hir/lower-extra.test.js +140 -0
- package/dist/src/__tests__/hir/monomorphize-extra.test.d.ts +15 -0
- package/dist/src/__tests__/hir/monomorphize-extra.test.js +200 -0
- package/dist/src/__tests__/hir/monomorphize-extra2.test.d.ts +16 -0
- package/dist/src/__tests__/hir/monomorphize-extra2.test.js +316 -0
- package/dist/src/__tests__/incremental.test.js +10 -2
- package/dist/src/__tests__/index-extra.test.d.ts +10 -0
- package/dist/src/__tests__/index-extra.test.js +71 -0
- package/dist/src/__tests__/lexer.test.js +2 -2
- package/dist/src/__tests__/lint/rules.test.d.ts +5 -0
- package/dist/src/__tests__/lint/rules.test.js +208 -0
- package/dist/src/__tests__/lir/lower.test.js +29 -0
- package/dist/src/__tests__/lir/verify.test.js +30 -0
- package/dist/src/__tests__/lsp/completion.test.d.ts +7 -0
- package/dist/src/__tests__/lsp/completion.test.js +583 -0
- package/dist/src/__tests__/lsp/definition.test.d.ts +7 -0
- package/dist/src/__tests__/lsp/definition.test.js +454 -0
- package/dist/src/__tests__/lsp/diagnostics.test.d.ts +10 -0
- package/dist/src/__tests__/lsp/diagnostics.test.js +98 -0
- package/dist/src/__tests__/lsp/hover-docs.test.d.ts +10 -0
- package/dist/src/__tests__/lsp/hover-docs.test.js +210 -0
- package/dist/src/__tests__/lsp.test.js +4 -1
- package/dist/src/__tests__/mc-integration/item-entity-events.test.js +4 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-2.test.js +4 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-3.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-3.test.js +1227 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-4.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-4.test.js +1509 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-5.test.d.ts +14 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-5.test.js +1374 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-6.test.d.ts +10 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-6.test.js +759 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-7.test.d.ts +13 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage-7.test.js +855 -0
- package/dist/src/__tests__/mc-integration/stdlib-coverage.test.js +4 -0
- package/dist/src/__tests__/mc-integration/syntax-coverage.test.js +4 -0
- package/dist/src/__tests__/mc-validator-coverage.test.d.ts +13 -0
- package/dist/src/__tests__/mc-validator-coverage.test.js +296 -0
- package/dist/src/__tests__/mc-validator-extra.test.d.ts +13 -0
- package/dist/src/__tests__/mc-validator-extra.test.js +245 -0
- package/dist/src/__tests__/mir/lower-extra.test.d.ts +20 -0
- package/dist/src/__tests__/mir/lower-extra.test.js +361 -0
- package/dist/src/__tests__/mir/lower-extra2.test.d.ts +17 -0
- package/dist/src/__tests__/mir/lower-extra2.test.js +317 -0
- package/dist/src/__tests__/mir/lower-extra3.test.d.ts +19 -0
- package/dist/src/__tests__/mir/lower-extra3.test.js +249 -0
- package/dist/src/__tests__/mir/lower-extra4.test.d.ts +23 -0
- package/dist/src/__tests__/mir/lower-extra4.test.js +606 -0
- package/dist/src/__tests__/mir/lower-extra5.test.d.ts +25 -0
- package/dist/src/__tests__/mir/lower-extra5.test.js +543 -0
- package/dist/src/__tests__/mir/lower-extra6.test.d.ts +16 -0
- package/dist/src/__tests__/mir/lower-extra6.test.js +471 -0
- package/dist/src/__tests__/mir/lower-extra7.test.d.ts +35 -0
- package/dist/src/__tests__/mir/lower-extra7.test.js +921 -0
- package/dist/src/__tests__/mir/lower-extra8.test.d.ts +19 -0
- package/dist/src/__tests__/mir/lower-extra8.test.js +626 -0
- package/dist/src/__tests__/mir/lower-extra9.test.d.ts +14 -0
- package/dist/src/__tests__/mir/lower-extra9.test.js +717 -0
- package/dist/src/__tests__/optimizer/auto-inline.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/auto-inline.test.js +176 -0
- package/dist/src/__tests__/optimizer/cse.test.d.ts +4 -0
- package/dist/src/__tests__/optimizer/cse.test.js +178 -0
- package/dist/src/__tests__/optimizer/inline_fn.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/inline_fn.test.js +221 -0
- package/dist/src/__tests__/optimizer/licm.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/licm.test.js +244 -0
- package/dist/src/__tests__/optimizer/optimizer-extended.test.d.ts +12 -0
- package/dist/src/__tests__/optimizer/optimizer-extended.test.js +993 -0
- package/dist/src/__tests__/optimizer/strength-reduction.test.d.ts +1 -0
- package/dist/src/__tests__/optimizer/strength-reduction.test.js +86 -0
- package/dist/src/__tests__/optimizer/tco.test.d.ts +14 -0
- package/dist/src/__tests__/optimizer/tco.test.js +203 -0
- package/dist/src/__tests__/parser-coverage.test.d.ts +25 -0
- package/dist/src/__tests__/parser-coverage.test.js +491 -0
- package/dist/src/__tests__/parser-extra.test.d.ts +6 -0
- package/dist/src/__tests__/parser-extra.test.js +451 -0
- package/dist/src/__tests__/parser.test.js +12 -0
- package/dist/src/__tests__/repl-extra.test.d.ts +13 -0
- package/dist/src/__tests__/repl-extra.test.js +174 -0
- package/dist/src/__tests__/repl-server-extra.test.d.ts +10 -0
- package/dist/src/__tests__/repl-server-extra.test.js +161 -0
- package/dist/src/__tests__/repl-server.test.d.ts +6 -0
- package/dist/src/__tests__/repl-server.test.js +146 -0
- package/dist/src/__tests__/runtime-extra.test.d.ts +15 -0
- package/dist/src/__tests__/runtime-extra.test.js +732 -0
- package/dist/src/__tests__/singleton-decorator.test.d.ts +11 -0
- package/dist/src/__tests__/singleton-decorator.test.js +260 -0
- package/dist/src/__tests__/sourcemap.test.js +1 -1
- package/dist/src/__tests__/stdlib/advanced.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/advanced.test.js +301 -0
- package/dist/src/__tests__/stdlib/bigint.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bigint.test.js +83 -0
- package/dist/src/__tests__/stdlib/bits.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bits.test.js +96 -0
- package/dist/src/__tests__/stdlib/bossbar.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/bossbar.test.js +72 -0
- package/dist/src/__tests__/stdlib/color.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/color.test.js +84 -0
- package/dist/src/__tests__/stdlib/combat.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/combat.test.js +64 -0
- package/dist/src/__tests__/stdlib/cooldown.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/cooldown.test.js +64 -0
- package/dist/src/__tests__/stdlib/dialog.test.js +15 -7
- package/dist/src/__tests__/stdlib/ecs.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/ecs.test.js +81 -0
- package/dist/src/__tests__/stdlib/effects.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/effects.test.js +72 -0
- package/dist/src/__tests__/stdlib/events.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/events.test.js +55 -0
- package/dist/src/__tests__/stdlib/expr.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/expr.test.js +77 -0
- package/dist/src/__tests__/stdlib/fft.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/fft.test.js +82 -0
- package/dist/src/__tests__/stdlib/graph.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/graph.test.js +102 -0
- package/dist/src/__tests__/stdlib/interactions.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/interactions.test.js +60 -0
- package/dist/src/__tests__/stdlib/inventory.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/inventory.test.js +68 -0
- package/dist/src/__tests__/stdlib/linalg.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/linalg.test.js +78 -0
- package/dist/src/__tests__/stdlib/map.test.d.ts +1 -0
- package/dist/src/__tests__/stdlib/map.test.js +84 -0
- package/dist/src/__tests__/stdlib/math.test.js +19 -6
- package/dist/src/__tests__/stdlib/math_hp.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/math_hp.test.js +80 -0
- package/dist/src/__tests__/stdlib/mobs.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/mobs.test.js +61 -0
- package/dist/src/__tests__/stdlib/noise.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/noise.test.js +73 -0
- package/dist/src/__tests__/stdlib/ode.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/ode.test.js +68 -0
- package/dist/src/__tests__/stdlib/parabola.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/parabola.test.js +77 -0
- package/dist/src/__tests__/stdlib/particles.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/particles.test.js +68 -0
- package/dist/src/__tests__/stdlib/physics.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/physics.test.js +76 -0
- package/dist/src/__tests__/stdlib/player.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/player.test.js +64 -0
- package/dist/src/__tests__/stdlib/quaternion.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/quaternion.test.js +73 -0
- package/dist/src/__tests__/stdlib/queue.test.d.ts +1 -0
- package/dist/src/__tests__/stdlib/queue.test.js +97 -0
- package/dist/src/__tests__/stdlib/random.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/random.test.js +76 -0
- package/dist/src/__tests__/stdlib/result.test.d.ts +12 -0
- package/dist/src/__tests__/stdlib/result.test.js +329 -0
- package/dist/src/__tests__/stdlib/scheduler.test.js +19 -8
- package/dist/src/__tests__/stdlib/set_int.test.d.ts +1 -0
- package/dist/src/__tests__/stdlib/set_int.test.js +88 -0
- package/dist/src/__tests__/stdlib/sets.test.d.ts +6 -0
- package/dist/src/__tests__/stdlib/sets.test.js +60 -0
- package/dist/src/__tests__/stdlib/signal.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/signal.test.js +84 -0
- package/dist/src/__tests__/stdlib/spawn.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/spawn.test.js +68 -0
- package/dist/src/__tests__/stdlib/string.test.d.ts +12 -0
- package/dist/src/__tests__/stdlib/string.test.js +231 -0
- package/dist/src/__tests__/stdlib/strings.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/strings.test.js +83 -0
- package/dist/src/__tests__/stdlib/tags.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/tags.test.js +57 -0
- package/dist/src/__tests__/stdlib/teams.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/teams.test.js +72 -0
- package/dist/src/__tests__/stdlib/timer.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/timer.test.js +79 -0
- package/dist/src/__tests__/stdlib/vec.test.d.ts +5 -0
- package/dist/src/__tests__/stdlib/vec.test.js +94 -0
- package/dist/src/__tests__/stdlib/world.test.d.ts +4 -0
- package/dist/src/__tests__/stdlib/world.test.js +72 -0
- package/dist/src/__tests__/struct-display.test.d.ts +1 -0
- package/dist/src/__tests__/struct-display.test.js +64 -0
- package/dist/src/__tests__/test-framework/runner.test.d.ts +10 -0
- package/dist/src/__tests__/test-framework/runner.test.js +193 -0
- package/dist/src/__tests__/tuner/adapters.test.d.ts +14 -0
- package/dist/src/__tests__/tuner/adapters.test.js +194 -0
- package/dist/src/__tests__/tuner/simulator-extra.test.d.ts +4 -0
- package/dist/src/__tests__/tuner/simulator-extra.test.js +193 -0
- package/dist/src/__tests__/typechecker-coverage.test.d.ts +30 -0
- package/dist/src/__tests__/typechecker-coverage.test.js +627 -0
- package/dist/src/__tests__/typechecker.test.js +3 -3
- package/dist/src/__tests__/watch-decorator.test.d.ts +1 -0
- package/dist/src/__tests__/watch-decorator.test.js +54 -0
- package/dist/src/ast/types.d.ts +102 -3
- package/dist/src/cache/incremental.d.ts +13 -14
- package/dist/src/cache/incremental.js +106 -89
- package/dist/src/cache/index.d.ts +8 -2
- package/dist/src/cache/index.js +18 -6
- package/dist/src/cli.d.ts +1 -0
- package/dist/src/cli.js +466 -17
- package/dist/src/config/project-config.d.ts +29 -0
- package/dist/src/config/project-config.js +180 -0
- package/dist/src/diagnostics/index.d.ts +9 -0
- package/dist/src/diagnostics/index.js +18 -1
- package/dist/src/emit/compile.d.ts +10 -0
- package/dist/src/emit/compile.js +395 -50
- package/dist/src/emit/index.d.ts +40 -0
- package/dist/src/emit/index.js +307 -14
- package/dist/src/emit/modules.js +21 -3
- package/dist/src/emit/sourcemap.d.ts +23 -27
- package/dist/src/emit/sourcemap.js +52 -30
- package/dist/src/formatter/index.js +33 -8
- package/dist/src/hir/deprecated.d.ts +13 -0
- package/dist/src/hir/deprecated.js +218 -0
- package/dist/src/hir/lower.js +114 -8
- package/dist/src/hir/monomorphize.js +22 -2
- package/dist/src/hir/types.d.ts +65 -1
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +18 -3
- package/dist/src/lexer/index.d.ts +2 -1
- package/dist/src/lexer/index.js +39 -3
- package/dist/src/lint/index.d.ts +45 -0
- package/dist/src/lint/index.js +930 -0
- package/dist/src/lir/lower.js +29 -2
- package/dist/src/lir/types.d.ts +2 -0
- package/dist/src/lsp/server.js +92 -5
- package/dist/src/mir/lower.js +775 -34
- package/dist/src/mir/macro.js +36 -2
- package/dist/src/mir/types.d.ts +12 -0
- package/dist/src/mir/verify.js +9 -0
- package/dist/src/optimizer/auto-inline.d.ts +2 -0
- package/dist/src/optimizer/auto-inline.js +67 -0
- package/dist/src/optimizer/cse.d.ts +20 -0
- package/dist/src/optimizer/cse.js +234 -0
- package/dist/src/optimizer/inline.d.ts +26 -0
- package/dist/src/optimizer/inline.js +286 -0
- package/dist/src/optimizer/interprocedural.js +4 -0
- package/dist/src/optimizer/licm.d.ts +32 -0
- package/dist/src/optimizer/licm.js +371 -0
- package/dist/src/optimizer/pipeline.js +12 -2
- package/dist/src/optimizer/strength_reduction.d.ts +15 -0
- package/dist/src/optimizer/strength_reduction.js +90 -0
- package/dist/src/optimizer/tco.d.ts +53 -0
- package/dist/src/optimizer/tco.js +238 -0
- package/dist/src/parser/index.d.ts +32 -0
- package/dist/src/parser/index.js +421 -59
- package/dist/src/repl-server.d.ts +13 -0
- package/dist/src/repl-server.js +127 -0
- package/dist/src/structs/expand.d.ts +15 -0
- package/dist/src/structs/expand.js +46 -0
- package/dist/src/testing/runner.d.ts +40 -0
- package/dist/src/testing/runner.js +237 -0
- package/dist/src/typechecker/index.d.ts +3 -0
- package/dist/src/typechecker/index.js +254 -9
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/doc-drafts/redscript-docs/docs/en/stdlib/graph.md +104 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/parabola.md +113 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/pathfind.md +104 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/physics.md +134 -0
- package/doc-drafts/redscript-docs/docs/en/stdlib/quaternion.md +135 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/graph.md +104 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/parabola.md +113 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/pathfind.md +104 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/physics.md +134 -0
- package/doc-drafts/redscript-docs/docs/zh/stdlib/quaternion.md +135 -0
- package/docs/stdlib/result.md +156 -0
- package/docs/stdlib/result.zh.md +156 -0
- package/editors/vscode/fixtures/test.mcrs +7 -0
- package/editors/vscode/out/extension.js +2095 -225
- package/editors/vscode/out/lsp-server.js +519 -51
- package/editors/vscode/package-lock.json +9 -4
- package/editors/vscode/package.json +1 -1
- package/examples/display-demo.mcrs +64 -0
- package/examples/game/racing.mcrs +301 -0
- package/examples/game/tower_defense.mcrs +311 -0
- package/examples/math/physics_sim.mcrs +322 -0
- package/examples/rpg/boss_fight.mcrs +313 -0
- package/examples/rpg/health_system.mcrs +237 -0
- package/examples/rpg/inventory.mcrs +265 -0
- package/examples/util/debug_hud.mcrs +279 -0
- package/jest.config.js +10 -0
- package/package.json +12 -3
- package/playground/index.html +823 -0
- package/scripts/gen-docs.ts +533 -0
- package/scripts/update-redscript-docs-stdlib.sh +770 -0
- package/src/__tests__/budget.test.ts +5 -0
- package/src/__tests__/cache/cache-behavior.test.ts +480 -0
- package/src/__tests__/cache-extra.test.ts +199 -0
- package/src/__tests__/cli-docs.test.ts +77 -0
- package/src/__tests__/cli-init.test.ts +91 -0
- package/src/__tests__/cli-publish.test.ts +190 -0
- package/src/__tests__/cli.test.ts +117 -1
- package/src/__tests__/compile-preprocess.test.ts +366 -0
- package/src/__tests__/compiler/break-stmt.test.ts +66 -0
- package/src/__tests__/compiler/const-decl.test.ts +141 -0
- package/src/__tests__/compiler/continue-stmt.test.ts +81 -0
- package/src/__tests__/compiler/coroutine-extended.test.ts +723 -0
- package/src/__tests__/compiler/deprecated.test.ts +305 -0
- package/src/__tests__/compiler/do-while.test.ts +130 -0
- package/src/__tests__/compiler/enum-payload.test.ts +299 -0
- package/src/__tests__/compiler/interface.test.ts +287 -0
- package/src/__tests__/compiler/labeled-loops.test.ts +279 -0
- package/src/__tests__/compiler/match-string.test.ts +45 -0
- package/src/__tests__/compiler/memoize.test.ts +126 -0
- package/src/__tests__/compiler/method-chain.test.ts +121 -0
- package/src/__tests__/compiler/module-import.test.ts +240 -0
- package/src/__tests__/compiler/option-extensions.test.ts +207 -0
- package/src/__tests__/compiler/profile-decorator.test.ts +79 -0
- package/src/__tests__/compiler/string-advanced.test.ts +310 -0
- package/src/__tests__/compiler/struct-extends.test.ts +109 -0
- package/src/__tests__/compiler/throttle-retry.test.ts +191 -0
- package/src/__tests__/compiler/tuple-type.test.ts +263 -0
- package/src/__tests__/compiler/watch-decorator.test.ts +72 -0
- package/src/__tests__/config/project-config.test.ts +181 -0
- package/src/__tests__/config-decorator.test.ts +157 -0
- package/src/__tests__/diagnostics-extra.test.ts +155 -0
- package/src/__tests__/emit/compile-branches.test.ts +135 -0
- package/src/__tests__/emit/compile-coverage.test.ts +696 -0
- package/src/__tests__/emit/compile-extra-branches.test.ts +228 -0
- package/src/__tests__/emit/compile-mocked-branches.test.ts +249 -0
- package/src/__tests__/emit/compile.test.ts +6 -1
- package/src/__tests__/emit/execute-chain.test.ts +114 -0
- package/src/__tests__/emit/index.test.ts +2 -1
- package/src/__tests__/emit/modules-branches.test.ts +90 -0
- package/src/__tests__/emit/modules-coverage.test.ts +241 -0
- package/src/__tests__/emit/modules-errors.test.ts +192 -0
- package/src/__tests__/emit/modules-rewrite.test.ts +232 -0
- package/src/__tests__/emit/source-map.test.ts +152 -0
- package/src/__tests__/enum.test.ts +9 -4
- package/src/__tests__/error-recovery.test.ts +226 -0
- package/src/__tests__/events-types-extra.test.ts +110 -0
- package/src/__tests__/events-types.test.ts +66 -0
- package/src/__tests__/formatter.test.ts +15 -5
- package/src/__tests__/generics.test.ts +16 -9
- package/src/__tests__/hir/lower-extra.test.ts +151 -0
- package/src/__tests__/hir/monomorphize-coverage.test.ts +432 -0
- package/src/__tests__/hir/monomorphize-extra.test.ts +220 -0
- package/src/__tests__/hir/monomorphize-extra2.test.ts +350 -0
- package/src/__tests__/impl.test.ts +12 -8
- package/src/__tests__/incremental.test.ts +10 -2
- package/src/__tests__/index-extra.test.ts +79 -0
- package/src/__tests__/lexer.test.ts +2 -2
- package/src/__tests__/lint/hir-coverage.test.ts +1716 -0
- package/src/__tests__/lint/rules-coverage.test.ts +598 -0
- package/src/__tests__/lint/rules.test.ts +230 -0
- package/src/__tests__/lir/lower.test.ts +33 -0
- package/src/__tests__/lir/verify.test.ts +33 -0
- package/src/__tests__/lsp/completion.test.ts +687 -0
- package/src/__tests__/lsp/definition.test.ts +499 -0
- package/src/__tests__/lsp/diagnostics.test.ts +108 -0
- package/src/__tests__/lsp/hover-docs.test.ts +222 -0
- package/src/__tests__/lsp.test.ts +4 -1
- package/src/__tests__/mc-integration/item-entity-events.test.ts +5 -0
- package/src/__tests__/mc-integration/stdlib-coverage-2.test.ts +5 -0
- package/src/__tests__/mc-integration/stdlib-coverage-3.test.ts +1105 -0
- package/src/__tests__/mc-integration/stdlib-coverage-4.test.ts +1366 -0
- package/src/__tests__/mc-integration/stdlib-coverage-5.test.ts +1245 -0
- package/src/__tests__/mc-integration/stdlib-coverage-6.test.ts +755 -0
- package/src/__tests__/mc-integration/stdlib-coverage-7.test.ts +771 -0
- package/src/__tests__/mc-integration/stdlib-coverage.test.ts +5 -0
- package/src/__tests__/mc-integration/syntax-coverage.test.ts +5 -0
- package/src/__tests__/mc-validator-coverage.test.ts +325 -0
- package/src/__tests__/mc-validator-extra.test.ts +252 -0
- package/src/__tests__/mir/lower-extra.test.ts +402 -0
- package/src/__tests__/mir/lower-extra2.test.ts +348 -0
- package/src/__tests__/mir/lower-extra3.test.ts +277 -0
- package/src/__tests__/mir/lower-extra4.test.ts +636 -0
- package/src/__tests__/mir/lower-extra5.test.ts +612 -0
- package/src/__tests__/mir/lower-extra6.test.ts +520 -0
- package/src/__tests__/mir/lower-extra7.test.ts +1045 -0
- package/src/__tests__/mir/lower-extra8.test.ts +704 -0
- package/src/__tests__/mir/lower-extra9.test.ts +821 -0
- package/src/__tests__/optimizer/auto-inline.test.ts +206 -0
- package/src/__tests__/optimizer/cse.test.ts +195 -0
- package/src/__tests__/optimizer/inline_fn.test.ts +263 -0
- package/src/__tests__/optimizer/licm.test.ts +358 -0
- package/src/__tests__/optimizer/nbt-coalesce.test.ts +147 -0
- package/src/__tests__/optimizer/optimizer-extended.test.ts +1081 -0
- package/src/__tests__/optimizer/scoreboard-batch.test.ts +141 -0
- package/src/__tests__/optimizer/strength-reduction.test.ts +111 -0
- package/src/__tests__/optimizer/tco-coverage.test.ts +309 -0
- package/src/__tests__/optimizer/tco.test.ts +238 -0
- package/src/__tests__/option.test.ts +14 -7
- package/src/__tests__/parser-coverage.test.ts +576 -0
- package/src/__tests__/parser-extra.test.ts +531 -0
- package/src/__tests__/parser.test.ts +14 -0
- package/src/__tests__/repl-extra.test.ts +195 -0
- package/src/__tests__/repl-server-extra.test.ts +150 -0
- package/src/__tests__/repl-server.test.ts +122 -0
- package/src/__tests__/runtime-extra.test.ts +862 -0
- package/src/__tests__/singleton-decorator.test.ts +285 -0
- package/src/__tests__/sourcemap.test.ts +1 -1
- package/src/__tests__/stdlib/advanced.test.ts +312 -0
- package/src/__tests__/stdlib/bigint.test.ts +57 -0
- package/src/__tests__/stdlib/bits.test.ts +75 -0
- package/src/__tests__/stdlib/bossbar.test.ts +45 -0
- package/src/__tests__/stdlib/color.test.ts +60 -0
- package/src/__tests__/stdlib/combat.test.ts +35 -0
- package/src/__tests__/stdlib/cooldown.test.ts +35 -0
- package/src/__tests__/stdlib/dialog.test.ts +14 -6
- package/src/__tests__/stdlib/ecs.test.ts +54 -0
- package/src/__tests__/stdlib/effects.test.ts +45 -0
- package/src/__tests__/stdlib/events.test.ts +23 -0
- package/src/__tests__/stdlib/expr.test.ts +48 -0
- package/src/__tests__/stdlib/fft.test.ts +54 -0
- package/src/__tests__/stdlib/graph.test.ts +77 -0
- package/src/__tests__/stdlib/interactions.test.ts +30 -0
- package/src/__tests__/stdlib/inventory.test.ts +40 -0
- package/src/__tests__/stdlib/linalg.test.ts +52 -0
- package/src/__tests__/stdlib/map.test.ts +55 -0
- package/src/__tests__/stdlib/math.test.ts +19 -5
- package/src/__tests__/stdlib/math_hp.test.ts +55 -0
- package/src/__tests__/stdlib/mobs.test.ts +40 -0
- package/src/__tests__/stdlib/noise.test.ts +46 -0
- package/src/__tests__/stdlib/ode.test.ts +40 -0
- package/src/__tests__/stdlib/parabola.test.ts +51 -0
- package/src/__tests__/stdlib/particles.test.ts +40 -0
- package/src/__tests__/stdlib/physics.test.ts +50 -0
- package/src/__tests__/stdlib/player.test.ts +35 -0
- package/src/__tests__/stdlib/quaternion.test.ts +46 -0
- package/src/__tests__/stdlib/queue.test.ts +73 -0
- package/src/__tests__/stdlib/random.test.ts +50 -0
- package/src/__tests__/stdlib/result.test.ts +326 -0
- package/src/__tests__/stdlib/scheduler.test.ts +18 -7
- package/src/__tests__/stdlib/set_int.test.ts +62 -0
- package/src/__tests__/stdlib/sets.test.ts +28 -0
- package/src/__tests__/stdlib/signal.test.ts +60 -0
- package/src/__tests__/stdlib/spawn.test.ts +40 -0
- package/src/__tests__/stdlib/string.test.ts +224 -0
- package/src/__tests__/stdlib/strings.test.ts +55 -0
- package/src/__tests__/stdlib/tags.test.ts +32 -0
- package/src/__tests__/stdlib/teams.test.ts +45 -0
- package/src/__tests__/stdlib/timer.test.ts +53 -0
- package/src/__tests__/stdlib/vec.test.ts +72 -0
- package/src/__tests__/stdlib/world.test.ts +45 -0
- package/src/__tests__/struct-display.test.ts +69 -0
- package/src/__tests__/test-framework/runner.test.ts +208 -0
- package/src/__tests__/tuner/adapters.test.ts +232 -0
- package/src/__tests__/tuner/simulator-extra.test.ts +222 -0
- package/src/__tests__/tuple.test.ts +11 -4
- package/src/__tests__/typechecker-coverage.test.ts +671 -0
- package/src/__tests__/typechecker.test.ts +4 -3
- package/src/__tests__/watch-decorator.test.ts +59 -0
- package/src/ast/types.ts +65 -3
- package/src/cache/incremental.ts +128 -99
- package/src/cache/index.ts +35 -8
- package/src/cli.ts +538 -29
- package/src/config/project-config.ts +176 -0
- package/src/diagnostics/index.ts +22 -0
- package/src/docs.ts +98 -0
- package/src/emit/compile.ts +408 -51
- package/src/emit/index.ts +366 -18
- package/src/emit/modules.ts +19 -3
- package/src/emit/sourcemap.ts +64 -43
- package/src/formatter/index.ts +35 -8
- package/src/hir/deprecated.ts +212 -0
- package/src/hir/lower.ts +128 -8
- package/src/hir/monomorphize.ts +24 -2
- package/src/hir/types.ts +26 -1
- package/src/index.ts +23 -3
- package/src/lexer/index.ts +45 -6
- package/src/lint/index.ts +922 -0
- package/src/lir/lower.ts +30 -2
- package/src/lir/types.ts +4 -0
- package/src/lsp/server.ts +100 -1
- package/src/mir/lower.ts +785 -40
- package/src/mir/macro.ts +30 -2
- package/src/mir/types.ts +13 -0
- package/src/mir/verify.ts +10 -2
- package/src/optimizer/auto-inline.ts +86 -0
- package/src/optimizer/copy_prop.ts +2 -2
- package/src/optimizer/coroutine.ts +3 -3
- package/src/optimizer/cse.ts +205 -0
- package/src/optimizer/dce.ts +2 -2
- package/src/optimizer/inline.ts +335 -0
- package/src/optimizer/interprocedural.ts +5 -1
- package/src/optimizer/licm.ts +454 -0
- package/src/optimizer/nbt-coalesce.ts +109 -0
- package/src/optimizer/pipeline.ts +16 -2
- package/src/optimizer/scoreboard-batch.ts +52 -0
- package/src/optimizer/strength_reduction.ts +95 -0
- package/src/optimizer/tco.ts +267 -0
- package/src/optimizer/unroll.ts +2 -2
- package/src/parser/index.ts +426 -53
- package/src/repl-server.ts +102 -0
- package/src/stdlib/advanced.mcrs +271 -101
- package/src/stdlib/bigint.mcrs +97 -11
- package/src/stdlib/bits.mcrs +75 -12
- package/src/stdlib/bossbar.mcrs +37 -8
- package/src/stdlib/calculus.mcrs +82 -26
- package/src/stdlib/color.mcrs +98 -16
- package/src/stdlib/combat.mcrs +23 -5
- package/src/stdlib/cooldown.mcrs +19 -0
- package/src/stdlib/dialog.mcrs +45 -7
- package/src/stdlib/easing.mcrs +132 -12
- package/src/stdlib/ecs.mcrs +142 -25
- package/src/stdlib/effects.mcrs +88 -12
- package/src/stdlib/events.mcrs +21 -2
- package/src/stdlib/expr.mcrs +18 -3
- package/src/stdlib/fft.mcrs +66 -56
- package/src/stdlib/geometry.mcrs +137 -39
- package/src/stdlib/graph.mcrs +73 -0
- package/src/stdlib/heap.mcrs +49 -8
- package/src/stdlib/i18n/zh.yaml +2891 -0
- package/src/stdlib/interactions.mcrs +43 -20
- package/src/stdlib/inventory.mcrs +14 -3
- package/src/stdlib/linalg.mcrs +185 -30
- package/src/stdlib/list.mcrs +168 -18
- package/src/stdlib/map.mcrs +112 -0
- package/src/stdlib/math.mcrs +68 -18
- package/src/stdlib/math_hp.mcrs +124 -33
- package/src/stdlib/matrix.mcrs +133 -20
- package/src/stdlib/mobs.mcrs +87 -0
- package/src/stdlib/noise.mcrs +65 -21
- package/src/stdlib/ode.mcrs +96 -0
- package/src/stdlib/parabola.mcrs +104 -29
- package/src/stdlib/particles.mcrs +78 -21
- package/src/stdlib/pathfind.mcrs +89 -35
- package/src/stdlib/physics.mcrs +134 -26
- package/src/stdlib/player.mcrs +18 -0
- package/src/stdlib/quaternion.mcrs +213 -9
- package/src/stdlib/queue.mcrs +123 -0
- package/src/stdlib/random.mcrs +63 -18
- package/src/stdlib/result.mcrs +111 -0
- package/src/stdlib/scheduler.mcrs +59 -10
- package/src/stdlib/set_int.mcrs +240 -0
- package/src/stdlib/sets.mcrs +49 -19
- package/src/stdlib/signal.mcrs +151 -79
- package/src/stdlib/sort.mcrs +44 -24
- package/src/stdlib/spawn.mcrs +30 -7
- package/src/stdlib/state.mcrs +40 -5
- package/src/stdlib/strings.mcrs +131 -3
- package/src/stdlib/tags.mcrs +2 -2
- package/src/stdlib/teams.mcrs +22 -10
- package/src/stdlib/timer.mcrs +36 -6
- package/src/stdlib/vec.mcrs +44 -9
- package/src/stdlib/world.mcrs +57 -25
- package/src/structs/expand.ts +64 -0
- package/src/testing/runner.ts +271 -0
- package/src/typechecker/index.ts +273 -9
package/src/stdlib/mobs.mcrs
CHANGED
|
@@ -2,98 +2,185 @@
|
|
|
2
2
|
// Copy the names you need into your own project until RedScript gets imports.
|
|
3
3
|
|
|
4
4
|
// Hostile mobs
|
|
5
|
+
/// Entity type ID for zombie.
|
|
5
6
|
const ZOMBIE ="minecraft:zombie"
|
|
7
|
+
/// Entity type ID for skeleton.
|
|
6
8
|
const SKELETON ="minecraft:skeleton"
|
|
9
|
+
/// Entity type ID for creeper.
|
|
7
10
|
const CREEPER ="minecraft:creeper"
|
|
11
|
+
/// Entity type ID for spider.
|
|
8
12
|
const SPIDER ="minecraft:spider"
|
|
13
|
+
/// Entity type ID for cave spider.
|
|
9
14
|
const CAVE_SPIDER ="minecraft:cave_spider"
|
|
15
|
+
/// Entity type ID for enderman.
|
|
10
16
|
const ENDERMAN ="minecraft:enderman"
|
|
17
|
+
/// Entity type ID for witch.
|
|
11
18
|
const WITCH ="minecraft:witch"
|
|
19
|
+
/// Entity type ID for phantom.
|
|
12
20
|
const PHANTOM ="minecraft:phantom"
|
|
21
|
+
/// Entity type ID for drowned.
|
|
13
22
|
const DROWNED ="minecraft:drowned"
|
|
23
|
+
/// Entity type ID for husk.
|
|
14
24
|
const HUSK ="minecraft:husk"
|
|
25
|
+
/// Entity type ID for stray.
|
|
15
26
|
const STRAY ="minecraft:stray"
|
|
27
|
+
/// Entity type ID for warden.
|
|
16
28
|
const WARDEN ="minecraft:warden"
|
|
29
|
+
/// Entity type ID for pillager.
|
|
17
30
|
const PILLAGER ="minecraft:pillager"
|
|
31
|
+
/// Entity type ID for ravager.
|
|
18
32
|
const RAVAGER ="minecraft:ravager"
|
|
33
|
+
/// Entity type ID for vindicator.
|
|
19
34
|
const VINDICATOR ="minecraft:vindicator"
|
|
35
|
+
/// Entity type ID for evoker.
|
|
20
36
|
const EVOKER ="minecraft:evoker"
|
|
37
|
+
/// Entity type ID for vex.
|
|
21
38
|
const VEXE ="minecraft:vex"
|
|
39
|
+
/// Entity type ID for zombie villager.
|
|
22
40
|
const ZOMBIE_VILLAGER ="minecraft:zombie_villager"
|
|
41
|
+
/// Entity type ID for blaze.
|
|
23
42
|
const BLAZE ="minecraft:blaze"
|
|
43
|
+
/// Entity type ID for ghast.
|
|
24
44
|
const GHAST ="minecraft:ghast"
|
|
45
|
+
/// Entity type ID for magma cube.
|
|
25
46
|
const MAGMA_CUBE ="minecraft:magma_cube"
|
|
47
|
+
/// Entity type ID for slime.
|
|
26
48
|
const SLIME ="minecraft:slime"
|
|
49
|
+
/// Entity type ID for piglin brute.
|
|
27
50
|
const PIGLIN_BRUTE ="minecraft:piglin_brute"
|
|
51
|
+
/// Entity type ID for hoglin.
|
|
28
52
|
const HOGLIN ="minecraft:hoglin"
|
|
53
|
+
/// Entity type ID for zoglin.
|
|
29
54
|
const ZOGLIN ="minecraft:zoglin"
|
|
55
|
+
/// Entity type ID for endermite.
|
|
30
56
|
const ENDERMITE ="minecraft:endermite"
|
|
57
|
+
/// Entity type ID for silverfish.
|
|
31
58
|
const SILVERFISH ="minecraft:silverfish"
|
|
59
|
+
/// Entity type ID for shulker.
|
|
32
60
|
const SHULKER ="minecraft:shulker"
|
|
61
|
+
/// Entity type ID for guardian.
|
|
33
62
|
const GUARDIAN ="minecraft:guardian"
|
|
63
|
+
/// Entity type ID for elder guardian.
|
|
34
64
|
const ELDER_GUARDIAN ="minecraft:elder_guardian"
|
|
65
|
+
/// Entity type ID for bogged.
|
|
35
66
|
const BOGGED ="minecraft:bogged"
|
|
67
|
+
/// Entity type ID for breeze.
|
|
36
68
|
const BREEZE ="minecraft:breeze"
|
|
37
69
|
|
|
38
70
|
// Passive mobs
|
|
71
|
+
/// Entity type ID for pig.
|
|
39
72
|
const PIG ="minecraft:pig"
|
|
73
|
+
/// Entity type ID for cow.
|
|
40
74
|
const COW ="minecraft:cow"
|
|
75
|
+
/// Entity type ID for sheep.
|
|
41
76
|
const SHEEP ="minecraft:sheep"
|
|
77
|
+
/// Entity type ID for chicken.
|
|
42
78
|
const CHICKEN ="minecraft:chicken"
|
|
79
|
+
/// Entity type ID for horse.
|
|
43
80
|
const HORSE ="minecraft:horse"
|
|
81
|
+
/// Entity type ID for donkey.
|
|
44
82
|
const DONKEY ="minecraft:donkey"
|
|
83
|
+
/// Entity type ID for mule.
|
|
45
84
|
const MULE ="minecraft:mule"
|
|
85
|
+
/// Entity type ID for rabbit.
|
|
46
86
|
const RABBIT ="minecraft:rabbit"
|
|
87
|
+
/// Entity type ID for cod.
|
|
47
88
|
const COD ="minecraft:cod"
|
|
89
|
+
/// Entity type ID for salmon.
|
|
48
90
|
const SALMON ="minecraft:salmon"
|
|
91
|
+
/// Entity type ID for tropical fish.
|
|
49
92
|
const TROPICAL_FISH ="minecraft:tropical_fish"
|
|
93
|
+
/// Entity type ID for pufferfish.
|
|
50
94
|
const PUFFERFISH ="minecraft:pufferfish"
|
|
95
|
+
/// Entity type ID for squid.
|
|
51
96
|
const SQUID ="minecraft:squid"
|
|
97
|
+
/// Entity type ID for glow squid.
|
|
52
98
|
const GLOW_SQUID ="minecraft:glow_squid"
|
|
99
|
+
/// Entity type ID for bat.
|
|
53
100
|
const BAT ="minecraft:bat"
|
|
101
|
+
/// Entity type ID for villager.
|
|
54
102
|
const VILLAGER ="minecraft:villager"
|
|
103
|
+
/// Entity type ID for wandering trader.
|
|
55
104
|
const WANDERING_TRADER ="minecraft:wandering_trader"
|
|
105
|
+
/// Entity type ID for snow golem.
|
|
56
106
|
const SNOW_GOLEM ="minecraft:snow_golem"
|
|
107
|
+
/// Entity type ID for strider.
|
|
57
108
|
const STRIDER ="minecraft:strider"
|
|
109
|
+
/// Entity type ID for axolotl.
|
|
58
110
|
const AXOLOTL ="minecraft:axolotl"
|
|
111
|
+
/// Entity type ID for frog.
|
|
59
112
|
const FROG ="minecraft:frog"
|
|
113
|
+
/// Entity type ID for tadpole.
|
|
60
114
|
const TADPOLE ="minecraft:tadpole"
|
|
115
|
+
/// Entity type ID for allay.
|
|
61
116
|
const ALLAY ="minecraft:allay"
|
|
117
|
+
/// Entity type ID for sniffer.
|
|
62
118
|
const SNIFFER ="minecraft:sniffer"
|
|
119
|
+
/// Entity type ID for armadillo.
|
|
63
120
|
const ARMADILLO ="minecraft:armadillo"
|
|
121
|
+
/// Entity type ID for turtle.
|
|
64
122
|
const TURTLE ="minecraft:turtle"
|
|
65
123
|
|
|
66
124
|
// Neutral mobs
|
|
125
|
+
/// Entity type ID for wolf.
|
|
67
126
|
const WOLF ="minecraft:wolf"
|
|
127
|
+
/// Entity type ID for bee.
|
|
68
128
|
const BEE ="minecraft:bee"
|
|
129
|
+
/// Entity type ID for polar bear.
|
|
69
130
|
const POLAR_BEAR ="minecraft:polar_bear"
|
|
131
|
+
/// Entity type ID for dolphin.
|
|
70
132
|
const DOLPHIN ="minecraft:dolphin"
|
|
133
|
+
/// Entity type ID for iron golem.
|
|
71
134
|
const IRON_GOLEM ="minecraft:iron_golem"
|
|
135
|
+
/// Entity type ID for piglin.
|
|
72
136
|
const PIGLIN ="minecraft:piglin"
|
|
137
|
+
/// Entity type ID for zombified piglin.
|
|
73
138
|
const ZOMBIFIED_PIGLIN ="minecraft:zombified_piglin"
|
|
139
|
+
/// Entity type ID for panda.
|
|
74
140
|
const PANDA ="minecraft:panda"
|
|
141
|
+
/// Entity type ID for llama.
|
|
75
142
|
const LLAMA ="minecraft:llama"
|
|
143
|
+
/// Entity type ID for trader llama.
|
|
76
144
|
const TRADER_LLAMA ="minecraft:trader_llama"
|
|
145
|
+
/// Entity type ID for cat.
|
|
77
146
|
const CAT ="minecraft:cat"
|
|
147
|
+
/// Entity type ID for ocelot.
|
|
78
148
|
const OCELOT ="minecraft:ocelot"
|
|
149
|
+
/// Entity type ID for fox.
|
|
79
150
|
const FOX ="minecraft:fox"
|
|
151
|
+
/// Entity type ID for goat.
|
|
80
152
|
const GOAT ="minecraft:goat"
|
|
153
|
+
/// Entity type ID for camel.
|
|
81
154
|
const CAMEL ="minecraft:camel"
|
|
82
155
|
|
|
83
156
|
// Bosses
|
|
157
|
+
/// Entity type ID for ender dragon.
|
|
84
158
|
const ENDER_DRAGON ="minecraft:ender_dragon"
|
|
159
|
+
/// Entity type ID for wither.
|
|
85
160
|
const WITHER ="minecraft:wither"
|
|
86
161
|
|
|
87
162
|
// Special / misc
|
|
163
|
+
/// Entity type ID for armor stand.
|
|
88
164
|
const ARMOR_STAND ="minecraft:armor_stand"
|
|
165
|
+
/// Entity type ID for item frame.
|
|
89
166
|
const ITEM_FRAME ="minecraft:item_frame"
|
|
167
|
+
/// Entity type ID for glow item frame.
|
|
90
168
|
const GLOW_ITEM_FRAME ="minecraft:glow_item_frame"
|
|
169
|
+
/// Entity type ID for painting.
|
|
91
170
|
const PAINTING ="minecraft:painting"
|
|
171
|
+
/// Entity type ID for boat.
|
|
92
172
|
const BOAT ="minecraft:boat"
|
|
173
|
+
/// Entity type ID for minecart.
|
|
93
174
|
const MINECART ="minecraft:minecart"
|
|
175
|
+
/// Entity type ID for primed TNT.
|
|
94
176
|
const TNT ="minecraft:tnt"
|
|
177
|
+
/// Entity type ID for falling block.
|
|
95
178
|
const FALLING_BLOCK ="minecraft:falling_block"
|
|
179
|
+
/// Entity type ID for dropped item.
|
|
96
180
|
const ITEM ="minecraft:item"
|
|
181
|
+
/// Entity type ID for experience orb.
|
|
97
182
|
const XP_ORB ="minecraft:experience_orb"
|
|
183
|
+
/// Entity type ID for fireball.
|
|
98
184
|
const FIREBALL ="minecraft:fireball"
|
|
185
|
+
/// Entity type ID for player.
|
|
99
186
|
const PLAYER ="minecraft:player"
|
package/src/stdlib/noise.mcrs
CHANGED
|
@@ -15,8 +15,12 @@ module library;
|
|
|
15
15
|
|
|
16
16
|
// ─── Hash functions ───────────────────────────────────────────────────────────
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
/// Generate a pseudo-random integer from a 1D integer coordinate.
|
|
19
|
+
/// @since 1.0.0
|
|
20
|
+
/// @param x Input coordinate (any integer)
|
|
21
|
+
/// @returns Pseudo-random integer (any value; use % to restrict range)
|
|
22
|
+
/// @example
|
|
23
|
+
/// let h: int = hash_1d(42) // deterministic hash of coordinate 42
|
|
20
24
|
fn hash_1d(x: int): int {
|
|
21
25
|
let h: int = x * 374761393;
|
|
22
26
|
h = h + 1013904223;
|
|
@@ -25,19 +29,36 @@ fn hash_1d(x: int): int {
|
|
|
25
29
|
return h;
|
|
26
30
|
}
|
|
27
31
|
|
|
28
|
-
|
|
32
|
+
/// Generate a pseudo-random integer from a 2D integer coordinate pair.
|
|
33
|
+
/// @since 1.0.0
|
|
34
|
+
/// @param x First coordinate (any integer)
|
|
35
|
+
/// @param z Second coordinate (any integer)
|
|
36
|
+
/// @returns Pseudo-random integer combining both inputs deterministically
|
|
37
|
+
/// @example
|
|
38
|
+
/// let h: int = hash_2d(10, 20) // deterministic hash of (10, 20)
|
|
29
39
|
fn hash_2d(x: int, z: int): int {
|
|
30
40
|
return hash_1d(x + hash_1d(z));
|
|
31
41
|
}
|
|
32
42
|
|
|
33
|
-
|
|
43
|
+
/// Generate a non-negative hash in [0, 10000] from a 1D coordinate.
|
|
44
|
+
/// @since 1.0.0
|
|
45
|
+
/// @param x Input coordinate
|
|
46
|
+
/// @returns Integer in [0, 10000]
|
|
47
|
+
/// @example
|
|
48
|
+
/// let v: int = hash_1d_pos(5) // value between 0 and 10000
|
|
34
49
|
fn hash_1d_pos(x: int): int {
|
|
35
50
|
let h: int = hash_1d(x);
|
|
36
51
|
if (h < 0) { h = 0 - h; }
|
|
37
52
|
return h % 10001;
|
|
38
53
|
}
|
|
39
54
|
|
|
40
|
-
|
|
55
|
+
/// Generate a non-negative hash in [0, 10000] from a 2D coordinate pair.
|
|
56
|
+
/// @since 1.0.0
|
|
57
|
+
/// @param x First coordinate
|
|
58
|
+
/// @param z Second coordinate
|
|
59
|
+
/// @returns Integer in [0, 10000]
|
|
60
|
+
/// @example
|
|
61
|
+
/// let v: int = hash_2d_pos(3, 7) // value between 0 and 10000
|
|
41
62
|
fn hash_2d_pos(x: int, z: int): int {
|
|
42
63
|
let h: int = hash_2d(x, z);
|
|
43
64
|
if (h < 0) { h = 0 - h; }
|
|
@@ -46,9 +67,12 @@ fn hash_2d_pos(x: int, z: int): int {
|
|
|
46
67
|
|
|
47
68
|
// ─── Value noise ─────────────────────────────────────────────────────────────
|
|
48
69
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
70
|
+
/// Smooth 1D value noise at a fixed-point position.
|
|
71
|
+
/// @since 1.0.0
|
|
72
|
+
/// @param x_fx Position ×10000 (e.g. 10000 = coordinate 1.0)
|
|
73
|
+
/// @returns Noise value in [0, 10000] with smooth interpolation between integer coords
|
|
74
|
+
/// @example
|
|
75
|
+
/// let n: int = value_noise_1d(15000) // smooth noise at x=1.5
|
|
52
76
|
fn value_noise_1d(x_fx: int): int {
|
|
53
77
|
let xi: int = x_fx / 10000; // integer part
|
|
54
78
|
let xf: int = x_fx % 10000; // fractional part [0, 9999]
|
|
@@ -62,8 +86,13 @@ fn value_noise_1d(x_fx: int): int {
|
|
|
62
86
|
return v0 + (v1 - v0) * t / 10000;
|
|
63
87
|
}
|
|
64
88
|
|
|
65
|
-
|
|
66
|
-
|
|
89
|
+
/// Smooth 2D value noise at a fixed-point position.
|
|
90
|
+
/// @since 1.0.0
|
|
91
|
+
/// @param x_fx X position ×10000
|
|
92
|
+
/// @param z_fx Z position ×10000
|
|
93
|
+
/// @returns Noise value in [0, 10000] with bilinear smooth interpolation
|
|
94
|
+
/// @example
|
|
95
|
+
/// let n: int = value_noise_2d(15000, 23000) // noise at (1.5, 2.3)
|
|
67
96
|
fn value_noise_2d(x_fx: int, z_fx: int): int {
|
|
68
97
|
let xi: int = x_fx / 10000;
|
|
69
98
|
let xf: int = x_fx % 10000;
|
|
@@ -91,11 +120,14 @@ fn value_noise_2d(x_fx: int, z_fx: int): int {
|
|
|
91
120
|
|
|
92
121
|
// ─── Fractal Brownian Motion ──────────────────────────────────────────────────
|
|
93
122
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
123
|
+
/// 1D Fractal Brownian Motion — stacks multiple octaves of value noise.
|
|
124
|
+
/// @since 1.0.0
|
|
125
|
+
/// @param x_fx Position ×10000
|
|
126
|
+
/// @param octaves Number of noise layers (1–6; more = more detail but slower)
|
|
127
|
+
/// @param persistence_fx Amplitude decay per octave ×10000 (5000 = 0.5 recommended)
|
|
128
|
+
/// @returns Normalized noise value in approximately [0, 10000]
|
|
129
|
+
/// @example
|
|
130
|
+
/// let h: int = fbm_1d(50000, 4, 5000) // 4 octave noise at x=5.0
|
|
99
131
|
fn fbm_1d(x_fx: int, octaves: int, persistence_fx: int): int {
|
|
100
132
|
let value: int = 0;
|
|
101
133
|
let amplitude: int = 10000;
|
|
@@ -117,7 +149,15 @@ fn fbm_1d(x_fx: int, octaves: int, persistence_fx: int): int {
|
|
|
117
149
|
return value * 10000 / max_val;
|
|
118
150
|
}
|
|
119
151
|
|
|
120
|
-
|
|
152
|
+
/// 2D Fractal Brownian Motion — stacks multiple octaves of 2D value noise.
|
|
153
|
+
/// @since 1.0.0
|
|
154
|
+
/// @param x_fx X position ×10000
|
|
155
|
+
/// @param z_fx Z position ×10000
|
|
156
|
+
/// @param octaves Number of noise layers (1–6)
|
|
157
|
+
/// @param persistence_fx Amplitude decay per octave ×10000 (5000 = 0.5)
|
|
158
|
+
/// @returns Normalized noise value in approximately [0, 10000]
|
|
159
|
+
/// @example
|
|
160
|
+
/// let h: int = fbm_2d(30000, 50000, 3, 5000) // 3 octave 2D noise
|
|
121
161
|
fn fbm_2d(x_fx: int, z_fx: int, octaves: int, persistence_fx: int): int {
|
|
122
162
|
let value: int = 0;
|
|
123
163
|
let amplitude: int = 10000;
|
|
@@ -141,11 +181,15 @@ fn fbm_2d(x_fx: int, z_fx: int, octaves: int, persistence_fx: int): int {
|
|
|
141
181
|
|
|
142
182
|
// ─── Convenience: terrain height ─────────────────────────────────────────────
|
|
143
183
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
184
|
+
/// Generate a terrain height using 3-octave FBM noise.
|
|
185
|
+
/// @since 1.0.0
|
|
186
|
+
/// @param x Block X coordinate (integer, not fixed-point)
|
|
187
|
+
/// @param z Block Z coordinate (integer, not fixed-point)
|
|
188
|
+
/// @param base_y Baseline height in blocks
|
|
189
|
+
/// @param amplitude Maximum height variation above/below base_y in blocks
|
|
190
|
+
/// @returns Block height at (x, z): base_y + noise * amplitude / 10000
|
|
191
|
+
/// @example
|
|
192
|
+
/// let h: int = terrain_height(100, 200, 64, 16) // terrain at (100, 200) near y=64
|
|
149
193
|
fn terrain_height(x: int, z: int, base_y: int, amplitude: int): int {
|
|
150
194
|
// Scale x,z by ×10000 for fixed-point, divide by 4 for wider features
|
|
151
195
|
let noise: int = fbm_2d(x * 2500, z * 2500, 3, 5000);
|
package/src/stdlib/ode.mcrs
CHANGED
|
@@ -21,10 +21,24 @@
|
|
|
21
21
|
|
|
22
22
|
module library
|
|
23
23
|
|
|
24
|
+
/// Fixed-point multiplication: `a_fx * b_fx / 10000`.
|
|
25
|
+
///
|
|
26
|
+
/// @since 2.0.0
|
|
27
|
+
/// @param a_fx First operand ×10000
|
|
28
|
+
/// @param b_fx Second operand ×10000
|
|
29
|
+
/// @returns Product in ×10000 scale
|
|
24
30
|
fn ode_mul_fx(a_fx: int, b_fx: int): int {
|
|
25
31
|
return a_fx * b_fx / 10000
|
|
26
32
|
}
|
|
27
33
|
|
|
34
|
+
/// Compute the RK4 weighted increment: `h * (k1 + 2k2 + 2k3 + k4) / 6`.
|
|
35
|
+
///
|
|
36
|
+
/// All values are ×10000. The divisor 60000 = 6 × 10000.
|
|
37
|
+
///
|
|
38
|
+
/// @since 2.0.0
|
|
39
|
+
/// @param h_fx Step size ×10000
|
|
40
|
+
/// @param deriv_sum_fx `k1 + 2k2 + 2k3 + k4` in ×10000
|
|
41
|
+
/// @returns Weighted increment in ×10000
|
|
28
42
|
fn ode_weighted_increment(h_fx: int, deriv_sum_fx: int): int {
|
|
29
43
|
return h_fx * deriv_sum_fx / 60000
|
|
30
44
|
}
|
|
@@ -47,6 +61,17 @@ fn _ode_get_slot5(): int { raw("execute store result score $ret __OBJ__ run data
|
|
|
47
61
|
fn _ode_get_slot6(): int { raw("execute store result score $ret __OBJ__ run data get storage rs:ode state[6]"); raw("return 1"); return 0 }
|
|
48
62
|
fn _ode_get_slot7(): int { raw("execute store result score $ret __OBJ__ run data get storage rs:ode state[7]"); raw("return 1"); return 0 }
|
|
49
63
|
|
|
64
|
+
/// Initialise the ODE module state in `storage rs:ode`.
|
|
65
|
+
///
|
|
66
|
+
/// @since 2.0.0
|
|
67
|
+
/// @param system_id Built-in system constant (1=decay, 2=growth, 3=oscillator)
|
|
68
|
+
/// @param t_fx Initial time ×10000
|
|
69
|
+
/// @param y_fx Initial primary variable y(0) ×10000
|
|
70
|
+
/// @param y2_fx Initial secondary variable y'(0) ×10000 (for system 3)
|
|
71
|
+
/// @param k_fx Rate/spring constant ×10000
|
|
72
|
+
/// @param extra_fx Damping coefficient ×10000 (for system 3)
|
|
73
|
+
/// @example
|
|
74
|
+
/// ode_reset(1, 0, 10000, 0, 10000, 0)
|
|
50
75
|
fn ode_reset(system_id: int, t_fx: int, y_fx: int, y2_fx: int, k_fx: int, extra_fx: int) {
|
|
51
76
|
raw("data modify storage rs:ode state set value [0,0,0,0,0,0,0,0]")
|
|
52
77
|
_ode_set_slot0(system_id)
|
|
@@ -59,12 +84,46 @@ fn ode_reset(system_id: int, t_fx: int, y_fx: int, y2_fx: int, k_fx: int, extra_
|
|
|
59
84
|
_ode_set_slot7(0)
|
|
60
85
|
}
|
|
61
86
|
|
|
87
|
+
/// Return the current system ID from ODE state.
|
|
88
|
+
///
|
|
89
|
+
/// @since 2.0.0
|
|
90
|
+
/// @returns System ID stored in slot 0
|
|
62
91
|
fn ode_get_system(): int { return _ode_get_slot0() }
|
|
92
|
+
|
|
93
|
+
/// Return the current time `t` from ODE state (×10000).
|
|
94
|
+
///
|
|
95
|
+
/// @since 2.0.0
|
|
96
|
+
/// @returns Current time ×10000
|
|
63
97
|
fn ode_get_t(): int { return _ode_get_slot1() }
|
|
98
|
+
|
|
99
|
+
/// Return the current primary variable `y` from ODE state (×10000).
|
|
100
|
+
///
|
|
101
|
+
/// @since 2.0.0
|
|
102
|
+
/// @returns Current y value ×10000
|
|
64
103
|
fn ode_get_y(): int { return _ode_get_slot2() }
|
|
104
|
+
|
|
105
|
+
/// Return the current secondary variable `y'` from ODE state (×10000).
|
|
106
|
+
///
|
|
107
|
+
/// @since 2.0.0
|
|
108
|
+
/// @returns Current y' value ×10000 (meaningful for system 3 only)
|
|
65
109
|
fn ode_get_y2(): int { return _ode_get_slot3() }
|
|
110
|
+
|
|
111
|
+
/// Return the rate constant `k` from ODE state (×10000).
|
|
112
|
+
///
|
|
113
|
+
/// @since 2.0.0
|
|
114
|
+
/// @returns Rate constant ×10000
|
|
66
115
|
fn ode_get_k(): int { return _ode_get_slot4() }
|
|
116
|
+
|
|
117
|
+
/// Return the extra parameter from ODE state (×10000).
|
|
118
|
+
///
|
|
119
|
+
/// @since 2.0.0
|
|
120
|
+
/// @returns Extra parameter ×10000 (damping for system 3)
|
|
67
121
|
fn ode_get_extra(): int { return _ode_get_slot5() }
|
|
122
|
+
|
|
123
|
+
/// Return the number of steps taken so far.
|
|
124
|
+
///
|
|
125
|
+
/// @since 2.0.0
|
|
126
|
+
/// @returns Step count (plain integer)
|
|
68
127
|
fn ode_get_steps(): int { return _ode_get_slot6() }
|
|
69
128
|
|
|
70
129
|
// Scalar-system dispatcher helper matching the callback-free pattern.
|
|
@@ -100,6 +159,13 @@ fn ode_eval_y2(system_id: int, t_fx: int, y_fx: int, y2_fx: int, k_fx: int, extr
|
|
|
100
159
|
return 0
|
|
101
160
|
}
|
|
102
161
|
|
|
162
|
+
/// Advance the ODE state by one RK4 step of size `h_fx`.
|
|
163
|
+
///
|
|
164
|
+
/// Updates time `t`, primary variable `y` (and `y2` for system 3), and
|
|
165
|
+
/// increments the step counter in `storage rs:ode`.
|
|
166
|
+
///
|
|
167
|
+
/// @since 2.0.0
|
|
168
|
+
/// @param h_fx Step size ×10000 (e.g. `1000` = 0.1 time unit)
|
|
103
169
|
fn ode_step(h_fx: int) {
|
|
104
170
|
let system_id: int = ode_get_system()
|
|
105
171
|
let t_fx: int = ode_get_t()
|
|
@@ -149,6 +215,21 @@ fn ode_step(h_fx: int) {
|
|
|
149
215
|
_ode_set_slot6(step_count + 1)
|
|
150
216
|
}
|
|
151
217
|
|
|
218
|
+
/// Run `steps` RK4 steps of a scalar ODE system and store results in module state.
|
|
219
|
+
///
|
|
220
|
+
/// Built-in systems: `1` = exponential decay (`dy/dt = -k·y`),
|
|
221
|
+
/// `2` = exponential growth (`dy/dt = k·y`).
|
|
222
|
+
///
|
|
223
|
+
/// @since 2.0.0
|
|
224
|
+
/// @param system_id Built-in system constant (1 or 2 for scalar systems)
|
|
225
|
+
/// @param t0_fx Initial time ×10000
|
|
226
|
+
/// @param y0_fx Initial y value ×10000
|
|
227
|
+
/// @param h_fx Step size ×10000
|
|
228
|
+
/// @param steps Number of RK4 steps to execute
|
|
229
|
+
/// @param k_fx Rate constant ×10000
|
|
230
|
+
/// @example
|
|
231
|
+
/// ode_run(1, 0, 10000, 1000, 10, 10000)
|
|
232
|
+
/// let y: int = ode_get_y()
|
|
152
233
|
fn ode_run(system_id: int, t0_fx: int, y0_fx: int, h_fx: int, steps: int, k_fx: int) {
|
|
153
234
|
ode_reset(system_id, t0_fx, y0_fx, 0, k_fx, 0)
|
|
154
235
|
let i: int = 0
|
|
@@ -158,6 +239,21 @@ fn ode_run(system_id: int, t0_fx: int, y0_fx: int, h_fx: int, steps: int, k_fx:
|
|
|
158
239
|
}
|
|
159
240
|
}
|
|
160
241
|
|
|
242
|
+
/// Run `steps` RK4 steps of a 2D ODE system (e.g. harmonic oscillator).
|
|
243
|
+
///
|
|
244
|
+
/// Built-in system 3: `y' = y2`, `y2' = -k·y - extra·y2`.
|
|
245
|
+
///
|
|
246
|
+
/// @since 2.0.0
|
|
247
|
+
/// @param system_id Built-in system constant (use `3` for harmonic oscillator)
|
|
248
|
+
/// @param t0_fx Initial time ×10000
|
|
249
|
+
/// @param y0_fx Initial y value ×10000
|
|
250
|
+
/// @param y20_fx Initial y' value ×10000
|
|
251
|
+
/// @param h_fx Step size ×10000
|
|
252
|
+
/// @param steps Number of RK4 steps to execute
|
|
253
|
+
/// @param k_fx Spring constant ×10000
|
|
254
|
+
/// @param extra_fx Damping coefficient ×10000
|
|
255
|
+
/// @example
|
|
256
|
+
/// ode_run2(3, 0, 10000, 0, 1000, 20, 10000, 500)
|
|
161
257
|
fn ode_run2(system_id: int, t0_fx: int, y0_fx: int, y20_fx: int, h_fx: int, steps: int, k_fx: int, extra_fx: int) {
|
|
162
258
|
ode_reset(system_id, t0_fx, y0_fx, y20_fx, k_fx, extra_fx)
|
|
163
259
|
let i: int = 0
|