public override void SetLevel() { CommunityLevelHub.Instance.currentLevel = this; if (LevelMap.previousLevelName == levelName) { LoadLevel(); return; } GameManager.Instance.SetPaused(true); for (int i = 0; i < PartOfLevelEditor.instances.Count; i++) { PartOfLevelEditor part = PartOfLevelEditor.instances[i]; DestroyImmediate(part.gameObject); } PartOfLevelEditor[] createdParts = PartOfLevelEditor.CreateObjects(mapData); List <Renderer> createdRenderers = new List <Renderer>(); foreach (PartOfLevelEditor part in createdParts) { createdRenderers.Add(part.GetComponent <Renderer>()); } LevelMap.Instance.Make(createdRenderers.ToArray()); CommunityLevelHub.Instance.mapNameText.text = levelName; CommunityLevelHub.Instance.mapUsernameText.text = username; CommunityLevelHub.Instance.startButton.onClick.RemoveAllListeners(); CommunityLevelHub.Instance.startButton.onClick.AddListener(delegate { LoadLevel(); }); CommunityLevelHub.Instance.startButton.interactable = true; }
public virtual void ReloadLevel() { for (int i = 0; i < PartOfLevelEditor.instances.Count; i++) { PartOfLevelEditor part = PartOfLevelEditor.instances[i]; DestroyImmediate(part.gameObject); } PartOfLevelEditor.CreateObjects(mapData); }
public override string ToString() { string output = ""; int typeIndex = 0; PartOfLevelEditor type = GameManager.Instance.levelEditorPrefabs[typeIndex]; for (int i = 1; i < GameManager.Instance.levelEditorPrefabs.Length; i++) { type = GameManager.Instance.levelEditorPrefabs[i]; if (name == type.name) { typeIndex = i; break; } } output += "id=" + uniqueId + statementSeperater; output += "type=" + typeIndex + statementSeperater; long parentId = -1; if (trs.parent != null) { parentId = GetComponentInParent <PartOfLevelEditor>().uniqueId; } if (parentId > -1) { output += "parent=" + parentId + statementSeperater; } else { output += statementSeperater; } if (trs.position != type.trs.position) { output += "pos=" + (int)trs.position.x + paramSeperator.ToString() + (int)trs.position.y + statementSeperater; } else { output += statementSeperater; } if (trs.eulerAngles.z != type.trs.eulerAngles.z) { output += "rot=" + (int)trs.eulerAngles.z + statementSeperater; } else { output += statementSeperater; } if ((Vector2)trs.lossyScale != (Vector2)type.trs.lossyScale) { output += "size=" + (int)trs.lossyScale.x + paramSeperator.ToString() + (int)trs.lossyScale.y + statementSeperater; } else { output += statementSeperater; } return(output); }