예제 #1
0
    public void DestroyTool(string toolName)
    {
        print("--DestroyTool " + toolName);
        ToolHolder holder = FindToolHolder(toolName);

        if (holder && holder.Tool)
        {
            if (holder.Counter > 1)
            {
                holder.LessCounter();
            }
            else
            {
                //holder.Tool.Destroy();
                holder.Remove();
                if (GetHolderCount() < 5)
                {
                    CreateHolder();
                }
            }
        }
        else
        {
            //print("--DestroyItemHiddenList " + toolName);
            ItemHiddenList.Remove(toolName);
        }
        SaveToolList();
    }
        public static ToolHolder ToModel(this IToolHolderViewModel vm)
        {
            ToolHolder m = null;

            if (vm is StaticToolHolderViewModel svm)
            {
                var sm = new StaticToolHolder();
                UpdateModel(sm, svm);
                m = sm;
            }
            else if (vm is AutoSourceToolHolderViewModel asrcvm)
            {
                var am = new AutoSourceToolHolder();
                UpdateModel(am, asrcvm);
                m = am;
            }
            else if (vm is AutoSinkToolHolderViewModel asnkvm)
            {
                var am = new AutoSourceToolHolder();
                UpdateModel(am, asnkvm);
                m = am;
            }

            return(m);
        }
예제 #3
0
    public ToolHolder CreateHolder()
    {
        ToolHolder toolHolder = UnityEngine.Object.Instantiate(holderPrefab) as ToolHolder;

        toolHolder.transform.SetParent(organizer.transform, false);

        return(toolHolder);
    }
예제 #4
0
 public int GetHolderPosition(ToolHolder holder)
 {
     for (int i = 0; i < organizer.transform.childCount; i++)
     {
         if (organizer.transform.GetChild(i) == holder.transform)
         {
             return(i);
         }
     }
     return(-1);
 }
예제 #5
0
 public ToolHolder FindToolHolder(string name)
 {
     foreach (Transform child in organizer.transform)
     {
         ToolHolder holder = child.GetComponent <ToolHolder>();
         if (holder != null && holder.Tool != null && holder.Tool.Name == name)
         {
             return(holder);
         }
     }
     return(null);
 }
 private static void UpdateModel(ToolHolder m, ToolHolderViewModel vm)
 {
     m.Id       = vm.Id;
     m.Position = new MachineModels.Models.Vector()
     {
         X = vm.Position.X, Y = vm.Position.Y, Z = vm.Position.Z
     };
     m.Direction = new MachineModels.Models.Vector()
     {
         X = vm.Direction.X, Y = vm.Direction.Y, Z = vm.Direction.Z
     };
 }
 private static void UpdateViewModel(ToolHolderViewModel vm, ToolHolder m)
 {
     vm.Id       = m.Id;
     vm.Position = new System.Windows.Media.Media3D.Point3D()
     {
         X = m.Position.X, Y = m.Position.Y, Z = m.Position.Z
     };
     vm.Direction = new System.Windows.Media.Media3D.Vector3D()
     {
         X = m.Direction.X, Y = m.Direction.Y, Z = m.Direction.Z
     };
 }
예제 #8
0
    public Tool FindTool(string name)
    {
        ToolHolder holder = FindToolHolder(name);

        if (holder && !holder.IsRemoving)
        {
            return(holder.Tool);
        }
        else
        {
            return(null);
        }
    }
예제 #9
0
파일: Tool.cs 프로젝트: HARd/Convicted
    public void AttachToHolder(ToolHolder holder)
    {
        if (holder.Tool != null && holder.Tool != this)
        {
            Destroy(gameObject);
            return;
        }

        this.holder = holder;
        holder.Tool = this;
        holder.name = Name;
        SetInvView();
        transform.SetParent(holder.toolAncher, false);
    }
예제 #10
0
    public List <Tool> GetTools()
    {
        List <Tool> tools = new List <Tool>();

        foreach (Transform child in organizer.transform)
        {
            ToolHolder holder = child.GetComponent <ToolHolder>();
            if (holder != null && !holder.IsRemoving)
            {
                tools.Add(holder.Tool);
            }
        }

        return(tools);
    }
예제 #11
0
    public void DestroyAllTool()
    {
        foreach (Transform child in organizer.transform)
        {
            ToolHolder holder = child.GetComponent <ToolHolder>();
            if (holder)
            {
                if (holder.Tool)
                {
                    holder.Tool.Destroy();
                }

                holder.Remove();
            }
        }
        SaveToolList();
    }
예제 #12
0
    public List <string> GetToolNames()
    {
        //return GetTools().Select(t => t.Name).ToList();
        List <string> toolsName = new List <string>();

        foreach (Transform child in organizer.transform)
        {
            ToolHolder holder = child.GetComponent <ToolHolder>();
            if (holder != null && !holder.IsRemoving)
            {
                for (int i = 0; i < holder.Counter; i++)
                {
                    toolsName.Add(holder.Tool.Name);
                }
            }
        }
        return(toolsName);
    }
예제 #13
0
    public ToolHolder GetEmptyHolder(bool createIfNotExist = true)
    {
        ToolHolder holder = organizer.GetFirstComponentInChildren <ToolHolder>(h => h.Tool == null);

        if (holder == null)
        {
            if (createIfNotExist)
            {
                holder = CreateHolder();
            }
            else
            {
                return(null);
            }
        }

        return(holder);
    }
예제 #14
0
    public ToolHolder GetHolderForTool(string name, bool createIfNotExist = true)
    {
        ToolHolder holder = FindToolHolder(name);

        if (holder == null)
        {
            if (createIfNotExist)
            {
                holder = CreateHolder();
            }
            else
            {
                return(null);
            }
        }

        return(holder);
    }
예제 #15
0
    public Tool AddTool(string toolName)
    {
        if (ItemHiddenList.Exists(t => t == toolName))
        {
            Debug.LogError("Don`t AddTool - " + toolName);
            return(null);
        }

        Debug.Log("AddTool - " + toolName);
        Tool tool = null;

        //bool hasWeapon = PlayerInfo.Instance.HasWeapon(toolName);
        //if(hasWeapon || (!hasWeapon && !PlayerInfo.Instance.GetItem(toolName).hidden))
        if (PlayerInfo.Instance.HasItem(toolName))
        {
            ToolHolder toolHolder = FindToolHolder(toolName);
            if (toolHolder)
            {
                toolHolder.AddCounter();
            }
            else
            {
                tool = CreateTool(toolName);
                AddTool(tool);
            }
        }
        else
        {
            if (PlayerInfo.Instance.HasHidden(toolName))
            {
                ItemHiddenList.Add(toolName);
            }
            else
            {
                Debug.LogError("Not hidden tool - " + toolName);
            }
        }
        SaveToolList();
        return(tool);
    }
예제 #16
0
        public static ToolHolderViewModel UpdateFromModel(this ToolHolderViewModel vm, ToolHolder m)
        {
            vm.ToolHolderId = m.Id;
            vm.Position     = new Point3D(m.Position.X, m.Position.Y, m.Position.Z);
            vm.Direction    = new Vector3D(m.Direction.X, m.Direction.Y, m.Direction.Z);

            return(vm);
        }