public void Run() { antialias.Active = Weland.Settings.GetSetting("Drawer/SmoothLines", true); showHiddenVertices.Active = Weland.Settings.GetSetting("MapWindow/ShowHiddenVertices", true); rememberDeletedSides.Active = Weland.Settings.GetSetting("Editor/RememberDeletedSides", false); LoadColors(area); selectionDistance.Value = editor.DefaultSnapDistance; objectDistance.Value = editor.ObjectSnapDistance; dragInertia.Value = editor.InertiaDistance; splitPolygonLines.Active = editor.SplitPolygonLines; shapesFileButton.SetFilename(Weland.Settings.GetSetting("ShapesFile/Path", "")); dialog1.ShowAll(); dialog1.Show(); if (dialog1.Run() == (int)ResponseType.Ok) { Weland.Settings.PutSetting("Drawer/SmoothLines", antialias.Active); Weland.Settings.PutSetting("MapWindow/ShowHiddenVertices", showHiddenVertices.Active); Weland.Settings.PutSetting("Editor/RememberDeletedSides", rememberDeletedSides.Active); if (Weland.Settings.GetSetting("ShapesFile/Path", "") != shapesFileButton.Filename) { Weland.Settings.PutSetting("ShapesFile/Path", shapesFileButton.Filename); ShapesFile shapes = new ShapesFile(); shapes.Load(shapesFileButton.Filename); Weland.Shapes = shapes; } Level.FilterPoints = !showHiddenVertices.Active; Level.RememberDeletedSides = rememberDeletedSides.Active; area.backgroundColor = FromGDK(backgroundColor.Color); area.gridLineColor = FromGDK(gridColor.Color); area.gridPointColor = FromGDK(gridPointColor.Color); area.polygonColor = FromGDK(polygonColor.Color); area.selectedPolygonColor = FromGDK(selectedPolygonColor.Color); area.invalidPolygonColor = FromGDK(invalidPolygonColor.Color); area.destinationPolygonColor = FromGDK(destinationPolygonColor.Color); area.pointColor = FromGDK(pointColor.Color); area.solidLineColor = FromGDK(lineColor.Color); area.transparentLineColor = FromGDK(transparentLineColor.Color); area.impassableLineColor = FromGDK(impassableLineColor.Color); area.selectedLineColor = FromGDK(selectionColor.Color); area.playerColor = FromGDK(playerColor.Color); area.monsterColor = FromGDK(monsterColor.Color); area.civilianColor = FromGDK(civilianColor.Color); area.annotationColor = FromGDK(annotationColor.Color); area.SaveColors(); editor.DefaultSnapDistance = (int)selectionDistance.Value; editor.ObjectSnapDistance = (int)objectDistance.Value; editor.InertiaDistance = (int)dragInertia.Value; editor.SplitPolygonLines = splitPolygonLines.Active; editor.SaveSettings(); } dialog1.Destroy(); }
GameObject createMapItemFromSpriteSequence(int collectionID, int sequenceID, Weland.ShapesFile shapes, string objectName) { GameObject item = Instantiate(Resources.Load <GameObject>(objectName)); GameObject sprite = Instantiate(Resources.Load <GameObject>("spriteObject")); sprite.name = "sprite"; sprite.transform.parent = item.transform; spriteController sc = sprite.GetComponent <spriteController>(); sc.parent = item; sc.type = GlobalData.spriteType; // Debug.Log(sequenceID); Collection coll = shapes.GetCollection(collectionID); if (sequenceID > coll.sequences.Count) { sequenceID = coll.sequences.Count - 1; } Collection.ShapeSequence sequence = coll.sequences[sequenceID]; float scale = sequence.PixelsToWorld; if (scale == 0) { scale = coll.pixelsToWorld; } sc.scale = scale; // Debug.Log(coll.frames[0].OriginX); sc.sideCount = sequence.getRealViewCount(sequence.NoOfViews); List <Material> frames = new List <Material>(); Weland.ShapeDescriptor tex = new Weland.ShapeDescriptor(); for (int i = 0; i < sequence.FrameIndexes.Count; i++) { tex.Collection = (byte)collectionID; tex.Bitmap = (byte)coll.frames[sequence.FrameIndexes[i]].BitmapIndex; frames.Add(getTexture(tex)); } sc.frames = frames; return(item); }
public static int Main(string[] args) { AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException); GLib.ExceptionManager.UnhandledException += new GLib.UnhandledExceptionHandler(OnUnhandledException); Application.Init(); ShapesFile shapes = new ShapesFile(); shapes.Load(Settings.GetSetting("ShapesFile/Path", "")); Shapes = shapes; MapWindow window = new MapWindow("Weland"); if (args.Length == 1 && !args[0].StartsWith("-psn_")) { window.OpenFile(args[0]); } else { window.NewLevel(); } Application.Run(); return(0); }
IEnumerator spawnEntitiesFromMarathonMap(Weland.Level Level, Weland.ShapesFile shapes) { string load = loadingText; bool playerSpawned = false; for (int i = 0; i < Level.Objects.Count; i++) { MapObject obj = Level.Objects[i]; Quaternion facing = Quaternion.Euler(0, (float)obj.Facing + 90, 0); Vector3 pos = new Vector3(pos.x = (float)obj.X / 1024f, pos.y = (float)obj.Z / 1024f + segments[obj.PolygonIndex].centerPoint.y, pos.z = 0f - (float)obj.Y / 1024f ); if (obj.Type == ObjectType.Player && !playerSpawned) { playerSpawned = true; GameObject player = Instantiate(Resources.Load <GameObject>("player"), pos, facing); player.gameObject.name = "player"; player.GetComponent <playerController>().currentPolygon = obj.PolygonIndex; } if (obj.Type == ObjectType.Item) { GameObject item = createMapItemFromSpriteSequence(7, GlobalData.itemSequences[obj.Index - 1], shapes, "itemObject"); Vector3 rpos = pos; item.transform.position = rpos; item.transform.rotation = facing; item.name = "item" + i; } if (obj.Type == ObjectType.Sound) { } if (obj.Type == ObjectType.Scenery) { GameObject item = createMapItemFromSpriteSequence(GlobalData.sceneryCollections[obj.Index], GlobalData.scenerySequences[obj.Index], shapes, "sceneryObject"); Vector3 rpos = pos; if (obj.FromCeiling) { rpos.y = segments[obj.PolygonIndex].centerPoint.y + segments[obj.PolygonIndex].height.y; } item.transform.position = rpos; item.transform.rotation = facing; item.name = "scenery" + i; item.transform.Find("sprite").GetComponent <spriteController>().fromCeiling = obj.FromCeiling; } if (obj.Type == ObjectType.Goal) { } if (obj.Type == ObjectType.Monster) { Debug.Log("monster"); Debug.Log(obj.Index); } if (i % 7 == 0) { loadingText = load + i + "/" + Level.Objects.Count; yield return(null); } } }