Exemple #1
0
        private IEnumerable <RemoteItem> ListItems(ChorusUrl chorusUrl, ChorusContents chorusContents)
        {
            IEnumerable <RemoteItem> items = new RemoteItem[0];

            if (null != chorusContents.experiments)
            {
                items = items.Concat(chorusContents.experiments.Select(experiment =>
                                                                       new RemoteItem(chorusUrl.SetExperimentId(experiment.id).AddPathPart(experiment.GetName()),
                                                                                      experiment.GetName(), DataSourceUtil.FOLDER_TYPE, null, 0)));
            }
            if (null != chorusContents.files)
            {
                items = items.Concat(chorusContents.files.Select(
                                         file =>
                {
                    ChorusUrl fileUrl = (ChorusUrl)chorusUrl.SetFileId(file.id)
                                        .AddPathPart(file.GetName())
                                        .ChangeRunStartTime(file.GetAcquisitionDateTime())
                                        .ChangeModifiedTime(file.GetModifiedDateTime());
                    return(new RemoteItem(fileUrl, file.GetName(),
                                          GetFileType(file), file.GetModifiedDateTime(), file.fileSizeBytes));
                }
                                         ));
            }
            if (null != chorusContents.projects)
            {
                items = items.Concat(chorusContents.projects.Select(project =>
                                                                    new RemoteItem(chorusUrl.SetProjectId(project.id).AddPathPart(project.GetName()),
                                                                                   project.GetName(), DataSourceUtil.FOLDER_TYPE, null, project.GetSize())));
            }
            return(items);
        }
 public void SplitItem(RemoteItem a_item)
 {
     if (null != a_item && 1 < a_item.m_amountOrCond)
     {
         this.m_sendDragPos = this.m_inventory.ToWorldPos(a_item.transform.localPosition);
         this.m_sendDropPos = Vector3.one * 254f;
     }
 }
Exemple #3
0
    public void Show(RemoteItem a_item, Vector3 a_pos)
    {
        this.m_item             = a_item;
        base.transform.position = a_pos;
        Vector3 localPosition = base.transform.localPosition;

        localPosition.z = 4.5f;
        base.transform.localPosition = localPosition;
        this.ShowGui(Items.IsEatable(this.m_item.m_type) || Items.IsMedicine(this.m_item.m_type), Items.IsStackable(this.m_item.m_type) && 1 < this.m_item.m_amountOrCond);
        this.m_lastShowTime = Time.time;
    }
