Esempio n. 1
0
 public override void _Ready()
 {
     ControllerNode = GetParent() as Controller;
     GameNode       = ControllerNode.GetParent().GetParent() as Game;
     State          = TileState.Default;
     Frame          = 0;
 }
Esempio n. 2
0
        public override void OnClose()
        {
            mControllerNode = null;

            mDisposableList.Dispose();
            mDisposableList = null;
        }
Esempio n. 3
0
        public void OnDispose()
        {
            mControllerNode.Recycle2Cache();
            mControllerNode = null;

            mDisposableList.Dispose();
            mDisposableList = null;
        }
        public void OnDispose()
        {
            mControllerNode.Recycle2Cache();
            mControllerNode = null;

            mDisposableList.Dispose();
            mDisposableList         = null;
            mCategoriesSelectorView = null;
        }
Esempio n. 5
0
 public void Reveal()
 {
     if (State != TileState.Clicked)
     {
         State = TileState.Clicked;
         Frame = 1;
         GameNode.TileClicked();
         //Reveals any empty tiles around this one
         ControllerNode.QueueEmptyNeighbors(Position / 32);
     }
 }
Esempio n. 6
0
 protected override void OnDisposed()
 {
     mController.Recycle2Cache();
     mController = null;
 }
Esempio n. 7
0
 protected override void OnDisposed()
 {
     mControllerNode = null;
 }
Esempio n. 8
0
    void OnLayout()
    {
        ImGui.SetNextWindowPos(new Vector2(0.0f, 0.0f), ImGuiCond.FirstUseEver);
        ImGui.SetNextWindowSize(new Vector2(Screen.width * 0.5f, Screen.height * 0.2f), ImGuiCond.FirstUseEver);
        ImGui.Begin("Local IP Addresses");
        foreach (var ipAddress in localIpAddresses)
        {
            ImGui.BulletText(ipAddress.ToString());
        }
        ImGui.End();

        ImGui.SetNextWindowPos(new Vector2(0.0f, Screen.height * 0.2f), ImGuiCond.FirstUseEver);
        ImGui.SetNextWindowSize(new Vector2(Screen.width * 0.5f, Screen.height * 0.4f), ImGuiCond.FirstUseEver);
        ImGui.Begin("Viewer States");
        foreach (var viewerState in viewerStates.Values)
        {
            ImGui.Text($"Viewer (ID: {viewerState.viewerId})");
            foreach (var receiverState in viewerState.receiverStates)
            {
                ImGui.BulletText($"Receiver (ID: {receiverState.receiverId})");
                ImGui.Indent();
                ImGui.Text($"  Sender ID: {receiverState.senderId}");
                ImGui.Text($"  Sender End Point: {receiverState.senderAddress}:{receiverState.senderPort}");
                ImGui.Unindent();
            }
            ImGui.NewLine();
        }
        ImGui.End();

        ImGui.SetNextWindowPos(new Vector2(0.0f, Screen.height * 0.6f), ImGuiCond.FirstUseEver);
        ImGui.SetNextWindowSize(new Vector2(Screen.width * 0.5f, Screen.height * 0.4f), ImGuiCond.FirstUseEver);
        ImGui.Begin("Scene Templates");
        ImGui.BeginTabBar("Scene Templates TabBar");
        if (ImGui.BeginTabItem("Default"))
        {
            foreach (var viewerStatePair in viewerStates)
            {
            }
            if (ImGui.Button("Set Scene"))
            {
            }
            ImGui.EndTabItem();
        }
        if (ImGui.BeginTabItem("Single Camera"))
        {
            ImGui.InputText("Address", ref singleCameraAddress, 30);
            ImGui.InputInt("Port", ref singleCameraPort);
            ImGui.InputFloat("Distance", ref singleCameraDistance);

            if (ImGui.Button("Set Scene"))
            {
                foreach (var serverSocket in serverSockets)
                {
                    var node = new ControllerNode(singleCameraAddress,
                                                  singleCameraPort,
                                                  new Vector3(0.0f, 0.0f, singleCameraDistance),
                                                  Quaternion.identity);

                    var controllerScene = new ControllerScene();
                    controllerScene.nodes = new List <ControllerNode>();
                    controllerScene.nodes.Add(node);
                    controllerScenes[serverSocket] = controllerScene;
                }
            }
        }
        ImGui.EndTabBar();
        ImGui.End();

        ImGui.SetNextWindowPos(new Vector2(Screen.width * 0.5f, 0.0f), ImGuiCond.FirstUseEver);
        ImGui.SetNextWindowSize(new Vector2(Screen.width * 0.5f, Screen.height), ImGuiCond.FirstUseEver);
        ImGui.Begin("Scene");
        ImGui.BeginTabBar("Scene TabBar");

        int kinectSenderElementIndex = 0;

        foreach (var viewerStatePair in viewerStates)
        {
            var serverSocket    = viewerStatePair.Key;
            var viewerState     = viewerStatePair.Value;
            var controllerScene = controllerScenes[serverSocket];
            if (ImGui.BeginTabItem(viewerState.viewerId.ToString()))
            {
                foreach (var node in controllerScene.nodes.ToList())
                {
                    ImGui.InputText("Address##" + kinectSenderElementIndex, ref node.senderAddress, 30);
                    ImGui.InputInt("Port##" + kinectSenderElementIndex, ref node.senderPort);
                    ImGui.InputFloat3("Position##" + kinectSenderElementIndex, ref node.position);
                    var eulerAngles = node.rotation.eulerAngles;
                    if (ImGui.InputFloat3("Rotation##" + kinectSenderElementIndex, ref eulerAngles))
                    {
                        node.rotation = Quaternion.Euler(eulerAngles);
                    }

                    if (ImGui.Button("Remove This Sender##" + kinectSenderElementIndex))
                    {
                        bool removeResult = controllerScene.nodes.Remove(node);
                        print($"removeResult: {removeResult}");
                    }

                    ImGui.NewLine();

                    ++kinectSenderElementIndex;
                }

                if (ImGui.Button("Add Kinect Sender"))
                {
                    controllerScene.nodes.Add(new ControllerNode("127.0.0.1", SENDER_PORT, Vector3.zero, Quaternion.identity));
                }

                if (ImGui.Button("Update Scene"))
                {
                    string invalidIpAddress = null;
                    foreach (var node in controllerScene.nodes)
                    {
                        if (!IsValidIpAddress(node.senderAddress))
                        {
                            invalidIpAddress = node.senderAddress;
                            break;
                        }
                    }

                    if (invalidIpAddress == null)
                    {
                        serverSocket.SendViewerScene(controllerScene);
                    }
                    else
                    {
                        print($"Scene not updated since an invalid IP address was found: {invalidIpAddress}");
                    }
                }
                ImGui.EndTabItem();
            }
        }
        ImGui.EndTabBar();
        ImGui.End();
    }
Esempio n. 9
0
 public void Reveal()
 {
     State = TileState.Clicked;
     Frame = 4;
     ControllerNode.EndGameLose();
 }