private void displayItemDefinition(itemDefinition pDefinition)
        {
            if (pDefinition == null)
            {
                return;
            }

            txtID.Text = pDefinition.ID.ToString();
            if (pDefinition.Behaviour.isPublicSpaceObject)
            {
                txtDirectoryID.Text  = "0";
                txtExtTextsName.Text = "none";
            }
            else
            {
                txtDirectoryID.Text  = pDefinition.directoryID.ToString();
                txtExtTextsName.Text = pDefinition.Name;
            }

            txtSprite.Text    = pDefinition.Sprite;
            txtItemColor.Text = pDefinition.Color;

            numItemLength.Value    = (decimal)pDefinition.Length;
            numItemWidth.Value     = (decimal)pDefinition.Width;
            numItemTopHeight.Value = (decimal)pDefinition.topHeight;

            this.setNonWallItemPropertiesEnabledState(!pDefinition.Behaviour.isWallItem);
            this.displayItemDefinitionBehaviour(pDefinition.Behaviour);
            this.boxEditor.Enabled = true;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            String entered = "";

            foreach (String line in textBox1.Lines)
            {
                String[] value = line.Split(' ');
                if (!entered.Contains("," + value[1] + ","))
                {
                    entered += "," + value[1] + ",";
                    //a1611 sun_chair 16 11 0 2 2
                    Boolean chair = false;
                    if (value[6] == "2")
                    {
                        chair = true;
                    }

                    itemDefinition editedDefinition = new itemDefinition();
                    editedDefinition.directoryID = 0;
                    editedDefinition.Sprite      = value[1];
                    editedDefinition.Color       = "";
                    editedDefinition.Length      = (byte)1.00F;
                    editedDefinition.Width       = (byte)1.00F;
                    editedDefinition.topHeight   = (float)(chair ? 1.00F : 0.00F);

                    itemDefinition.itemBehaviourContainer newBehaviourContainer = new itemDefinition.itemBehaviourContainer();
                    newBehaviourContainer.isPublicSpaceObject = true;
                    newBehaviourContainer.canSitOnTop         = chair;
                    editedDefinition.Behaviour = newBehaviourContainer;

                    this.saveItemDefinition(editedDefinition);
                }
            }
            Engine.Game.Items.loadDefinitions();
        }
 private void setInputFieldsToItemDefinition(ref itemDefinition pDefinition)
 {
     pDefinition.directoryID = int.Parse(txtDirectoryID.Text);
     pDefinition.Sprite      = txtSprite.Text;
     pDefinition.Color       = txtItemColor.Text;
     pDefinition.Length      = (byte)numItemLength.Value;
     pDefinition.Width       = (byte)numItemWidth.Value;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Set the item definition that ships with this sale.
 /// </summary>
 /// <param name="Item">The itemDefinition of the item to set.</param>
 public void setItem(itemDefinition Item, int specialSpriteID)
 {
     if (!this.isPackage)
     {
         this.pItem = Item;
         this.pItemSpecialSpriteID = specialSpriteID;
     }
 }
        private void tsModifyAddDefinition_Click(object sender, EventArgs e)
        {
            itemDefinition newDefinition = new itemDefinition();
            Database       dbClient      = new Database(true, true);

            newDefinition.ID = dbClient.getInteger("SELECT MAX(id) + 1 FROM items_definitions");
            displayItemDefinition(newDefinition);

            displayMessageBox("Fill in the details for this new item definition below and click the button to save.", MessageBoxIcon.Information);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Adds a given itemDefinition item with a given quantity to the package sale.
        /// </summary>
        /// <param name="Item">The itemDefinition object of the item to add to the package.</param>
        /// <param name="Amount">The amount of times this item should be added to the package.</param>
        public void addPackageItem(itemDefinition Item, int Amount, int specialSpriteID)
        {
            if (!this.isPackage)
            {
                return;
            }

            storeCataloguePackageItem pPackageItem = new storeCataloguePackageItem(Item, Amount, specialSpriteID);

            this.pPackageItems.Add(pPackageItem);
        }
        private void addItemDefinitionToList(itemDefinition pDefinition)
        {
            ListViewItem pItem = new ListViewItem(pDefinition.ID.ToString());
            pItem.SubItems.Add(pDefinition.Sprite);
            pItem.SubItems.Add(pDefinition.Color);
            if (pDefinition.Behaviour.isPublicSpaceObject)
                pItem.SubItems.Add("none");
            else
                pItem.SubItems.Add(pDefinition.Name);

            this.lvItemDefinitions.Items.Add(pItem);
        }
        private void addItemDefinitionToList(itemDefinition pDefinition)
        {
            ListViewItem pItem = new ListViewItem(pDefinition.ID.ToString());

            pItem.SubItems.Add(pDefinition.Sprite);
            pItem.SubItems.Add(pDefinition.Color);
            if (pDefinition.Behaviour.isPublicSpaceObject)
            {
                pItem.SubItems.Add("none");
            }
            else
            {
                pItem.SubItems.Add(pDefinition.Name);
            }

            this.lvItemDefinitions.Items.Add(pItem);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Initializes the sales sold in the catalogue.
        /// </summary>
        public void loadSales()
        {
            if (this.Sales != null)
            {
                this.Sales.Clear();
            }
            this.Sales = new Dictionary <string, storeCatalogueSale>();

            Database dbClient = new Database(true, false);

            if (dbClient.Ready)
            {
                foreach (DataRow dSale in dbClient.getTable("SELECT * FROM store_catalogue_sales").Rows)
                {
                    storeCatalogueSale pSale = new storeCatalogueSale((string)dSale["salecode"], (int)dSale["price"]); // Create blank sale object
                    bool isPackage           = (
                        (dSale["ispackage"].ToString() == "true") &&
                        dSale["package_name"] != DBNull.Value &&
                        dSale["package_description"] != DBNull.Value);

                    if (isPackage)
                    {
                        pSale.setPackage((string)dSale["package_name"], (string)dSale["package_description"]);
                        foreach (DataRow dPackageItem in dbClient.getTable("SELECT definitionid,amount,specialspriteid FROM store_catalogue_sales_packages WHERE salecode = '" + pSale.saleCode + "'").Rows)
                        {
                            itemDefinition pItemDefinition = ObjectTree.Game.Items.getItemDefinition((int)dPackageItem["definitionid"]);
                            if (pItemDefinition != null)
                            {
                                pSale.addPackageItem(pItemDefinition, (int)dPackageItem["amount"], (int)dPackageItem["specialspriteid"]);
                            }
                        }
                    }
                    else
                    {
                        itemDefinition pItemDefinition = ObjectTree.Game.Items.getItemDefinition((int)dSale["item_definitionid"]);
                        if (pItemDefinition != null)
                        {
                            pSale.setItem(pItemDefinition, (int)dSale["item_specialspriteid"]);
                        }
                    }
                    this.Sales.Add(pSale.saleCode, pSale);
                }
                dbClient.Close();
            }
        }
Ejemplo n.º 10
0
        private void saveItemDefinition(itemDefinition pDefinition)
        {
            Database dbClient = new Database(false, false);

            dbClient.addParameterWithValue("directoryid", pDefinition.directoryID);
            dbClient.addParameterWithValue("sprite", pDefinition.Sprite);
            dbClient.addParameterWithValue("color", pDefinition.Color);
            dbClient.addParameterWithValue("length", pDefinition.Length);
            dbClient.addParameterWithValue("width", pDefinition.Width);
            dbClient.addParameterWithValue("topheight", pDefinition.topHeight);
            dbClient.addParameterWithValue("behaviour", pDefinition.Behaviour.ToString());

            dbClient.Open();
            if (dbClient.Ready)
            {
                dbClient.runQuery("DELETE FROM items_definitions WHERE sprite = @sprite"); // Drop old definition
                dbClient.runQuery(                                                         // Insert new/edited definition
                    "INSERT INTO items_definitions " +
                    "VALUES " +
                    "(null,@directoryid,@sprite,@color,@length,@width,@topheight,@behaviour)");
                dbClient.Close();
            }
        }
        private void saveItemDefinition(itemDefinition pDefinition)
        {
            Database dbClient = new Database(false, false);
            dbClient.addParameterWithValue("definitionid", pDefinition.ID);
            dbClient.addParameterWithValue("directoryid", pDefinition.directoryID);
            dbClient.addParameterWithValue("sprite", pDefinition.Sprite);
            dbClient.addParameterWithValue("color", pDefinition.Color);
            dbClient.addParameterWithValue("length", pDefinition.Length);
            dbClient.addParameterWithValue("width", pDefinition.Width);
            dbClient.addParameterWithValue("topheight", pDefinition.topHeight);
            dbClient.addParameterWithValue("behaviour", pDefinition.Behaviour.ToString());

            dbClient.Open();
            if (dbClient.Ready)
            {
                dbClient.runQuery("DELETE FROM items_definitions WHERE id = @definitionid LIMIT 1"); // Drop old definition
                dbClient.runQuery( // Insert new/edited definition
                    "INSERT INTO items_definitions " +
                    "VALUES " +
                    "(@definitionid,@directoryid,@sprite,@color,@length,@width,@topheight,@behaviour)");
                dbClient.Close();
            }
        }
        private void displayItemDefinitionBehaviour(itemDefinition.itemBehaviourContainer Behaviour)
        {
            lstBehaviour.Items.Clear();
            lstBehaviour.Items.Add("Wallitem", Behaviour.isWallItem);
            lstBehaviour.Items.Add("Solid", Behaviour.isSolid);
            lstBehaviour.Items.Add("Can sit on top", Behaviour.canSitOnTop);
            lstBehaviour.Items.Add("Can lay on top", Behaviour.canLayOnTop);
            lstBehaviour.Items.Add("Can stand on top", Behaviour.canStandOnTop);
            lstBehaviour.Items.Add("Can stack on top", Behaviour.canStackOnTop);
            lstBehaviour.Items.Add("Roller", Behaviour.isRoller);
            lstBehaviour.Items.Add("Public space object", Behaviour.isPublicSpaceObject);

            lstBehaviour.Items.Add("Requires rights for interaction", Behaviour.requiresRightsForInteraction);
            lstBehaviour.Items.Add("Requires touching for interaction", Behaviour.requiresTouchingForInteraction);

            lstBehaviour.Items.Add("Customdata: TRUE/FALSE", Behaviour.customDataTrueFalse);
            lstBehaviour.Items.Add("Customdata: ON/OFF", Behaviour.customDataOnOff);
            lstBehaviour.Items.Add("Customdata: numeric on/off", Behaviour.customDataNumericOnOff);
            lstBehaviour.Items.Add("Customdata: numeric state", Behaviour.customDataNumericState);

            lstBehaviour.Items.Add("Invisible", Behaviour.isInvisible);
            lstBehaviour.Items.Add("Decoration", Behaviour.isDecoration);
            lstBehaviour.Items.Add("Post.it", Behaviour.isPostIt);
            lstBehaviour.Items.Add("Door", Behaviour.isDoor);
            lstBehaviour.Items.Add("Teleporter", Behaviour.isTeleporter);
            lstBehaviour.Items.Add("Dice", Behaviour.isDice);
            lstBehaviour.Items.Add("Prizetrophy", Behaviour.isPrizeTrophy);
            lstBehaviour.Items.Add("Redeemable", Behaviour.isRedeemable);
            lstBehaviour.Items.Add("Soundmachine", Behaviour.isSoundMachine);
            lstBehaviour.Items.Add("Soundmachine sample set", Behaviour.isSoundMachineSampleSet);
        }
        private void displayItemDefinition(itemDefinition pDefinition)
        {
            if (pDefinition == null)
                return;

            txtID.Text = pDefinition.ID.ToString();
            if (pDefinition.Behaviour.isPublicSpaceObject)
            {
                txtDirectoryID.Text = "0";
                txtExtTextsName.Text = "none";
            }
            else
            {
                txtDirectoryID.Text = pDefinition.directoryID.ToString();
                txtExtTextsName.Text = pDefinition.Name;
            }

            txtSprite.Text = pDefinition.Sprite;
            txtItemColor.Text = pDefinition.Color;

            numItemLength.Value = (decimal)pDefinition.Length;
            numItemWidth.Value = (decimal)pDefinition.Width;
            numItemTopHeight.Value = (decimal)pDefinition.topHeight;

            this.setNonWallItemPropertiesEnabledState(!pDefinition.Behaviour.isWallItem);
            this.displayItemDefinitionBehaviour(pDefinition.Behaviour);
            this.boxEditor.Enabled = true;
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Initializes all the item instances and adds them to the collections for items.
        /// </summary>
        private void loadItems()
        {
            if (this.floorItems != null)
            {
                this.floorItems.Clear();
            }
            if (this.wallItems != null)
            {
                this.wallItems.Clear();
            }
            if (this.roomPets != null)
            {
                this.roomPets.Clear();
            }

            this.floorItems = new List <floorItem>();
            if (this.Information.isUserFlat)
            {
                this.wallItems = new List <wallItem>();
                this.roomPets  = new List <roomPet>();
            }

            Database dbClient = new Database(false, true);

            dbClient.addParameterWithValue("roomid", this.roomID);

            dbClient.Open();
            if (!dbClient.Ready)
            {
                return; // Too bad
            }
            foreach (DataRow dRow in dbClient.getTable("SELECT * FROM items WHERE roomid = @roomid").Rows)
            {
                itemDefinition Definition = ObjectTree.Game.Items.getItemDefinition((int)dRow["definitionid"]);
                if (Definition == null) // Invalid item
                {
                    continue;
                }

                int    itemID     = (int)dRow["id"];
                string customData = null;
                if (dRow["customdata"] != DBNull.Value)
                {
                    customData = (string)dRow["customdata"];
                }

                if (Definition.Behaviour.isWallItem)
                {
                    wallItem pItem = new wallItem();
                    pItem.ID           = itemID;
                    pItem.Definition   = Definition;
                    pItem.roomID       = this.roomID;
                    pItem.ownerID      = this.Information.ownerID;
                    pItem.customData   = customData;
                    pItem.wallPosition = (string)dRow["wallposition"];
                    if (Definition.Behaviour.isPostIt)
                    {
                        pItem.postItMessage = (string)dRow["postit_message"];
                    }

                    this.wallItems.Add(pItem);
                }
                else
                {
                    floorItem pItem = new floorItem();
                    pItem.ID         = itemID;
                    pItem.Definition = Definition;
                    pItem.roomID     = this.roomID;
                    pItem.ownerID    = this.Information.ownerID;
                    pItem.customData = customData;
                    pItem.X          = byte.Parse(dRow["x"].ToString());
                    pItem.Y          = byte.Parse(dRow["y"].ToString());
                    pItem.Z          = (float)dRow["z"];
                    pItem.Rotation   = byte.Parse(dRow["rotation"].ToString());
                    if (pItem.Definition.Behaviour.isTeleporter) // Teleporter, initialize 'brother' ID
                    {
                        pItem.teleporterID = (int)dRow["teleporterid"];
                    }

                    this.floorItems.Add(pItem);
                }
            }
        }
Ejemplo n.º 15
0
 /// <summary>
 /// Constructs a storeCataloguePackageItem instance with a given item and quantity.
 /// </summary>
 /// <param name="pItemDefinition">The itemDefinition object of the item.</param>
 /// <param name="pItemAmount">The amount of times this item appears in the package.</param>
 public storeCataloguePackageItem(itemDefinition pItemDefinition, int pItemAmount, int specialSpriteID)
 {
     this.pItem = pItemDefinition;
     this.pAmount = pItemAmount;
     this.specialSpriteID = specialSpriteID;
 }
Ejemplo n.º 16
0
 /// <summary>
 /// Constructs a storeCataloguePackageItem instance with a given item and quantity.
 /// </summary>
 /// <param name="pItemDefinition">The itemDefinition object of the item.</param>
 /// <param name="pItemAmount">The amount of times this item appears in the package.</param>
 public storeCataloguePackageItem(itemDefinition pItemDefinition, int pItemAmount, int specialSpriteID)
 {
     this.pItem           = pItemDefinition;
     this.pAmount         = pItemAmount;
     this.specialSpriteID = specialSpriteID;
 }
 private void setInputFieldsToItemDefinition(ref itemDefinition pDefinition)
 {
     pDefinition.directoryID = int.Parse(txtDirectoryID.Text);
     pDefinition.Sprite = txtSprite.Text;
     pDefinition.Color = txtItemColor.Text;
     pDefinition.Length = (byte)numItemLength.Value;
     pDefinition.Width = (byte)numItemWidth.Value;
 }
        private void cmdSaveItemDefinition_Click(object sender, EventArgs e)
        {
            int[] selectedItemDefinitionIDs = this.selectedItemDefinitionIDs;

            int dirID = 0;

            if (!int.TryParse(txtDirectoryID.Text, out dirID) || dirID < 0)
            {
                displayMessageBox("Field 'directory ID' holds no valid value. The value has to be numeric and atleast zero.", MessageBoxIcon.Exclamation);
                return;
            }
            if (dirID == 0)
            {
                displayMessageBox("Field 'directory ID' holds the value 0. Most furniture items will appear as PlaceHolder boxes if their cast file cannot be resolved from the DCR directory.\r\nIf you are unsure about the directory ID of this item definition, you might want to use the helper tool Chestnut that will index the directory IDs of all item cast files in your DCR directory.", MessageBoxIcon.Information);
            }

            if (txtSprite.Text == "")
            {
                displayMessageBox("The field 'Sprite' cannot be empty.", MessageBoxIcon.Exclamation);
                return;
            }

            itemDefinition editedDefinition = new itemDefinition();

            editedDefinition.directoryID = dirID;
            editedDefinition.Sprite      = txtSprite.Text;
            editedDefinition.Color       = txtItemColor.Text;
            editedDefinition.Length      = (byte)numItemLength.Value;
            editedDefinition.Width       = (byte)numItemWidth.Value;
            editedDefinition.topHeight   = (float)numItemTopHeight.Value;

            itemDefinition.itemBehaviourContainer newBehaviourContainer = new itemDefinition.itemBehaviourContainer();
            foreach (string s in lstBehaviour.CheckedItems)
            {
                switch (s)
                {
                    #region Primitive types
                case "Wallitem":
                    newBehaviourContainer.isWallItem = true;
                    break;

                case "Solid":
                    newBehaviourContainer.isSolid = true;
                    break;

                case "Can sit on top":
                    newBehaviourContainer.canSitOnTop = true;
                    break;

                case "Can lay on top":
                    newBehaviourContainer.canLayOnTop = true;
                    break;

                case "Can stand on top":
                    newBehaviourContainer.canStandOnTop = true;
                    break;

                case "Can stack on top":
                    newBehaviourContainer.canStackOnTop = true;
                    break;

                case "Roller":
                    newBehaviourContainer.isRoller = true;
                    break;

                case "Public space object":
                    newBehaviourContainer.isPublicSpaceObject = true;
                    break;

                case "Invisible":
                    newBehaviourContainer.isInvisible = true;
                    break;
                    #endregion

                    #region Interaction requirements
                case "Requires rights for interaction":
                    newBehaviourContainer.requiresRightsForInteraction = true;
                    break;

                case "Requires touching for interaction":
                    newBehaviourContainer.requiresTouchingForInteraction = true;
                    break;
                    #endregion

                    #region Custom data usage
                case "Customdata: TRUE/FALSE":
                    newBehaviourContainer.customDataTrueFalse = true;
                    break;

                case "Customdata: ON/OFF":
                    newBehaviourContainer.customDataOnOff = true;
                    break;

                case "Customdata: numeric on/off":
                    newBehaviourContainer.customDataNumericOnOff = true;
                    break;

                case "Customdata: numeric state":
                    newBehaviourContainer.customDataNumericState = true;
                    break;
                    #endregion

                    #region Item usage
                case "Decoration":
                    newBehaviourContainer.isDecoration = true;
                    break;

                case "Post.it":
                    newBehaviourContainer.isPostIt = true;
                    break;

                case "Door":
                    newBehaviourContainer.isDoor = true;
                    break;

                case "Teleporter":
                    newBehaviourContainer.isTeleporter = true;
                    break;

                case "Dice":
                    newBehaviourContainer.isDice = true;
                    break;

                case "Prizetrophy":
                    newBehaviourContainer.isPrizeTrophy = true;
                    break;

                case "Redeemable":
                    newBehaviourContainer.isRedeemable = true;
                    break;

                case "Soundmachine":
                    newBehaviourContainer.isSoundMachine = true;
                    break;

                case "Soundmachine sample set":
                    newBehaviourContainer.isSoundMachineSampleSet = true;
                    break;
                    #endregion
                }
            }

            editedDefinition.Behaviour = newBehaviourContainer;
            foreach (int definitionID in selectedItemDefinitionIDs)
            {
                editedDefinition.ID = definitionID;
                if (selectedItemDefinitionIDs.Length > 1) // More than one item selected, keep original directory ID/sprite/color/length/width intact
                {
                    itemDefinition oldDefinition = Engine.Game.Items.getItemDefinition(definitionID);
                    if (oldDefinition == null)
                    {
                        continue;
                    }

                    editedDefinition.directoryID = oldDefinition.directoryID;
                    editedDefinition.Sprite      = oldDefinition.Sprite;
                    editedDefinition.Color       = oldDefinition.Color;
                    editedDefinition.Length      = oldDefinition.Length;
                    editedDefinition.Width       = oldDefinition.Width;
                }
                this.saveItemDefinition(editedDefinition);
            }

            this.displayItemDefinitions();
            Engine.Game.Store.loadCataloguePages();

            displayMessageBox("Selected item definitions saved successfully.", MessageBoxIcon.Information);
        }
        private void tsModifyAddDefinition_Click(object sender, EventArgs e)
        {
            itemDefinition newDefinition = new itemDefinition();
            Database dbClient = new Database(true, true);
            newDefinition.ID = dbClient.getInteger("SELECT MAX(id) + 1 FROM items_definitions");
            displayItemDefinition(newDefinition);

            displayMessageBox("Fill in the details for this new item definition below and click the button to save.", MessageBoxIcon.Information);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Adds a given itemDefinition item with a given quantity to the package sale.
        /// </summary>
        /// <param name="Item">The itemDefinition object of the item to add to the package.</param>
        /// <param name="Amount">The amount of times this item should be added to the package.</param>
        public void addPackageItem(itemDefinition Item, int Amount, int specialSpriteID)
        {
            if (!this.isPackage)
                return;

            storeCataloguePackageItem pPackageItem = new storeCataloguePackageItem(Item, Amount, specialSpriteID);
            this.pPackageItems.Add(pPackageItem);
        }
        private void cmdSaveItemDefinition_Click(object sender, EventArgs e)
        {
            int[] selectedItemDefinitionIDs = this.selectedItemDefinitionIDs;

            int dirID = 0;
            if (!int.TryParse(txtDirectoryID.Text, out dirID) || dirID < 0)
            {
                displayMessageBox("Field 'directory ID' holds no valid value. The value has to be numeric and atleast zero.", MessageBoxIcon.Exclamation);
                return;
            }
            if (dirID == 0)
                displayMessageBox("Field 'directory ID' holds the value 0. Most furniture items will appear as PlaceHolder boxes if their cast file cannot be resolved from the DCR directory.\r\nIf you are unsure about the directory ID of this item definition, you might want to use the helper tool Chestnut that will index the directory IDs of all item cast files in your DCR directory.", MessageBoxIcon.Information);

            if (txtSprite.Text == "")
            {
                displayMessageBox("The field 'Sprite' cannot be empty.", MessageBoxIcon.Exclamation);
                return;
            }

            itemDefinition editedDefinition = new itemDefinition();
            editedDefinition.directoryID = dirID;
            editedDefinition.Sprite = txtSprite.Text;
            editedDefinition.Color = txtItemColor.Text;
            editedDefinition.Length = (byte)numItemLength.Value;
            editedDefinition.Width = (byte)numItemWidth.Value;
            editedDefinition.topHeight = (float)numItemTopHeight.Value;

            itemDefinition.itemBehaviourContainer newBehaviourContainer = new itemDefinition.itemBehaviourContainer();
            foreach (string s in lstBehaviour.CheckedItems)
            {
                switch (s)
                {
                    #region Primitive types
                    case "Wallitem":
                        newBehaviourContainer.isWallItem = true;
                        break;
                    case "Solid":
                        newBehaviourContainer.isSolid = true;
                        break;
                    case "Can sit on top":
                        newBehaviourContainer.canSitOnTop = true;
                        break;
                    case "Can lay on top":
                        newBehaviourContainer.canLayOnTop = true;
                        break;
                    case "Can stand on top":
                        newBehaviourContainer.canStandOnTop = true;
                        break;
                    case "Can stack on top":
                        newBehaviourContainer.canStackOnTop = true;
                        break;
                    case "Roller":
                        newBehaviourContainer.isRoller = true;
                        break;
                    case "Public space object":
                        newBehaviourContainer.isPublicSpaceObject = true;
                        break;
                    case "Invisible":
                        newBehaviourContainer.isInvisible = true;
                        break;
                    #endregion

                    #region Interaction requirements
                    case "Requires rights for interaction":
                        newBehaviourContainer.requiresRightsForInteraction = true;
                        break;
                    case "Requires touching for interaction":
                        newBehaviourContainer.requiresTouchingForInteraction = true;
                        break;
                    #endregion

                    #region Custom data usage
                    case "Customdata: TRUE/FALSE":
                        newBehaviourContainer.customDataTrueFalse = true;
                        break;
                    case "Customdata: ON/OFF":
                        newBehaviourContainer.customDataOnOff = true;
                        break;
                    case "Customdata: numeric on/off":
                        newBehaviourContainer.customDataNumericOnOff = true;
                        break;
                    case "Customdata: numeric state":
                        newBehaviourContainer.customDataNumericState = true;
                        break;
                    #endregion

                    #region Item usage
                    case "Decoration":
                        newBehaviourContainer.isDecoration = true;
                        break;
                    case "Post.it":
                        newBehaviourContainer.isPostIt = true;
                        break;
                    case "Door":
                        newBehaviourContainer.isDoor = true;
                        break;
                    case "Teleporter":
                        newBehaviourContainer.isTeleporter = true;
                        break;
                    case "Dice":
                        newBehaviourContainer.isDice = true;
                        break;
                    case "Prizetrophy":
                        newBehaviourContainer.isPrizeTrophy = true;
                        break;
                    case "Redeemable":
                        newBehaviourContainer.isRedeemable = true;
                        break;
                    case "Soundmachine":
                        newBehaviourContainer.isSoundMachine = true;
                        break;
                    case "Soundmachine sample set":
                        newBehaviourContainer.isSoundMachineSampleSet = true;
                        break;
                    #endregion
                }
            }

            editedDefinition.Behaviour = newBehaviourContainer;
            foreach (int definitionID in selectedItemDefinitionIDs)
            {
                editedDefinition.ID = definitionID;
                if (selectedItemDefinitionIDs.Length > 1) // More than one item selected, keep original directory ID/sprite/color/length/width intact
                {
                    itemDefinition oldDefinition = ObjectTree.Game.Items.getItemDefinition(definitionID);
                    if (oldDefinition == null)
                        continue;

                    editedDefinition.directoryID = oldDefinition.directoryID;
                    editedDefinition.Sprite = oldDefinition.Sprite;
                    editedDefinition.Color = oldDefinition.Color;
                    editedDefinition.Length = oldDefinition.Length;
                    editedDefinition.Width = oldDefinition.Width;
                }
                this.saveItemDefinition(editedDefinition);
            }

            this.displayItemDefinitions();
            ObjectTree.Game.Store.loadCataloguePages();

            displayMessageBox("Selected item definitions saved successfully.", MessageBoxIcon.Information);
        }
Ejemplo n.º 22
0
 /// <summary>
 /// Set the item definition that ships with this sale.
 /// </summary>
 /// <param name="Item">The itemDefinition of the item to set.</param>
 public void setItem(itemDefinition Item, int specialSpriteID)
 {
     if(!this.isPackage)
     {
         this.pItem = Item;
         this.pItemSpecialSpriteID = specialSpriteID;
     }
 }