示例#1
0
        /// <summary>
        /// Initialize this entry using the specified building list enty
        /// </summary>
        /// <param name="entry">entry whose contest should be displayed</param>
        /// <param name="buildingMaterial">buildingMaterial this entry comes from</param>
        public void Initialize(BuildList.Entry entry, BuildingMaterial buildingMaterial)
        {
            this.entry                    = entry;
            this.buildingMaterial         = buildingMaterial;
            image.sprite                  = null;
            secondaryImage.sprite         = null;
            tertiaryImage.sprite          = null;
            materialImage.sprite          = null;
            materialSecondaryImage.sprite = null;
            entryName.text                = null;
            materialCost.text             = null;

            if (entry.Prefab)
            {
                entry.Prefab.PopulateImageSprites(image, secondaryImage, tertiaryImage);
            }
            else
            {
                Logger.LogError($"Construction Entry {entry.Name} doesn't use prefab");
            }

            entryName.text = entry.Name;

            buildingMaterial.gameObject.PopulateImageSprites(materialImage, materialSecondaryImage);

            materialCost.text = entry.Cost.ToString();
        }
示例#2
0
        //add a list item to the content panel for spawning the specified result
        private void CreateListItem(BuildList.Entry entry)
        {
            if (!entry.CanBuildWith(currentBuildingMaterial))
            {
                return;
            }

            GameObject listItem = Instantiate(listItemPrefab);

            listItem.GetComponent <BuildMenuEntryController>().Initialize(entry, currentBuildingMaterial);
            listItem.transform.SetParent(contentPanel.transform);
            listItem.transform.localScale = Vector3.one;
        }
示例#3
0
    /// <summary>
    /// Request constructing the given entry
    /// </summary>
    /// <param name="entry">entry to build</param>
    /// <param name="hasMenu">has construction menu component of the object being used to
    /// construct.</param>
    /// <returns></returns>
    public static RequestBuildMessage Send(BuildList.Entry entry, BuildingMaterial hasMenu)
    {
        int entryIndex = hasMenu.BuildList.Entries.ToList().IndexOf(entry);

        if (entryIndex == -1)
        {
            return(null);                          // entryIndex was previously a byte, which made this check impossible.
        }
        RequestBuildMessage msg = new RequestBuildMessage
        {
            EntryIndex = (byte)entryIndex
        };

        msg.Send();
        return(msg);
    }
示例#4
0
    /// <summary>
    /// Request constructing the given entry
    /// </summary>
    /// <param name="entry">entry to build</param>
    /// <param name="hasMenu">has construction menu component of the object being used to
    /// construct.</param>
    /// <returns></returns>
    public static RequestBuildMessage Send(BuildList.Entry entry, BuildingMaterial hasMenu)
    {
        byte entryIndex = (byte)hasMenu.BuildList.Entries.ToList().IndexOf(entry);

        if (entryIndex == -1)
        {
            return(null);
        }

        RequestBuildMessage msg = new RequestBuildMessage
        {
            EntryIndex = entryIndex
        };

        msg.Send();
        return(msg);
    }
        /// <summary>
        /// Initialize this entry using the specified building list enty
        /// </summary>
        /// <param name="entry">entry whose contest should be displayed</param>
        /// <param name="buildingMaterial">buildingMaterial this entry comes from</param>
        public void Initialize(BuildList.Entry entry, BuildingMaterial buildingMaterial)
        {
            this.entry                    = entry;
            this.buildingMaterial         = buildingMaterial;
            image.sprite                  = null;
            secondaryImage.sprite         = null;
            materialImage.sprite          = null;
            materialSecondaryImage.sprite = null;
            entryName.text                = null;
            materialCost.text             = null;

            entry.Prefab.PopulateImageSprites(image, secondaryImage);
            entryName.text = entry.Name;

            buildingMaterial.gameObject.PopulateImageSprites(materialImage, materialSecondaryImage);

            materialCost.text = entry.Cost.ToString();
        }
        public static NetMessage Send(BuildList.Entry entry, BuildingMaterial hasMenu,
                                      ConveyorBelt.ConveyorDirection direction)
        {
            var entryIndex = hasMenu.BuildList.Entries.ToList().IndexOf(entry);

            if (entryIndex == -1)
            {
                return(new NetMessage());
            }

            var msg = new NetMessage
            {
                EntryIndex = (byte)entryIndex,
                Direction  = direction
            };

            Send(msg);
            return(msg);
        }
示例#7
0
 public void OpenConveyorBuildMenu(BuildList.Entry entry, BuildingMaterial materials)
 {
     this.materials = materials;
     this.entry     = entry;
     gameObject.SetActive(true);
 }
示例#8
0
 public void ShowConveyorBeltMenu(BuildList.Entry entry, BuildingMaterial buildingMaterial)
 {
     CloseBuildMenu();
     conveyorBuildMenu.OpenConveyorBuildMenu(entry, buildingMaterial);
 }