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"; }
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); } } }