1 |
- {"version":3,"file":"rogue-engine-user-scripts.js","mappings":"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BAA0B,uCAAI;;AAE9B;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,6BAA6B,yCAAM;;AAEnC;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,QAAQ;;AAE9C;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEgC;;;;;;;UCzPhC;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEhDA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA","sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/./Assets/Components/CombatLogic.re.js","webpack://[name]/./Assets/Components/FloatObject.re.js","webpack://[name]/./Assets/Components/HouseRaycastReceiver.re.js","webpack://[name]/./Assets/Components/Library/AsyncLoader.js","webpack://[name]/./Assets/Components/Library/Easings.js","webpack://[name]/./Assets/Components/Library/GameData.js","webpack://[name]/./Assets/Components/Library/SimpleTweens.js","webpack://[name]/./Assets/Components/OrbitCamera.re.js","webpack://[name]/./Assets/Components/ParticleSystem.re.js","webpack://[name]/./Assets/Components/Pathway.re.js","webpack://[name]/./Assets/Components/RaycastReceiver.re.js","webpack://[name]/./Assets/Components/RaycastReporter.re.js","webpack://[name]/./Assets/Components/SceneLinkRaycastReceiver.re.js","webpack://[name]/./Assets/Components/ScrollObject.re.js","webpack://[name]/./Assets/Components/ScrollTexture.re.js","webpack://[name]/./Assets/Components/TileRaycastReceiver.re.js","webpack://[name]/./Assets/Components/TitleScreenControl.re.js","webpack://[name]/external umd {\"commonjs\":\"rogue-engine\",\"commonjs2\":\"rogue-engine\",\"amd\":\"rogue-engine\",\"root\":\"rogue-engine\"}","webpack://[name]/external umd {\"commonjs\":\"three\",\"commonjs2\":\"three\",\"amd\":\"three\",\"root\":\"three\"}","webpack://[name]/./node_modules/three/examples/jsm/lines/Line2.js","webpack://[name]/./node_modules/three/examples/jsm/lines/LineGeometry.js","webpack://[name]/./node_modules/three/examples/jsm/lines/LineMaterial.js","webpack://[name]/./node_modules/three/examples/jsm/lines/LineSegments2.js","webpack://[name]/./node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js","webpack://[name]/webpack/bootstrap","webpack://[name]/webpack/runtime/chunk loaded","webpack://[name]/webpack/runtime/compat get default export","webpack://[name]/webpack/runtime/define property getters","webpack://[name]/webpack/runtime/hasOwnProperty shorthand","webpack://[name]/webpack/runtime/make namespace object","webpack://[name]/webpack/runtime/jsonp chunk loading","webpack://[name]/webpack/before-startup","webpack://[name]/webpack/startup","webpack://[name]/webpack/after-startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"rogue-engine\"), require(\"three\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"rogue-engine\", \"three\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"rogue-engine-user-scripts\"] = factory(require(\"rogue-engine\"), require(\"three\"));\n\telse\n\t\troot[\"rogue-engine-user-scripts\"] = factory(root[\"rogue-engine\"], root[\"three\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE_rogue_engine__, __WEBPACK_EXTERNAL_MODULE_three__) {\nreturn ","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\nimport { TweenManager } from './Library/SimpleTweens'\nimport TileRaycastReceiver from './TileRaycastReceiver.re'\nimport Easing from './Library/Easings'\nimport AsyncLoader from './Library/AsyncLoader';\nimport Pathway from './Pathway.re'\n\nexport default class CombatLogic extends RE.Component {\n\n @RE.Prop(\"Object3D\") playGrid\n @RE.Prop(\"Prefab\") tile\n\n @RE.Prop(\"Material\") hoverMaterial\n @RE.PropList(\"Material\") tileMaterials = []\n\n @RE.Prop(\"Vector2\") boardDimensions = new THREE.Vector2(8, 8)\n @RE.Prop(\"Number\") maxColors = 5\n\n tweenManager = new TweenManager()\n loader = new AsyncLoader()\n selectedTiles = []\n movesRemaining = 8\n score = 0\n\n awake() {\n this.tweenManager.awake()\n }\n\n start() {\n // let level = GameData.get(\"active-level\") ?? 1\n // this.levelData = GameData.get(\"level-data\")[level] ?? {x: this.boardDimensions.x, y: this.boardDimensions.y, c: this.maxColors}\n\n // this.score = this.levelData.g\n // this.movesRemaining = 3\n\n for(let child of this.playGrid.children) {\n this.playGrid.remove(child) \n }\n\n // this.loader.loadStaticText(\"gamehud.html\").then(html => {\n // RE.Runtime.uiContainer.innerHTML = html\n for(let i = 0; i < this.boardDimensions.x*this.boardDimensions.y; i++) {\n let position = new THREE.Vector2((i % this.boardDimensions.x), Math.floor(i / this.boardDimensions.x))\n this.instantiateTile(\n position,\n Math.floor(1500 * Math.random()) + 1800,\n )\n }\n\n // this.movesDisplay = document.getElementById(\"moves\")\n // this.scoreDisplay = document.getElementById(\"score\")\n // })\n \n this.tweenManager.start()\n }\n\n instantiateTile(gridPosition, delay, startingY = 14, easingFunction = Easing.Elastic.EaseOut) {\n let tile = this.tile.instantiate(this.playGrid)\n let component = RE.getComponent(TileRaycastReceiver, tile)\n component.initialize(\n gridPosition,\n this.boardDimensions,\n this.tileMaterials[Math.floor(Math.random() * Math.min(this.maxColors, this.tileMaterials.length))],\n this.hoverMaterial,\n this.tweenManager,\n delay,\n startingY,\n easingFunction,\n )\n }\n\n update() {\n this.tweenManager.update()\n\n if(RE.Input.mouse.getButtonUp(0) || RE.Input.touch.endTouches.length > 0) {\n let pathway = RE.getComponent(Pathway, this.playGrid)\n if (pathway) {\n pathway.clearPoints()\n }\n if(this.selectedTiles.length == 1) {\n this.selectedTiles.length = 0\n }\n\n if(this.selectedTiles.length > 1 && this.selectedTiles.length < 5) {\n this.movesRemaining--\n }\n if(this.selectedTiles.length >= 5) {\n this.movesRemaining += Math.floor((this.selectedTiles.length - 5) / 3)\n }\n // this.movesDisplay.innerHTML = this.movesRemaining\n\n let moveScore = (this.selectedTiles.length * 10)\n this.selectedTiles.forEach(tileComponent => {\n moveScore *= Math.max(1, Math.floor(this.selectedTiles.indexOf(tileComponent) / 5))\n tileComponent.remove(this.tweenManager)\n this.instantiateTile(\n tileComponent.object3d.gridPosition,\n Math.floor(1500 * Math.random()) + 300,\n 14,\n Easing.Exponential.EaseOut,\n )\n \n })\n this.selectedTiles.length = 0\n this.score += moveScore\n // this.scoreDisplay.innerHTML = this.score\n }\n\n if(RE.Input.keyboard.getKeyUp(\"Escape\")) {\n RE.App.loadScene(\"Main Menu\")\n }\n\n if(this.movesRemaining == 0) {\n //GameData.set('final-score', 1337)\n RE.App.loadScene(\"World Map\")\n }\n }\n\n // buildLine() {\n // let positions = []\n // this.selectedTiles.forEach(tileComponent => {\n // let position = tileComponent.getPosition()\n // positions.push(new THREE.Vector3(position.x, 1.2, position.y))\n // })\n\n // this.lineGeometry = new LineGeometry()\n // this.lineMaterial = new LineMaterial({\n // color: 0xffffff,\n // linewidth: 5, // in pixels\n // vertexColors: true,\n // //resolution: // to be set by renderer, eventually\n // dashed: false\n // });\n\n // this.line = new Line2(this.lineGeometry, this.lineMaterial);\n // this.line.computeLineDistances();\n // this.line.scale.set(1, 1, 1);\n // }\n\n addTile(tileComponent) {\n let isAdded = false\n if(this.isStepBack(tileComponent)) {\n this.selectedTiles.pop(tileComponent)\n } else if(this.isValidTileToSelect(tileComponent)) {\n this.selectedTiles.push(tileComponent)\n isAdded = true\n }\n\n let pathway = RE.getComponent(Pathway, this.playGrid)\n if (pathway) {\n pathway.recomputePath(this.selectedTiles)\n }\n return [isAdded, this.selectedTiles]\n }\n\n isValidTileToSelect(tileComponent) {\n if(this.selectedTiles.length == 0) {\n return true\n }\n let lastAddedTile = this.selectedTiles[this.selectedTiles.length - 1]\n let initialColor = lastAddedTile.getOriginalMaterial().name\n\n return this.selectedTiles.indexOf(tileComponent) == -1 &&\n tileComponent.getOriginalMaterial().name == initialColor &&\n this.isNearbyTile(lastAddedTile.object3d.gridPosition, tileComponent.object3d.gridPosition)\n }\n\n isNearbyTile(startingPosition, newPosition) {\n return (newPosition.x == startingPosition.x - 1 ||\n newPosition.x == startingPosition.x ||\n newPosition.x == startingPosition.x + 1) &&\n (newPosition.y == startingPosition.y - 1 ||\n newPosition.y == startingPosition.y ||\n newPosition.y == startingPosition.y + 1)\n }\n\n isStepBack(tileComponent) {\n return this.selectedTiles.length > 1 && this.selectedTiles.indexOf(tileComponent) == this.selectedTiles.length - 2\n }\n}\n\nRE.registerComponent(CombatLogic);\n","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\n\nexport default class FloatObject extends RE.Component {\n elapsed = 0\n @RE.Prop(\"Vector3\") amplitude = new THREE.Vector3(0, 1, 0)\n @RE.Prop(\"Vector3\") offset = new THREE.Vector3(0, 0, 0)\n @RE.Prop(\"Vector3\") period = new THREE.Vector3(0, 4, 0)\n\n awake() {\n\n }\n\n start() {\n this.elapsed = 0\n }\n\n update() {\n this.elapsed += RE.Runtime.deltaTime\n this.object3d.position.x = this.amplitude.x * Math.cos(this.period.x * this.elapsed) + this.offset.x\n this.object3d.position.y = this.amplitude.y * Math.sin(this.period.y * this.elapsed) + this.offset.y\n this.object3d.position.z = this.amplitude.z * Math.sin(this.period.z * this.elapsed) + this.offset.z\n }\n}\n\nRE.registerComponent(FloatObject);\n","import * as RE from 'rogue-engine';\nimport RaycastReceiver from './RaycastReceiver.re';\n\nexport default class HouseRaycastReceiver extends RaycastReceiver {\n\tisHovered = false\n\telapsed = 0\n\tclearHoverId = 0\n\tawake() {\n\n\t}\n\n\tstart() {\n\t\tthis.elapsed = 0\n\t}\n\n\tupdate() {\n\t\tif (this.isHovered) {\n\t\t\tthis.elapsed += RE.Runtime.deltaTime\n\t\t\tthis.object3d.position.y = 0.5 * Math.sin(4 * this.elapsed) + 1\n\n\t\t\tif (RE.Input.mouse.getButtonUp(0) || RE.Input.touch.endTouches.length > 0) {\n\t\t\t\tRE.Runtime.rogueDOMContainer.style.cursor = \"default\"\n\t\t\t\tRE.App.loadScene(\"World Map\")\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.object3d.position.y != 0) {\n\t\t\t\tthis.object3d.position.y = 0\n\t\t\t}\n\t\t}\n\n\t}\n\n\tonMouseOver(intersect) {\n\t\tif (!this.isHovered) {\n\t\t\tthis.isHovered = true\n\t\t}\n\t\tRE.Runtime.rogueDOMContainer.style.cursor = \"pointer\"\n\t\treturn false\n\t}\n\n\tonMouseOut() {\n\t\tif (!this.isHovered) {\n\t\t\treturn\n\t\t}\n\t\tthis.isHovered = false\n\t\t// this.object3d.position.y = 0\n\t\tRE.Runtime.rogueDOMContainer.style.cursor = \"default\"\n\t}\n}\n\nRE.registerComponent(HouseRaycastReceiver);\n","import * as RE from 'rogue-engine';\n\nexport default class AsyncLoader {\n\tloadStaticText(filepath) { \n\t\treturn new Promise((success, failure) => {\n\t\t\tfetch(RE.getStaticPath(filepath)).then(result => {\n\t\t\t\tresult.text().then(text => {\n\t\t\t\t\tsuccess(text)\n\t\t\t\t}, error => {\n\t\t\t\t\tfailure(error)\n\t\t\t\t})\n\t\t\t}, error => {\n\t\t\t\tfailure(error)\n\t\t\t})\n\t\t})\n\t}\n}","\nvar Easing = {}\n\nEasing.Linear = {}\nEasing.Linear.EaseNone = (percentageComplete) => percentageComplete\n\nEasing.Quadratic = {}\nEasing.Quadratic.EaseIn = (percentageComplete) => percentageComplete * percentageComplete\nEasing.Quadratic.EaseOut = (percentageComplete) => -percentageComplete * ( percentageComplete - 2 )\nEasing.Quadratic.EaseInOut = (percentageComplete) => {\n\tif ( ( percentageComplete *= 2 ) < 1 ) return 0.5 * percentageComplete * percentageComplete\n\treturn - 0.5 * ( --percentageComplete * ( percentageComplete - 2 ) - 1 )\n}\nEasing.Cubic = {}\nEasing.Cubic.EaseIn = (percentageComplete) => percentageComplete * percentageComplete * percentageComplete\nEasing.Cubic.EaseOut = (percentageComplete) => --percentageComplete * percentageComplete * percentageComplete + 1\nEasing.Cubic.EaseInOut = (percentageComplete) => {\n\tif ( ( percentageComplete *= 2 ) < 1 ) return 0.5 * percentageComplete * percentageComplete * percentageComplete\n\treturn 0.5 * ( ( percentageComplete -= 2 ) * percentageComplete * percentageComplete + 2 )\n}\nEasing.Quartic = {}\nEasing.Quartic.EaseIn = (percentageComplete) => percentageComplete * percentageComplete * percentageComplete * percentageComplete\nEasing.Quartic.EaseOut = (percentageComplete) => -( --percentageComplete * percentageComplete * percentageComplete * percentageComplete - 1 )\nEasing.Quartic.EaseInOut = (percentageComplete) => {\n\tif ( ( percentageComplete *= 2 ) < 1) return 0.5 * percentageComplete * percentageComplete * percentageComplete * percentageComplete\n\treturn - 0.5 * ( ( percentageComplete -= 2 ) * percentageComplete * percentageComplete * percentageComplete - 2 )\n}\nEasing.Quintic = {}\nEasing.Quintic.EaseIn = (percentageComplete) => percentageComplete * percentageComplete * percentageComplete * percentageComplete * percentageComplete\nEasing.Quintic.EaseOut = (percentageComplete) => ( percentageComplete = percentageComplete - 1 ) * percentageComplete * percentageComplete * percentageComplete * percentageComplete + 1\nEasing.Quintic.EaseInOut = (percentageComplete) => {\n\tif ( ( percentageComplete *= 2 ) < 1 ) return 0.5 * percentageComplete * percentageComplete * percentageComplete * percentageComplete * percentageComplete\n\treturn 0.5 * ( ( percentageComplete -= 2 ) * percentageComplete * percentageComplete * percentageComplete * percentageComplete + 2 )\n}\nEasing.Sinusoidal = {}\nEasing.Sinusoidal.EaseIn = (percentageComplete) => -Math.cos( percentageComplete * Math.PI / 2 ) + 1\nEasing.Sinusoidal.EaseOut = (percentageComplete) => Math.sin( percentageComplete * Math.PI / 2 )\nEasing.Sinusoidal.EaseInOut = (percentageComplete) => -0.5 * ( Math.cos( Math.PI * percentageComplete ) - 1 )\nEasing.Exponential = {}\nEasing.Exponential.EaseIn = (percentageComplete) => {\n\treturn percentageComplete == 0 ? 0 : Math.pow( 2, 10 * ( percentageComplete - 1 ) )\n};\n\nEasing.Exponential.EaseOut = (percentageComplete) => {\n\treturn percentageComplete == 1 ? 1 : - Math.pow( 2, - 10 * percentageComplete ) + 1\n};\n\nEasing.Exponential.EaseInOut = (percentageComplete) => {\n\tif ( percentageComplete == 0 ) return 0\n\tif ( percentageComplete == 1 ) return 1\n\tif ( ( percentageComplete *= 2 ) < 1 ) return 0.5 * Math.pow( 2, 10 * ( percentageComplete - 1 ) )\n\treturn 0.5 * ( - Math.pow( 2, - 10 * ( percentageComplete - 1 ) ) + 2 )\n};\nEasing.Circular = {}\nEasing.Circular.EaseIn = (percentageComplete) => -(Math.sqrt( 1 - percentageComplete * percentageComplete ) - 1)\nEasing.Circular.EaseOut = (percentageComplete) => Math.sqrt( 1 - (--percentageComplete * percentageComplete) )\nEasing.Circular.EaseInOut = (percentageComplete) => {\n\tif ( ( percentageComplete /= 0.5 ) < 1) return - 0.5 * ( Math.sqrt( 1 - percentageComplete * percentageComplete) - 1)\n\treturn 0.5 * ( Math.sqrt( 1 - ( percentageComplete -= 2) * percentageComplete) + 1)\n};\nEasing.Elastic = {};\nEasing.Elastic.EaseIn = (percentageComplete) => {\n\tvar s, a = 0.1, p = 0.4\n\tif ( percentageComplete == 0 ) return 0; if ( percentageComplete == 1 ) return 1; if ( !p ) p = 0.3\n\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\telse s = p / ( 2 * Math.PI ) * Math.asin( 1 / a )\n\treturn - ( a * Math.pow( 2, 10 * ( percentageComplete -= 1 ) ) * Math.sin( ( percentageComplete - s ) * ( 2 * Math.PI ) / p ) )\n};\n\nEasing.Elastic.EaseOut = (percentageComplete) => {\n\tvar s, a = 0.1, p = 0.4\n\tif ( percentageComplete == 0 ) return 0; if ( percentageComplete == 1 ) return 1; if ( !p ) p = 0.3\n\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\telse s = p / ( 2 * Math.PI ) * Math.asin( 1 / a )\n\treturn ( a * Math.pow( 2, - 10 * percentageComplete) * Math.sin( ( percentageComplete - s ) * ( 2 * Math.PI ) / p ) + 1 )\n};\n\nEasing.Elastic.EaseInOut = (percentageComplete) => {\n\tvar s, a = 0.1, p = 0.4\n\tif ( percentageComplete == 0 ) return 0; if ( percentageComplete == 1 ) return 1; if ( !p ) p = 0.3\n\tif ( !a || a < 1 ) { a = 1; s = p / 4; }\n\telse s = p / ( 2 * Math.PI ) * Math.asin( 1 / a )\n\tif ( ( percentageComplete *= 2 ) < 1 ) return - 0.5 * ( a * Math.pow( 2, 10 * ( percentageComplete -= 1 ) ) * Math.sin( ( percentageComplete - s ) * ( 2 * Math.PI ) / p ) )\n\treturn a * Math.pow( 2, -10 * ( percentageComplete -= 1 ) ) * Math.sin( ( percentageComplete - s ) * ( 2 * Math.PI ) / p ) * 0.5 + 1\n};\nEasing.Back = {}\nEasing.Back.EaseIn = (percentageComplete) => {\n\tvar s = 1.70158\n\treturn percentageComplete * percentageComplete * ( ( s + 1 ) * percentageComplete - s )\n};\n\nEasing.Back.EaseOut = (percentageComplete) => {\n\tvar s = 1.70158\n\treturn ( percentageComplete = percentageComplete - 1 ) * percentageComplete * ( ( s + 1 ) * percentageComplete + s ) + 1\n};\n\nEasing.Back.EaseInOut = (percentageComplete) => {\n\tvar s = 1.70158 * 1.525\n\tif ( ( percentageComplete *= 2 ) < 1 ) return 0.5 * ( percentageComplete * percentageComplete * ( ( s + 1 ) * percentageComplete - s ) )\n\treturn 0.5 * ( ( percentageComplete -= 2 ) * percentageComplete * ( ( s + 1 ) * percentageComplete + s ) + 2 )\n};\nEasing.Bounce = {}\nEasing.Bounce.EaseIn = (percentageComplete) => 1 - Easing.Bounce.EaseOut( 1 - percentageComplete )\nEasing.Bounce.EaseOut = (percentageComplete) => {\n\tif ( ( percentageComplete /= 1 ) < ( 1 / 2.75 ) ) {\n\t\treturn 7.5625 * percentageComplete * percentageComplete\n\t} else if ( percentageComplete < ( 2 / 2.75 ) ) {\n\t\treturn 7.5625 * ( percentageComplete -= ( 1.5 / 2.75 ) ) * percentageComplete + 0.75\n\t} else if ( percentageComplete < ( 2.5 / 2.75 ) ) {\n\t\treturn 7.5625 * ( percentageComplete -= ( 2.25 / 2.75 ) ) * percentageComplete + 0.9375\n\t} else {\n\t\treturn 7.5625 * ( percentageComplete -= ( 2.625 / 2.75 ) ) * percentageComplete + 0.984375\n\t}\n}\nEasing.Bounce.EaseInOut = (percentageComplete) => {\n\tif ( percentageComplete < 0.5 ) return Easing.Bounce.EaseIn( percentageComplete * 2 ) * 0.5\n\treturn Easing.Bounce.EaseOut( percentageComplete * 2 - 1 ) * 0.5 + 0.5\n}\n\n\nexport default Easing","var GameData = {}\n\nexport default GameData","import Easing from \"./Easings\"\nimport * as RE from 'rogue-engine';\n\nexport class TweenManager {\n\tactiveTweens = []\n\telapsed = 0\n\tawake() {\n\n\t}\n\tstart() {\n\t\tthis.elapsed = 0\n\n\t}\n\tupdate() {\n\t\tthis.elapsed += RE.Runtime.deltaTime\n\t\tlet tweensToRemove = []\n\t\tthis.activeTweens.forEach(tween => {\n\t\t\tif(tween.update(this.elapsed)) {\n\t\t\t\ttweensToRemove.push(tween)\n\t\t\t}\n\t\t})\n\n\t\tfor(let i = tweensToRemove.length - 1; i >= 0; i--) {\n\t\t\tthis.remove(tweensToRemove[i])\n\t\t}\n\t}\n\n\tadd(simpleTween) {\n\t\tthis.activeTweens.push(simpleTween)\n\t\tsimpleTween.start(this.elapsed)\n\t}\n\n\tremove(simpleTween) {\n\t\tdelete this.activeTweens[this.activeTweens.indexOf(simpleTween)]\n\t}\n}\n\nexport class SimpleTween {\n\tconstructor(initialObject, targetProperties, duration = 1000, easingFunction = Easing.Linear.EaseNone, onComplete = () => {}) {\n\t\tthis.initialObject = initialObject\n\t\tthis.targetProperties = targetProperties\n\t\tthis.duration = duration / 1000\n\t\tthis.easingFunction = easingFunction\n\t\tthis.onComplete = onComplete\n\t}\n\n\tstart(elapsed) {\n\t\tthis.copy = {}\n\t\tfor(let key in this.targetProperties) {\n\t\t\tthis.copy[key] = this.initialObject[key]\n\t\t}\n\t\tthis.begin = elapsed\n\t}\n\n\tupdate(elapsed) {\n\t\tif(elapsed >= this.begin + this.duration) {\n\t\t\tfor(let key in this.targetProperties) {\n\t\t\t\tthis.initialObject[key] = this.targetProperties[key]\n\t\t\t}\n\t\t\tthis.onComplete()\n\t\t\treturn true\n\t\t}\n\n\t\tlet delta = (elapsed - this.begin) / this.duration\n\t\tfor(let key in this.targetProperties) {\n\t\t\tthis.initialObject[key] = (this.targetProperties[key] - this.copy[key]) * this.easingFunction(delta) + this.copy[key]\n\t\t}\n\t\treturn false\n\t}\n}\n","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\n\nexport default class OrbitCamera extends RE.Component {\n\t@RE.Prop(\"Object3D\") target\n\n\trotateStart = new THREE.Vector2()\n\trotateEnd = new THREE.Vector2()\n\trotateDelta = new THREE.Vector2()\n\t@RE.Prop(\"Boolean\") enableRotate = true\n\t@RE.Prop(\"Number\") rotateSpeed = 1.0\n\n\t// How far you can orbit horizontally, upper and lower limits.\n\t// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n\t@RE.Prop(\"Number\") minAzimuthAngle = - Infinity // radians\n\t@RE.Prop(\"Number\") maxAzimuthAngle = Infinity // radians\n\n\t// How far you can orbit vertically, upper and lower limits.\n\t// Range is 0 to Math.PI radians.\n\t@RE.Prop(\"Number\") minPolarAngle = 0 // radians\n\t@RE.Prop(\"Number\") maxPolarAngle = Math.PI // radians\n\n\t@RE.Prop(\"Boolean\") enableDolly = true\n\t@RE.Prop(\"Number\") dollySpeed = 1.0\n\n\t@RE.Prop(\"Number\") minDistance = 1\n\t@RE.Prop(\"Number\") maxDistance = 50\n\n\tscale = 1\n\tEPS = 0.000001\n\ttwoPI = 2 * Math.PI\n\n\tspherical = new THREE.Spherical()\n\tsphericalDelta = new THREE.Spherical()\n\n\t@RE.Prop(\"Vector3\") offset = new THREE.Vector3()\n\n\t@RE.Prop(\"Number\") rotateMouseButton = 2\n\t\n\tquat = new THREE.Quaternion().setFromUnitVectors( new THREE.Vector3( 0, 1, 0 ), new THREE.Vector3( 0, 1, 0 ) )\n\tquatInverse = this.quat.clone().invert()\n\n\tlastPosition = new THREE.Vector3()\n\tlastQuaternion = new THREE.Quaternion()\n\n\tinitialOffset = new THREE.Vector3()\n\n awake() {\n }\n\n start() {\n\n\tRE.Runtime.rogueDOMContainer.addEventListener('contextmenu', event => { event.preventDefault() })\n\t\n\t// so camera.up is the orbit axis\n\tthis.quat = new THREE.Quaternion().setFromUnitVectors( this.object3d.up, new THREE.Vector3( 0, 1, 0 ) )\n\tthis.quatInverse = this.quat.clone().invert()\n\n\tthis.initialOffset.copy(this.object3d.position).sub(this.target.position)\n\tthis.offset.copy(this.initialOffset)\n }\n\n update() {\t\n\tlet normalizedScreenPosition = new THREE.Vector2(0,0)\n\tthis.normalizeScreenInput(RE.Input.mouse, normalizedScreenPosition)\n\n\tif(this.enableRotate && RE.Input.mouse.getButtonDown(this.rotateMouseButton)) {\n\t\tthis.rotateStart.set( normalizedScreenPosition.x, normalizedScreenPosition.y )\n\t}\n\n\tif(this.enableRotate && RE.Input.mouse.getButtonPressed(this.rotateMouseButton)) {\n\t\tthis.rotateEnd.set( normalizedScreenPosition.x, normalizedScreenPosition.y )\n\n\t\tthis.rotateDelta.subVectors( this.rotateEnd, this.rotateStart ).multiplyScalar( this.rotateSpeed )\n\n\t\tthis.rotateLeft(this.twoPI * this.rotateDelta.x)\n\n\t\tthis.rotateUp(this.twoPI * -this.rotateDelta.y)\n\n\t\tthis.rotateStart.copy( this.rotateEnd )\n\t}\n\n\tif(this.enableDolly && RE.Input.mouse.wheelY > 0) {\n\t\tthis.dollyOut()\n\t}\n\n\tif(this.enableDolly && RE.Input.mouse.wheelY < 0) {\n\t\tthis.dollyIn()\n\t}\n\n\tthis.updateCamera()\n}\n\n\trotateLeft(angle) {\n\t\tthis.sphericalDelta.theta -= angle\n\t}\n\n\trotateUp(angle) {\n\t\tthis.sphericalDelta.phi -= angle\n\t}\n\n\tupdateCamera() {\n\t\t// rotate offset to \"y-axis-is-up\" space\n\t\tthis.offset.applyQuaternion(this.quat)\n\n\t\t// angle from z-axis around y-axis\n\t\tthis.spherical.setFromVector3(this.offset)\n\t\tthis.spherical.theta += this.sphericalDelta.theta\n\t\tthis.spherical.phi += this.sphericalDelta.phi\n\n\t\t// restrict theta to be between desired limits\n\t\tlet min = this.minAzimuthAngle\n\t\tlet max = this.maxAzimuthAngle\n\n\t\tif ( isFinite(min) && isFinite(max) ) {\n\n\t\t\tif (min < -Math.PI) {\n\t\t\t\tmin += this.twoPI\n\t\t\t} else if (min > Math.PI) {\n\t\t\t\tmin -= this.twoPI\n\t\t\t}\n\n\t\t\tif (max < - Math.PI) {\n\t\t\t\tmax += this.twoPI\n\t\t\t} else if (max > Math.PI) {\n\t\t\t\tmax -= this.twoPI\n\t\t\t}\n\n\t\t\tif (min <= max) {\n\t\t\t\tthis.spherical.theta = Math.max(min, Math.min(max, this.spherical.theta))\n\t\t\t} else {\n\t\t\t\tthis.spherical.theta = (this.spherical.theta > (min + max) / 2 ) ?\n\t\t\t\t\tMath.max( min, this.spherical.theta ) :\n\t\t\t\t\tMath.min( max, this.spherical.theta )\n\t\t\t}\n\t\t}\n\n\t\t// restrict phi to be between desired limits\n\t\tthis.spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this.spherical.phi))\n\n\t\tthis.spherical.makeSafe()\n\n\n\t\tthis.spherical.radius *= this.scale\n\n\t\t// restrict radius to be between desired limits\n\t\tthis.spherical.radius = Math.max(this.minDistance, Math.min(this.maxDistance, this.spherical.radius))\n\n\t\tthis.offset.setFromSpherical(this.spherical)\n\n\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\tthis.offset.applyQuaternion(this.quatInverse)\n\n\t\tthis.object3d.position.copy(this.target.position).add(this.offset)\n\n\t\tthis.object3d.lookAt(this.target.position)\n\n\t\tthis.sphericalDelta.set(0, 0, 0)\n\n\t\tthis.scale = 1\n\n\t\t// update condition is:\n\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\t\tif (this.lastPosition.distanceToSquared(this.object3d.position) > this.EPS ||\n\t\t\t8 * (1 - this.lastQuaternion.dot(this.object3d.quaternion)) > this.EPS) {\n\n\t\t\tthis.lastPosition.copy(this.object3d.position)\n\t\t\tthis.lastQuaternion.copy(this.object3d.quaternion)\n\t\t}\n\t}\n\n\tdollyOut() {\n\t\tthis.scale /= Math.pow(0.95, this.dollySpeed)\n\t}\n\n\tdollyIn() {\n\t\tthis.scale *= Math.pow(0.95, this.dollySpeed)\n\t}\n\n normalizeScreenInput(browserVector, gameVector) {\n\tconst bounds = RE.Runtime.rogueDOMContainer.getBoundingClientRect()\n\tgameVector.x = ((browserVector.x - bounds.left) / bounds.width) * 2 - 1\n\tgameVector.y = -((browserVector.y - bounds.top) / bounds.height) * 2 + 1\n }\n}\n\nRE.registerComponent(OrbitCamera)\n","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\nimport { Color } from 'three';\n\n//https://www.youtube.com/watch?v=OFqENgtqRAY\n\nexport default class ParticleSystem extends RE.Component {\n\tvertexShader = `\n\tuniform float pointMultiplier;\n\tvarying vec4 vColor;\n\n\tvoid main() {\n\t vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n\t gl_Position = projectionMatrix * mvPosition;\n\t gl_PointSize = pointMultiplier / gl_Position.w;\n\n\t vColor = color;\n\t}`;\n\t\n\tfragmentShader = `\n\tuniform sampler2D diffuseTexture;\n\tvarying vec4 vColor;\n\n\tvoid main() {\n\t gl_FragColor = texture2D(diffuseTexture, gl_PointCoord) * vColor;\n\t}`;\n\n\t@RE.Prop(\"Texture\") texture\n\n\t@RE.Prop(\"Color\") color = new Color(255, 255, 255)\n\t@RE.Prop(\"Number\") alpha = 1\n\n\t@RE.Prop(\"Select\") blending = 0\n\tblendingOptions = [\"Additive\", \"Normal\", \"Multiply\", \"None\", \"Subtractive\"]\n\n\t//this is the \"mesh\" that we draw the particle textures into\n\t//it's a THREE.Points object that I added underneath the GameLogic Object3d\n\t@RE.Prop(\"Object3D\") globalPointsObject\n\n\t@RE.Prop(\"Number\") max = 500\n\t@RE.Prop(\"Number\") spawnPerTick = 1\n\t@RE.Prop(\"Number\") lifespan = 2\n\n\t//This is the Object3d where we spawn particles from. It uses the worldPosition\n\t//so things like rotations are accounted for\n\t@RE.Prop(\"Object3D\") initialLocation\n\t\n\t@RE.Prop(\"Vector3\") initialVelocity = new THREE.Vector3(0,0,0)\n\n\t@RE.Prop(\"Number\") thrustScalar = 0.01\n\n\t@RE.Prop(\"Vector3\") positionRandomBounds = new THREE.Vector3(1,1,1)\n\t@RE.Prop(\"Vector3\") velocityRandomBounds = new THREE.Vector3(1,1,1)\n\n\tstart() {\n\t\tconst bounds = RE.Runtime.rogueDOMContainer.getBoundingClientRect();\n\t\tconst uniforms = {\n\t\t\tdiffuseTexture: {\n\t\t\t\tvalue: this.texture\n\t\t\t},\n\t\t\tpointMultiplier: {\n\t\t\t\tvalue: bounds.width - bounds.left\n\t\t\t}\n\t\t}\n\n\t\tthis.material = new THREE.ShaderMaterial({\n\t\t\tuniforms: uniforms,\n\t\t\tvertexShader: this.vertexShader,\n\t\t\tfragmentShader: this.fragmentShader,\n\t\t\tblending: this.convertBlending(this.blending),\n\t\t\tdepthTest: true,\n\t\t\tdepthWrite: false,\n\t\t\ttransparent: true,\n\t\t\tvertexColors: true,\n\t\t})\n\n\t\t\n\t\tthis.geometry = new THREE.BufferGeometry()\n\t\tthis.geometry.setAttribute('position', new THREE.Float32BufferAttribute([], 3));\n\t\tthis.geometry.setAttribute('color', new THREE.Float32BufferAttribute([], 4));\n\n\t\tthis.globalPointsObject.geometry = this.geometry\n\t\tthis.globalPointsObject.material = this.material\n\n\t\tthis.particles = []\n\n\t\tthis.updateGeometry()\n\t}\n\n\tconvertBlending(selectIndex) {\n\t\tswitch(this.blendingOptions[selectIndex]) {\n\t\t\tcase \"Additive\":\n\t\t\t\treturn THREE.AdditiveBlending\n\t\t\tcase \"Normal\":\n\t\t\t\treturn THREE.NormalBlending\n\t\t\tcase \"Multiply\":\n\t\t\t\treturn THREE.MultiplyBlending\n\t\t\tcase \"None\":\n\t\t\t\treturn THREE.NoBlending\n\t\t\tcase \"Subtractive\":\n\t\t\t\treturn THREE.SubtractiveBlending\n\t\t\tdefault:\n\t\t\t\treturn THREE.AdditiveBlending\n\t\t}\n\t}\n\n\tawake() {\n\n\t}\n\n\tupdate() {\n\t\tthis.addParticles()\n \tthis.updateParticles(RE.Runtime.deltaTime);\n \tthis.updateGeometry();\n\t}\n\n\taddParticles() {\n\t\tif(this.particles.length >= this.max) {\n\t\t\treturn\n\t\t}\n\t\tfor (let i = 0; i < this.spawnPerTick; i++) {\n\t\t const life = this.lifespan;\n\t\t const newPosition = new THREE.Vector3()\n\t\t this.initialLocation.getWorldPosition(newPosition)\n\t\t\n\t\t newPosition.add(new THREE.Vector3(\n\t\t\t 1 * Math.random() - 0.5,\n\t\t\t 1 * Math.random() - 0.5,\n\t\t\t 1 * Math.random() - 0.5\n\t\t ).multiply(this.positionRandomBounds))\n\n\t\t const newVelocity = this.initialVelocity.clone()\n\t\t newVelocity.add(new THREE.Vector3(\n\t\t\t 1 * Math.random() - 0.5,\n\t\t\t 1 * Math.random() - 0.5,\n\t\t\t 1 * Math.random() - 0.5\n\t\t\t).multiply(this.velocityRandomBounds)\n\t\t )\n\n\t\t this.particles.push({\n\t\t\t position: newPosition,\n\t\t\t life: life,\n\t\t\t maxLife: life,\n\t\t\t velocity: newVelocity,\n\t\t\t color: this.color,\n\t\t\t alpha: this.alpha,\n\t\t });\n\t\t}\n\t }\n\t\n\t updateGeometry() {\n\t\tconst positions = [];\n\t\tconst colors = []\n\t\n\t\tfor (let p of this.particles) {\n\t\t positions.push(p.position.x, p.position.y, p.position.z);\n\t\t colors.push(p.color.r, p.color.g, p.color.b, p.alpha);\n\t\t}\n\t\n\t\tthis.geometry.setAttribute('position', new THREE.Float32BufferAttribute(positions, 3));\n\t\tthis.geometry.setAttribute('color', new THREE.Float32BufferAttribute(colors, 4));\n\t \n\t\tthis.geometry.attributes.position.needsUpdate = true;\n\t\tthis.geometry.attributes.color.needsUpdate = true;\n\t }\n\t\n\t updateParticles(deltaTime) {\n\t\tfor (let p of this.particles) {\n\t\t p.life -= deltaTime;\n\t\t}\n\t\n\t\tthis.particles = this.particles.filter(p => {\n\t\t return p.life > 0.0;\n\t\t});\n\t\n\t\tfor (let p of this.particles) {\t\t\n\t\t p.position.add(p.velocity.clone());\n\t\t}\n\n\t\t// RE.Debug.log(JSON.stringify(this.particles[0].position))\n\t\tlet camera = RE.App.currentScene.getObjectByProperty('uuid', RE.App.activeCamera)\n\t\n\t\tthis.particles.sort((a, b) => {\n\t\t const d1 = camera.position.distanceTo(a.position);\n\t\t const d2 = camera.position.distanceTo(b.position);\n\t\n\t\t if (d1 > d2) {\n\t\t\treturn -1;\n\t\t }\n\t\n\t\t if (d1 < d2) {\n\t\t\treturn 1;\n\t\t }\n\t\n\t\t return 0;\n\t\t});\n\t }\n\n}\n\nRE.registerComponent(ParticleSystem)","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\nimport {LineGeometry} from 'three/examples/jsm/lines/LineGeometry'\nimport {LineMaterial} from 'three/examples/jsm/lines/LineMaterial'\n\nimport {Line2} from 'three/examples/jsm/lines/Line2'\n\nexport default class Pathway extends RE.Component {\n linePoints = []\n\n colors = []\n\n @RE.props.color()\n lineColorShift = new THREE.Color(0.1, 0.1, 0.1)\n\n awake() {\n }\n\n start() {\n this.lineGeo = new LineGeometry();\n this.lineMat = new LineMaterial({\n\n color: 0xffffff,\n linewidth: 5, // in pixels\n vertexColors: true,\n dashed: false,\n wireframe: false,\n\n });\n\n const bounds = RE.Runtime.rogueDOMContainer.getBoundingClientRect();\n this.lineMat.resolution.set(bounds.width, bounds.height);\n }\n\n updateGeometry() {\n if(this.linePoints.length < 2) {\n return\n }\n\n const positions = [];\n\t\tconst colors = []\n\t\n\t\tfor (let p of this.linePoints) {\n\t\t positions.push(p.x, p.y, p.z);\n\t\t}\n\n for (let c of this.colors) {\n\t\t colors.push(Math.min(1, c.r + this.lineColorShift.r), Math.min(1, c.g + this.lineColorShift.g), Math.min(1, c.b + this.lineColorShift.b));\n\t\t}\n\n this.lineGeo = new LineGeometry();\n this.lineGeo.setPositions(positions)\n this.lineGeo.setColors(colors)\n\n if(this.line) {\n RE.App.currentScene.remove(this.line)\n }\n this.line = new Line2(this.lineGeo, this.lineMat);\n this.line.scale.set(1, 1, 1);\n \n RE.App.currentScene.add(this.line)\n this.line.computeLineDistances();\n \n\t}\n\n addPoint(position, color) {\n let dupePosition = position.clone()\n dupePosition.y -= 4\n dupePosition.z += 0.1\n this.linePoints.push(dupePosition)\n this.colors.push(color)\n this.updateGeometry()\n }\n\n recomputePath(tileComponents) {\n this.clearPoints()\n tileComponents.forEach((tileComponent, index) => {\n this.addPoint(tileComponent.object3d.position, tileComponent.object3d.originalMaterial.color)\n })\n this.updateGeometry()\n }\n\n clearPoints() {\n this.linePoints.length = 0\n this.colors.length = 0\n if(this.line) {\n RE.App.currentScene.remove(this.line)\n }\n }\n\n update() {\n }\n}\n\nRE.registerComponent(Pathway);\n","import * as RE from 'rogue-engine';\n\nexport default class RaycastReceiver extends RE.Component {\n onMouseOver(intersect) {\n throw new Error(\"Abstract class: Please inherit from this class to use it's behavior\")\n }\n\n onMouseOut(){\n throw new Error(\"Abstract class: Please inherit from this class to use it's behavior\")\n }\n}\n\nRE.registerComponent(RaycastReceiver);","import * as RE from 'rogue-engine';\nimport * as THREE from 'three'\nimport { Vector2 } from 'three';\nimport RaycastReceiver from './RaycastReceiver.re';\n\nexport default class RaycastReporter extends RE.Component {\n\t// @RE.Prop(\"Select\") something;\n\t// somethingOptions = [\"One\", \"Two\"]\n\n\t@RE.PropList(\"String\") receiverClass = [\"RaycastReceiver\"]\n\tallHovered = []\n\tawake() {\n\n\t}\n\n\tstart() {\n\t\tthis.mouse = new THREE.Vector2(0, 0)\n\t\tthis.raycaster = new THREE.Raycaster()\n\t\tthis.updated = false\n\t\tRE.Input.touch.enabled = true\n\t}\n\n\tnormalizeScreenInput(browserVector, gameVector) {\n\t\tconst bounds = RE.Runtime.rogueDOMContainer.getBoundingClientRect();\n\t\tgameVector.x = ((browserVector.x - bounds.left) / bounds.width) * 2 - 1;\n\t\tgameVector.y = -((browserVector.y - bounds.top) / bounds.height) * 2 + 1\n\t}\n\n\tgetMouseInput() {\n\t\tif (!RE.Input.mouse.isMoving) {\n\t\t\treturn\n\t\t}\n\t\tthis.normalizeScreenInput(RE.Input.mouse, this.mouse)\n\t\tthis.updated = true\n\t}\n\n\tgetTouchInput() {\n\t\tif (RE.Input.touch.touches.length == 0) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.normalizeScreenInput(RE.Input.touch.touches[0], this.mouse)\n\t\tthis.updated = true\n\n\t}\n\n\tupdate() {\n\t\tthis.updated = false\n\t\tthis.getMouseInput()\n\t\tthis.getTouchInput()\n\n\t\tif (!this.updated) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.raycaster.setFromCamera(this.mouse, this.object3d)\n\n\t\tlet intersects = this.raycaster.intersectObjects(RE.App.currentScene.children)\n\n\t\tlet listeningComponents = []\n\t\tintersects.forEach(intersect => {\n\t\t\tlet object3d = RE.App.currentScene.getObjectByProperty('uuid', intersect.object.uuid)\n\t\t\tlet component = RE.getComponent(RaycastReceiver, object3d)\n\t\t\twhile (component == null && object3d.parent != null) {\n\t\t\t\tobject3d = object3d.parent\n\t\t\t\tcomponent = RE.getComponent(RaycastReceiver, object3d)\n\t\t\t}\n\t\t\tif (component != null) {\n\t\t\t\tlisteningComponents = listeningComponents.filter((dataThing) => {\n\t\t\t\t\tdataThing.component.object3d.uuid != component.object3d.uuid\n\t\t\t\t})\n\t\t\t\tlisteningComponents.push({ component: component, intersect: intersect })\n\t\t\t}\n\t\t})\n\n\t\tfor (let i = 0; i < this.allHovered.length; i++) {\n\t\t\tlet dataThing = this.allHovered[i]\n\t\t\tif (!listeningComponents.includes(dataThing)) {\n\t\t\t\tdataThing.component.onMouseOut()\n\t\t\t}\n\t\t}\n\n\t\tthis.allHovered = []\n\n\t\tfor (let i = 0; i < listeningComponents.length; i++) {\n\t\t\tlet dataThing = listeningComponents[i]\n\t\t\tthis.allHovered.push(dataThing)\n\t\t\tif (dataThing.component.onMouseOver(dataThing.intersect) === false) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n\nRE.registerComponent(RaycastReporter);\n","import * as RE from 'rogue-engine';\nimport RaycastReceiver from './RaycastReceiver.re';\n\nexport default class SceneLinkRaycastReceiver extends RaycastReceiver {\n @RE.Prop(\"String\") targetScene\n\n awake() {\n\n }\n\n start() {\n\n }\n\n update() {\n if (this.isHovered && (RE.Input.mouse.getButtonUp(0) || RE.Input.touch.endTouches.length > 0)) {\n RE.Runtime.rogueDOMContainer.style.cursor = \"default\"\n RE.App.loadScene(this.targetScene)\n }\n }\n\n onMouseOver(intersect) {\n this.isHovered = true\n RE.Runtime.rogueDOMContainer.style.cursor = \"pointer\"\n }\n\n onMouseOut(){\n this.isHovered = false\n RE.Runtime.rogueDOMContainer.style.cursor = \"default\"\n }\n}\n\nRE.registerComponent(SceneLinkRaycastReceiver);\n","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\n\nexport default class ScrollObject extends RE.Component {\n @RE.Prop(\"Vector3\") offsetPerTick = new THREE.Vector3(0, 0.01, 0)\n @RE.Prop(\"Vector3\") completedBound = new THREE.Vector3(0, 10, 0)\n /* @RE.Prop(\"Scene\") */ nextScene = \"Title Screen\"\n awake() {\n\n }\n\n start() {\n // this.delta = this.object3d.position.copy().sub(this.completedBound)\n }\n\n update() {\n this.object3d.position.add(this.offsetPerTick)\n\n if(this.object3d.position.x >= this.completedBound.x &&\n this.object3d.position.y >= this.completedBound.y &&\n this.object3d.position.z >= this.completedBound.z) {\n RE.App.loadScene(this.nextScene)\n }\n }\n}\n\nRE.registerComponent(ScrollObject);\n","import * as RE from 'rogue-engine'\nimport * as THREE from 'three'\n\nexport default class ScrollTexture extends RE.Component {\n @RE.Prop(\"Vector2\") offsetPerTick = new THREE.Vector2(-0.001, 0.001)\n @RE.Prop(\"Material\") materialToOffset\n \n update() {\n this.materialToOffset.map.offset.add(this.offsetPerTick)\n }\n}\n\nRE.registerComponent(ScrollTexture);\n","import * as RE from 'rogue-engine';\nimport RaycastReceiver from './RaycastReceiver.re';\nimport { SimpleTween } from './Library/SimpleTweens'\nimport Easing from './Library/Easings';\nimport * as THREE from 'three'\nimport CombatLogic from './CombatLogic.re'\n\nexport default class TileRaycastReceiver extends RaycastReceiver {\n @RE.Prop(\"Vector2\") tileSize = new THREE.Vector2(1.1, 1.1)\n\n @RE.Prop(\"Audio\") dropInSound\n @RE.Prop(\"Audio\") hoverSound\n @RE.Prop(\"Audio\") clearSound\n\n onMouseOver(intersect) {\n if(this.object3d.isAnimating) {\n return\n }\n\n this.currentObj = intersect.object\n this.currentObj.material = this.currentObj.highlightMaterial\n \n RE.Runtime.rogueDOMContainer.style.cursor = \"pointer\"\n\n if(RE.Input.mouse.getButtonPressed(0) || RE.Input.touch.touches.length == 1) {\n let game = RE.getComponent(CombatLogic)\n let [isAdded, selectedTiles] = game.addTile(this)\n if(isAdded) {\n if(this.hoverSound) {\n this.hoverSound.play()\n }\n } else {\n if(selectedTiles[selectedTiles.length - 1] != this) {\n this.currentObj.material = this.currentObj.originalMaterial\n }\n }\n }\n }\n\n onMouseOut(){\n if(this.object3d.isAnimating || !this.currentObj) {\n return\n }\n\n if(RE.Input.mouse.getButtonPressed(0)) {\n //dragged out of this tile, should track state so a second \"leave\" will unselect\n }\n\n this.currentObj.material = this.currentObj.originalMaterial\n RE.Runtime.rogueDOMContainer.style.cursor = \"default\"\n }\n\n getOriginalMaterial() {\n return this.object3d.originalMaterial\n }\n\n getPosition() {\n return this.object3d.position\n }\n\n awake() {\n\n }\n\n start() {\n if(this.dropInSound) {\n this.dropInSound.setVolume(0.7)\n this.dropInSound.setLoop(false)\n }\n\n if(this.hoverSound) {\n this.hoverSound.setVolume(0.7)\n this.hoverSound.setLoop(false)\n }\n\n if(this.clearSound) {\n this.clearSound.setVolume(1)\n this.clearSound.setLoop(false)\n }\n }\n\n update() {\n\n }\n\n initialize(gridPosition, boardDimensions, originalMaterial, hoverMaterial, tweenManager, delay, startingZ, easingFunction) {\n let offset = new THREE.Vector2(\n (boardDimensions.x * this.tileSize.x - 1) / 2,\n (boardDimensions.y * this.tileSize.y - 1) / 2,\n )\n let actualPosition = new THREE.Vector3((this.tileSize.x * gridPosition.x) - offset.x, (this.tileSize.y * gridPosition.y) - offset.y, startingZ)\n // let actualPosition = new THREE.Vector3(Math.floor((boardDimensions.x * this.tileSize.x - 1) * Math.random()) - offset.x, Math.floor((boardDimensions.y * this.tileSize.y - 1) * Math.random()) - offset.y, startingZ)\n RE.Debug.log(JSON.stringify(actualPosition))\n this.object3d.position.copy(actualPosition)\n \n this.object3d.originalMaterial = originalMaterial\n this.object3d.highlightMaterial = hoverMaterial\n this.object3d.material = originalMaterial\n this.object3d.gridPosition = gridPosition\n this.object3d.isAnimating = true\n \n setTimeout(() => {\n if(this.dropInSound) {\n this.dropInSound.play()\n }\n }, (delay/3) * Math.random())\n tweenManager.add(new SimpleTween(this.object3d.position, {z: 0}, delay, easingFunction, () => { \n this.object3d.isAnimating = false\n }))\n }\n\n remove(tweenManager) {\n this.object3d.isAnimating = true\n setTimeout(() => {\n if(this.clearSound) {\n this.clearSound.play()\n }\n }, 150 * Math.random())\n \n tweenManager.add(new SimpleTween(this.object3d.position, {z: -14}, Math.floor(1500 * Math.random()) + 300, Easing.Quadratic.EaseIn, () => { \n this.object3d.parent.remove(this.object3d)\n }))\n }\n}\n\nRE.registerComponent(TileRaycastReceiver);\n","import * as RE from 'rogue-engine';\nimport AsyncLoader from './Library/AsyncLoader';\n\nexport default class TitleScreenControl extends RE.Component {\n\n @RE.props.text()\n introScene = \"Combat Screen\"\n \n @RE.props.text()\n creditsScene = \"Credits\"\n \n loader = new AsyncLoader()\n awake() {\n\n }\n\n start() {\n this.loader.loadStaticText(\"title-screen.html\").then(html => {\n RE.Runtime.uiContainer.innerHTML = html\n\n document.getElementById(\"play-button\").addEventListener(\"mouseup\", () => {\n RE.App.loadScene(this.introScene)\n })\n document.getElementById(\"play-button\").addEventListener(\"touchend\", () => {\n RE.App.loadScene(this.introScene)\n })\n\n document.getElementById(\"credits-button\").addEventListener(\"mouseup\", () => {\n RE.App.loadScene(this.creditsScene)\n })\n document.getElementById(\"credits-button\").addEventListener(\"touchend\", () => {\n RE.App.loadScene(this.creditsScene)\n })\n })\n }\n\n update() {\n\n }\n}\n\nRE.registerComponent(TitleScreenControl);\n","module.exports = __WEBPACK_EXTERNAL_MODULE_rogue_engine__;","module.exports = __WEBPACK_EXTERNAL_MODULE_three__;","import { LineSegments2 } from '../lines/LineSegments2.js';\nimport { LineGeometry } from '../lines/LineGeometry.js';\nimport { LineMaterial } from '../lines/LineMaterial.js';\n\nclass Line2 extends LineSegments2 {\n\n\tconstructor( geometry = new LineGeometry(), material = new LineMaterial( { color: Math.random() * 0xffffff } ) ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'Line2';\n\n\t}\n\n}\n\nLine2.prototype.isLine2 = true;\n\nexport { Line2 };\n","import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';\n\nclass LineGeometry extends LineSegmentsGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\t\tthis.type = 'LineGeometry';\n\n\t}\n\n\tsetPositions( array ) {\n\n\t\t// converts [ x1, y1, z1, x2, y2, z2, ... ] to pairs format\n\n\t\tvar length = array.length - 3;\n\t\tvar points = new Float32Array( 2 * length );\n\n\t\tfor ( var i = 0; i < length; i += 3 ) {\n\n\t\t\tpoints[ 2 * i ] = array[ i ];\n\t\t\tpoints[ 2 * i + 1 ] = array[ i + 1 ];\n\t\t\tpoints[ 2 * i + 2 ] = array[ i + 2 ];\n\n\t\t\tpoints[ 2 * i + 3 ] = array[ i + 3 ];\n\t\t\tpoints[ 2 * i + 4 ] = array[ i + 4 ];\n\t\t\tpoints[ 2 * i + 5 ] = array[ i + 5 ];\n\n\t\t}\n\n\t\tsuper.setPositions( points );\n\n\t\treturn this;\n\n\t}\n\n\tsetColors( array ) {\n\n\t\t// converts [ r1, g1, b1, r2, g2, b2, ... ] to pairs format\n\n\t\tvar length = array.length - 3;\n\t\tvar colors = new Float32Array( 2 * length );\n\n\t\tfor ( var i = 0; i < length; i += 3 ) {\n\n\t\t\tcolors[ 2 * i ] = array[ i ];\n\t\t\tcolors[ 2 * i + 1 ] = array[ i + 1 ];\n\t\t\tcolors[ 2 * i + 2 ] = array[ i + 2 ];\n\n\t\t\tcolors[ 2 * i + 3 ] = array[ i + 3 ];\n\t\t\tcolors[ 2 * i + 4 ] = array[ i + 4 ];\n\t\t\tcolors[ 2 * i + 5 ] = array[ i + 5 ];\n\n\t\t}\n\n\t\tsuper.setColors( colors );\n\n\t\treturn this;\n\n\t}\n\n\tfromLine( line ) {\n\n\t\tvar geometry = line.geometry;\n\n\t\tif ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.LineGeometry no longer supports Geometry. Use THREE.BufferGeometry instead.' );\n\t\t\treturn;\n\n\t\t} else if ( geometry.isBufferGeometry ) {\n\n\t\t\tthis.setPositions( geometry.attributes.position.array ); // assumes non-indexed\n\n\t\t}\n\n\t\t// set colors, maybe\n\n\t\treturn this;\n\n\t}\n\n}\n\nLineGeometry.prototype.isLineGeometry = true;\n\nexport { LineGeometry };\n","/**\n * parameters = {\n * color: <hex>,\n * linewidth: <float>,\n * dashed: <boolean>,\n * dashScale: <float>,\n * dashSize: <float>,\n * gapSize: <float>,\n * resolution: <Vector2>, // to be set by renderer\n * }\n */\n\nimport {\n\tShaderLib,\n\tShaderMaterial,\n\tUniformsLib,\n\tUniformsUtils,\n\tVector2\n} from \"three\";\n\n\nUniformsLib.line = {\n\n\tworldUnits: { value: 1 },\n\tlinewidth: { value: 1 },\n\tresolution: { value: new Vector2( 1, 1 ) },\n\tdashScale: { value: 1 },\n\tdashSize: { value: 1 },\n\tgapSize: { value: 1 } // todo FIX - maybe change to totalSize\n\n};\n\nShaderLib[ 'line' ] = {\n\n\tuniforms: UniformsUtils.merge( [\n\t\tUniformsLib.common,\n\t\tUniformsLib.fog,\n\t\tUniformsLib.line\n\t] ),\n\n\tvertexShader:\n\t\t/* glsl */`\n\t\t#include <common>\n\t\t#include <color_pars_vertex>\n\t\t#include <fog_pars_vertex>\n\t\t#include <logdepthbuf_pars_vertex>\n\t\t#include <clipping_planes_pars_vertex>\n\n\t\tuniform float linewidth;\n\t\tuniform vec2 resolution;\n\n\t\tattribute vec3 instanceStart;\n\t\tattribute vec3 instanceEnd;\n\n\t\tattribute vec3 instanceColorStart;\n\t\tattribute vec3 instanceColorEnd;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashScale;\n\t\t\tattribute float instanceDistanceStart;\n\t\t\tattribute float instanceDistanceEnd;\n\t\t\tvarying float vLineDistance;\n\n\t\t#endif\n\n\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t// conservative estimate of the near plane\n\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#ifdef USE_COLOR\n\n\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t#endif\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t// camera space\n\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\tworldStart = start.xyz;\n\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t#else\n\n\t\t\t\tvUv = uv;\n\n\t\t\t#endif\n\n\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\tif ( perspective ) {\n\n\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t// ndc space\n\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t// direction\n\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t// account for clip-space aspect ratio\n\t\t\tdir.x *= aspect;\n\t\t\tdir = normalize( dir );\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\tvec3 offset;\n\t\t\t\tif ( position.y < 0.5 ) {\n\n\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t} else {\n\n\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t}\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t#endif\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t// set the world position\n\t\t\t\tworldPos = ( position.y < 0.5 ) ? start : end;\n\t\t\t\tworldPos.xyz += offset;\n\n\t\t\t\t// project the worldpos\n\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t// segements overlap neatly\n\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t#else\n\n\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\tdir.x /= aspect;\n\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t// sign flip\n\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t// endcaps\n\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\toffset += - dir;\n\n\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\toffset += dir;\n\n\t\t\t\t}\n\n\t\t\t\t// adjust for linewidth\n\t\t\t\toffset *= linewidth;\n\n\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t// select end\n\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t// back to clip space\n\t\t\t\toffset *= clip.w;\n\n\t\t\t\tclip.xy += offset;\n\n\t\t\t#endif\n\n\t\t\tgl_Position = clip;\n\n\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t#include <logdepthbuf_vertex>\n\t\t\t#include <clipping_planes_vertex>\n\t\t\t#include <fog_vertex>\n\n\t\t}\n\t\t`,\n\n\tfragmentShader:\n\t\t/* glsl */`\n\t\tuniform vec3 diffuse;\n\t\tuniform float opacity;\n\t\tuniform float linewidth;\n\n\t\t#ifdef USE_DASH\n\n\t\t\tuniform float dashSize;\n\t\t\tuniform float gapSize;\n\n\t\t#endif\n\n\t\tvarying float vLineDistance;\n\n\t\t#ifdef WORLD_UNITS\n\n\t\t\tvarying vec4 worldPos;\n\t\t\tvarying vec3 worldStart;\n\t\t\tvarying vec3 worldEnd;\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t#endif\n\n\t\t#else\n\n\t\t\tvarying vec2 vUv;\n\n\t\t#endif\n\n\t\t#include <common>\n\t\t#include <color_pars_fragment>\n\t\t#include <fog_pars_fragment>\n\t\t#include <logdepthbuf_pars_fragment>\n\t\t#include <clipping_planes_pars_fragment>\n\n\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\tfloat mua;\n\t\t\tfloat mub;\n\n\t\t\tvec3 p13 = p1 - p3;\n\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\tmua = numer / denom;\n\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\treturn vec2( mua, mub );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include <clipping_planes_fragment>\n\n\t\t\t#ifdef USE_DASH\n\n\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\tif ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t#endif\n\n\t\t\tfloat alpha = opacity;\n\n\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\tfloat len = length( delta );\n\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#endif\n\n\t\t\t#else\n\n\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t#else\n\n\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t#include <logdepthbuf_fragment>\n\t\t\t#include <color_fragment>\n\n\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t#include <tonemapping_fragment>\n\t\t\t#include <encodings_fragment>\n\t\t\t#include <fog_fragment>\n\t\t\t#include <premultiplied_alpha_fragment>\n\n\t\t}\n\t\t`\n};\n\nclass LineMaterial extends ShaderMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper( {\n\n\t\t\ttype: 'LineMaterial',\n\n\t\t\tuniforms: UniformsUtils.clone( ShaderLib[ 'line' ].uniforms ),\n\n\t\t\tvertexShader: ShaderLib[ 'line' ].vertexShader,\n\t\t\tfragmentShader: ShaderLib[ 'line' ].fragmentShader,\n\n\t\t\tclipping: true // required for clipping support\n\n\t\t} );\n\n\t\tObject.defineProperties( this, {\n\n\t\t\tcolor: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.diffuse.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.diffuse.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tworldUnits: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn 'WORLD_UNITS' in this.defines;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tif ( value === true ) {\n\n\t\t\t\t\t\tthis.defines.WORLD_UNITS = '';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.WORLD_UNITS;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tlinewidth: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.linewidth.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.linewidth.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashed: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn Boolean( 'USE_DASH' in this.defines );\n\n\t\t\t\t},\n\n\t\t\t\tset( value ) {\n\n\t\t\t\t\tif ( Boolean( value ) !== Boolean( 'USE_DASH' in this.defines ) ) {\n\n\t\t\t\t\t\tthis.needsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( value === true ) {\n\n\t\t\t\t\t\tthis.defines.USE_DASH = '';\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.USE_DASH;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashScale: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.dashScale.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.dashScale.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashSize: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.dashSize.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.dashSize.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tdashOffset: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.dashOffset.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.dashOffset.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tgapSize: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.gapSize.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.gapSize.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\topacity: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.opacity.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.opacity.value = value;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tresolution: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn this.uniforms.resolution.value;\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tthis.uniforms.resolution.value.copy( value );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\talphaToCoverage: {\n\n\t\t\t\tenumerable: true,\n\n\t\t\t\tget: function () {\n\n\t\t\t\t\treturn Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines );\n\n\t\t\t\t},\n\n\t\t\t\tset: function ( value ) {\n\n\t\t\t\t\tif ( Boolean( value ) !== Boolean( 'USE_ALPHA_TO_COVERAGE' in this.defines ) ) {\n\n\t\t\t\t\t\tthis.needsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( value === true ) {\n\n\t\t\t\t\t\tthis.defines.USE_ALPHA_TO_COVERAGE = '';\n\t\t\t\t\t\tthis.extensions.derivatives = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdelete this.defines.USE_ALPHA_TO_COVERAGE;\n\t\t\t\t\t\tthis.extensions.derivatives = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n}\n\nLineMaterial.prototype.isLineMaterial = true;\n\nexport { LineMaterial };\n","import {\n\tBox3,\n\tInstancedInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tLine3,\n\tMathUtils,\n\tMatrix4,\n\tMesh,\n\tSphere,\n\tVector3,\n\tVector4\n} from 'three';\nimport { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry.js';\nimport { LineMaterial } from '../lines/LineMaterial.js';\n\nconst _start = new Vector3();\nconst _end = new Vector3();\n\nconst _start4 = new Vector4();\nconst _end4 = new Vector4();\n\nconst _ssOrigin = new Vector4();\nconst _ssOrigin3 = new Vector3();\nconst _mvMatrix = new Matrix4();\nconst _line = new Line3();\nconst _closestPoint = new Vector3();\n\nconst _box = new Box3();\nconst _sphere = new Sphere();\nconst _clipToWorldVector = new Vector4();\n\nclass LineSegments2 extends Mesh {\n\n\tconstructor( geometry = new LineSegmentsGeometry(), material = new LineMaterial( { color: Math.random() * 0xffffff } ) ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'LineSegments2';\n\n\t}\n\n\t// for backwards-compatability, but could be a method of LineSegmentsGeometry...\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst instanceStart = geometry.attributes.instanceStart;\n\t\tconst instanceEnd = geometry.attributes.instanceEnd;\n\t\tconst lineDistances = new Float32Array( 2 * instanceStart.count );\n\n\t\tfor ( let i = 0, j = 0, l = instanceStart.count; i < l; i ++, j += 2 ) {\n\n\t\t\t_start.fromBufferAttribute( instanceStart, i );\n\t\t\t_end.fromBufferAttribute( instanceEnd, i );\n\n\t\t\tlineDistances[ j ] = ( j === 0 ) ? 0 : lineDistances[ j - 1 ];\n\t\t\tlineDistances[ j + 1 ] = lineDistances[ j ] + _start.distanceTo( _end );\n\n\t\t}\n\n\t\tconst instanceDistanceBuffer = new InstancedInterleavedBuffer( lineDistances, 2, 1 ); // d0, d1\n\n\t\tgeometry.setAttribute( 'instanceDistanceStart', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 0 ) ); // d0\n\t\tgeometry.setAttribute( 'instanceDistanceEnd', new InterleavedBufferAttribute( instanceDistanceBuffer, 1, 1 ) ); // d1\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tif ( raycaster.camera === null ) {\n\n\t\t\tconsole.error( 'LineSegments2: \"Raycaster.camera\" needs to be set in order to raycast against LineSegments2.' );\n\n\t\t}\n\n\t\tconst threshold = ( raycaster.params.Line2 !== undefined ) ? raycaster.params.Line2.threshold || 0 : 0;\n\n\t\tconst ray = raycaster.ray;\n\t\tconst camera = raycaster.camera;\n\t\tconst projectionMatrix = camera.projectionMatrix;\n\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst resolution = material.resolution;\n\t\tconst lineWidth = material.linewidth + threshold;\n\n\t\tconst instanceStart = geometry.attributes.instanceStart;\n\t\tconst instanceEnd = geometry.attributes.instanceEnd;\n\n\t\t// camera forward is negative\n\t\tconst near = - camera.near;\n\n\t\t// clip space is [ - 1, 1 ] so multiply by two to get the full\n\t\t// width in clip space\n\t\tconst ssMaxWidth = 2.0 * Math.max( lineWidth / resolution.width, lineWidth / resolution.height );\n\n\t\t//\n\n\t\t// check if we intersect the sphere bounds\n\t\tif ( geometry.boundingSphere === null ) {\n\n\t\t\tgeometry.computeBoundingSphere();\n\n\t\t}\n\n\t\t_sphere.copy( geometry.boundingSphere ).applyMatrix4( matrixWorld );\n\t\tconst distanceToSphere = Math.max( camera.near, _sphere.distanceToPoint( ray.origin ) );\n\n\t\t// get the w component to scale the world space line width\n\t\t_clipToWorldVector.set( 0, 0, - distanceToSphere, 1.0 ).applyMatrix4( camera.projectionMatrix );\n\t\t_clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w );\n\t\t_clipToWorldVector.applyMatrix4( camera.projectionMatrixInverse );\n\n\t\t// increase the sphere bounds by the worst case line screen space width\n\t\tconst sphereMargin = Math.abs( ssMaxWidth / _clipToWorldVector.w ) * 0.5;\n\t\t_sphere.radius += sphereMargin;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t//\n\n\t\t// check if we intersect the box bounds\n\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\tgeometry.computeBoundingBox();\n\n\t\t}\n\n\t\t_box.copy( geometry.boundingBox ).applyMatrix4( matrixWorld );\n\t\tconst distanceToBox = Math.max( camera.near, _box.distanceToPoint( ray.origin ) );\n\n\t\t// get the w component to scale the world space line width\n\t\t_clipToWorldVector.set( 0, 0, - distanceToBox, 1.0 ).applyMatrix4( camera.projectionMatrix );\n\t\t_clipToWorldVector.multiplyScalar( 1.0 / _clipToWorldVector.w );\n\t\t_clipToWorldVector.applyMatrix4( camera.projectionMatrixInverse );\n\n\t\t// increase the sphere bounds by the worst case line screen space width\n\t\tconst boxMargin = Math.abs( ssMaxWidth / _clipToWorldVector.w ) * 0.5;\n\t\t_box.max.x += boxMargin;\n\t\t_box.max.y += boxMargin;\n\t\t_box.max.z += boxMargin;\n\t\t_box.min.x -= boxMargin;\n\t\t_box.min.y -= boxMargin;\n\t\t_box.min.z -= boxMargin;\n\n\t\tif ( raycaster.ray.intersectsBox( _box ) === false ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t//\n\n\t\t// pick a point 1 unit out along the ray to avoid the ray origin\n\t\t// sitting at the camera origin which will cause \"w\" to be 0 when\n\t\t// applying the projection matrix.\n\t\tray.at( 1, _ssOrigin );\n\n\t\t// ndc space [ - 1.0, 1.0 ]\n\t\t_ssOrigin.w = 1;\n\t\t_ssOrigin.applyMatrix4( camera.matrixWorldInverse );\n\t\t_ssOrigin.applyMatrix4( projectionMatrix );\n\t\t_ssOrigin.multiplyScalar( 1 / _ssOrigin.w );\n\n\t\t// screen space\n\t\t_ssOrigin.x *= resolution.x / 2;\n\t\t_ssOrigin.y *= resolution.y / 2;\n\t\t_ssOrigin.z = 0;\n\n\t\t_ssOrigin3.copy( _ssOrigin );\n\n\t\t_mvMatrix.multiplyMatrices( camera.matrixWorldInverse, matrixWorld );\n\n\t\tfor ( let i = 0, l = instanceStart.count; i < l; i ++ ) {\n\n\t\t\t_start4.fromBufferAttribute( instanceStart, i );\n\t\t\t_end4.fromBufferAttribute( instanceEnd, i );\n\n\t\t\t_start4.w = 1;\n\t\t\t_end4.w = 1;\n\n\t\t\t// camera space\n\t\t\t_start4.applyMatrix4( _mvMatrix );\n\t\t\t_end4.applyMatrix4( _mvMatrix );\n\n\t\t\t// skip the segment if it's entirely behind the camera\n\t\t\tvar isBehindCameraNear = _start4.z > near && _end4.z > near;\n\t\t\tif ( isBehindCameraNear ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// trim the segment if it extends behind camera near\n\t\t\tif ( _start4.z > near ) {\n\n\t\t\t\tconst deltaDist = _start4.z - _end4.z;\n\t\t\t\tconst t = ( _start4.z - near ) / deltaDist;\n\t\t\t\t_start4.lerp( _end4, t );\n\n\t\t\t} else if ( _end4.z > near ) {\n\n\t\t\t\tconst deltaDist = _end4.z - _start4.z;\n\t\t\t\tconst t = ( _end4.z - near ) / deltaDist;\n\t\t\t\t_end4.lerp( _start4, t );\n\n\t\t\t}\n\n\t\t\t// clip space\n\t\t\t_start4.applyMatrix4( projectionMatrix );\n\t\t\t_end4.applyMatrix4( projectionMatrix );\n\n\t\t\t// ndc space [ - 1.0, 1.0 ]\n\t\t\t_start4.multiplyScalar( 1 / _start4.w );\n\t\t\t_end4.multiplyScalar( 1 / _end4.w );\n\n\t\t\t// screen space\n\t\t\t_start4.x *= resolution.x / 2;\n\t\t\t_start4.y *= resolution.y / 2;\n\n\t\t\t_end4.x *= resolution.x / 2;\n\t\t\t_end4.y *= resolution.y / 2;\n\n\t\t\t// create 2d segment\n\t\t\t_line.start.copy( _start4 );\n\t\t\t_line.start.z = 0;\n\n\t\t\t_line.end.copy( _end4 );\n\t\t\t_line.end.z = 0;\n\n\t\t\t// get closest point on ray to segment\n\t\t\tconst param = _line.closestPointToPointParameter( _ssOrigin3, true );\n\t\t\t_line.at( param, _closestPoint );\n\n\t\t\t// check if the intersection point is within clip space\n\t\t\tconst zPos = MathUtils.lerp( _start4.z, _end4.z, param );\n\t\t\tconst isInClipSpace = zPos >= - 1 && zPos <= 1;\n\n\t\t\tconst isInside = _ssOrigin3.distanceTo( _closestPoint ) < lineWidth * 0.5;\n\n\t\t\tif ( isInClipSpace && isInside ) {\n\n\t\t\t\t_line.start.fromBufferAttribute( instanceStart, i );\n\t\t\t\t_line.end.fromBufferAttribute( instanceEnd, i );\n\n\t\t\t\t_line.start.applyMatrix4( matrixWorld );\n\t\t\t\t_line.end.applyMatrix4( matrixWorld );\n\n\t\t\t\tconst pointOnLine = new Vector3();\n\t\t\t\tconst point = new Vector3();\n\n\t\t\t\tray.distanceSqToSegment( _line.start, _line.end, point, pointOnLine );\n\n\t\t\t\tintersects.push( {\n\n\t\t\t\t\tpoint: point,\n\t\t\t\t\tpointOnLine: pointOnLine,\n\t\t\t\t\tdistance: ray.origin.distanceTo( point ),\n\n\t\t\t\t\tobject: this,\n\t\t\t\t\tface: null,\n\t\t\t\t\tfaceIndex: i,\n\t\t\t\t\tuv: null,\n\t\t\t\t\tuv2: null,\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nLineSegments2.prototype.LineSegments2 = true;\n\nexport { LineSegments2 };\n","import {\n\tBox3,\n\tFloat32BufferAttribute,\n\tInstancedBufferGeometry,\n\tInstancedInterleavedBuffer,\n\tInterleavedBufferAttribute,\n\tSphere,\n\tVector3,\n\tWireframeGeometry\n} from 'three';\n\nconst _box = new Box3();\nconst _vector = new Vector3();\n\nclass LineSegmentsGeometry extends InstancedBufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'LineSegmentsGeometry';\n\n\t\tconst positions = [ - 1, 2, 0, 1, 2, 0, - 1, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 0, - 1, - 1, 0, 1, - 1, 0 ];\n\t\tconst uvs = [ - 1, 2, 1, 2, - 1, 1, 1, 1, - 1, - 1, 1, - 1, - 1, - 2, 1, - 2 ];\n\t\tconst index = [ 0, 2, 1, 2, 3, 1, 2, 4, 3, 4, 5, 3, 4, 6, 5, 6, 7, 5 ];\n\n\t\tthis.setIndex( index );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst start = this.attributes.instanceStart;\n\t\tconst end = this.attributes.instanceEnd;\n\n\t\tif ( start !== undefined ) {\n\n\t\t\tstart.applyMatrix4( matrix );\n\n\t\t\tend.applyMatrix4( matrix );\n\n\t\t\tstart.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetPositions( array ) {\n\n\t\tlet lineSegments;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\tlineSegments = array;\n\n\t\t} else if ( Array.isArray( array ) ) {\n\n\t\t\tlineSegments = new Float32Array( array );\n\n\t\t}\n\n\t\tconst instanceBuffer = new InstancedInterleavedBuffer( lineSegments, 6, 1 ); // xyz, xyz\n\n\t\tthis.setAttribute( 'instanceStart', new InterleavedBufferAttribute( instanceBuffer, 3, 0 ) ); // xyz\n\t\tthis.setAttribute( 'instanceEnd', new InterleavedBufferAttribute( instanceBuffer, 3, 3 ) ); // xyz\n\n\t\t//\n\n\t\tthis.computeBoundingBox();\n\t\tthis.computeBoundingSphere();\n\n\t\treturn this;\n\n\t}\n\n\tsetColors( array ) {\n\n\t\tlet colors;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\tcolors = array;\n\n\t\t} else if ( Array.isArray( array ) ) {\n\n\t\t\tcolors = new Float32Array( array );\n\n\t\t}\n\n\t\tconst instanceColorBuffer = new InstancedInterleavedBuffer( colors, 6, 1 ); // rgb, rgb\n\n\t\tthis.setAttribute( 'instanceColorStart', new InterleavedBufferAttribute( instanceColorBuffer, 3, 0 ) ); // rgb\n\t\tthis.setAttribute( 'instanceColorEnd', new InterleavedBufferAttribute( instanceColorBuffer, 3, 3 ) ); // rgb\n\n\t\treturn this;\n\n\t}\n\n\tfromWireframeGeometry( geometry ) {\n\n\t\tthis.setPositions( geometry.attributes.position.array );\n\n\t\treturn this;\n\n\t}\n\n\tfromEdgesGeometry( geometry ) {\n\n\t\tthis.setPositions( geometry.attributes.position.array );\n\n\t\treturn this;\n\n\t}\n\n\tfromMesh( mesh ) {\n\n\t\tthis.fromWireframeGeometry( new WireframeGeometry( mesh.geometry ) );\n\n\t\t// set colors, maybe\n\n\t\treturn this;\n\n\t}\n\n\tfromLineSegments( lineSegments ) {\n\n\t\tconst geometry = lineSegments.geometry;\n\n\t\tif ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.LineSegmentsGeometry no longer supports Geometry. Use THREE.BufferGeometry instead.' );\n\t\t\treturn;\n\n\t\t} else if ( geometry.isBufferGeometry ) {\n\n\t\t\tthis.setPositions( geometry.attributes.position.array ); // assumes non-indexed\n\n\t\t}\n\n\t\t// set colors, maybe\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst start = this.attributes.instanceStart;\n\t\tconst end = this.attributes.instanceEnd;\n\n\t\tif ( start !== undefined && end !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( start );\n\n\t\t\t_box.setFromBufferAttribute( end );\n\n\t\t\tthis.boundingBox.union( _box );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tconst start = this.attributes.instanceStart;\n\t\tconst end = this.attributes.instanceEnd;\n\n\t\tif ( start !== undefined && end !== undefined ) {\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\tthis.boundingBox.getCenter( center );\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = start.count; i < il; i ++ ) {\n\n\t\t\t\t_vector.fromBufferAttribute( start, i );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector ) );\n\n\t\t\t\t_vector.fromBufferAttribute( end, i );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector ) );\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON() {\n\n\t\t// todo\n\n\t}\n\n\tapplyMatrix( matrix ) {\n\n\t\tconsole.warn( 'THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4().' );\n\n\t\treturn this.applyMatrix4( matrix );\n\n\t}\n\n}\n\nLineSegmentsGeometry.prototype.isLineSegmentsGeometry = true;\n\nexport { LineSegmentsGeometry };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"rogue-engine-user-scripts\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_name_\"] = self[\"webpackChunk_name_\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\n__webpack_require__(\"./Assets/Components/CombatLogic.re.js\");\n__webpack_require__(\"./Assets/Components/FloatObject.re.js\");\n__webpack_require__(\"./Assets/Components/HouseRaycastReceiver.re.js\");\n__webpack_require__(\"./Assets/Components/Library/AsyncLoader.js\");\n__webpack_require__(\"./Assets/Components/Library/Easings.js\");\n__webpack_require__(\"./Assets/Components/Library/GameData.js\");\n__webpack_require__(\"./Assets/Components/Library/SimpleTweens.js\");\n__webpack_require__(\"./Assets/Components/OrbitCamera.re.js\");\n__webpack_require__(\"./Assets/Components/ParticleSystem.re.js\");\n__webpack_require__(\"./Assets/Components/Pathway.re.js\");\n__webpack_require__(\"./Assets/Components/RaycastReceiver.re.js\");\n__webpack_require__(\"./Assets/Components/RaycastReporter.re.js\");\n__webpack_require__(\"./Assets/Components/SceneLinkRaycastReceiver.re.js\");\n__webpack_require__(\"./Assets/Components/ScrollObject.re.js\");\n__webpack_require__(\"./Assets/Components/ScrollTexture.re.js\");\n__webpack_require__(\"./Assets/Components/TileRaycastReceiver.re.js\");\nvar __webpack_exports__ = __webpack_require__(\"./Assets/Components/TitleScreenControl.re.js\");\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""}
|