// Use this for initialization
    void Start()
    {
        instance = this;
        //SymbolHandler.graphModel = graphModel;

        Symbol square   = SymbolHandler.fromName("Square");
        Symbol circle   = SymbolHandler.fromName("Circle");
        Symbol star     = SymbolHandler.fromName("Star");
        Symbol diamond  = SymbolHandler.fromName("Diamond");
        Symbol squiggle = SymbolHandler.fromName("Squiggle");
        Symbol triangle = SymbolHandler.fromName("Triangle");

        SymbolHandler.fromName("Door").setHoverPrefab(furniturePrefab);
        SymbolHandler.fromName("Bed").setHoverPrefab(furniturePrefab);
        SymbolHandler.fromName("Dresser").setHoverPrefab(furniturePrefab);
        SymbolHandler.fromName("Sun").setHoverPrefab(sunPrefab);
        SymbolHandler.fromName("Floor Lamp").setHoverPrefab(lightPrefab);
        SymbolHandler.fromName("House").setHoverPrefab(wallBuilderPrefab);
        SymbolHandler.fromName("Chair").setHoverPrefab(chairPrefab);

        square.setHoverPrefab(squareHoverPrefab);
        circle.setHoverPrefab(circleHoverPrefab);
        star.setHoverPrefab(starHoverPrefab);
        diamond.setHoverPrefab(diamondHoverPrefab);
        squiggle.setHoverPrefab(squiggleHoverPrefab);
        triangle.setHoverPrefab(triangleHoverPrefab);

        foreach (GameObject go in props)
        {
            PropHandler.register(go);
        }

        startPython();
        StartCoroutine(SetupServer());
    }
Esempio n. 2
0
 public PlayerHandBehaviours(PlayerBehaviours abb, PropHandler ph, FBIKChain hc, IKEffector iKEffector) : base(abb, ph)
 {
     handChain    = hc;
     hp           = ac.humanoidParts;
     handEffector = iKEffector;
     //Muscle handMuscle = ph.attachedMuscleGroup.muscles[ph.attachedMuscleGroup.muscles.Length - 1];// 最后一个位置即为 最末尾的 hand 的 muscle
 }
Esempio n. 3
0
    // Picking up/dropping props is done by simply changing PropHandler.currentProp
    public void PickUp(PropHandler propHandler)
    {
        // 设置 rigidbody 为不动
        r.isKinematic      = true;
        transform.position = propHandler.muscles[0].target.position;
        transform.rotation = propHandler.muscles[0].target.rotation;
        handleCollider.transform.parent = propHandler.muscles[0].transform;
        mesh.transform.parent           = propHandler.muscles[0].target;
        if (additionalPinTarget)
        {
            additionalPinTarget.localPosition         = defaultAddLocalPos;
            additionalPinTarget.localEulerAngles      = defaultAddLocalPos;
            propHandler.muscles[1].transform.position = additionalPinTarget.position;
            propHandler.muscles[1].transform.rotation = additionalPinTarget.rotation;
            propHandler.muscles[1].target.position    = additionalPinTarget.position;
            propHandler.muscles[1].target.rotation    = additionalPinTarget.rotation;
            edgeCollider.transform.parent             = propHandler.muscles[1].transform;
            propHandler.muscles[1].rigidbody.mass     = addPartMass;
        }
        propHandler.muscles[0].rigidbody.mass = mass;
        this.propHandler = propHandler;

        //TODO Layer的确认和修改

        OnPickUp(propHandler);
    }
Esempio n. 4
0
    bool coled;                         // 是否正在就行插入操作?

    public void init(PropHandler proph) // 需要传入 edgeCol 其是 武器嵌入 操作 的入口
    {
        this.bladeRigid = GetComponent <Rigidbody>();
        propHandler     = proph;

        // 事件监听
        //MessageManager.AddListener("OnStabOver",OnStabOver);
    }
Esempio n. 5
0
 public HandBehaviours(ActorBehavioursBase <ACType, ABB> abb, PropHandler ph)
 {
     propHandler = ph;
     this.abb    = (ABB)abb;
     this.ac     = abb.ac;
     muscleGroup = ph.attachedMuscleGroup;
     handMuscle  = muscleGroup.muscles[muscleGroup.muscles.Length - 1];
 }
