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();
        }
Exemple #2
0
    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);
    }
Exemple #3
0
        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);
        }
Exemple #4
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);
            }
        }
    }