warscript 0.0.1-dev.404878c
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/LICENSE +23 -0
- package/binaryreader.d.ts +20 -0
- package/binaryreader.lua +50 -0
- package/binarywriter.d.ts +21 -0
- package/binarywriter.lua +90 -0
- package/core/dummy.d.ts +22 -0
- package/core/dummy.lua +133 -0
- package/core/game.d.ts +3 -0
- package/core/game.lua +24 -0
- package/core/mapbounds.d.ts +8 -0
- package/core/mapbounds.lua +12 -0
- package/core/thread.d.ts +8 -0
- package/core/thread.lua +40 -0
- package/core/types/ability.d.ts +4 -0
- package/core/types/ability.lua +10 -0
- package/core/types/async.d.ts +3 -0
- package/core/types/async.lua +2 -0
- package/core/types/camera.d.ts +4 -0
- package/core/types/camera.lua +21 -0
- package/core/types/cameraField.d.ts +15 -0
- package/core/types/cameraField.lua +38 -0
- package/core/types/color.d.ts +16 -0
- package/core/types/color.lua +93 -0
- package/core/types/destructable.d.ts +31 -0
- package/core/types/destructable.lua +245 -0
- package/core/types/effect.d.ts +31 -0
- package/core/types/effect.lua +209 -0
- package/core/types/frame.d.ts +140 -0
- package/core/types/frame.lua +882 -0
- package/core/types/game.d.ts +8 -0
- package/core/types/game.lua +41 -0
- package/core/types/group.d.ts +22 -0
- package/core/types/group.lua +94 -0
- package/core/types/handle.d.ts +48 -0
- package/core/types/handle.lua +169 -0
- package/core/types/image.d.ts +30 -0
- package/core/types/image.lua +121 -0
- package/core/types/internal/ability+cooldownRemaining.d.ts +1 -0
- package/core/types/internal/ability+cooldownRemaining.lua +0 -0
- package/core/types/item.d.ts +4 -0
- package/core/types/item.lua +6 -0
- package/core/types/missile.d.ts +22 -0
- package/core/types/missile.lua +233 -0
- package/core/types/order.d.ts +25 -0
- package/core/types/order.lua +55 -0
- package/core/types/player.d.ts +71 -0
- package/core/types/player.lua +448 -0
- package/core/types/playerCamera.d.ts +32 -0
- package/core/types/playerCamera.lua +162 -0
- package/core/types/playerColor.d.ts +40 -0
- package/core/types/playerColor.lua +203 -0
- package/core/types/rect.d.ts +39 -0
- package/core/types/rect.lua +152 -0
- package/core/types/region.d.ts +14 -0
- package/core/types/region.lua +84 -0
- package/core/types/sound.d.ts +69 -0
- package/core/types/sound.lua +247 -0
- package/core/types/tileCell.d.ts +13 -0
- package/core/types/tileCell.lua +100 -0
- package/core/types/timer.d.ts +36 -0
- package/core/types/timer.lua +230 -0
- package/core/types/timerDialog.d.ts +19 -0
- package/core/types/timerDialog.lua +95 -0
- package/core/types/unit.d.ts +10 -0
- package/core/types/unit.lua +24 -0
- package/core/types/widget.d.ts +5 -0
- package/core/types/widget.lua +2 -0
- package/core/util.d.ts +62 -0
- package/core/util.lua +464 -0
- package/core/vecmath/common.d.ts +18 -0
- package/core/vecmath/common.lua +29 -0
- package/core/vecmath/mat2.d.ts +73 -0
- package/core/vecmath/mat2.lua +261 -0
- package/core/vecmath/vec3.d.ts +47 -0
- package/core/vecmath/vec3.lua +350 -0
- package/core/vecmath/vec4.d.ts +54 -0
- package/core/vecmath/vec4.lua +400 -0
- package/crypto/ecc.d.ts +6 -0
- package/crypto/ecc.lua +1734 -0
- package/decl/index.d.ts +116 -0
- package/decl/native.d.ts +8198 -0
- package/destroyable.d.ts +20 -0
- package/destroyable.lua +31 -0
- package/engine/ability.d.ts +5 -0
- package/engine/ability.lua +7 -0
- package/engine/behavior.d.ts +28 -0
- package/engine/behavior.lua +181 -0
- package/engine/behaviour/ability/apply-buff.d.ts +38 -0
- package/engine/behaviour/ability/apply-buff.lua +126 -0
- package/engine/behaviour/ability/apply-unit-behavior.d.ts +12 -0
- package/engine/behaviour/ability/apply-unit-behavior.lua +36 -0
- package/engine/behaviour/ability/damage.d.ts +25 -0
- package/engine/behaviour/ability/damage.lua +75 -0
- package/engine/behaviour/ability/heal.d.ts +16 -0
- package/engine/behaviour/ability/heal.lua +35 -0
- package/engine/behaviour/ability/instant-impact.d.ts +6 -0
- package/engine/behaviour/ability/instant-impact.lua +25 -0
- package/engine/behaviour/ability.d.ts +40 -0
- package/engine/behaviour/ability.lua +175 -0
- package/engine/behaviour/unit/stun-immunity.d.ts +19 -0
- package/engine/behaviour/unit/stun-immunity.lua +67 -0
- package/engine/behaviour/unit.d.ts +20 -0
- package/engine/behaviour/unit.lua +75 -0
- package/engine/buff.d.ts +221 -0
- package/engine/buff.lua +1093 -0
- package/engine/constants.d.ts +7 -0
- package/engine/constants.lua +8 -0
- package/engine/index.d.ts +5 -0
- package/engine/index.lua +2 -0
- package/engine/internal/ability.d.ts +91 -0
- package/engine/internal/ability.lua +531 -0
- package/engine/internal/item/ability.d.ts +2 -0
- package/engine/internal/item/ability.lua +48 -0
- package/engine/internal/item+owner.d.ts +7 -0
- package/engine/internal/item+owner.lua +22 -0
- package/engine/internal/item.d.ts +86 -0
- package/engine/internal/item.lua +580 -0
- package/engine/internal/mechanics/ability-duration.d.ts +4 -0
- package/engine/internal/mechanics/ability-duration.lua +11 -0
- package/engine/internal/mechanics/area-damage.d.ts +2 -0
- package/engine/internal/mechanics/area-damage.lua +33 -0
- package/engine/internal/misc/dummy-units.d.ts +2 -0
- package/engine/internal/misc/dummy-units.lua +14 -0
- package/engine/internal/object-data/armor-increase.d.ts +2 -0
- package/engine/internal/object-data/armor-increase.lua +19 -0
- package/engine/internal/object-data/attribute-bonus.d.ts +2 -0
- package/engine/internal/object-data/attribute-bonus.lua +15 -0
- package/engine/internal/object-data/auto-attack-damage-increase.d.ts +2 -0
- package/engine/internal/object-data/auto-attack-damage-increase.lua +17 -0
- package/engine/internal/object-data/auto-attack-speed-increase.d.ts +2 -0
- package/engine/internal/object-data/auto-attack-speed-increase.lua +14 -0
- package/engine/internal/object-data/dummy-inventory.d.ts +2 -0
- package/engine/internal/object-data/dummy-inventory.lua +16 -0
- package/engine/internal/object-data/dummy-item.d.ts +2 -0
- package/engine/internal/object-data/dummy-item.lua +10 -0
- package/engine/internal/object-data/ghost-visible.d.ts +2 -0
- package/engine/internal/object-data/ghost-visible.lua +15 -0
- package/engine/internal/object-data/invulnerable.d.ts +2 -0
- package/engine/internal/object-data/invulnerable.lua +11 -0
- package/engine/internal/object-data/movement-speed-increase-factor.d.ts +2 -0
- package/engine/internal/object-data/movement-speed-increase-factor.lua +18 -0
- package/engine/internal/unit/ability.d.ts +143 -0
- package/engine/internal/unit/ability.lua +369 -0
- package/engine/internal/unit/allowed-targets.d.ts +17 -0
- package/engine/internal/unit/allowed-targets.lua +19 -0
- package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.d.ts +2 -0
- package/engine/internal/unit/band-aids/ancestral-spirit-cannibalize.lua +21 -0
- package/engine/internal/unit/bonus.d.ts +41 -0
- package/engine/internal/unit/bonus.lua +188 -0
- package/engine/internal/unit/buff.d.ts +38 -0
- package/engine/internal/unit/buff.lua +81 -0
- package/engine/internal/unit/expiration-timer.d.ts +22 -0
- package/engine/internal/unit/expiration-timer.lua +44 -0
- package/engine/internal/unit/ghost-counter.d.ts +12 -0
- package/engine/internal/unit/ghost-counter.lua +26 -0
- package/engine/internal/unit/invulnerability-counter.d.ts +12 -0
- package/engine/internal/unit/invulnerability-counter.lua +26 -0
- package/engine/internal/unit/missile.d.ts +42 -0
- package/engine/internal/unit/missile.lua +70 -0
- package/engine/internal/unit/movement-speed.d.ts +18 -0
- package/engine/internal/unit/movement-speed.lua +42 -0
- package/engine/internal/unit/summon-event.d.ts +12 -0
- package/engine/internal/unit/summon-event.lua +50 -0
- package/engine/internal/unit+ability.d.ts +9 -0
- package/engine/internal/unit+ability.lua +59 -0
- package/engine/internal/unit+bonus.d.ts +8 -0
- package/engine/internal/unit+bonus.lua +40 -0
- package/engine/internal/unit+damage.d.ts +69 -0
- package/engine/internal/unit+damage.lua +123 -0
- package/engine/internal/unit+rally.d.ts +10 -0
- package/engine/internal/unit+rally.lua +159 -0
- package/engine/internal/unit+spellSteal.d.ts +7 -0
- package/engine/internal/unit+spellSteal.lua +64 -0
- package/engine/internal/unit+transport.d.ts +12 -0
- package/engine/internal/unit+transport.lua +102 -0
- package/engine/internal/unit-missile-data.d.ts +2 -0
- package/engine/internal/unit-missile-data.lua +107 -0
- package/engine/internal/unit-missile-launch.d.ts +7 -0
- package/engine/internal/unit-missile-launch.lua +32 -0
- package/engine/internal/unit.d.ts +312 -0
- package/engine/internal/unit.lua +2430 -0
- package/engine/internal/utility.d.ts +2 -0
- package/engine/internal/utility.lua +13 -0
- package/engine/lightning.d.ts +51 -0
- package/engine/lightning.lua +303 -0
- package/engine/local-client.d.ts +16 -0
- package/engine/local-client.lua +86 -0
- package/engine/object-data/auxiliary/animation-name.d.ts +14 -0
- package/engine/object-data/auxiliary/animation-name.lua +2 -0
- package/engine/object-data/auxiliary/animation-qualifier.d.ts +53 -0
- package/engine/object-data/auxiliary/animation-qualifier.lua +2 -0
- package/engine/object-data/auxiliary/armor-sound-type.d.ts +8 -0
- package/engine/object-data/auxiliary/armor-sound-type.lua +2 -0
- package/engine/object-data/auxiliary/attachment-preset.d.ts +15 -0
- package/engine/object-data/auxiliary/attachment-preset.lua +29 -0
- package/engine/object-data/auxiliary/attack-type.d.ts +11 -0
- package/engine/object-data/auxiliary/attack-type.lua +2 -0
- package/engine/object-data/auxiliary/buff-polarity.d.ts +6 -0
- package/engine/object-data/auxiliary/buff-polarity.lua +2 -0
- package/engine/object-data/auxiliary/buff-resistance-type.d.ts +6 -0
- package/engine/object-data/auxiliary/buff-resistance-type.lua +2 -0
- package/engine/object-data/auxiliary/combat-classification.d.ts +46 -0
- package/engine/object-data/auxiliary/combat-classification.lua +206 -0
- package/engine/object-data/auxiliary/detection-type.d.ts +7 -0
- package/engine/object-data/auxiliary/detection-type.lua +2 -0
- package/engine/object-data/auxiliary/model-node-name.d.ts +12 -0
- package/engine/object-data/auxiliary/model-node-name.lua +2 -0
- package/engine/object-data/auxiliary/model-node-qualifier.d.ts +21 -0
- package/engine/object-data/auxiliary/model-node-qualifier.lua +2 -0
- package/engine/object-data/auxiliary/movement-type.d.ts +10 -0
- package/engine/object-data/auxiliary/movement-type.lua +2 -0
- package/engine/object-data/auxiliary/race.d.ts +14 -0
- package/engine/object-data/auxiliary/race.lua +2 -0
- package/engine/object-data/auxiliary/sound-preset-name.d.ts +8 -0
- package/engine/object-data/auxiliary/sound-preset-name.lua +2 -0
- package/engine/object-data/auxiliary/sound-set-name.d.ts +35 -0
- package/engine/object-data/auxiliary/sound-set-name.lua +2 -0
- package/engine/object-data/auxiliary/targeting-type.d.ts +8 -0
- package/engine/object-data/auxiliary/targeting-type.lua +2 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.d.ts +16 -0
- package/engine/object-data/auxiliary/tech-tree-dependency.lua +8 -0
- package/engine/object-data/auxiliary/unit-classification.d.ts +19 -0
- package/engine/object-data/auxiliary/unit-classification.lua +50 -0
- package/engine/object-data/auxiliary/weapon-sound-type.d.ts +17 -0
- package/engine/object-data/auxiliary/weapon-sound-type.lua +2 -0
- package/engine/object-data/entry/ability-type/armor-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/armor-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/attribute-increase.d.ts +12 -0
- package/engine/object-data/entry/ability-type/attribute-increase.lua +52 -0
- package/engine/object-data/entry/ability-type/auto-attack-damage-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/auto-attack-damage-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.d.ts +12 -0
- package/engine/object-data/entry/ability-type/auto-attack-heal-reduction-effect.lua +52 -0
- package/engine/object-data/entry/ability-type/auto-attack-speed-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/auto-attack-speed-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/bash.d.ts +16 -0
- package/engine/object-data/entry/ability-type/bash.lua +78 -0
- package/engine/object-data/entry/ability-type/berserk.d.ts +10 -0
- package/engine/object-data/entry/ability-type/berserk.lua +39 -0
- package/engine/object-data/entry/ability-type/blank-configurable.d.ts +21 -0
- package/engine/object-data/entry/ability-type/blank-configurable.lua +249 -0
- package/engine/object-data/entry/ability-type/blank-passive.d.ts +7 -0
- package/engine/object-data/entry/ability-type/blank-passive.lua +28 -0
- package/engine/object-data/entry/ability-type/blizzard.d.ts +16 -0
- package/engine/object-data/entry/ability-type/blizzard.lua +78 -0
- package/engine/object-data/entry/ability-type/blood-lust.d.ts +12 -0
- package/engine/object-data/entry/ability-type/blood-lust.lua +52 -0
- package/engine/object-data/entry/ability-type/chain-lightning.d.ts +12 -0
- package/engine/object-data/entry/ability-type/chain-lightning.lua +52 -0
- package/engine/object-data/entry/ability-type/channel.d.ts +48 -0
- package/engine/object-data/entry/ability-type/channel.lua +140 -0
- package/engine/object-data/entry/ability-type/charge-gold-and-lumber.d.ts +14 -0
- package/engine/object-data/entry/ability-type/charge-gold-and-lumber.lua +65 -0
- package/engine/object-data/entry/ability-type/cleaving-attack.d.ts +8 -0
- package/engine/object-data/entry/ability-type/cleaving-attack.lua +26 -0
- package/engine/object-data/entry/ability-type/cluster-rockets.d.ts +18 -0
- package/engine/object-data/entry/ability-type/cluster-rockets.lua +91 -0
- package/engine/object-data/entry/ability-type/cripple.d.ts +12 -0
- package/engine/object-data/entry/ability-type/cripple.lua +52 -0
- package/engine/object-data/entry/ability-type/critical-strike.d.ts +18 -0
- package/engine/object-data/entry/ability-type/critical-strike.lua +91 -0
- package/engine/object-data/entry/ability-type/curse.d.ts +8 -0
- package/engine/object-data/entry/ability-type/curse.lua +26 -0
- package/engine/object-data/entry/ability-type/dark-summoning.d.ts +10 -0
- package/engine/object-data/entry/ability-type/dark-summoning.lua +39 -0
- package/engine/object-data/entry/ability-type/death-coil.d.ts +8 -0
- package/engine/object-data/entry/ability-type/death-coil.lua +26 -0
- package/engine/object-data/entry/ability-type/disease-cloud.d.ts +15 -0
- package/engine/object-data/entry/ability-type/disease-cloud.lua +65 -0
- package/engine/object-data/entry/ability-type/divine-shield.d.ts +5 -0
- package/engine/object-data/entry/ability-type/divine-shield.lua +12 -0
- package/engine/object-data/entry/ability-type/endurance-aura.d.ts +10 -0
- package/engine/object-data/entry/ability-type/endurance-aura.lua +39 -0
- package/engine/object-data/entry/ability-type/engineering-upgrade.d.ts +13 -0
- package/engine/object-data/entry/ability-type/engineering-upgrade.lua +88 -0
- package/engine/object-data/entry/ability-type/evasion.d.ts +8 -0
- package/engine/object-data/entry/ability-type/evasion.lua +26 -0
- package/engine/object-data/entry/ability-type/faerie-fire.d.ts +10 -0
- package/engine/object-data/entry/ability-type/faerie-fire.lua +39 -0
- package/engine/object-data/entry/ability-type/far-sight.d.ts +9 -0
- package/engine/object-data/entry/ability-type/far-sight.lua +26 -0
- package/engine/object-data/entry/ability-type/feral-spirit.d.ts +11 -0
- package/engine/object-data/entry/ability-type/feral-spirit.lua +39 -0
- package/engine/object-data/entry/ability-type/frenzy.d.ts +12 -0
- package/engine/object-data/entry/ability-type/frenzy.lua +52 -0
- package/engine/object-data/entry/ability-type/frost-nova.d.ts +12 -0
- package/engine/object-data/entry/ability-type/frost-nova.lua +52 -0
- package/engine/object-data/entry/ability-type/ghost-visible.d.ts +10 -0
- package/engine/object-data/entry/ability-type/ghost-visible.lua +39 -0
- package/engine/object-data/entry/ability-type/gold-mine.d.ts +12 -0
- package/engine/object-data/entry/ability-type/gold-mine.lua +52 -0
- package/engine/object-data/entry/ability-type/heal.d.ts +8 -0
- package/engine/object-data/entry/ability-type/heal.lua +26 -0
- package/engine/object-data/entry/ability-type/healing-salve.d.ts +22 -0
- package/engine/object-data/entry/ability-type/healing-salve.lua +78 -0
- package/engine/object-data/entry/ability-type/healing-spray.d.ts +18 -0
- package/engine/object-data/entry/ability-type/healing-spray.lua +91 -0
- package/engine/object-data/entry/ability-type/healing-wave.d.ts +12 -0
- package/engine/object-data/entry/ability-type/healing-wave.lua +52 -0
- package/engine/object-data/entry/ability-type/holy-light.d.ts +8 -0
- package/engine/object-data/entry/ability-type/holy-light.lua +26 -0
- package/engine/object-data/entry/ability-type/incinerate.d.ts +18 -0
- package/engine/object-data/entry/ability-type/incinerate.lua +91 -0
- package/engine/object-data/entry/ability-type/inner-fire.d.ts +14 -0
- package/engine/object-data/entry/ability-type/inner-fire.lua +65 -0
- package/engine/object-data/entry/ability-type/inventory.d.ts +16 -0
- package/engine/object-data/entry/ability-type/inventory.lua +78 -0
- package/engine/object-data/entry/ability-type/invulnerable.d.ts +5 -0
- package/engine/object-data/entry/ability-type/invulnerable.lua +12 -0
- package/engine/object-data/entry/ability-type/lightning-shield.d.ts +8 -0
- package/engine/object-data/entry/ability-type/lightning-shield.lua +26 -0
- package/engine/object-data/entry/ability-type/movement-speed-increase.d.ts +8 -0
- package/engine/object-data/entry/ability-type/movement-speed-increase.lua +26 -0
- package/engine/object-data/entry/ability-type/permanent-immolation.d.ts +8 -0
- package/engine/object-data/entry/ability-type/permanent-immolation.lua +26 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.d.ts +25 -0
- package/engine/object-data/entry/ability-type/phoenix-morph.lua +130 -0
- package/engine/object-data/entry/ability-type/recall.d.ts +10 -0
- package/engine/object-data/entry/ability-type/recall.lua +39 -0
- package/engine/object-data/entry/ability-type/rejuvenation.d.ts +20 -0
- package/engine/object-data/entry/ability-type/rejuvenation.lua +65 -0
- package/engine/object-data/entry/ability-type/searing-arrows.d.ts +8 -0
- package/engine/object-data/entry/ability-type/searing-arrows.lua +26 -0
- package/engine/object-data/entry/ability-type/shock-wave.d.ts +10 -0
- package/engine/object-data/entry/ability-type/shock-wave.lua +39 -0
- package/engine/object-data/entry/ability-type/slow-poison.d.ts +12 -0
- package/engine/object-data/entry/ability-type/slow-poison.lua +52 -0
- package/engine/object-data/entry/ability-type/slow.d.ts +12 -0
- package/engine/object-data/entry/ability-type/slow.lua +52 -0
- package/engine/object-data/entry/ability-type/spell-damage-reduction.d.ts +10 -0
- package/engine/object-data/entry/ability-type/spell-damage-reduction.lua +39 -0
- package/engine/object-data/entry/ability-type/spiked-carapace.d.ts +12 -0
- package/engine/object-data/entry/ability-type/spiked-carapace.lua +52 -0
- package/engine/object-data/entry/ability-type/spirit-touch.d.ts +14 -0
- package/engine/object-data/entry/ability-type/spirit-touch.lua +65 -0
- package/engine/object-data/entry/ability-type/storm-bolt.d.ts +8 -0
- package/engine/object-data/entry/ability-type/storm-bolt.lua +26 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.d.ts +11 -0
- package/engine/object-data/entry/ability-type/summon-quilbeast.lua +39 -0
- package/engine/object-data/entry/ability-type/summon-water-elemental.d.ts +11 -0
- package/engine/object-data/entry/ability-type/summon-water-elemental.lua +39 -0
- package/engine/object-data/entry/ability-type.d.ts +148 -0
- package/engine/object-data/entry/ability-type.lua +1058 -0
- package/engine/object-data/entry/buff-type/applicable.d.ts +16 -0
- package/engine/object-data/entry/buff-type/applicable.lua +377 -0
- package/engine/object-data/entry/buff-type/blank.d.ts +8 -0
- package/engine/object-data/entry/buff-type/blank.lua +17 -0
- package/engine/object-data/entry/buff-type.d.ts +64 -0
- package/engine/object-data/entry/buff-type.lua +316 -0
- package/engine/object-data/entry/destructible-type.d.ts +21 -0
- package/engine/object-data/entry/destructible-type.lua +83 -0
- package/engine/object-data/entry/item-type/blank.d.ts +8 -0
- package/engine/object-data/entry/item-type/blank.lua +21 -0
- package/engine/object-data/entry/item-type.d.ts +49 -0
- package/engine/object-data/entry/item-type.lua +259 -0
- package/engine/object-data/entry/lightning-type.d.ts +37 -0
- package/engine/object-data/entry/lightning-type.lua +191 -0
- package/engine/object-data/entry/unit-type/blank.d.ts +6 -0
- package/engine/object-data/entry/unit-type/blank.lua +13 -0
- package/engine/object-data/entry/unit-type.d.ts +218 -0
- package/engine/object-data/entry/unit-type.lua +1306 -0
- package/engine/object-data/entry/upgrade/blank.d.ts +8 -0
- package/engine/object-data/entry/upgrade/blank.lua +22 -0
- package/engine/object-data/entry/upgrade.d.ts +59 -0
- package/engine/object-data/entry/upgrade.lua +238 -0
- package/engine/object-data/entry.d.ts +80 -0
- package/engine/object-data/entry.lua +634 -0
- package/engine/object-data/utility/object-data-entry-id-generator.d.ts +6 -0
- package/engine/object-data/utility/object-data-entry-id-generator.lua +63 -0
- package/engine/object-data/utility/order-type-string-id-factory.d.ts +9 -0
- package/engine/object-data/utility/order-type-string-id-factory.lua +368 -0
- package/engine/object-field/ability.d.ts +115 -0
- package/engine/object-field/ability.lua +471 -0
- package/engine/object-field/unit.d.ts +15 -0
- package/engine/object-field/unit.lua +49 -0
- package/engine/object-field.d.ts +84 -0
- package/engine/object-field.lua +444 -0
- package/engine/random.d.ts +10 -0
- package/engine/random.lua +9 -0
- package/engine/standard/entries/ability-type.d.ts +8 -0
- package/engine/standard/entries/ability-type.lua +8 -0
- package/engine/standard/entries/lightning-type.d.ts +16 -0
- package/engine/standard/entries/lightning-type.lua +16 -0
- package/engine/standard/entries/unit-type.d.ts +63 -0
- package/engine/standard/entries/unit-type.lua +63 -0
- package/engine/standard/entries/upgrade.d.ts +92 -0
- package/engine/standard/entries/upgrade.lua +92 -0
- package/engine/standard/fields/ability.d.ts +737 -0
- package/engine/standard/fields/ability.lua +749 -0
- package/engine/standard/pathing-textures.d.ts +6 -0
- package/engine/standard/pathing-textures.lua +7 -0
- package/engine/text-tag.d.ts +25 -0
- package/engine/text-tag.lua +109 -0
- package/engine/unit.d.ts +20 -0
- package/engine/unit.lua +31 -0
- package/event.d.ts +53 -0
- package/event.lua +269 -0
- package/exception.d.ts +17 -0
- package/exception.lua +53 -0
- package/file.d.ts +4 -0
- package/file.lua +42 -0
- package/global/math.d.ts +21 -0
- package/global/math.lua +72 -0
- package/global/vec2.d.ts +66 -0
- package/global/vec2.lua +159 -0
- package/index.d.ts +8 -0
- package/index.lua +9 -0
- package/lualib_bundle.lua +2629 -0
- package/math/vec2.d.ts +18 -0
- package/math/vec2.lua +42 -0
- package/math.d.ts +39 -0
- package/math.lua +91 -0
- package/net/signal.d.ts +11 -0
- package/net/signal.lua +56 -0
- package/net/socket.d.ts +9 -0
- package/net/socket.lua +26 -0
- package/network.d.ts +31 -0
- package/network.lua +194 -0
- package/objutil/ability.d.ts +710 -0
- package/objutil/ability.lua +3781 -0
- package/objutil/buff.d.ts +110 -0
- package/objutil/buff.lua +769 -0
- package/objutil/dummy.d.ts +2 -0
- package/objutil/dummy.lua +49 -0
- package/objutil/idgen.d.ts +9 -0
- package/objutil/idgen.lua +92 -0
- package/objutil/item.d.ts +38 -0
- package/objutil/item.lua +254 -0
- package/objutil/object.d.ts +43 -0
- package/objutil/object.lua +213 -0
- package/objutil/unit.d.ts +134 -0
- package/objutil/unit.lua +913 -0
- package/objutil/upgrade.d.ts +22 -0
- package/objutil/upgrade.lua +127 -0
- package/operation.d.ts +35 -0
- package/operation.lua +179 -0
- package/package.json +47 -0
- package/patch-lualib.d.ts +2 -0
- package/patch-lualib.lua +67 -0
- package/patch-natives.d.ts +11 -0
- package/patch-natives.lua +14 -0
- package/string.d.ts +106 -0
- package/string.lua +34 -0
- package/time/dayOfWeek.d.ts +97 -0
- package/time/dayOfWeek.lua +53 -0
- package/time/localDate.d.ts +145 -0
- package/time/localDate.lua +236 -0
- package/time/localDateTime.d.ts +133 -0
- package/time/localDateTime.lua +154 -0
- package/time/localTime.d.ts +87 -0
- package/time/localTime.lua +91 -0
- package/time/month.d.ts +146 -0
- package/time/month.lua +129 -0
- package/time/year.d.ts +117 -0
- package/time/year.lua +81 -0
- package/types.d.ts +13 -0
- package/types.lua +0 -0
- package/util/objectPool.d.ts +6 -0
- package/util/objectPool.lua +28 -0
- package/util/stream.d.ts +29 -0
- package/util/stream.lua +453 -0
- package/util/stringBuilder.d.ts +8 -0
- package/util/stringBuilder.lua +25 -0
- package/utility/arrays.d.ts +57 -0
- package/utility/arrays.lua +369 -0
- package/utility/base64.d.ts +23 -0
- package/utility/base64.lua +177 -0
- package/utility/bit-set.d.ts +18 -0
- package/utility/bit-set.lua +12 -0
- package/utility/functions.d.ts +5 -0
- package/utility/functions.lua +90 -0
- package/utility/json.d.ts +2 -0
- package/utility/json.lua +400 -0
- package/utility/linked-set.d.ts +49 -0
- package/utility/linked-set.lua +181 -0
- package/utility/lua-maps.d.ts +6 -0
- package/utility/lua-maps.lua +25 -0
- package/utility/lua-sets.d.ts +6 -0
- package/utility/lua-sets.lua +37 -0
- package/utility/lzw.d.ts +2 -0
- package/utility/lzw.lua +161 -0
- package/utility/observable-array.d.ts +17 -0
- package/utility/observable-array.lua +30 -0
- package/utility/preconditions.d.ts +23 -0
- package/utility/preconditions.lua +58 -0
- package/utility/records.d.ts +3 -0
- package/utility/records.lua +9 -0
- package/utility/reflection.d.ts +4 -0
- package/utility/reflection.lua +31 -0
- package/utility/strings.d.ts +2 -0
- package/utility/strings.lua +44 -0
- package/utility/types.d.ts +39 -0
- package/utility/types.lua +2 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { BinaryReader } from "../binaryreader";
|
|
3
|
+
import { BinaryWriter } from "../binarywriter";
|
|
4
|
+
/**
|
|
5
|
+
* A day-of-week, such as 'Tuesday'.
|
|
6
|
+
* <p>
|
|
7
|
+
* {@code DayOfWeek} is a class representing the 7 days of the week -
|
|
8
|
+
* Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
|
|
9
|
+
* <p>
|
|
10
|
+
* This class represents a common concept that is found in many calendar systems.
|
|
11
|
+
* As such, this class may be used by any calendar system that has the day-of-week
|
|
12
|
+
* concept defined exactly equivalent to the ISO calendar system.
|
|
13
|
+
*/
|
|
14
|
+
export declare class DayOfWeek {
|
|
15
|
+
readonly value: number;
|
|
16
|
+
/**
|
|
17
|
+
* The singleton instance for the day-of-week of Monday.
|
|
18
|
+
* This has the numeric value of {@code 1}.
|
|
19
|
+
*/
|
|
20
|
+
static readonly MONDAY: DayOfWeek;
|
|
21
|
+
/**
|
|
22
|
+
* The singleton instance for the day-of-week of Tuesday.
|
|
23
|
+
* This has the numeric value of {@code 2}.
|
|
24
|
+
*/
|
|
25
|
+
static readonly TUESDAY: DayOfWeek;
|
|
26
|
+
/**
|
|
27
|
+
* The singleton instance for the day-of-week of Wednesday.
|
|
28
|
+
* This has the numeric value of {@code 3}.
|
|
29
|
+
*/
|
|
30
|
+
static readonly WEDNESDAY: DayOfWeek;
|
|
31
|
+
/**
|
|
32
|
+
* The singleton instance for the day-of-week of Thursday.
|
|
33
|
+
* This has the numeric value of {@code 4}.
|
|
34
|
+
*/
|
|
35
|
+
static readonly THURSDAY: DayOfWeek;
|
|
36
|
+
/**
|
|
37
|
+
* The singleton instance for the day-of-week of Friday.
|
|
38
|
+
* This has the numeric value of {@code 5}.
|
|
39
|
+
*/
|
|
40
|
+
static readonly FRIDAY: DayOfWeek;
|
|
41
|
+
/**
|
|
42
|
+
* The singleton instance for the day-of-week of Saturday.
|
|
43
|
+
* This has the numeric value of {@code 6}.
|
|
44
|
+
*/
|
|
45
|
+
static readonly SATURDAY: DayOfWeek;
|
|
46
|
+
/**
|
|
47
|
+
* The singleton instance for the day-of-week of Sunday.
|
|
48
|
+
* This has the numeric value of {@code 7}.
|
|
49
|
+
*/
|
|
50
|
+
static readonly SUNDAY: DayOfWeek;
|
|
51
|
+
private constructor();
|
|
52
|
+
/**
|
|
53
|
+
* Obtains an instance of {@code DayOfWeek} from an {@code int} value.
|
|
54
|
+
* <p>
|
|
55
|
+
* {@code DayOfWeek} is a class representing the 7 days of the week.
|
|
56
|
+
* This factory allows the class to be obtained from the {@code int} value.
|
|
57
|
+
* The {@code int} value follows the ISO-8601 standard, from 1 (Monday) to 7 (Sunday).
|
|
58
|
+
*
|
|
59
|
+
* @param dayOfWeek the day-of-week to represent, from 1 (Monday) to 7 (Sunday)
|
|
60
|
+
* @return the day-of-week singleton
|
|
61
|
+
*/
|
|
62
|
+
static of(dayOfWeek: number): DayOfWeek;
|
|
63
|
+
static deserialize(reader: BinaryReader): DayOfWeek;
|
|
64
|
+
serialize(writer: BinaryWriter): void;
|
|
65
|
+
/**
|
|
66
|
+
* Returns the day-of-week that is the specified number of days after this one.
|
|
67
|
+
* <p>
|
|
68
|
+
* The calculation rolls around the end of the week from Sunday to Monday.
|
|
69
|
+
* The specified period may be negative.
|
|
70
|
+
* <p>
|
|
71
|
+
* This instance is immutable and unaffected by this method call.
|
|
72
|
+
*
|
|
73
|
+
* @param days the days to add, positive or negative
|
|
74
|
+
* @return the resulting day-of-week
|
|
75
|
+
*/
|
|
76
|
+
plus(days: number): DayOfWeek;
|
|
77
|
+
/**
|
|
78
|
+
* Returns the day-of-week that is the specified number of days before this one.
|
|
79
|
+
* <p>
|
|
80
|
+
* The calculation rolls around the start of the year from Monday to Sunday.
|
|
81
|
+
* The specified period may be negative.
|
|
82
|
+
* <p>
|
|
83
|
+
* This instance is immutable and unaffected by this method call.
|
|
84
|
+
*
|
|
85
|
+
* @param days the days to subtract, positive or negative
|
|
86
|
+
* @return the resulting day-of-week
|
|
87
|
+
*/
|
|
88
|
+
minus(days: number): DayOfWeek;
|
|
89
|
+
/**
|
|
90
|
+
* Outputs this day-of-week as a {@code string}.
|
|
91
|
+
*
|
|
92
|
+
* @return a string representation of this day-of-week
|
|
93
|
+
*/
|
|
94
|
+
toString(): string;
|
|
95
|
+
private __lt;
|
|
96
|
+
private __le;
|
|
97
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local ____exports = {}
|
|
5
|
+
local cache = setmetatable({}, {__mode = "v"})
|
|
6
|
+
--- A day-of-week, such as 'Tuesday'.
|
|
7
|
+
-- <p>
|
|
8
|
+
-- {@code DayOfWeek} is a class representing the 7 days of the week -
|
|
9
|
+
-- Monday, Tuesday, Wednesday, Thursday, Friday, Saturday and Sunday.
|
|
10
|
+
-- <p>
|
|
11
|
+
-- This class represents a common concept that is found in many calendar systems.
|
|
12
|
+
-- As such, this class may be used by any calendar system that has the day-of-week
|
|
13
|
+
-- concept defined exactly equivalent to the ISO calendar system.
|
|
14
|
+
____exports.DayOfWeek = __TS__Class()
|
|
15
|
+
local DayOfWeek = ____exports.DayOfWeek
|
|
16
|
+
DayOfWeek.name = "DayOfWeek"
|
|
17
|
+
function DayOfWeek.prototype.____constructor(self, value)
|
|
18
|
+
self.value = value
|
|
19
|
+
assert(math.type(value) == "integer" and value >= 1 and value <= 7)
|
|
20
|
+
cache[value] = self
|
|
21
|
+
end
|
|
22
|
+
function DayOfWeek.of(self, dayOfWeek)
|
|
23
|
+
return cache[dayOfWeek] or __TS__New(____exports.DayOfWeek, dayOfWeek)
|
|
24
|
+
end
|
|
25
|
+
function DayOfWeek.deserialize(self, reader)
|
|
26
|
+
return ____exports.DayOfWeek:of(reader:readUInt8())
|
|
27
|
+
end
|
|
28
|
+
function DayOfWeek.prototype.serialize(self, writer)
|
|
29
|
+
writer:writeUInt8(self.value)
|
|
30
|
+
end
|
|
31
|
+
function DayOfWeek.prototype.plus(self, days)
|
|
32
|
+
return ____exports.DayOfWeek:of((self.value - 1 + (days % 7 + 7)) % 7 + 1)
|
|
33
|
+
end
|
|
34
|
+
function DayOfWeek.prototype.minus(self, days)
|
|
35
|
+
return self:plus(-(days % 7))
|
|
36
|
+
end
|
|
37
|
+
function DayOfWeek.prototype.__tostring(self)
|
|
38
|
+
return tostring(self.value)
|
|
39
|
+
end
|
|
40
|
+
function DayOfWeek.prototype.__lt(self, other)
|
|
41
|
+
return self.value < other.value
|
|
42
|
+
end
|
|
43
|
+
function DayOfWeek.prototype.__le(self, other)
|
|
44
|
+
return self.value <= other.value
|
|
45
|
+
end
|
|
46
|
+
DayOfWeek.MONDAY = ____exports.DayOfWeek:of(1)
|
|
47
|
+
DayOfWeek.TUESDAY = ____exports.DayOfWeek:of(2)
|
|
48
|
+
DayOfWeek.WEDNESDAY = ____exports.DayOfWeek:of(3)
|
|
49
|
+
DayOfWeek.THURSDAY = ____exports.DayOfWeek:of(4)
|
|
50
|
+
DayOfWeek.FRIDAY = ____exports.DayOfWeek:of(5)
|
|
51
|
+
DayOfWeek.SATURDAY = ____exports.DayOfWeek:of(6)
|
|
52
|
+
DayOfWeek.SUNDAY = ____exports.DayOfWeek:of(7)
|
|
53
|
+
return ____exports
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { DayOfWeek } from "./dayOfWeek";
|
|
3
|
+
import { Month } from "./month";
|
|
4
|
+
export declare class LocalDate {
|
|
5
|
+
readonly year: number;
|
|
6
|
+
readonly month: Month;
|
|
7
|
+
readonly dayOfMonth: number;
|
|
8
|
+
private readonly key;
|
|
9
|
+
private constructor();
|
|
10
|
+
static now(): LocalDate;
|
|
11
|
+
static of(year: number, month: number | Month, day: number): LocalDate;
|
|
12
|
+
/**
|
|
13
|
+
* Obtains an instance of {@code LocalDate} from the epoch day count.
|
|
14
|
+
* <p>
|
|
15
|
+
* This returns a {@code LocalDate} with the specified epoch-day.
|
|
16
|
+
* The epoch-day is a simple incrementing count
|
|
17
|
+
* of days where day 0 is 1970-01-01. Negative numbers represent earlier days.
|
|
18
|
+
*
|
|
19
|
+
* @param epochDay the Epoch Day to convert, based on the epoch 1970-01-01
|
|
20
|
+
* @return the local date
|
|
21
|
+
*/
|
|
22
|
+
private static ofEpochDay;
|
|
23
|
+
/**
|
|
24
|
+
* Resolves the date, resolving days past the end of month.
|
|
25
|
+
*
|
|
26
|
+
* @param year the year to represent, validated from MIN_YEAR to MAX_YEAR
|
|
27
|
+
* @param month the month-of-year to represent, validated from 1 to 12
|
|
28
|
+
* @param day the day-of-month to represent, validated from 1 to 31
|
|
29
|
+
* @return the resolved date
|
|
30
|
+
*/
|
|
31
|
+
private static resolvePreviousValid;
|
|
32
|
+
/**
|
|
33
|
+
* Gets the day-of-year field.
|
|
34
|
+
* <p>
|
|
35
|
+
* This method returns the primitive {@code int} value for the day-of-year.
|
|
36
|
+
*
|
|
37
|
+
* @return the day-of-year, from 1 to 365, or 366 in a leap year
|
|
38
|
+
*/
|
|
39
|
+
get dayOfYear(): number;
|
|
40
|
+
/**
|
|
41
|
+
* Gets the day-of-week field, which is a class {@code DayOfWeek}.
|
|
42
|
+
* <p>
|
|
43
|
+
* This method returns the class {@link DayOfWeek} for the day-of-week.
|
|
44
|
+
*
|
|
45
|
+
* @return the day-of-week
|
|
46
|
+
*/
|
|
47
|
+
get dayOfWeek(): DayOfWeek;
|
|
48
|
+
/**
|
|
49
|
+
* Checks if the year is a leap year, according to the ISO proleptic
|
|
50
|
+
* calendar system rules.
|
|
51
|
+
* <p>
|
|
52
|
+
* This method applies the current rules for leap years across the whole time-line.
|
|
53
|
+
* In general, a year is a leap year if it is divisible by four without
|
|
54
|
+
* remainder. However, years divisible by 100, are not leap years, with
|
|
55
|
+
* the exception of years divisible by 400 which are.
|
|
56
|
+
* <p>
|
|
57
|
+
* For example, 1904 is a leap year it is divisible by 4.
|
|
58
|
+
* 1900 was not a leap year as it is divisible by 100, however 2000 was a
|
|
59
|
+
* leap year as it is divisible by 400.
|
|
60
|
+
* <p>
|
|
61
|
+
* The calculation is proleptic - applying the same rules into the far future and far past.
|
|
62
|
+
* This is historically inaccurate, but is correct for the ISO-8601 standard.
|
|
63
|
+
*
|
|
64
|
+
* @return true if the year is leap, false otherwise
|
|
65
|
+
*/
|
|
66
|
+
get isLeapYear(): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the length of the month represented by this date.
|
|
69
|
+
* <p>
|
|
70
|
+
* This returns the length of the month in days.
|
|
71
|
+
* For example, a date in January would return 31.
|
|
72
|
+
*
|
|
73
|
+
* @return the length of the month in days
|
|
74
|
+
*/
|
|
75
|
+
get lengthOfMonth(): number;
|
|
76
|
+
/**
|
|
77
|
+
* Returns the length of the year represented by this date.
|
|
78
|
+
* <p>
|
|
79
|
+
* This returns the length of the year in days, either 365 or 366.
|
|
80
|
+
*
|
|
81
|
+
* @return 366 if the year is leap, 365 otherwise
|
|
82
|
+
*/
|
|
83
|
+
get lengthOfYear(): number;
|
|
84
|
+
/**
|
|
85
|
+
* Returns a copy of this {@code LocalDate} with the specified number of months added.
|
|
86
|
+
* <p>
|
|
87
|
+
* This method adds the specified amount to the months field in three steps:
|
|
88
|
+
* <ol>
|
|
89
|
+
* <li>Add the input months to the month-of-year field</li>
|
|
90
|
+
* <li>Check if the resulting date would be invalid</li>
|
|
91
|
+
* <li>Adjust the day-of-month to the last valid day if necessary</li>
|
|
92
|
+
* </ol>
|
|
93
|
+
* <p>
|
|
94
|
+
* For example, 2007-03-31 plus one month would result in the invalid date
|
|
95
|
+
* 2007-04-31. Instead of returning an invalid result, the last valid day
|
|
96
|
+
* of the month, 2007-04-30, is selected instead.
|
|
97
|
+
* <p>
|
|
98
|
+
* This instance is immutable and unaffected by this method call.
|
|
99
|
+
*
|
|
100
|
+
* @param monthsToAdd the months to add, may be negative
|
|
101
|
+
* @return a {@code LocalDate} based on this date with the months added, not null
|
|
102
|
+
*/
|
|
103
|
+
plusMonths(monthsToAdd: number): LocalDate;
|
|
104
|
+
/**
|
|
105
|
+
* Returns a copy of this {@code LocalDate} with the specified number of weeks added.
|
|
106
|
+
* <p>
|
|
107
|
+
* This method adds the specified amount in weeks to the days field incrementing
|
|
108
|
+
* the month and year fields as necessary to ensure the result remains valid.
|
|
109
|
+
* The result is only invalid if the maximum/minimum year is exceeded.
|
|
110
|
+
* <p>
|
|
111
|
+
* For example, 2008-12-31 plus one week would result in 2009-01-07.
|
|
112
|
+
* <p>
|
|
113
|
+
* This instance is immutable and unaffected by this method call.
|
|
114
|
+
*
|
|
115
|
+
* @param weeksToAdd the weeks to add, may be negative
|
|
116
|
+
* @return a {@code LocalDate} based on this date with the weeks added
|
|
117
|
+
*/
|
|
118
|
+
plusWeeks(weeksToAdd: number): LocalDate;
|
|
119
|
+
/**
|
|
120
|
+
* Returns a copy of this {@code LocalDate} with the specified number of days added.
|
|
121
|
+
* <p>
|
|
122
|
+
* This method adds the specified amount to the days field incrementing the
|
|
123
|
+
* month and year fields as necessary to ensure the result remains valid.
|
|
124
|
+
* The result is only invalid if the maximum/minimum year is exceeded.
|
|
125
|
+
* <p>
|
|
126
|
+
* For example, 2008-12-31 plus one day would result in 2009-01-01.
|
|
127
|
+
* <p>
|
|
128
|
+
* This instance is immutable and unaffected by this method call.
|
|
129
|
+
*
|
|
130
|
+
* @param daysToAdd the days to add, may be negative
|
|
131
|
+
* @return a {@code LocalDate} based on this date with the days added
|
|
132
|
+
*/
|
|
133
|
+
plusDays(daysToAdd: number): LocalDate;
|
|
134
|
+
private toEpochDay;
|
|
135
|
+
/**
|
|
136
|
+
* Outputs this date as a {@code String}, such as {@code 2007-12-03}.
|
|
137
|
+
* <p>
|
|
138
|
+
* The output will be in the ISO-8601 format {@code uuuu-MM-dd}.
|
|
139
|
+
*
|
|
140
|
+
* @return a string representation of this date
|
|
141
|
+
*/
|
|
142
|
+
toString(): string;
|
|
143
|
+
private __lt;
|
|
144
|
+
private __le;
|
|
145
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
local ____lualib = require("lualib_bundle")
|
|
2
|
+
local __TS__Class = ____lualib.__TS__Class
|
|
3
|
+
local __TS__New = ____lualib.__TS__New
|
|
4
|
+
local __TS__SetDescriptor = ____lualib.__TS__SetDescriptor
|
|
5
|
+
local ____exports = {}
|
|
6
|
+
local ____dayOfWeek = require("time.dayOfWeek")
|
|
7
|
+
local DayOfWeek = ____dayOfWeek.DayOfWeek
|
|
8
|
+
local ____month = require("time.month")
|
|
9
|
+
local Month = ____month.Month
|
|
10
|
+
local ____year = require("time.year")
|
|
11
|
+
local Year = ____year.Year
|
|
12
|
+
local ____stringBuilder = require("util.stringBuilder")
|
|
13
|
+
local StringBuilder = ____stringBuilder.StringBuilder
|
|
14
|
+
local date = os.date
|
|
15
|
+
local format = string.format
|
|
16
|
+
local pack = string.pack
|
|
17
|
+
local abs = math.abs
|
|
18
|
+
local cache = setmetatable({}, {__mode = "v"})
|
|
19
|
+
--- The number of days in a 400-year cycle.
|
|
20
|
+
local DAYS_PER_CYCLE = 146097
|
|
21
|
+
--- The number of days from year zero to year 1970.
|
|
22
|
+
-- There are five 400 year cycles from year zero to 2000.
|
|
23
|
+
-- There are 7 leap years from 1970 to 2000.
|
|
24
|
+
local DAYS_0000_TO_1970 = DAYS_PER_CYCLE * 5 - (30 * 365 + 7)
|
|
25
|
+
____exports.LocalDate = __TS__Class()
|
|
26
|
+
local LocalDate = ____exports.LocalDate
|
|
27
|
+
LocalDate.name = "LocalDate"
|
|
28
|
+
function LocalDate.prototype.____constructor(self, year, month, dayOfMonth, key)
|
|
29
|
+
self.year = year
|
|
30
|
+
self.month = month
|
|
31
|
+
self.dayOfMonth = dayOfMonth
|
|
32
|
+
self.key = key
|
|
33
|
+
assert(math.type(year) == "integer")
|
|
34
|
+
assert(math.type(dayOfMonth) == "integer" and dayOfMonth >= 1 and dayOfMonth <= 31)
|
|
35
|
+
cache[key] = self
|
|
36
|
+
end
|
|
37
|
+
function LocalDate.now(self)
|
|
38
|
+
local info = date("*t")
|
|
39
|
+
return ____exports.LocalDate:of(info.year, info.month, info.day)
|
|
40
|
+
end
|
|
41
|
+
function LocalDate.of(self, year, month, day)
|
|
42
|
+
month = type(month) == "number" and month or month.value
|
|
43
|
+
local key = pack(">i4BB", year, month, day)
|
|
44
|
+
return cache[key] or __TS__New(
|
|
45
|
+
____exports.LocalDate,
|
|
46
|
+
year,
|
|
47
|
+
Month:of(month),
|
|
48
|
+
day,
|
|
49
|
+
key
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
function LocalDate.ofEpochDay(self, epochDay)
|
|
53
|
+
local zeroDay = epochDay + DAYS_0000_TO_1970
|
|
54
|
+
zeroDay = zeroDay - 60
|
|
55
|
+
local adjust = 0
|
|
56
|
+
if zeroDay < 0 then
|
|
57
|
+
local adjustCycles = (zeroDay + 1) // DAYS_PER_CYCLE - 1
|
|
58
|
+
adjust = adjustCycles * 400
|
|
59
|
+
zeroDay = zeroDay + -adjustCycles * DAYS_PER_CYCLE
|
|
60
|
+
end
|
|
61
|
+
local yearEst = (400 * zeroDay + 591) // DAYS_PER_CYCLE
|
|
62
|
+
local doyEst = zeroDay - (365 * yearEst + yearEst // 4 - yearEst // 100 + yearEst // 400)
|
|
63
|
+
if doyEst < 0 then
|
|
64
|
+
yearEst = yearEst - 1
|
|
65
|
+
doyEst = zeroDay - (365 * yearEst + yearEst // 4 - yearEst // 100 + yearEst // 400)
|
|
66
|
+
end
|
|
67
|
+
yearEst = yearEst + adjust
|
|
68
|
+
local marchDoy0 = doyEst
|
|
69
|
+
local marchMonth0 = (marchDoy0 * 5 + 2) // 153
|
|
70
|
+
local month = (marchMonth0 + 2) % 12 + 1
|
|
71
|
+
local dom = marchDoy0 - (marchMonth0 * 306 + 5) // 10 + 1
|
|
72
|
+
yearEst = yearEst + marchMonth0 // 10
|
|
73
|
+
return ____exports.LocalDate:of(yearEst, month, dom)
|
|
74
|
+
end
|
|
75
|
+
function LocalDate.resolvePreviousValid(self, year, month, day)
|
|
76
|
+
repeat
|
|
77
|
+
local ____switch9 = month
|
|
78
|
+
local ____cond9 = ____switch9 == 2
|
|
79
|
+
if ____cond9 then
|
|
80
|
+
day = math.min(
|
|
81
|
+
day,
|
|
82
|
+
Year:isLeap(year) and 29 or 28
|
|
83
|
+
)
|
|
84
|
+
break
|
|
85
|
+
end
|
|
86
|
+
____cond9 = ____cond9 or (____switch9 == 4 or ____switch9 == 6 or ____switch9 == 9 or ____switch9 == 11)
|
|
87
|
+
if ____cond9 then
|
|
88
|
+
day = math.min(day, 30)
|
|
89
|
+
break
|
|
90
|
+
end
|
|
91
|
+
until true
|
|
92
|
+
return ____exports.LocalDate:of(year, month, day)
|
|
93
|
+
end
|
|
94
|
+
function LocalDate.prototype.plusMonths(self, monthsToAdd)
|
|
95
|
+
assert(math.type(monthsToAdd) == "integer")
|
|
96
|
+
if monthsToAdd == 0 then
|
|
97
|
+
return self
|
|
98
|
+
end
|
|
99
|
+
local monthCount = self.year * 12 + (self.month.value - 1)
|
|
100
|
+
local calcMonths = monthCount + monthsToAdd
|
|
101
|
+
local newYear = calcMonths // 12
|
|
102
|
+
local newMonth = math.fmod(calcMonths, 12) + 1
|
|
103
|
+
return ____exports.LocalDate:resolvePreviousValid(newYear, newMonth, self.dayOfMonth)
|
|
104
|
+
end
|
|
105
|
+
function LocalDate.prototype.plusWeeks(self, weeksToAdd)
|
|
106
|
+
return self:plusDays(weeksToAdd * 7)
|
|
107
|
+
end
|
|
108
|
+
function LocalDate.prototype.plusDays(self, daysToAdd)
|
|
109
|
+
assert(math.type(daysToAdd) == "integer")
|
|
110
|
+
if daysToAdd == 0 then
|
|
111
|
+
return self
|
|
112
|
+
end
|
|
113
|
+
local dom = self.dayOfMonth + daysToAdd
|
|
114
|
+
if dom > 0 then
|
|
115
|
+
if dom <= 28 then
|
|
116
|
+
return ____exports.LocalDate:of(self.year, self.month.value, dom)
|
|
117
|
+
elseif dom <= 59 then
|
|
118
|
+
local monthLen = self.lengthOfMonth
|
|
119
|
+
if dom <= monthLen then
|
|
120
|
+
return ____exports.LocalDate:of(self.year, self.month.value, dom)
|
|
121
|
+
elseif self.month.value < 12 then
|
|
122
|
+
return ____exports.LocalDate:of(self.year, self.month.value + 1, dom - monthLen)
|
|
123
|
+
else
|
|
124
|
+
return ____exports.LocalDate:of(self.year + 1, 1, dom - monthLen)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
local mjDay = self:toEpochDay() + daysToAdd
|
|
129
|
+
return ____exports.LocalDate:ofEpochDay(mjDay)
|
|
130
|
+
end
|
|
131
|
+
function LocalDate.prototype.toEpochDay(self)
|
|
132
|
+
local y = self.year
|
|
133
|
+
local m = self.month.value
|
|
134
|
+
local total = 0
|
|
135
|
+
total = total + 365 * y
|
|
136
|
+
if y >= 0 then
|
|
137
|
+
total = total + ((y + 3) // 4 - (y + 99) // 100 + (y + 399) // 400)
|
|
138
|
+
else
|
|
139
|
+
total = total - (y // -4 - y // -100 + y // -400)
|
|
140
|
+
end
|
|
141
|
+
total = total + (367 * m - 362) // 12
|
|
142
|
+
total = total + (self.dayOfMonth - 1)
|
|
143
|
+
if m > 2 then
|
|
144
|
+
total = total - 1
|
|
145
|
+
if not self.isLeapYear then
|
|
146
|
+
total = total - 1
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
return total - DAYS_0000_TO_1970
|
|
150
|
+
end
|
|
151
|
+
function LocalDate.prototype.__tostring(self)
|
|
152
|
+
local year = self.year
|
|
153
|
+
local month = self.month.value
|
|
154
|
+
local day = self.dayOfMonth
|
|
155
|
+
local sb = __TS__New(StringBuilder)
|
|
156
|
+
if abs(year) < 1000 then
|
|
157
|
+
if year < 0 then
|
|
158
|
+
sb:append(format(
|
|
159
|
+
"-%04d",
|
|
160
|
+
abs(year)
|
|
161
|
+
))
|
|
162
|
+
else
|
|
163
|
+
sb:append(format("%04d", year))
|
|
164
|
+
end
|
|
165
|
+
else
|
|
166
|
+
if year > 9999 then
|
|
167
|
+
sb:append("+")
|
|
168
|
+
end
|
|
169
|
+
sb:append(year)
|
|
170
|
+
end
|
|
171
|
+
return tostring(sb:append(month < 10 and "-0" or "-"):append(month):append(day < 10 and "-0" or "-"):append(day))
|
|
172
|
+
end
|
|
173
|
+
function LocalDate.prototype.__lt(self, other)
|
|
174
|
+
local cmp = self.year - other.year
|
|
175
|
+
if cmp == 0 then
|
|
176
|
+
cmp = self.month.value - other.month.value
|
|
177
|
+
if cmp == 0 then
|
|
178
|
+
cmp = self.dayOfMonth - other.dayOfMonth
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
return cmp < 0
|
|
182
|
+
end
|
|
183
|
+
function LocalDate.prototype.__le(self, other)
|
|
184
|
+
local cmp = self.year - other.year
|
|
185
|
+
if cmp == 0 then
|
|
186
|
+
cmp = self.month.value - other.month.value
|
|
187
|
+
if cmp == 0 then
|
|
188
|
+
cmp = self.dayOfMonth - other.dayOfMonth
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
return cmp <= 0
|
|
192
|
+
end
|
|
193
|
+
__TS__SetDescriptor(
|
|
194
|
+
LocalDate.prototype,
|
|
195
|
+
"dayOfYear",
|
|
196
|
+
{get = function(self)
|
|
197
|
+
return self.month:getFirstDayOfYear(self.isLeapYear) + self.dayOfMonth - 1
|
|
198
|
+
end},
|
|
199
|
+
true
|
|
200
|
+
)
|
|
201
|
+
__TS__SetDescriptor(
|
|
202
|
+
LocalDate.prototype,
|
|
203
|
+
"dayOfWeek",
|
|
204
|
+
{get = function(self)
|
|
205
|
+
return DayOfWeek:of(math.fmod(
|
|
206
|
+
self:toEpochDay() + 3,
|
|
207
|
+
7
|
|
208
|
+
) + 1)
|
|
209
|
+
end},
|
|
210
|
+
true
|
|
211
|
+
)
|
|
212
|
+
__TS__SetDescriptor(
|
|
213
|
+
LocalDate.prototype,
|
|
214
|
+
"isLeapYear",
|
|
215
|
+
{get = function(self)
|
|
216
|
+
return Year:isLeap(self.year)
|
|
217
|
+
end},
|
|
218
|
+
true
|
|
219
|
+
)
|
|
220
|
+
__TS__SetDescriptor(
|
|
221
|
+
LocalDate.prototype,
|
|
222
|
+
"lengthOfMonth",
|
|
223
|
+
{get = function(self)
|
|
224
|
+
return self.month:getLength(self.isLeapYear)
|
|
225
|
+
end},
|
|
226
|
+
true
|
|
227
|
+
)
|
|
228
|
+
__TS__SetDescriptor(
|
|
229
|
+
LocalDate.prototype,
|
|
230
|
+
"lengthOfYear",
|
|
231
|
+
{get = function(self)
|
|
232
|
+
return self.isLeapYear and 366 or 365
|
|
233
|
+
end},
|
|
234
|
+
true
|
|
235
|
+
)
|
|
236
|
+
return ____exports
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import { BinaryReader } from "../binaryreader";
|
|
3
|
+
import { BinaryWriter } from "../binarywriter";
|
|
4
|
+
import { DayOfWeek } from "./dayOfWeek";
|
|
5
|
+
import { Month } from "./month";
|
|
6
|
+
import { LocalDate } from "./localDate";
|
|
7
|
+
import { LocalTime } from "./localTime";
|
|
8
|
+
export declare class LocalDateTime {
|
|
9
|
+
private readonly date;
|
|
10
|
+
private readonly time;
|
|
11
|
+
private readonly key;
|
|
12
|
+
private constructor();
|
|
13
|
+
static now(this: void): LocalDateTime;
|
|
14
|
+
/**
|
|
15
|
+
* Obtains an instance of {@code LocalDateTime} from year, month,
|
|
16
|
+
* day, hour, minute and second.
|
|
17
|
+
* <p>
|
|
18
|
+
* This returns a {@code LocalDateTime} with the specified year, month,
|
|
19
|
+
* day-of-month, hour and minute.
|
|
20
|
+
* The day must be valid for the year and month, otherwise an exception will be thrown.
|
|
21
|
+
*
|
|
22
|
+
* @param year the year to represent, from MIN_YEAR to MAX_YEAR
|
|
23
|
+
* @param month the month-of-year to represent
|
|
24
|
+
* @param dayOfMonth the day-of-month to represent, from 1 to 31
|
|
25
|
+
* @param hour the hour-of-day to represent, from 0 to 23
|
|
26
|
+
* @param minute the minute-of-hour to represent, from 0 to 59
|
|
27
|
+
* @param second the second-of-minute to represent, from 0 to 59
|
|
28
|
+
* @return the local date-time
|
|
29
|
+
*/
|
|
30
|
+
static of(year: number, month: number | Month, dayOfMonth: number, hour: number, minute: number, second?: number): LocalDateTime;
|
|
31
|
+
/**
|
|
32
|
+
* Obtains an instance of {@code LocalDateTime} using seconds from the
|
|
33
|
+
* epoch of 1970-01-01T00:00:00Z.
|
|
34
|
+
*
|
|
35
|
+
* @param epochSecond the number of seconds from the epoch of 1970-01-01T00:00:00Z
|
|
36
|
+
* @return the local date-time
|
|
37
|
+
*/
|
|
38
|
+
static ofEpochSecond(epochSecond: number): LocalDateTime;
|
|
39
|
+
static deserialize(reader: BinaryReader): LocalDateTime;
|
|
40
|
+
serialize(writer: BinaryWriter): void;
|
|
41
|
+
/**
|
|
42
|
+
* Gets the {@code LocalDate} part of this date-time.
|
|
43
|
+
* <p>
|
|
44
|
+
* This returns a {@code LocalDate} with the same year, month and day
|
|
45
|
+
* as this date-time.
|
|
46
|
+
*
|
|
47
|
+
* @return the date part of this date-time
|
|
48
|
+
*/
|
|
49
|
+
toLocalDate(): LocalDate;
|
|
50
|
+
/**
|
|
51
|
+
* Gets the year field.
|
|
52
|
+
* <p>
|
|
53
|
+
* This method returns the primitive {@code number} value for the year.
|
|
54
|
+
*
|
|
55
|
+
* @return the year, from MIN_YEAR to MAX_YEAR
|
|
56
|
+
*/
|
|
57
|
+
get year(): number;
|
|
58
|
+
/**
|
|
59
|
+
* Gets the month-of-year field using the {@code Month} enum.
|
|
60
|
+
* <p>
|
|
61
|
+
* This method returns the class {@link Month} for the month.
|
|
62
|
+
*
|
|
63
|
+
* @return the month-of-year
|
|
64
|
+
*/
|
|
65
|
+
get month(): Month;
|
|
66
|
+
/**
|
|
67
|
+
* Gets the day-of-month field.
|
|
68
|
+
* <p>
|
|
69
|
+
* This method returns the primitive {@code number} value for the day-of-month.
|
|
70
|
+
*
|
|
71
|
+
* @return the day-of-month, from 1 to 31
|
|
72
|
+
*/
|
|
73
|
+
get dayOfMonth(): number;
|
|
74
|
+
/**
|
|
75
|
+
* Gets the day-of-year field.
|
|
76
|
+
* <p>
|
|
77
|
+
* This method returns the primitive {@code number} value for the day-of-year.
|
|
78
|
+
*
|
|
79
|
+
* @return the day-of-year, from 1 to 365, or 366 in a leap year
|
|
80
|
+
*/
|
|
81
|
+
get dayOfYear(): number;
|
|
82
|
+
/**
|
|
83
|
+
* Gets the day-of-week field, which is a class {@code DayOfWeek}.
|
|
84
|
+
* <p>
|
|
85
|
+
* This method returns the class {@link DayOfWeek} for the day-of-week.
|
|
86
|
+
*
|
|
87
|
+
* @return the day-of-week
|
|
88
|
+
*/
|
|
89
|
+
get dayOfWeek(): DayOfWeek;
|
|
90
|
+
/**
|
|
91
|
+
* Gets the {@code LocalTime} part of this date-time.
|
|
92
|
+
* <p>
|
|
93
|
+
* This returns a {@code LocalTime} with the same hour, minute, second and
|
|
94
|
+
* nanosecond as this date-time.
|
|
95
|
+
*
|
|
96
|
+
* @return the time part of this date-time
|
|
97
|
+
*/
|
|
98
|
+
toLocalTime(): LocalTime;
|
|
99
|
+
/**
|
|
100
|
+
* Gets the hour-of-day field.
|
|
101
|
+
*
|
|
102
|
+
* @return the hour-of-day, from 0 to 23
|
|
103
|
+
*/
|
|
104
|
+
get hour(): number;
|
|
105
|
+
/**
|
|
106
|
+
* Gets the minute-of-hour field.
|
|
107
|
+
*
|
|
108
|
+
* @return the minute-of-hour, from 0 to 59
|
|
109
|
+
*/
|
|
110
|
+
get minute(): number;
|
|
111
|
+
/**
|
|
112
|
+
* Gets the second-of-minute field.
|
|
113
|
+
*
|
|
114
|
+
* @return the second-of-minute, from 0 to 59
|
|
115
|
+
*/
|
|
116
|
+
get second(): number;
|
|
117
|
+
/**
|
|
118
|
+
* Outputs this date-time as a {@code String}, such as {@code 2007-12-03T10:15:30}.
|
|
119
|
+
* <p>
|
|
120
|
+
* The output will be one of the following ISO-8601 formats:
|
|
121
|
+
* <ul>
|
|
122
|
+
* <li>{@code uuuu-MM-dd'T'HH:mm}</li>
|
|
123
|
+
* <li>{@code uuuu-MM-dd'T'HH:mm:ss}</li>
|
|
124
|
+
* </ul>
|
|
125
|
+
* The format used will be the shortest that outputs the full value of
|
|
126
|
+
* the time where the omitted parts are implied to be zero.
|
|
127
|
+
*
|
|
128
|
+
* @return a string representation of this date-time
|
|
129
|
+
*/
|
|
130
|
+
toString(): string;
|
|
131
|
+
private __lt;
|
|
132
|
+
private __le;
|
|
133
|
+
}
|