Esempio n. 6
0
    public override void handUpdate(GameObject handOb, bool pinch, bool startButton, Vector2 delta, bool touchedPad)
    {
        if (startButton)
        {
            if (propMenu != null)
            {
                GameObject.Destroy(propMenu);
            }
            else
            {
                openPropMenu();
            }
        }
        if (propObject == null)
        {
            setPropObject(PropHandler.props[PropHandler.nameList[currentProp]]);
        }

        sel.select(handOb);
        Color color = Color.red;

        if (touchedPad)
        {
            if (usepresnapped)
            {
                propObject.transform.rotation = presnapped;
            }
            rotate(propObject.transform, delta);
            presnapped    = propObject.transform.rotation;
            usepresnapped = true;
        }

        if (sel.hitObject())
        {
            color = Color.green;
            if (snapCool == 0)
            {
                propObject.transform.position = sel.getEnd();
                if (PropHandler.snap(propObject))
                {
                    snapCool = 4;
                }
            }
            else
            {
                snapCool--;
            }
            if (pinch)
            {
                SetAllCollision(propObject, true);
                PropHandler.track(propObject);
                Prop prop = propObject.GetComponent <Prop>();
                RedoManager.addRedoObject(new UncreateObject(prop.propObjectId));
                propObject = null;
            }
        }
        sel.drawLine(color);
    }
Esempio n. 7
0
        /// <summary>
        /// 解析设备
        /// </summary>
        /// <param name="res"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public static List <Device> Parse(string res, Action <ErrorResult> error)
        {
            var list = new List <Device>();

            if (string.IsNullOrEmpty(res))
            {
                return(list);
            }
            var regex = new Regex(@"(?<no>.+)\t(?<state>\w+)\n");

            foreach (Match match in regex.Matches(res))
            {
                // 解析序列号
                var nmatch = match.Groups["no"];
                var smatch = match.Groups["state"];
                if (!nmatch.Success || !smatch.Success)
                {
                    continue;
                }
                // 解析状态
                var state = DeviceState.Unknown;
                switch (match.Groups["state"].Value)
                {
                case "device":
                    state = DeviceState.Device;
                    break;

                case "offline":
                    state = DeviceState.Offline;
                    break;

                case "unauthorized":
                    state = DeviceState.UnAuth;
                    break;
                }
                var device = new Device
                {
                    Serial = nmatch.Value,
                    State  = state
                };
                // 设备为在线状态,获取设备其他属性
                if (state == DeviceState.Device)
                {
                    var prop = new PropHandler(device.Serial, error);
                    device.Brand   = prop.GetBrand().Trim();
                    device.Model   = prop.GetModel().Trim();
                    device.Sdk     = prop.GetSdkVersion().Trim();
                    device.Version = prop.GetRelease().Trim();
                    device.IsRoot  = prop.IsRoot();
                }
                list.Add(device);
            }
            return(list);
        }
Esempio n. 8
0
 protected HandBehaviours GetHandBehaviours(PropHandler ph)
 {
     foreach (var hb in handBehaviours)
     {
         if (hb.propHandler == ph)
         {
             return(hb);
         }
     }
     return(null);
 }
Esempio n. 9
0
    public static RedoObject handleRedoObject(RedoObject ro)
    {
        UncreateObject uco = ro as UncreateObject;

        if (uco != null)
        {
            GameObject   go           = PropHandler.objectFromId(uco.id);
            Prop         prop         = go.GetComponent <Prop>();
            UnmoveObject unmoveObject = new UnmoveObject(uco.id, go.transform, prop.name, prop.paintHistory);
            PropHandler.untrack(go, true);
            return(unmoveObject);
        }

        UnmoveObject umo = ro as UnmoveObject;

        if (umo != null)
        {
            GameObject go = PropHandler.objectFromId(umo.id);
            RedoObject redoOb;
            if (go == null)
            {
                go = GameObject.Instantiate(PropHandler.props[umo.propName]);
                Prop prop = go.GetComponent <Prop>();
                prop.paintHistory = umo.paintHistory;
                prop.propObjectId = umo.id;
                foreach (UnpaintObject unp in prop.paintHistory)
                {
                    Prop.paintFromPath(go, unp.getNewColor(), unp.getColorPath(), false, false);
                }
                PropHandler.track(go);

                redoOb = new UncreateObject(umo.id);
            }
            else
            {
                redoOb = new UnmoveObject(umo.id, go.transform.position, go.transform.rotation, go.transform.localScale, umo.propName);
            }
            go.transform.position   = umo.position;
            go.transform.rotation   = umo.rotation;
            go.transform.localScale = umo.localScale;
            return(redoOb);
        }

        UnpaintObject upo = ro as UnpaintObject;

        if (upo != null)
        {
            GameObject go = PropHandler.objectFromId(upo.id);
            return(Prop.paintFromPath(go, upo.getNewColor(), upo.getColorPath(), true, false));
        }
        return(null);
    }
