Exemplo n.º 1
0
    public EffectData LoadEffect(int id, ulong guid, GTTransform data, Transform parent, bool retain = true)
    {
        EffectData tab = new EffectData(id, guid, data, parent, retain);

        Effects[tab.GUID] = tab;
        return(tab);
    }
Exemplo n.º 2
0
        public void Test_GT2GT1()
        {
            Console.WriteLine("Same Direction:");
            {
                var gt = new Tuple <double, double, double, double, double, double>(100, 1.1, 105, 1.1d, 800, 2.2);

                var newgt = GTTransform.TransGT2ToGT1(gt.Item1, gt.Item2, gt.Item3, gt.Item4, 0, true);
                Console.WriteLine($"{gt}:{newgt:F3}");
            }
            {
                var gt    = new Tuple <double, double, double, double, double, double>(105, 5.1, 105, 1.1d, 800, 2.2);
                var newgt = GTTransform.TransGT2ToGT1(gt.Item1, gt.Item2, gt.Item3, gt.Item4, 0, true);
                Console.WriteLine($"{gt}:{newgt:F3}");
            }

            Console.WriteLine("Inverse Direction:");
            {
                //gt2work, gt2raw, gt2calib, gt2calibraw, gt1calib, gt1calibraw
                var gt = new Tuple <double, double, double, double, double, double>(100, 1.1, 105, 1.1d, 800, 2.2);

                var newgt1 = GTTransform.TransGT2ToGT1(gt.Item1, gt.Item2, gt.Item3, gt.Item4, 70, false);
                Console.WriteLine($"{gt.Item1:F2},{gt.Item2:F2},{gt.Item3:F2},{gt.Item4:F2},{gt.Item5:F2},{gt.Item6:F2}:{newgt1:F3}");

                Console.WriteLine("GT1 Transform:");
                var gt1    = new Tuple <double, double, double, double>(800, newgt1, 800, 2.2d);
                var newgt2 = GTTransform.TransGT2ToGT1(gt1.Item1, gt1.Item2, gt1.Item3, gt1.Item4, 0);
                Console.WriteLine($"{gt1}:{newgt2:F3}");
            }
        }
Exemplo n.º 3
0
    public Character AddActorLocalSync(XCharacter data)
    {
        if (data == null)
        {
            return(null);
        }
        GTTransform dTrans = GTTransform.Create(data.PosX, data.PosY, data.PosZ, data.Face);
        Character   cc     = AddActor(data.Id, (EBattleCamp)data.Camp, (EActorType)data.Type, dTrans, data, false);

        cc.Carrer        = data.Carrer;
        cc.IsRemoteActor = true;
        switch (cc.Type)
        {
        case EActorType.MONSTER:
            cc.EnableAI(true);
            cc.OnDeadFinish = () =>
            {
                if (cc != null && cc.CacheTransform != null)
                {
                    cc.CacheTransform.gameObject.SetActive(false);
                    GTEventCenter.FireEvent(GTEventID.TYPE_ACTOR_KILL_MONSTER, cc.GUID, cc.ID);
                    cc.OnDeadFinish = null;
                }
            };
            break;

        case EActorType.NPC:
            cc.EnableAI(true);
            break;
        }
        return(cc);
    }
Exemplo n.º 4
0
    private void ShowModel()
    {
        if (mPlayer != null)
        {
            GTWorld.Instance.DelActor(mPlayer);
        }
        GTTransform param  = GTTransform.Default;
        DRole       roleDB = mRoleDBList[mRoleIndex];

        mPlayer = GTWorld.Instance.AddRole(roleDB.ActorID, param);
        mPlayer.EnableCharacter(false);
        mPlayer.EnableRootMotion(false);
        mPlayer.Action.Play("idle");
        if (roleDB.DisplayWeapon > 0)
        {
            mPlayer.Avatar.ChangeAvatar(8, roleDB.DisplayWeapon);
        }
        mPlayer.CacheTransform.localPosition    = mRoleModelPos;
        mPlayer.CacheTransform.localEulerAngles = mRoleModelEuler;
        GameObject go = mPlayer.Obj;

        go.transform.position    = mRoleModelPos;
        go.transform.eulerAngles = mRoleModelEuler;
        go.SetActive(true);
    }