Exemple #4
0
        public static AsyncResult <ThumbnailSet> GetThumbnail(RemoteItem ri)
        {
            // drives/${file.remoteItem.parentReference.driveId}/items/${file.remoteItem.id}/thumbnails/0/medium
            var provider = ProviderManager.Instance.GlobalProvider;

            if (provider?.State == ProviderState.SignedIn)
            {
                var graph = provider.GetClient();
                return(new AsyncResult <ThumbnailSet>(graph.Drives[ri.ParentReference.DriveId].Items[ri.Id].Thumbnails["0"].Request().GetAsync()));
            }

            return(null);
        }
    private bool IsInteracting()
    {
        bool flag = false;

        if (Input.GetButtonDown("Interact") && !m_isMoving)
        {
            for (int i = 0; i < m_repairNpcs.Length; i++)
            {
                Vector3 position = m_repairNpcs[i].transform.position;
                Vector3 pos      = m_client.GetPos();
                if (!(Mathf.Abs(position.x - pos.x) < 1.4f) || !(Mathf.Abs(position.z - pos.z) < 1.4f))
                {
                    continue;
                }
                RemoteItem handItem = m_inventory.GetHandItem();
                if (null != handItem)
                {
                    if (Items.HasCondition(handItem.m_type) && handItem.m_amountOrCond < 100)
                    {
                        ItemDef itemDef = Items.GetItemDef(handItem.m_type);
                        int     num     = (int)(1f + Items.GetValue(handItem.m_type, 100) * 0.01f * (float)(100 - handItem.m_amountOrCond));
                        num = (int)((float)num * m_repairNpcs[i].m_priceMultip + 0.5f);
                        if (m_client.GetGoldCount() >= num)
                        {
                            string a_caption = LNG.Get("REPAIR") + "\n" + LNG.Get(itemDef.ident) + "\n" + handItem.m_amountOrCond + "%\nfor " + num + " " + LNG.Get("CURRENCY") + "?";
                            m_repairPopupSessionId = m_popupGui.ShowGui(true, a_caption);
                        }
                        else
                        {
                            string a_caption2 = LNG.Get("ITEMSHOP_TOO_LESS_GOLD") + "\n" + num + " " + LNG.Get("CURRENCY");
                            m_popupGui.ShowGui(true, a_caption2);
                        }
                    }
                    else
                    {
                        m_popupGui.ShowGui(true, LNG.Get("REPAIR_NPC_NO_NEED"));
                    }
                }
                else
                {
                    m_popupGui.ShowGui(true, LNG.Get("REPAIR_NPC_HOWTO"));
                }
                flag = true;
                break;
            }
            if (flag)
            {
            }
        }
        return((Input.GetButton("Interact") && !flag) || m_forceInteractionTime > Time.time);
    }
 public void ConsumeItem(RemoteItem a_item)
 {
     if (null != a_item && (Items.IsEatable(a_item.m_type) || Items.IsMedicine(a_item.m_type)))
     {
         this.m_sendDragPos = this.m_inventory.ToWorldPos(a_item.transform.localPosition);
         this.m_sendDropPos = Vector3.one * 253f;
         if (!Items.IsMedicine(a_item.m_type))
         {
             base.audio.clip = ((!Items.IsBeverage(a_item.m_type)) ? this.m_soundFood : this.m_soundBeverage);
             base.audio.Play();
             if (UnityEngine.Random.Range(0, 20) == 0)
             {
                 this.m_burpFlag = true;
             }
         }
     }
 }
Exemple #7
0
    public RemoteItem GetNearestItem(Vector3 a_pos)
    {
        float      num    = 9999999f;
        RemoteItem result = null;

        foreach (DictionaryEntry worldItem in m_worldItems)
        {
            RemoteItem remoteItem = (RemoteItem)worldItem.Value;
            if (null != remoteItem)
            {
                float sqrMagnitude = (a_pos - remoteItem.transform.position).sqrMagnitude;
                if (sqrMagnitude < num)
                {
                    result = remoteItem;
                    num    = sqrMagnitude;
                }
            }
        }
        return(result);
    }
    private void HandleHotKeys()
    {
        int num = -1;

        if (Input.GetKeyDown(KeyCode.Alpha1) || Input.GetKeyDown(KeyCode.Keypad1))
        {
            num = 1;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2) || Input.GetKeyDown(KeyCode.Keypad2))
        {
            num = 2;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3) || Input.GetKeyDown(KeyCode.Keypad3))
        {
            num = 3;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha4) || Input.GetKeyDown(KeyCode.Keypad4))
        {
            num = 4;
        }
        if (0 < num)
        {
            RemoteItem itemFromPos = this.m_inventory.GetItemFromPos((float)num, 0f);
            if (null != itemFromPos)
            {
                if (Items.IsEatable(itemFromPos.m_type) || Items.IsMedicine(itemFromPos.m_type))
                {
                    this.ConsumeItem(itemFromPos);
                }
                else
                {
                    this.m_sendDragPos = new Vector3((float)num, 0f);
                    this.m_sendDropPos = Vector3.zero;
                }
            }
        }
    }
