Пример #1
0
    public void CustomUpdate()
    {
        foreach (int door in DoorGroup)
        {
            DoorCloseAutomaticallyCmp doorComponent = EntityBase.GetEntity(door).GetComponent <DoorCloseAutomaticallyCmp>();
            DoorAnimCmp doorAnim = EntityBase.GetEntity(door).GetComponent <DoorAnimCmp>();

            foreach (int player in PlayerGroup)
            {
                Vector3 door_pos   = doorComponent.transform.position;
                Vector3 player_pos = EntityBase.GetEntity(player).transform.position;

                if (!InZone(doorComponent, player_pos) && doorAnim.is_open)
                {
                    if (!Storage.ContainsComponent <StairDoorDownCmp>(door))
                    {
                        EntityBase.GetEntity(door).GetComponent <DoorAnimCmp>().anim.Play("DoorCloseAnim");
                    }
                    else
                    {
                        EntityBase.GetEntity(door).GetComponent <DoorAnimCmp>().anim.Play("DoorCloseReverseAnim");
                    }
                }
            }
        }
    }
Пример #2
0
    bool InZone(DoorCloseAutomaticallyCmp door, Vector3 player_pos)
    {
        bool    in_gorizontal;
        Vector2 door_pos = new Vector2(door.transform.position.x, door.transform.position.z);

        in_gorizontal = Vector2.Distance(door_pos, new Vector2(player_pos.x, player_pos.z)) <= door.switching_distances_gorizontal;
        return(in_gorizontal);
    }