Exemplo n.º 5
0
        protected override bool MakeResult(Character cc)
        {
            if (cc == null)
            {
                return(false);
            }
            EffectData unit = null;

            if (World)
            {
                Transform p = cc.Avatar.GetBindTransform(Bind);
                unit = GTWorld.Instance.Ect.LoadEffect(ID, 0, Retain);
                unit.CacheTransform.parent           = p;
                unit.CacheTransform.localPosition    = Offset;
                unit.CacheTransform.localEulerAngles = Euler;
                unit.CacheTransform.parent           = null;
                unit.CacheTransform.localScale       = Scale;
            }
            else
            {
                Transform p = cc.Avatar.GetBindTransform(Bind);
                unit = GTWorld.Instance.Ect.LoadEffect(ID, 0, GTTransform.Create(Offset, Euler, Scale), p, Retain);
            }
            unit.Release(Duration);
            return(true);
        }
Exemplo n.º 6
0
 protected override bool Trigger()
 {
     base.Trigger();
     if (World)
     {
         Transform p = Skill.Caster.Avatar.GetBindTransform(CasterBind);
         Unit = GTWorld.Instance.Ect.LoadEffect(ID, 0, Retain);
         Unit.CacheTransform.parent           = p;
         Unit.CacheTransform.localPosition    = Offset;
         Unit.CacheTransform.localEulerAngles = Euler;
         Unit.CacheTransform.parent           = null;
         Unit.CacheTransform.localScale       = Scale;
         Unit.CacheTransform.localEulerAngles = Euler + Skill.Caster.Euler;
     }
     else
     {
         Transform p = Skill.Caster.Avatar.GetBindTransform(CasterBind);
         Unit = GTWorld.Instance.Ect.LoadEffect(ID, 0, GTTransform.Create(Offset, Euler, Scale), p, Retain);
     }
     for (int i = 0; i < Children.Count; i++)
     {
         Children[i].ApplyCenter   = Unit.CacheTransform;
         Children[i].ApplyHitPoint = Unit.Pos;
         Children[i].ApplyHitDir   = Vector3.zero;
     }
     Unit.Release(Duration);
     return(true);
 }
Exemplo n.º 7
0
    public EffectData(int id, ulong guid, GTTransform data, Transform parent, bool retain)
    {
        this.ID     = id;
        this.GUID   = guid > 0 ? guid : GTGUID.NewGUID();
        this.Parent = parent;
        this.Retain = retain;
        this.Cfg    = ReadCfgEffect.GetDataById(id);
        if (Cfg == null)
        {
            Debug.LogError("不存在特效ID =" + ID);
            return;
        }
        GameObject go = GTPoolManager.Instance.GetObject(Cfg.Path);

        if (go == null)
        {
            go = new GameObject(ID.ToString());
        }
        this.CacheTransform = go.transform;
        NGUITools.SetLayer(go, GTLayer.LAYER_EFFECT);
        this.CacheTransform.parent           = this.Parent != null ? Parent : null;
        this.CacheTransform.localScale       = Vector3.one;
        this.CacheTransform.localEulerAngles = data.Euler;
        this.CacheTransform.localPosition    = data.Pos;
        this.TriggerObject = go.GET <ETriggerObject>();
    }
Exemplo n.º 8
0
    public static GTTransform Create(float x, float y, float z, float vx, float vy, float vz)
    {
        GTTransform data = new GTTransform();

        data.Pos   = new Vector3(x, y, z);
        data.Euler = Quaternion.FromToRotation(Vector3.forward, new Vector3(vx, vy, vz)).eulerAngles;
        return(data);
    }