Esempio n. 10
0
    private void OnTriggerEnter(Collider other)
    {
        ActorManager am = other.GetComponentInParent <ActorManager>();


        if (!am)
        {
            return;
        }
        PropHandler ph = am.GetComponentInChildren <PropHandler>();

        ph.currentProp    = propBase;
        gameObject.active = false;
    }
Esempio n. 11
0
    public void pressed(int index)
    {
        int slot = getSlot(index);

        if (isSave(index))
        {
            PropHandler.save(count: slot + 1);
        }
        else
        {
            PropHandler.load(count: slot + 1);
        }
        updateText();
    }
Esempio n. 12
0
 private void OnTriggerEnter2D(Collider2D coll)
 {
     col = coll;
     if (col.GetComponent <PropHandler>() != null) //Проверяем объект на наличие компонента в противовес проверки по тегу
     {
         propHandlerDetected = col.gameObject.GetComponent <PropHandler>();
         propDetected        = propHandlerDetected.propAttached;
         StartCoroutine(propHandlerDetected.Indicate());
         if (propsCountCollected < maxPropCount)
         {
             propsCollected.Add(propDetected);
         }
         Invoke("Collect", 0.4f);
     }
 }
Esempio n. 13
0
    public void select(GameObject handOb, float maxDist = 100F, GameObject ignored = null)
    {
        handObLoc = handOb.transform.position;
        dir       = handOb.transform.forward;
        hitOb     = false;
        RaycastHit hit = new RaycastHit();

        RaycastHit[] hits = Physics.RaycastAll(getRayStart(), dir, maxDist);
        distance = maxDist;
        for (int i = 0; i < hits.Length; i++)
        {
            if (hits[i].distance < distance &&
                (ignored == null || PropHandler.getOldestParent(hits[i].collider.gameObject) != ignored)
                )
            {
                hitOb    = true;
                hit      = hits[i];
                distance = hit.distance;
                //break;
            }
        }
        if (hitOb)
        {
            if (button != null)
            {
                Renderer renderer = button.GetComponent <Renderer>();
                if (renderer != null)
                {
                    renderer.material = GameInitializer.instance.clearMat;
                }
            }
            selected = PropHandler.getOldestParent(hit.collider.gameObject).GetComponent <Prop>();
            button   = hit.collider.gameObject.GetComponent <PointButton>();
            if (button != null && !button.canSelect())
            {
                button = null;
            }
            hitGameObject = hit.collider.gameObject;
            if (button != null)
            {
                Renderer renderer = button.GetComponent <Renderer>();
                if (renderer != null)
                {
                    renderer.material = GameInitializer.instance.outlineMat;
                }
            }
        }
    }
Esempio n. 14
0
    public override void handUpdate(GameObject handOb, bool pinch)
    {
        sel.select(handOb);
        Color color = Color.gray;

        if (sel.getSelected() != null)
        {
            color = Color.red;
            if (pinch)
            {
                UnmoveObject unmoveObject = new UnmoveObject(sel.getSelected().propObjectId, sel.getSelected().gameObject.transform, sel.getSelected().name, sel.getSelected().paintHistory);
                RedoManager.addRedoObject(unmoveObject);
                PropHandler.untrack(sel.getSelected().gameObject, true);
            }
        }
        sel.drawLine(color);
    }
