Exemplo n.º 1
0
        public override void _Ready()
        {
            Controller.Register(this);
            Controller.Connect();

            /*
             *      var orc = MobModel.Read(System.IO.File.OpenRead($@"c:\aaa\projects\openeq\converter\orc_chr.zip"));
             *
             *      mdict = new Dictionary<uint, MobModel>();
             *      Moving = new Dictionary<uint, Tuple<float, float, float, float>>();
             *      foreach(var spawn in LogicBridge.Instance.Spawns) {
             *              var o = orc.Instantiate();
             *              mdict[spawn.SpawnID] = o;
             *              AddChild(o.Node);
             *              //o.StartAnimation("L01");
             *              var ph = spawn.Position.GetPositionHeading();
             *              WriteLine($"Spawn at {ph.Item1} {ph.Item2} {ph.Item3}");
             *              o.Node.Transform = new Transform(new Basis(new Vector3(1, 0, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1)), ph.XYZ() * new Vector3(1, 1, -1));
             *              o.Node.RotateY(ph.Item4 * 2f * Mathf.PI);
             *              o.Node.Hide();
             *      }
             *
             *      LogicBridge.Instance.OnMoved += (_, pu) => {
             *              if(!mdict.ContainsKey(pu.ID)) {
             *                      WriteLine($"Unknown mob update: {pu.ID}");
             *                      return;
             *              }
             *              if(pu.Position.Heading > 255 * 8 || pu.Position.Animation != 0 || pu.Position.DeltaX != 0 || pu.Position.DeltaY != 0 || pu.Position.DeltaZ != 0 || pu.Position.DeltaHeading != 0) {
             *                      WriteLine(pu);
             *                      Moving[pu.ID] = pu.Position.GetDeltas();
             *              } else if(Moving.ContainsKey(pu.ID))
             *                      Moving.Remove(pu.ID);
             *              var o = mdict[pu.ID];
             *              var ph = pu.Position.GetPositionHeading();
             *              o.Node.Transform = new Transform(new Basis(new Vector3(1, 0, 0), new Vector3(0, 1, 0), new Vector3(0, 0, 1)), ph.XYZ() * new Vector3(1, 1, -1));
             *              o.Node.RotateY(ph.Item4 * 2f * Mathf.PI);
             *              o.Node.Show();
             *      };
             */
        }