Exemplo n.º 9
0
    public static GTTransform Create(float x, float y, float z, float face)
    {
        GTTransform data = new GTTransform();

        data.Pos   = new Vector3(x, y, z);
        data.Euler = new Vector3(0, face, 0);
        return(data);
    }
Exemplo n.º 10
0
    public static GTTransform Create(Vector3 pos, float face)
    {
        GTTransform data = new GTTransform();

        data.Pos   = pos;
        data.Euler = new Vector3(0, face, 0);
        return(data);
    }
Exemplo n.º 11
0
    public static GTTransform Create(Vector3 pos, Vector3 angle, Vector3 scale)
    {
        GTTransform data = new GTTransform();

        data.Pos   = pos;
        data.Euler = angle;
        return(data);
    }
Exemplo n.º 12
0
        public override void Trigger()
        {
            base.Trigger();
            GTTransform data = GTTransform.Create(Pos, EulerAngles);

            m_EffectData = GTWorld.Instance.Ect.LoadEffect(EffectID, 0, data, null, false);
            m_EffectData.Release(EffectLifeTime);
        }
Exemplo n.º 13
0
    public Character AddMainPlayer(GTTransform bornData)
    {
        XCharacter data = GTGlobal.Main;

        Main        = AddActor(data.Id, EBattleCamp.CT_PVE_PLAYER, EActorType.PLAYER, bornData, data, true);
        Main.Carrer = data.Carrer;
        Main.OnDead = OnDeadForMain;
        return(Main);
    }
Exemplo n.º 14
0
    public Character AddActor(int id, EBattleCamp camp, EActorType type, GTTransform bornData, XCharacter data, bool isMain = false)
    {
        Character cc = new Character(id, data == null ? GTGUID.NewGUID() : data.GUID, type, camp, isMain);

        bornData.Pos = GTTools.NavSamplePosition(bornData.Pos);
        cc.Load(bornData);
        cc.SyncData(data, ESyncDataType.TYPE_ALL);
        SetCharacterParent(cc);
        Characters.Add(cc);
        return(cc);
    }
Exemplo n.º 15
0
        IEnumerator DoSummon()
        {
            for (int i = 0; i < Count; i++)
            {
                yield return(new WaitForSeconds(Interval));

                Vector3     bornPoint = GTTools.RandomOnCircle(Skill.Caster.Pos, MinRadius, MaxRadius);
                Vector3     bornEuler = Vector3.zero;
                GTTransform kt        = GTTransform.Create(bornPoint, bornEuler);
                GTWorld.Instance.AddActor(Id, Skill.Caster.Camp, ActorType, kt, null, false);
            }
        }
Exemplo n.º 16
0
    public Character AddActorSync(XCharacter data)
    {
        if (data == null)
        {
            return(null);
        }
        GTTransform dTrans = GTTransform.Create(data.PosX, data.PosY, data.PosZ, data.Face);
        Character   cc     = AddActor(data.Id, (EBattleCamp)data.Camp, (EActorType)data.Type, dTrans, data, false);

        cc.Carrer        = data.Carrer;
        cc.IsRemoteActor = true;
        return(cc);
    }
Exemplo n.º 17
0
    public Character AddMainPartner(int pos)
    {
        XCharacter data = null;

        switch (pos)
        {
        case 1:
            data = GTGlobal.MainPartner1;
            break;

        case 2:
            data = GTGlobal.MainPartner2;
            break;
        }
        if (data == null)
        {
            return(null);
        }
        Vector3 offset = Vector3.zero;

        switch (pos)
        {
        case 1:
            offset = new Vector3(-2, 0, 0);
            break;

        case 2:
            offset = new Vector3(2, 0, 0);
            break;
        }
        GTTransform bornData = new GTTransform();

        bornData.Euler = Main.Euler;
        bornData.Pos   = Main.Pos + offset;
        Character actor = AddActor(data.Id, EBattleCamp.CT_PVE_PLAYER, EActorType.PARTNER, bornData, data);

        actor.Host         = Main;
        actor.FollowOffset = offset;
        actor.EnableAI(true);
        switch (pos)
        {
        case 1:
            Main.Partner1 = actor;
            break;

        case 2:
            Main.Partner2 = actor;
            break;
        }
        return(actor);
    }
