Ejemplo n.º 1
0
        public void RenderGUILayer(GuiLayer glayer)
        {
            HtmlElement layerElem = null;
            if(elementsByGuiId.ContainsKey(glayer.GetId()))
            {
                layerElem = elementsByGuiId[glayer.GetId()].As<HtmlElement>();
            }

            //if it's not rendered, render it
            if (layerElem == null)
            {
                layerElem = document.createElement("div").As<HtmlElement>();
                layerElem.id = glayer.GetName();
                this.AddClass(layerElem, "GUILayer");
                document.getElementById("gameWrapper").appendChild(layerElem);
                //this.elementsByGuiId[gelm.GetParentLayer().GetName()].appendChild(gentlement);

                elementsByGuiId[glayer.GetId()] = layerElem;
            }

            if (guiElementsToUpdate.Contains(glayer.GetId()))
            {
                guiElementsToUpdate.Remove(glayer.GetId());
            }

            if (glayer.Visible())
            {
                layerElem.style.display = "inline";
            }
            else
            {
                layerElem.style.display = "none";
            }

            if (glayer.FollowingCursor() == true)
            {
                //set the position to the cursor position
                glayer.SetPosition(
                    InputManager.InputDevice.Mouse.GetAxisPosition(0) - (glayer.GetSize().width / 2),
                    InputManager.InputDevice.Mouse.GetAxisPosition(1) - (glayer.GetSize().height / 2));
                layerElem.style.position = "absolute";
            }

            //reposition the element based on game position
            if (glayer.GetPosition().x >= 0)
            {
                layerElem.style.left = glayer.GetPosition().x + "px";
            }
            else
            {
                layerElem.style.right = JsMath.abs(glayer.GetPosition().x) + "px";
            }
            if (glayer.GetPosition().y >= 0)
            {
                layerElem.style.top = glayer.GetPosition().y + "px";
            }
            else
            {
                layerElem.style.bottom = JsMath.abs(glayer.GetPosition().y) + "px";
            }
            layerElem.style.width = glayer.GetSize().width + "px";
            layerElem.style.height = glayer.GetSize().height + "px";
        }
Ejemplo n.º 2
0
 public void SetNeedsUpdate(GuiLayer layer)
 {
     if (!this.guiElementsToUpdate.Contains(layer.GetId()))
     {
         this.guiElementsToUpdate.Add(layer.GetId());
     }
 }
Ejemplo n.º 3
0
 public void DestroyGUILayer(GuiLayer glayer)
 {
     Element layerElem = elementsByGuiId[glayer.GetId()].As<HtmlElement>();
     if (layerElem != null)
     {
         try
         {
             layerElem.parentElement.removeChild(layerElem);
             elementsByGuiId.Remove(glayer.GetId());
         }
         catch (Exception ex)
         {
             Debug.log("Failed to destroy " + glayer.GetId() + " ( " + glayer.GetName() + " ) :");
             Debug.log(ex.Message);
         }
     }
 }