LynnaLab.SubTileEditor.SubTileEditor C# (CSharp) Method

SubTileEditor() public method

public SubTileEditor ( AreaEditor areaEditor ) : System
areaEditor AreaEditor
return System
        public SubTileEditor(AreaEditor areaEditor)
            : base(0,0,0,0)
        {
            this.areaEditor = areaEditor;

            Gtk.Box tmpBox;

            Gtk.VBox vbox = new VBox(false, 2);
            vbox.Spacing = 10;

            // Top row: 2 images of the tile, one for selecting, one to show
            // collisions

            subTileViewer = new SubTileViewer();

            subTileViewer.SubTileChangedEvent += delegate() {
                PullEverything();
            };

            subTileCollisionEditor = new SubTileCollisionEditor();
            subTileCollisionEditor.CollisionsChangedHandler += () => {
                PullEverything();
            };

            Alignment hAlign = new Alignment(0.5f, 0, 0, 0);
            Gtk.HBox hbox = new HBox(false, 2);
            hbox.PackStart(subTileViewer);
            hbox.PackStart(subTileCollisionEditor);
            hAlign.Add(hbox);

            vbox.PackStart(hAlign);

            // Next row: collision value

            collisionSpinButton = new SpinButtonHexadecimal(0,255);
            collisionSpinButton.Digits = 2;
            collisionSpinButton.CanFocus = false;
            collisionSpinButton.ValueChanged += delegate(object sender, EventArgs e) {
                Area.SetTileCollision(TileIndex, (byte)collisionSpinButton.ValueAsInt);
                subTileCollisionEditor.QueueDraw();
            };

            Gtk.Label collisionLabel = new Gtk.Label("Collisions");

            tmpBox = new Gtk.HBox(false, 2);
            tmpBox.PackStart(collisionLabel);
            tmpBox.PackStart(collisionSpinButton);
            vbox.PackStart(tmpBox);

            // Next rows: subtile properties

            var table = new Table(2, 2, false);
            table.ColumnSpacing = 6;
            table.RowSpacing = 6;

            subTileSpinButton = new SpinButtonHexadecimal(0,255);
            subTileSpinButton.CanFocus = false;
            subTileSpinButton.ValueChanged += delegate(object sender, EventArgs e) {
                PushFlags();
            };
            paletteSpinButton = new SpinButton(0,7,1);
            paletteSpinButton.CanFocus = false;
            paletteSpinButton.ValueChanged += delegate(object sender, EventArgs e) {
                PushFlags();
            };
            flipXCheckButton = new Gtk.CheckButton();
            flipXCheckButton.CanFocus = false;
            flipXCheckButton.Toggled += delegate(object sender, EventArgs e) {
                PushFlags();
            };
            flipYCheckButton = new Gtk.CheckButton();
            flipYCheckButton.CanFocus = false;
            flipYCheckButton.Toggled += delegate(object sender, EventArgs e) {
                PushFlags();
            };
            priorityCheckButton = new Gtk.CheckButton();
            priorityCheckButton.CanFocus = false;
            priorityCheckButton.Toggled += delegate(object sender, EventArgs e) {
                PushFlags();
            };
            bankCheckButton = new Gtk.CheckButton();
            bankCheckButton.CanFocus = false;
            bankCheckButton.Toggled += delegate(object sender, EventArgs e) {
                PushFlags();
            };

            Gtk.Label subTileLabel = new Gtk.Label("Subtile Index");
            Gtk.Label paletteLabel = new Gtk.Label("Palette");
            Gtk.Label flipXLabel = new Gtk.Label("Flip X");
            Gtk.Label flipYLabel = new Gtk.Label("Flip Y");
            Gtk.Label priorityLabel = new Gtk.Label("Priority");
            Gtk.Label bankLabel = new Gtk.Label("Bank (0/1)");

            paletteLabel.TooltipText = "Palette index (0-7)";
            paletteSpinButton.TooltipText = "Palette index (0-7)";

            priorityLabel.TooltipText = "Check to make colors 1-3 appear above sprites";
            priorityCheckButton.TooltipText = "Check to make colors 1-3 appear above sprites";

            bankLabel.TooltipText = "You're better off leaving this checked.";
            bankCheckButton.TooltipText = "You're better off leaving this checked.";

            uint y = 0;

            table.Attach(subTileLabel, 0, 1, y, y+1);
            table.Attach(subTileSpinButton, 1, 2, y, y+1);
            y++;
            table.Attach(paletteLabel, 0, 1, y, y+1);
            table.Attach(paletteSpinButton, 1, 2, y, y+1);
            y++;
            table.Attach(flipXLabel, 0, 1, y, y+1);
            table.Attach(flipXCheckButton, 1, 2, y, y+1);
            y++;
            table.Attach(flipYLabel, 0, 1, y, y+1);
            table.Attach(flipYCheckButton, 1, 2, y, y+1);
            y++;
            table.Attach(priorityLabel, 0, 1, y, y+1);
            table.Attach(priorityCheckButton, 1, 2, y, y+1);
            y++;
            table.Attach(bankLabel, 0, 1, y, y+1);
            table.Attach(bankCheckButton, 1, 2, y, y+1);
            y++;

            vbox.PackStart(table);
            this.Add(vbox);

            ShowAll();

            PullEverything();
        }