Exemplo n.º 18
0
        public void Test_GT()
        {
            //gt1work, gt1raw, gt1calib, gt1calibraw
            Console.WriteLine("GT1 Transform:");
            var gt = new Tuple <double, double, double, double>(100, 1.1, 105, 1.1d);


            var newgt = GTTransform.TransGT(gt.Item1, gt.Item2, gt.Item3, gt.Item4);

            Console.WriteLine($"{gt}:{newgt:F3}");


            var newgt2 = GTTransform.TransGT2ToGT1(gt.Item1, gt.Item2, gt.Item3, gt.Item4);

            Console.WriteLine($"{gt}:{newgt2:F3}");
        }
Exemplo n.º 19
0
        protected override bool Trigger()
        {
            base.Trigger();
            GameObject go = GameObject.Find(ParentPath);

            if (go != null)
            {
                Unit = GTWorld.Instance.Ect.LoadEffect(ID, 0, GTTransform.Create(Offset, Euler, Scale), go.transform, Retain);
                Unit.Release(Duration);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 20
0
    public void TryStartMount()
    {
        XCharacter data = GTGlobal.Main;

        if (data.Mount == 0)
        {
            CharacterHelper.CalcCharacterOperateError(Resp.TYPE_RIDE_NONE);
            return;
        }
        if (GTLauncher.Instance.CurrCopyType != ECopyType.TYPE_CITY &&
            GTLauncher.Instance.CurrCopyType != ECopyType.TYPE_WORLD)
        {
            CharacterHelper.CalcCharacterOperateError(Resp.TYPE_RIDE_NOTDOATSCENE);
            return;
        }
        if (GTWorld.Main.IsFSMLayer2() || GTWorld.Main.IsFSMLayer3())
        {
            CharacterHelper.CalcCharacterOperateError(Resp.TYPE_RIDE_NOTDOATFSM);
            return;
        }
        if (GTWorld.Main.IsRide)
        {
            CharacterHelper.CalcCharacterOperateError(Resp.TYPE_RIDE_ING);
            return;
        }
        if (GTWorld.Main.FSM == FSMState.FSM_SKILL)
        {
            CharacterHelper.CalcCharacterOperateError(Resp.TYPE_SKILL_CASTING);
            return;
        }
        Vector3     pos      = GTWorld.Main.Pos;
        Vector3     euler    = GTWorld.Main.Euler;
        GTTransform bornData = GTTransform.Create(pos, euler);

        GTWorld.Main.Mount      = GTWorld.Instance.AddActor(data.Mount, EBattleCamp.CT_NONE, EActorType.MOUNT, bornData, null, false);
        GTWorld.Main.Mount.Host = GTWorld.Main;
        Resp resp = GTWorld.Main.Command.Get <CommandRideBegin>().Do();

        if (resp == Resp.TYPE_YES)
        {
            GTWorld.Main.PausedAI(true);
        }
        CharacterHelper.CalcCharacterOperateError(resp);
    }
Exemplo n.º 21
0
 public override void Enter()
 {
     if (World)
     {
         Transform p = Carryer.Avatar.GetBindTransform(Bind);
         Unit = GTWorld.Instance.Ect.LoadEffect(ID, 0, Retain);
         Unit.CacheTransform.parent           = p;
         Unit.CacheTransform.localPosition    = Offset;
         Unit.CacheTransform.localEulerAngles = Euler;
         Unit.CacheTransform.parent           = null;
         Unit.CacheTransform.localScale       = Scale;
         Unit.CacheTransform.localEulerAngles = Euler + Carryer.Euler;
     }
     else
     {
         Transform p = Carryer.Avatar.GetBindTransform(Bind);
         Unit = GTWorld.Instance.Ect.LoadEffect(ID, 0, GTTransform.Create(Offset, Euler, Scale), p, Retain);
     }
 }
Exemplo n.º 22
0
 void OnLoadAvatar()
 {
     if (WorldMap.MapData != null)
     {
         for (int i = 0; i < WorldMap.MapData.MapBorns.Count; i++)
         {
             MapBorn b = WorldMap.MapData.MapBorns[i];
             switch ((EBattleCamp)b.ID)
             {
             case EBattleCamp.CT_PVE_PLAYER:
                 GTTransform data = GTTransform.Create(b.Pos, b.Face);
                 AddMainPlayer(data);
                 GTCameraManager.Instance.CreateMainCamera(Main.CacheTransform);
                 GTCameraManager.Instance.CreateMiniCamera(Main.CacheFixEuler);
                 GTNetworkSend.Instance.TrySyncIdle();
                 break;
             }
         }
     }
 }
Exemplo n.º 23
0
 public void Load(ActFlyObj obj, HitCallbackFly hitCallback)
 {
     mFlyObj = obj;
     if (obj.World)
     {
         Transform p = obj.Skill.Caster.Avatar.GetBindTransform(obj.CasterBind);
         mUnit = GTWorld.Instance.Ect.LoadEffect(obj.ID, 0, obj.Retain);
         mUnit.CacheTransform.parent           = p;
         mUnit.CacheTransform.localPosition    = obj.Offset;
         mUnit.CacheTransform.localEulerAngles = obj.Euler;
         mUnit.CacheTransform.parent           = null;
         mUnit.CacheTransform.localScale       = obj.Scale;
         mUnit.CacheTransform.localEulerAngles = obj.Euler + obj.Skill.Caster.Euler;
     }
     else
     {
         Transform p = obj.Skill.Caster.Avatar.GetBindTransform(obj.CasterBind);
         mUnit = GTWorld.Instance.Ect.LoadEffect(obj.ID, 0, GTTransform.Create(obj.Offset, obj.Euler, obj.Scale), p, obj.Retain);
     }
     mUnit.TriggerEnter = (other) => { hitCallback(this, other); };
     mIsLoaded          = true;
     CacheTransform     = mUnit.CacheTransform;
 }
Exemplo n.º 24
0
        protected override int RunLoop()
        {
            //in case of manual operations
            Platform.AssertAutoMode(this);


            //wait start
            while ((!DIStart1.GetDiSts() || !DIStart2.GetDiSts()))
            {
                Thread.Sleep(100);
                JoinIfPause();
                AbortIfCancel("cancel trans wait start");
                if (Station.Id == 1 && Machine.Ins.Settings.Common.LeftAutoTryRun)
                {
                    break;
                }

                if (Station.Id == 2 && Machine.Ins.Settings.Common.RightAutoTryRun)
                {
                    break;
                }
            }

            Log(string.Empty, LogLevel.None);


            if ((Station.Id == 1 && Machine.Ins.Settings.Common.LeftSensorCheck) ||
                (Station.Id == 2 && Machine.Ins.Settings.Common.RightSensorCheck))
            {
                //检查定位传感器
                if (!DISensorCheck1.GetDiSts() || !DISensorCheck2.GetDiSts())
                {
                    Station.Machine.Beep();
                    Log($"{Station.Name} - {Name} 定位传感器检测异常", LogLevel.Warning);
                    return(0);
                }
            }

            if ((Station.Id == 1 && Machine.Ins.Settings.Common.LeftFinSensorCheck) ||
                (Station.Id == 2 && Machine.Ins.Settings.Common.RightFinSensorCheck))
            {
                //检查fin传感器
                if (!CheckProductFin())
                {
                    //return to wait start
                    return(0);
                }
            }

            //new product
            Product = new Thermo1Product()
            {
                ProductType = Project.ThermoProductType.ToString(),
                Description = Station.Name + "-" + Project.ProductName + "-" + CfgSettings.Version,
                SPCItems    = Project.SPCItems,
            };
            Product.ClearSpc();
            //push data to measure tasks
            WaitTaskDown.Product = Product;
            WaitTaskUp.Product   = Product;
            TestProcessControl.OnTestStartEvent(Product);
            TestProcessControl.OnTestingEvent(Product);

            DOBtnLight1.SetDo();
            DOBtnLight2.SetDo();

            //cy clamp
            if (Project.ProjectName.Contains("HeightCalib"))
            {
                DoClampCylinderY.SetDo(this, true, 100, ignoreOrWaringOrError: null);
            }
            else if (Project.ThermoProductType == ThermoProductType.FullModule)
            {
                Clamper.ClampModule();
            }
            else if (Project.ThermoProductType == ThermoProductType.VaporChamber)
            {
                Clamper.ClampVC();
            }
            else
            {
                Clamp(true);
            }


            //move work
            Platform.MoveAbs(0, "Work");
            {
                VioTransInp.SetVio(this);

                //start waiting
                Log("Measure Start......\n-----------------------------------------------", LogLevel.Info);
                //set measure start
                VioTransFinishUp.SetVio(this);
                VioTransFinishDown.SetVio(this);
                {
                    //wait barcode finish update barcode
                    VioBarcodeFinish.WaitVioAndClear(this);
                    TestProcessControl.OnTestingEvent(Product);
                }
                //wait measure finish
                VioMeasureFinishUp.WaitVioAndClear(this);
                VioMeasureFinishDown.WaitVioAndClear(this);
                Log("Measure Finish......\n-----------------------------------------------", LogLevel.Info);
            }
            //move wait pos
            Platform.MoveAbs(0, "Wait");

            //update results
            //calc flatness
            if (Thermo1GeometryCalculator != null)
            {
                //transform raw data to same coord
                GTTransform.TransformRawData(Station.Name, CfgSettings.Calibration, Product);
                var data = Thermo1GeometryCalculator.Calculate(Product);
                Log($"Flatness Calc: {data.ToString()}");
            }

            SaveProductData();

            Clamper.Release();
            DOBtnLight1.SetDo(false);
            DOBtnLight2.SetDo(false);

            return(0);
        }
Exemplo n.º 25
0
 public Character AddRole(int id, GTTransform bornData)
 {
     return(AddActor(id, EBattleCamp.CT_NONE, EActorType.PLAYER, bornData, null, false));
 }
Exemplo n.º 26
0
        protected override bool Trigger()
        {
            Vector3    origin = Skill.Caster.Avatar.GetBindPosition(Bind);
            RaycastHit hit;

            if (Physics.Raycast(origin, Skill.Caster.Dir, out hit, MaxDis))
            {
                Collider col = hit.collider;
                if (HitEffectID > 0)
                {
                    EffectData unit = GTWorld.Instance.Ect.LoadEffect(HitEffectID, 0, GTTransform.Create(hit.point, Vector3.zero), null, true);
                    unit.Release(HitEffectDuration);
                }
                CharacterView view = col.GetComponent <CharacterView>();
                if (view != null)
                {
                    if (Skill.Caster.Match(Affect, view.Owner))
                    {
                        for (int i = 0; i < Children.Count; i++)
                        {
                            Children[i].ApplyHitPoint = hit.point;
                            Children[i].ApplyHitDir   = Vector3.up;
                            Children[i].ClearAttackList();
                            Children[i].AddInAttackList(view.Owner);
                        }
                        End();
                    }
                }
            }
            return(base.Trigger());
        }
Exemplo n.º 27
0
 static GTTransform()
 {
     Default = new GTTransform();
 }