Exemple #9
0
    private void UpdateOrSpawnItem(int a_type, Vector3 a_pos, int a_amount, bool a_isInventory)
    {
        string     text       = a_type + a_pos.ToString();
        RemoteItem remoteItem = (!m_worldItems.Contains(text)) ? null : ((RemoteItem)m_worldItems[text]);

        if (a_isInventory || null == remoteItem)
        {
            GameObject gameObject = (GameObject)Object.Instantiate(m_itemPrefab);
            gameObject.name = "item_" + text;
            remoteItem      = gameObject.GetComponent <RemoteItem>();
            remoteItem.Init(a_pos, a_type, a_amount, a_isInventory);
            if (a_isInventory)
            {
                a_pos.x = Mathf.Round(a_pos.x);
                a_pos.z = Mathf.Round(a_pos.z);
                m_inventoryItems.Add(remoteItem);
            }
            else
            {
                m_worldItems[text] = remoteItem;
            }
        }
        remoteItem.Refresh();
    }
	private bool DisplayMessage(eMsg a_msg)
	{
		bool flag = false;
		int a_prio = 100;
		Vector3 pos = m_client.GetPos();
		switch (a_msg)
		{
		case eMsg.eEatFood:
			flag = (m_inventoryGui.IsVisible() && m_inventoryGui.HasFood());
			break;
		case eMsg.eBuildBuilding:
			flag = (m_inventoryGui.IsVisible() && m_inventoryGui.HasBuilding());
			break;
		case eMsg.eBuildBuilding2:
		{
			int num;
			if (!m_inventoryGui.IsVisible())
			{
				ItemDef itemDef = Items.GetItemDef(m_client.GetHandItem());
				num = ((itemDef.buildingIndex > 0) ? 1 : 0);
			}
			else
			{
				num = 0;
			}
			flag = ((byte)num != 0);
			break;
		}
		case eMsg.eShovel:
			flag = (m_inventoryGui.IsVisible() && m_inventoryGui.HasItemType(109));
			break;
		case eMsg.eStarving:
			flag = (0f == m_client.GetEnergy());
			a_prio = 110;
			break;
		case eMsg.ePickupItem:
		{
			RemoteItem nearestItem = m_client.GetNearestItem(pos);
			flag = (null != nearestItem && 25f > (nearestItem.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eGatherResource:
		{
			RemoteBuilding nearestResource = m_client.GetNearestResource(pos);
			flag = (null != nearestResource && 25f > (nearestResource.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eAttackEnemy:
		{
			RemoteCharacter nearestNpc = m_client.GetNearestNpc(pos);
			flag = (null != nearestNpc && 36f > (nearestNpc.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eDriveCar:
		{
			RemoteCharacter nearestCharacter2 = m_client.GetNearestCharacter(pos, true);
			flag = (null != nearestCharacter2 && 36f > (nearestCharacter2.transform.position - pos).sqrMagnitude);
			break;
		}
		case eMsg.eChat:
		case eMsg.ePlayerProfile:
		{
			RemoteCharacter nearestCharacter = m_client.GetNearestCharacter(pos);
			flag = (null != nearestCharacter && 49f > (nearestCharacter.transform.position - pos).sqrMagnitude);
			break;
		}
		}
		if (flag)
		{
			m_msgBar.DisplayMessage(LNG.Get("TUTORIAL_MESSAGE_" + (int)a_msg), a_prio);
		}
		return flag;
	}
    private bool DisplayMessage(TutorialMessages.eMsg a_msg)
    {
        bool    flag   = false;
        int     a_prio = 100;
        Vector3 pos    = this.m_client.GetPos();

        switch (a_msg)
        {
        case TutorialMessages.eMsg.ePickupItem:
        {
            RemoteItem nearestItem = this.m_client.GetNearestItem(pos);
            flag = (null != nearestItem && 25f > (nearestItem.transform.position - pos).sqrMagnitude);
            break;
        }

        case TutorialMessages.eMsg.eEatFood:
            flag = (this.m_inventoryGui.IsVisible() && this.m_inventoryGui.HasFood());
            break;

        case TutorialMessages.eMsg.eDriveCar:
        {
            RemoteCharacter nearestCharacter = this.m_client.GetNearestCharacter(pos, true);
            flag = (null != nearestCharacter && 36f > (nearestCharacter.transform.position - pos).sqrMagnitude);
            break;
        }

        case TutorialMessages.eMsg.eGatherResource:
        {
            RemoteBuilding nearestResource = this.m_client.GetNearestResource(pos);
            flag = (null != nearestResource && 25f > (nearestResource.transform.position - pos).sqrMagnitude);
            break;
        }

        case TutorialMessages.eMsg.eAttackEnemy:
        {
            RemoteCharacter nearestNpc = this.m_client.GetNearestNpc(pos);
            flag = (null != nearestNpc && 36f > (nearestNpc.transform.position - pos).sqrMagnitude);
            break;
        }

        case TutorialMessages.eMsg.eStarving:
            flag   = (0f == this.m_client.GetEnergy());
            a_prio = 110;
            break;

        case TutorialMessages.eMsg.eChat:
        case TutorialMessages.eMsg.ePlayerProfile:
        {
            RemoteCharacter nearestCharacter2 = this.m_client.GetNearestCharacter(pos, false);
            flag = (null != nearestCharacter2 && 49f > (nearestCharacter2.transform.position - pos).sqrMagnitude);
            break;
        }

        case TutorialMessages.eMsg.eBuildBuilding:
            flag = (this.m_inventoryGui.IsVisible() && this.m_inventoryGui.HasBuilding());
            break;

        case TutorialMessages.eMsg.eShovel:
            flag = (this.m_inventoryGui.IsVisible() && this.m_inventoryGui.HasItemType(109));
            break;

        case TutorialMessages.eMsg.eBuildBuilding2:
            flag = (!this.m_inventoryGui.IsVisible() && Items.GetItemDef(this.m_client.GetHandItem()).buildingIndex > 0);
            break;
        }
        if (flag)
        {
            this.m_msgBar.DisplayMessage(LNG.Get("TUTORIAL_MESSAGE_" + (int)a_msg), a_prio);
        }
        return(flag);
    }
    private void GetMouseInput(float a_deltaTime)
    {
        if (Time.timeSinceLevelLoad < 0.5f)
        {
            return;
        }
        bool    flag          = !this.m_inventory.IsVisible() && !this.m_communicator.IsActive(true) && false == this.m_popupGui.IsActive();
        Vector3 mousePosition = Input.mousePosition;
        bool    flag2         = (this.m_lastMousePos - mousePosition).sqrMagnitude > 4f;

        this.m_lastMousePos = mousePosition;
        Ray ray = Camera.main.ScreenPointToRay(mousePosition);

        if (flag2)
        {
            this.m_hideCursorTime = Time.time + 1f;
        }
        bool flag3 = Time.time < this.m_hideCursorTime;

        if (flag3 != Screen.showCursor)
        {
            Screen.showCursor = flag3;
        }
        if (Input.GetMouseButton(1) && flag)
        {
            this.m_buildRot += a_deltaTime * 90f;
            while (this.m_buildRot > 360f)
            {
                this.m_buildRot -= 360f;
            }
        }
        if (Input.GetMouseButtonDown(1))
        {
            RaycastHit raycastHit;
            if (Physics.Raycast(ray, out raycastHit, 100f, 665600))
            {
                int layer = raycastHit.transform.gameObject.layer;
                if (layer != 13)
                {
                    if (layer == 17)
                    {
                        if (!this.m_inventory.IsShopActive())
                        {
                            RemoteItem component = raycastHit.transform.GetComponent <RemoteItem>();
                            if (null != component && this.m_inventory.IsVisible())
                            {
                                this.m_itemGui.Show(component, ray.GetPoint(4.5f));
                            }
                        }
                    }
                }
                else if (flag)
                {
                    RemoteCharacter component2 = raycastHit.transform.GetComponent <RemoteCharacter>();
                    if (null != component2 && null != this.m_client)
                    {
                        ulong steamId = this.m_client.GetSteamId(component2.m_id);
                        if (Global.isSteamActive && 0UL < steamId)
                        {
                            SteamFriends.ActivateGameOverlayToUser("steamid", new CSteamID(steamId));
                        }
                    }
                }
            }
        }
        else if (Input.GetMouseButtonDown(0))
        {
            if (flag)
            {
                this.ResetTarget();
            }
            bool       flag4 = false;
            RaycastHit raycastHit2;
            if (Physics.Raycast(ray, out raycastHit2, 100f, 6995488))
            {
                switch (raycastHit2.transform.gameObject.layer)
                {
                case 9:
                case 13:
                    if (flag)
                    {
                        RemoteCharacter component3 = raycastHit2.transform.GetComponent <RemoteCharacter>();
                        if (null != component3)
                        {
                            if (!component3.m_isOwnPlayer)
                            {
                                this.m_currentTarget = component3;
                                flag4 = true;
                            }
                        }
                        else if (flag && Input.GetAxis("Vertical") == 0f && Input.GetAxis("Horizontal") == 0f)
                        {
                            this.CalculatePath(raycastHit2.point, 12 != raycastHit2.transform.gameObject.layer);
                        }
                    }
                    break;

                case 10:
                case 12:
                case 21:
                    if (flag && Input.GetAxis("Vertical") == 0f && Input.GetAxis("Horizontal") == 0f && null != this.m_client && !this.m_client.IsInVehicle())
                    {
                        Vector3 point = raycastHit2.point;
                        this.m_walkIndicator.position = new Vector3(raycastHit2.point.x, 0.1f, raycastHit2.point.z);
                        this.CalculatePath(point, 12 != raycastHit2.transform.gameObject.layer);
                    }
                    break;

                case 11:
                case 15:
                case 19:
                case 22:
                    flag4 = flag;
                    break;

                case 17:
                    if (this.m_inventory.IsShopActive())
                    {
                        RemoteItem component4 = raycastHit2.transform.GetComponent <RemoteItem>();
                        if (null != component4 && component4.m_type != 254 && this.m_inventory.IsVisible())
                        {
                            this.m_buySellPos = this.m_inventory.ToWorldPos(component4.transform.localPosition);
                            bool    flag5   = this.m_buySellPos.x < 6f;
                            float   num     = (!flag5) ? this.m_inventory.GetShopBuyMultiplier() : this.m_inventory.GetShopSellMultiplier();
                            string  text    = (!flag5) ? LNG.Get("BUY") : LNG.Get("SELL");
                            int     num2    = (int)(Items.GetValue(component4.m_type, component4.m_amountOrCond) * num + 0.5f);
                            string  text2   = (!Items.HasCondition(component4.m_type)) ? ("x " + component4.m_amountOrCond) : (component4.m_amountOrCond.ToString() + "%");
                            ItemDef itemDef = Items.GetItemDef(component4.m_type);
                            if (flag5 || this.m_client.GetGoldCount() >= num2)
                            {
                                string a_caption = string.Concat(new object[]
                                {
                                    text,
                                    "\n",
                                    LNG.Get(itemDef.ident),
                                    "\n",
                                    text2,
                                    "\nfor ",
                                    num2,
                                    " ",
                                    LNG.Get("CURRENCY"),
                                    "?"
                                });
                                this.m_buySellPopupSessionId = this.m_popupGui.ShowGui(true, a_caption);
                            }
                            else
                            {
                                string a_caption2 = string.Concat(new object[]
                                {
                                    LNG.Get("ITEMSHOP_TOO_LESS_GOLD"),
                                    "\n",
                                    num2,
                                    " ",
                                    LNG.Get("CURRENCY")
                                });
                                this.m_popupGui.ShowGui(true, a_caption2);
                            }
                        }
                    }
                    else if (Time.time < this.m_doubleClickTime)
                    {
                        this.m_doubleClickTime = 0f;
                        if (null != raycastHit2.transform)
                        {
                            Vector3 localPosition = raycastHit2.transform.localPosition;
                            Vector3 zero          = Vector3.zero;
                            if (this.m_inventory.DragDrop(ref localPosition, ref zero))
                            {
                                this.m_sendDragPos = localPosition;
                                this.m_sendDropPos = Vector3.zero;
                            }
                        }
                    }
                    else
                    {
                        this.m_dragItem     = raycastHit2.transform;
                        this.m_startDragPos = this.m_dragItem.localPosition;
                    }
                    break;
                }
            }
            if (flag4)
            {
                this.CalculateRotTowardsMouse(mousePosition);
                this.m_stopAttackingTime = Time.time + 0.3f;
            }
        }
        else if (Input.GetMouseButtonUp(0) && null != this.m_dragItem)
        {
            Vector3 startDragPos   = this.m_startDragPos;
            Vector3 localPosition2 = this.m_dragItem.localPosition;
            if (this.m_inventory.DragDrop(ref startDragPos, ref localPosition2))
            {
                if (startDragPos != localPosition2)
                {
                    this.m_sendDragPos = startDragPos;
                    this.m_sendDropPos = localPosition2;
                }
                else
                {
                    this.m_dragItem.localPosition = this.m_startDragPos;
                    this.m_doubleClickTime        = Time.time + 0.5f;
                }
            }
            this.m_dragItem = null;
        }
        if (null != this.m_dragItem)
        {
            this.m_dragItem.position = ray.GetPoint(5f);
            Vector3 localPosition3 = this.m_dragItem.localPosition;
            localPosition3.z = 0f;
            this.m_dragItem.localPosition = localPosition3;
        }
        else if (!flag2)
        {
            if (this.m_mouseOverDur != -1f)
            {
                this.m_mouseOverDur += a_deltaTime;
                if (this.m_mouseOverDur > 0.1f)
                {
                    this.m_buildingHealthIndicator.position = Vector3.up * 1000f;
                    this.m_tooltip.position     = Vector3.up * 1000f;
                    this.m_tooltipHudR.position = Vector3.up * 1000f;
                    this.m_tooltipHudR.parent   = null;
                    this.m_tooltipHudL.position = Vector3.up * 1000f;
                    this.m_tooltipHudL.parent   = null;
                    if (this.m_mouseOverRenderers != null && this.m_mouseOverRenderers.Length != 0)
                    {
                        foreach (Renderer renderer in this.m_mouseOverRenderers)
                        {
                            if (null != renderer)
                            {
                                renderer.gameObject.layer = this.m_mouseOverLayer;
                            }
                        }
                        this.m_mouseOverRenderers = null;
                    }
                    if (null != this.m_mouseOverTransform)
                    {
                        this.m_mouseOverTransform.localScale = this.m_initialMouseOverScale;
                        this.m_mouseOverTransform            = null;
                    }
                    RaycastHit raycastHit3;
                    if (Physics.Raycast(ray, out raycastHit3, 100f, 7007776))
                    {
                        if (raycastHit3.transform.gameObject.layer == 5)
                        {
                            string[] array = raycastHit3.transform.gameObject.name.Split(new char[]
                            {
                                '-'
                            });
                            if (array != null && 1 < array.Length)
                            {
                                if ("tooltip" == array[0])
                                {
                                    this.m_tooltipHudRText.text = LNG.Get(array[1]);
                                    this.m_tooltipHudR.position = raycastHit3.transform.position - raycastHit3.transform.right * 0.3f;
                                    this.m_tooltipHudR.rotation = raycastHit3.transform.rotation;
                                    this.m_tooltipHudR.parent   = raycastHit3.transform;
                                }
                                else if ("mission" == array[0])
                                {
                                    int a_index = 0;
                                    try
                                    {
                                        a_index = int.Parse(array[1]);
                                    }
                                    catch (Exception ex)
                                    {
                                        Debug.LogWarning("ClientInput.cs: " + ex.ToString());
                                    }
                                    Mission mission = this.m_client.GetMission(a_index);
                                    if (mission != null)
                                    {
                                        this.m_tooltipHudLText.text = string.Concat(new object[]
                                        {
                                            this.GetMissionText(mission),
                                            LNG.Get("TIME_LEFT"),
                                            ": ",
                                            (int)(mission.m_dieTime / 60f),
                                            " min"
                                        });
                                        this.m_tooltipHudL.position = raycastHit3.transform.position + raycastHit3.transform.right * 0.3f;
                                        this.m_tooltipHudL.rotation = raycastHit3.transform.rotation;
                                        this.m_tooltipHudL.parent   = raycastHit3.transform;
                                    }
                                }
                            }
                        }
                        else
                        {
                            this.m_mouseOverTransform    = raycastHit3.transform;
                            this.m_initialMouseOverScale = this.m_mouseOverTransform.localScale;
                            if (raycastHit3.transform.gameObject.layer == 17)
                            {
                                if (this.m_inventory.IsVisible())
                                {
                                    this.m_inventory.ShowInfo(raycastHit3.transform.position);
                                }
                            }
                            else if (raycastHit3.transform.gameObject.layer == 10)
                            {
                                this.m_mouseOverTransform.localScale *= 1.33f;
                            }
                            else if (raycastHit3.transform.gameObject.layer == 19)
                            {
                                RemoteBuilding component5 = raycastHit3.transform.parent.GetComponent <RemoteBuilding>();
                                if (null != this.m_buildingHealthIndicator && null != component5)
                                {
                                    Vector3 b = Vector3.up * 4f;
                                    float   x = 0.25f * (float)(3 - (int)(component5.m_health * 0.033f));
                                    this.m_buildingHealthIndicator.renderer.material.mainTextureOffset = new Vector2(x, 0f);
                                    this.m_buildingHealthIndicator.position = raycastHit3.transform.position + b;
                                }
                            }
                            else if (raycastHit3.transform.gameObject.layer == 15)
                            {
                                bool    flag6 = "building_10" == raycastHit3.transform.gameObject.name || "building_11" == raycastHit3.transform.gameObject.name;
                                Vector3 b2    = Vector3.up * ((!flag6) ? 3f : 6.5f);
                                this.m_tooltipText.text = LNG.Get("TOOLTIP_RESOURCE");
                                this.m_tooltip.position = raycastHit3.transform.position + b2;
                            }
                            else if (raycastHit3.transform.gameObject.layer == 21)
                            {
                                Vector3 b3 = Vector3.up * 2f;
                                this.m_tooltipText.text = LNG.Get("TOOLTIP_ITEMSTORAGE");
                                this.m_tooltip.position = raycastHit3.transform.position + b3;
                            }
                            else if (raycastHit3.transform.gameObject.layer == 9)
                            {
                                RemoteCharacter component6 = raycastHit3.transform.GetComponent <RemoteCharacter>();
                                if (null == component6)
                                {
                                    Vector3 b4 = Vector3.up * 3f;
                                    this.m_tooltipText.text = LNG.Get("TOOLTIP_INTERACT");
                                    this.m_tooltip.position = raycastHit3.transform.position + b4;
                                }
                            }
                            else if (raycastHit3.transform.gameObject.layer == 22)
                            {
                                MissionObjective component7 = raycastHit3.transform.GetComponent <MissionObjective>();
                                if (null != component7)
                                {
                                    Vector3 b5 = Vector3.up * 3f;
                                    this.m_tooltipText.text = LNG.Get("MISSION_TYPE_" + component7.m_type.ToString("d"));
                                    this.m_tooltip.position = raycastHit3.transform.position + b5;
                                }
                            }
                            this.m_mouseOverRenderers = raycastHit3.transform.GetComponentsInChildren <Renderer>();
                            if (this.m_mouseOverRenderers.Length == 0 && null != raycastHit3.transform.parent)
                            {
                                this.m_mouseOverRenderers = raycastHit3.transform.parent.GetComponentsInChildren <Renderer>();
                            }
                            if (this.m_mouseOverRenderers.Length != 0)
                            {
                                this.m_mouseOverLayer = this.m_mouseOverRenderers[0].gameObject.layer;
                                foreach (Renderer renderer2 in this.m_mouseOverRenderers)
                                {
                                    renderer2.gameObject.layer = 20;
                                }
                            }
                        }
                    }
                    this.m_mouseOverDur = -1f;
                }
            }
        }
        else
        {
            this.m_mouseOverDur = 0f;
        }
    }
    private bool IsInteracting()
    {
        bool flag = false;

        if (Input.GetButtonDown("Interact") && !this.m_isMoving)
        {
            for (int i = 0; i < this.m_repairNpcs.Length; i++)
            {
                Vector3 position = this.m_repairNpcs[i].transform.position;
                Vector3 pos      = this.m_client.GetPos();
                if (Mathf.Abs(position.x - pos.x) < 1.4f && Mathf.Abs(position.z - pos.z) < 1.4f)
                {
                    RemoteItem handItem = this.m_inventory.GetHandItem();
                    if (null != handItem)
                    {
                        if (Items.HasCondition(handItem.m_type) && handItem.m_amountOrCond < 100)
                        {
                            ItemDef itemDef = Items.GetItemDef(handItem.m_type);
                            int     num     = (int)(1f + Items.GetValue(handItem.m_type, 100) * 0.01f * (float)(100 - handItem.m_amountOrCond));
                            num = (int)((float)num * this.m_repairNpcs[i].m_priceMultip + 0.5f);
                            if (this.m_client.GetGoldCount() >= num)
                            {
                                string a_caption = string.Concat(new object[]
                                {
                                    LNG.Get("REPAIR"),
                                    "\n",
                                    LNG.Get(itemDef.ident),
                                    "\n",
                                    handItem.m_amountOrCond,
                                    "%\nfor ",
                                    num,
                                    " ",
                                    LNG.Get("CURRENCY"),
                                    "?"
                                });
                                this.m_repairPopupSessionId = this.m_popupGui.ShowGui(true, a_caption);
                            }
                            else
                            {
                                string a_caption2 = string.Concat(new object[]
                                {
                                    LNG.Get("ITEMSHOP_TOO_LESS_GOLD"),
                                    "\n",
                                    num,
                                    " ",
                                    LNG.Get("CURRENCY")
                                });
                                this.m_popupGui.ShowGui(true, a_caption2);
                            }
                        }
                        else
                        {
                            this.m_popupGui.ShowGui(true, LNG.Get("REPAIR_NPC_NO_NEED"));
                        }
                    }
                    else
                    {
                        this.m_popupGui.ShowGui(true, LNG.Get("REPAIR_NPC_HOWTO"));
                    }
                    flag = true;
                    break;
                }
            }
            if (!flag)
            {
            }
        }
        return((Input.GetButton("Interact") && !flag) || this.m_forceInteractionTime > Time.time);
    }
 public void UpdateInventory(RemoteItem[] a_items)
 {
     if (a_items == null)
     {
         return;
     }
     ClearInventory();
     if (a_items.Length != 1 || !(null == a_items[0]) || a_items[0].m_type != 0 || !m_items[0].m_isInventoryItem)
     {
         m_items = a_items;
         bool flag = false;
         for (int i = 0; i < m_items.Length; i++)
         {
             if (!(null != m_items[i]))
             {
                 continue;
             }
             if (m_items[i].m_isInventoryOrContainerItem)
             {
                 flag |= !m_items[i].m_isInventoryItem;
                 if (m_items[i].m_type == 0)
                 {
                     Object.Destroy(m_items[i].gameObject);
                     m_items[i] = null;
                 }
                 else if (!m_items[i].IsVisible())
                 {
                     if (IsShopActive() && m_items[i].m_type != 254)
                     {
                         Vector3 localPosition = m_items[i].transform.localPosition;
                         float   num           = (!(localPosition.x < 6f)) ? GetShopBuyMultiplier() : GetShopSellMultiplier();
                         int     num2          = (int)(Items.GetValue(m_items[i].m_type, m_items[i].m_amountOrCond) * num + 0.5f);
                         m_items[i].CreateLabel(m_items[i].m_labelPricePrefab, m_items[i].m_priceLabelOffset, num2 + "G");
                     }
                     if (m_items[i].transform.position.sqrMagnitude < 0.1f)
                     {
                         m_handItem = m_items[i];
                     }
                     m_items[i].transform.localPosition = ToInventoryPos(m_items[i].transform, m_items[i].transform.position);
                     m_items[i].transform.localRotation = Quaternion.identity;
                     m_items[i].SwitchVisibility();
                 }
             }
             else
             {
                 Object.Destroy(m_items[i].gameObject);
                 m_items[i] = null;
             }
         }
         if (flag != m_guiContainer.activeSelf)
         {
             if (!m_guiContainer.activeSelf && flag)
             {
                 m_guiBig.SetActive(true);
             }
             m_guiContainer.SetActive(flag);
         }
     }
     else
     {
         Object.Destroy(a_items[0].gameObject);
     }
     DisableShadows();
     UpdateResourceCounts();
 }