fb83cf0d84cbe132d00f0d0cd400a2f93662f3f5 7.5 KB

1234567891011
  1. {
  2. "code": "var Sprite3D = Laya.Sprite3D;\r\nvar Vector3 = Laya.Vector3;\r\nimport { GameTools } from \"../Tools/GameTools\";\r\nimport GamePool from \"../Tools/GamePool\";\r\nimport { JsonManager } from \"../Tools/JsonManager\";\r\nimport { AssetManager } from \"../Tools/AssetManager\";\r\nimport { StageControl } from \"./StageControl\";\r\nexport class StageCreat {\r\n constructor() {\r\n StageCreat.ins = this;\r\n }\r\n static get Instance() {\r\n if (StageCreat.ins) {\r\n return StageCreat.ins;\r\n }\r\n else {\r\n return new StageCreat();\r\n }\r\n }\r\n}\r\nexport class Prop {\r\n constructor(_id) {\r\n this.id = _id;\r\n }\r\n}\r\nexport class Plane {\r\n constructor(_index, _id, pos, data, proppos, propoffest) {\r\n this.things = [];\r\n this.index = _index;\r\n this.planeid = _id;\r\n this.position = pos;\r\n this.GetProp(data, proppos, propoffest);\r\n }\r\n GetProp(data, pos, offset) {\r\n var config = JsonManager.things;\r\n var datas = data.split(\";\");\r\n var poss = pos.split(\";\");\r\n var offest = offest.split(\";\");\r\n var maxthinghight = 0;\r\n var maxthingwight = 0;\r\n for (var i = 0; i < datas.length; i++) {\r\n if (datas[i] == \"0\")\r\n continue;\r\n var prop = new Prop(Number(datas[i]));\r\n var configid = prop.id - 1;\r\n var curconfig = config[configid.toString()];\r\n var ps = (i <= poss.length - 1) ? Number(poss[i]) : this.long;\r\n var hs = Number(offest[i]);\r\n prop.pos = new Vector3(this.position.x + hs, this.position.y, this.position.z + ps);\r\n prop.type = Number(curconfig.type);\r\n this.things.push(prop);\r\n }\r\n }\r\n}\r\nexport class Grade {\r\n constructor(_index, _id) {\r\n this.startpoint = new Vector3(0, 0, 0);\r\n this.planes = [];\r\n this.scencerys = [];\r\n this.MaxLength = 0;\r\n this.MaxHight = 0;\r\n this.index = _index;\r\n this.gradeid = _id;\r\n }\r\n Init() {\r\n this.GetPlane();\r\n this.endpointpoint = new Vector3(0, this.MaxHight, this.MaxLength);\r\n }\r\n GetPlane() {\r\n var config = JsonManager.road;\r\n for (var key in config) {\r\n if (Number(config[key].road_id) == this.gradeid) {\r\n var planedata = config[key];\r\n var long = Number(planedata.long);\r\n var posz = this.startpoint.z;\r\n var roadid = Number(planedata.street);\r\n var planepos = new Vector3(5.4 - (roadid * 1.8), 0, posz);\r\n var plane = new Plane(Number(planedata.street), Number(planedata.road_id), planepos, planedata.things, planedata.position, planedata.offset);\r\n plane.long = Number(planedata.long);\r\n if (long != 0) {\r\n this.MaxLength = posz + long > this.MaxLength ? posz + long : this.MaxLength;\r\n }\r\n else if (long == 0 && plane.things.length > 0) {\r\n this.MaxLength = posz > this.MaxLength ? posz : this.MaxLength;\r\n }\r\n this.planes.push(plane);\r\n }\r\n }\r\n }\r\n Clear() {\r\n for (var j = 0; j < this.planes.length; j++) {\r\n var model = this.planes[j].model;\r\n if (model && model.active && !model.destroyed) {\r\n GamePool.Instance.RecoveryModel(model);\r\n }\r\n ;\r\n this.planes[j].model = null;\r\n var things = this.planes[j].things;\r\n for (var k = 0; k < things.length; k++) {\r\n model = things[k].model;\r\n if (model && !model.destroyed && things[k].id == 13)\r\n model.active = true;\r\n if (model && model.active && !model.destroyed)\r\n GamePool.Instance.RecoveryModel(model);\r\n things[k].model = null;\r\n }\r\n }\r\n for (var i = 0; i < this.scencerys.length; i++) {\r\n var scencery = this.scencerys[i];\r\n if (scencery && scencery.active && !scencery.destroyed)\r\n GamePool.Instance.RecoveryModel(scencery);\r\n }\r\n if (this.spr)\r\n this.spr.destroy();\r\n }\r\n Creat(_stage = null) {\r\n if (_stage == null)\r\n _stage = StageControl.Instance.curstage;\r\n this.spr = new Sprite3D();\r\n for (var j = 0; j < this.planes.length; j++) {\r\n var plane = this.planes[j];\r\n if (plane.long > 0) {\r\n var res = AssetManager.Instance.Plane.get(1);\r\n plane.model = GamePool.Instance.GetModel(res, \"\");\r\n this.spr.addChild(plane.model);\r\n plane.model.transform.position = plane.position;\r\n plane.model.transform.scale = new Laya.Vector3(plane.model.transform.scale.x, plane.model.transform.scale.y, plane.long / 6);\r\n GameTools.Instance.SetCollider(plane.model, 100);\r\n var things = plane.things;\r\n for (var k = 0; k < things.length; k++) {\r\n var thingdata = things[k];\r\n var tre = AssetManager.Instance.Prop.get(thingdata.id);\r\n thingdata.model = GamePool.Instance.GetModel(tre, \"\");\r\n GameTools.Instance.SetCollider(thingdata.model, 100);\r\n this.spr.addChild(thingdata.model);\r\n thingdata.model.transform.position = thingdata.pos;\r\n }\r\n }\r\n else {\r\n if (plane.things.length > 0) {\r\n for (var k = 0; k < plane.things.length; k++) {\r\n var thingdata = plane.things[k];\r\n var tre = AssetManager.Instance.Prop.get(thingdata.id);\r\n thingdata.model = GamePool.Instance.GetModel(tre, \"\");\r\n GameTools.Instance.SetCollider(thingdata.model, 100);\r\n this.spr.addChild(thingdata.model);\r\n thingdata.model.transform.position = thingdata.pos;\r\n }\r\n }\r\n }\r\n AssetManager.Instance.mainscene.addChild(this.spr);\r\n }\r\n }\r\n}\r\nexport class GK {\r\n constructor(_id) {\r\n this.curgrades = [];\r\n this.Id = Number(_id);\r\n this.GetGrade();\r\n }\r\n GetGrade() {\r\n var config = JsonManager.mission;\r\n var gradedatas = config[this.Id - 1].roads.split(\";\");\r\n var endpos = new Vector3();\r\n for (var i = 0; i < gradedatas.length; i++) {\r\n var gradeid = Number(gradedatas[i]);\r\n var grade = new Grade(i, gradeid);\r\n if (i > 0)\r\n grade.startpoint = endpos;\r\n grade.Init();\r\n endpos = grade.endpointpoint;\r\n this.curgrades.push(grade);\r\n }\r\n }\r\n}\r\n",
  3. "references": [
  4. "E:/LayaProject/ArcherWorrior/src/Tools/GameTools.ts",
  5. "E:/LayaProject/ArcherWorrior/src/Tools/GamePool.ts",
  6. "E:/LayaProject/ArcherWorrior/src/Tools/JsonManager.ts",
  7. "E:/LayaProject/ArcherWorrior/src/Tools/AssetManager.ts",
  8. "E:/LayaProject/ArcherWorrior/src/Game/StageControl.ts"
  9. ]
  10. }