Example #1
0
    private void Start()
    {
        if (!NetworkBlockBehaviour.CheckConncetionAlignment(conA, conB))
        {
            Debug.Log("#44 Stopped at start. Position: " + gameObject.transform.position.ToString("F3") + ", Rotation: " + gameObject.transform.rotation.eulerAngles.ToString("F3"));
        }

        Destroy(this);
    }
    public override void OnEvent(BlockCompare evnt)
    {
        if (BoltNetwork.IsClient)
        {
            PartTokenComplex      token     = (PartTokenComplex)evnt.CompareToken;
            GameObject            go        = evnt.BlockEntity.gameObject;
            NetworkBlockBehaviour behaviour = go.GetComponent <NetworkBlockBehaviour>();
            go.transform.position = evnt.BlockPosition;
            go.transform.rotation = evnt.BlockRotation;

            int tempID = token.TemplateID;

            int id = token.ID;

            int parent = token.Parent;

            int parentCon = token.ParentCon;

            List <int> activeCons = token.ActiveCons;

            behaviour.state.SetTransforms(behaviour.state.BlockTransform, transform);

            Part part = go.GetComponent <Part>();

            if (part == null)
            {
                part = behaviour.InitializeNetworkedPart(tempID, id);
            }

            if (part.Parent == -1 && parent != -1)
            {
                part.Parent    = parent;
                part.ParentCon = parentCon;
            }

            if (activeCons.Count > 0)
            {
                part.ActiveConnections = activeCons;
            }


            if (id != -1 && id != part.ID && GlobalReferences.FrozenParts.ContainsKey(id))
            {
                part.ChangeID(id);
            }
        }
    }