Esempio n. 15
0
 private void Collect()
 {
     if (col != null)
     {
         propHandlerDetected = col.gameObject.GetComponent <PropHandler>();
         if (propHandlerDetected != null)
         {
             propDetected = propHandlerDetected.propAttached;
         }
         else
         {
         }
         if (propsCountCollected < maxPropCount)
         {
             onCollectedObject(propDetected.valuation);
             propsCountCollected++;
         }
         else if (propHandlerDetected != null)
         {
             StartCoroutine(propHandlerDetected.DeIndicate());
         }
     }
 }
Esempio n. 16
0
    //TODO 不同手部 不同ph
    public override void PickDrop(bool picking)
    {
        if (curBodyAction == Global.BodyAction.SKILL)
        {
            return;                                           // 在skill 中途不允许进行其它操作
        }
        //actorBehaviours.SetAllHandAction(Global.HandAction.FETCH);
        PropHandler ph = humanoidParts.propHandlers[0];

        if (ph.holdingProp && picking)
        {
            ph.holdingProp = null;
            am.unLock();
            //curHandAction = Global.HandAction.FREE;
            actorBehaviours.SetAllHandAction(Global.HandAction.FREE);
            return;
        }
        // 武器的丢弃(投掷)
        if (picking && humanoidParts.propHandlers[0].currentProp)
        {
            humanoidParts.propHandlers[0].currentProp = null;
            return;
        }

        if (!picking && !ph.holdingProp)
        {
            fullBodyBipedIK.solver.rightArmChain.reach = 0.0f;
            fullBodyBipedIK.solver.rightArmChain.pull  = 0.0f;
            //curHandAction = Global.HandAction.FREE;
            actorBehaviours.SetAllHandAction(Global.HandAction.FREE);
            return;
        }
        //curHandAction = Global.HandAction.FETCH;
        actorBehaviours.SetAllHandAction(Global.HandAction.FETCH);
        //playerHandBehaviours[0].handAction = Global.HandAction.FETCH;
    }
Esempio n. 17
0
 protected override void OnPickUp(PropHandler propHandler)
 {
     //propHandler.muscles[1].transform.gameObject.GetComponent<EdgeCol>().OnPickUp(edgeCol);
 }
Esempio n. 18
0
    public override void handUpdate(GameObject handOb, bool pinch, bool startButton)
    {
        if (tool2 != null && tool1 != null)
        {
            tool2 = tool1;
        }
        if (tool1 == null)
        {
            tool1 = this;
        }
        else if (tool1 != this)
        {
            tool2 = this;
        }
        sel.select(handOb, ignored: propObject);
        Color color = Color.red;

        if (propObject == null)
        {
            if (sel.getSelected() != null)
            {
                color = Color.green;
                if (pinch)
                {
                    propObject     = sel.getSelected().gameObject;
                    initPosition   = propObject.transform.position;
                    initRotation   = propObject.transform.rotation;
                    initLocalScale = propObject.transform.localScale;
                }
            }
        }
        else if (propObject != null)
        {
            color = Color.green;
            if (tool1 != null && tool2 != null && tool1.propObject == tool2.propObject)
            {
                Vector3 newScale = tool1.transform.position - tool2.transform.position;
                tool1.propObject.transform.localScale += newScale - lastScale;
                lastScale = newScale;
            }
            else
            {
                lastScale = new Vector3(0, 0, 0);
                if (snapCool != 0)
                {
                    snapCool--;
                }
                else if (sel.hitObject())
                {
                    propObject.transform.position = sel.getEnd();
                    if (PropHandler.snap(propObject))
                    {
                        snapCool = 2;
                    }
                }
            }
            if (pinch)
            {
                ToolRemote.SetAllCollision(propObject, true);
                //PropHandler.track(propObject);
                addUndo();
                propObject = null;
            }
        }
        sel.drawLine(color);
    }
Esempio n. 19
0
 public void StartPickedUp(PropHandler propHandler)
 {
     this.propHandler = propHandler;
 }
Esempio n. 20
0
 protected virtual void OnPickUp(PropHandler propHandler)
 {
 }
Esempio n. 21
0
 public EnemyHandBehaviours(ActorBehavioursBase <EnemyController, EnemyBehaviours> abb, PropHandler ph) : base(abb, ph)
 {
 }