void showIconItemBuff(string id, EItemState state, int numberWave) { GameObject itemBuff = MonoBehaviour.Instantiate(Resources.Load <GameObject> ("Prefab/Effect/Item Buff")) as GameObject; itemBuff.transform.parent = PlayManager.Instance.itemBuffTemp.transform; itemBuff.transform.localScale = Vector3.one; //set dimension UISprite sprite = itemBuff.GetComponent <UISprite> (); sprite.keepAspectRatio = UIWidget.AspectRatioSource.Free; sprite.SetDimensions(sprite.mainTexture.width, sprite.mainTexture.height); sprite.keepAspectRatio = UIWidget.AspectRatioSource.BasedOnHeight; itemBuff.GetComponent <UIStretch> ().container = waveTemp; //set anchor sprite UIAnchor anchor = itemBuff.GetComponent <UIAnchor> (); anchor.container = waveTemp; anchor.relativeOffset = new Vector2(PlayConfig.AnchorItemBuffStart.x, PlayConfig.AnchorItemBuffStart.y - listItemBuff.Count * PlayConfig.AnchorItemBuffDistanceY); //set anchor label itemBuff.transform.GetChild(0).GetComponent <UIAnchor> ().enabled = true; //set icon and wave ItemBuffController itemBuffController = itemBuff.GetComponent <ItemBuffController> (); itemBuffController.ID = id; itemBuffController.State = state; itemBuffController.Waves = numberWave; listItemBuff.Add(id, itemBuff); }
//init state to pickable--item show on the map and can be picked up by player public void InitPickable( ) { gameObject.SetActive(true); col.enabled = true; rend.enabled = true; state = EItemState.PICKABLE; }
public void enableItem(string id, EItemState state, int numberWave) { if (state != EItemState.TOWER) { if (!listItemState.Contains(state)) // neu chua co { listItemState.Add(state); showIconItemBuff(id, state, numberWave); } else // neu da~ co' thi cong^. don^` { listItemBuff[id].GetComponent <ItemBuffController>().Waves += numberWave; } } else { for (int i = 1; i <= 3; i++) { object[] values = getIdStateByIndex(i); EItemState stateTemp = (EItemState)values[1]; if (!listItemState.Contains(stateTemp)) // neu chua co { listItemState.Add(stateTemp); showIconItemBuff(values[0].ToString(), stateTemp, numberWave); } else // neu da~ co' thi cong^. don^` { listItemBuff[values[0].ToString()].GetComponent <ItemBuffController>().Waves += numberWave; } } } }
//init state to pick_up--disable collider and sprite and set owner protected void InitPickUp(IPlayer owner) { this.owner = owner; owner.Item = this; col.enabled = false; rend.enabled = false; state = EItemState.PICK_UP; }
//Get componenet and set state to UNUSE protected virtual void Awake( ) { col = GetComponent <Collider2D> ( ); rend = GetComponent <SpriteRenderer> ( ); col.enabled = false; rend.enabled = false; state = EItemState.UNUSE; }
public void SetState(EItemState itemState) { if (state == itemState) { return; } state = itemState; SetObjectProperties(); }
/// <summary> /// Cheks if any of the 'checkflags' values are in the 'value' /// </summary> /// <param name="value"></param> /// <param name="checkflags"></param> /// <returns></returns> public static bool WorkshopItemStateHasAllFlags(EItemState value, params EItemState[] checkflags) { foreach (var checkflag in checkflags) { if ((value & checkflag) != checkflag) { return(false); } } return(true); }
//init state to unuse--item doesn't show on the map just keep ref in the ItemManager public virtual void InitUnuse( ) { if (owner != null) { owner.Item = null; } owner = null; col.enabled = false; rend.enabled = false; gameObject.SetActive(false); state = EItemState.UNUSE; manager.ItemAlreadyUse( ); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); ItemComponent targ = target as ItemComponent; EItemState newValue = (EItemState)EditorGUILayout.EnumPopup(targ.state); if (newValue != targ.state) { targ.state = newValue; targ.SetObjectProperties(); // do stuff, call functions, etc. } }
object[] getIdStateByIndex(int index) { string s = ""; EItemState state = EItemState.HAND_OF_MIDAS; switch (index) { case 0: s = "HandOfMidas"; state = EItemState.HAND_OF_MIDAS; break; case 1: s = "ATK+"; state = EItemState.ATK; break; case 2: s = "SpawnShoot+"; state = EItemState.SPAWN_SHOOT; break; case 3: s = "Range+"; state = EItemState.RANGE; break; } return(new object[] { s, state }); }
private void SetLeftItemState(GameObject node, TabElement data, EItemState state) { if (data != null) { Text component = node.transform.Find("titleText").GetComponent <Text>(); GameObject gameObject = node.transform.Find("BtnGroup").gameObject; if (state == EItemState.Normal) { component.gameObject.CustomSetActive(true); component.text = data.configContent; gameObject.CustomSetActive(false); } else if (state == EItemState.Delete) { gameObject.CustomSetActive(true); component.gameObject.CustomSetActive(true); component.text = data.configContent; GameObject obj3 = gameObject.transform.Find("WriteBtn").gameObject; if (obj3 != null) { obj3.CustomSetActive(false); } GameObject obj4 = gameObject.transform.Find("RemoveBtn").gameObject; if (obj4 != null) { obj4.CustomSetActive(true); } } else if (state == EItemState.Record) { gameObject.CustomSetActive(true); component.gameObject.CustomSetActive(false); GameObject obj5 = gameObject.transform.Find("WriteBtn").gameObject; if (obj5 != null) { obj5.CustomSetActive(true); } GameObject obj6 = gameObject.transform.Find("RemoveBtn").gameObject; if (obj6 != null) { obj6.CustomSetActive(false); } } } }
public static EItemState getItemState(string ID) { EItemState state = EItemState.HAND_OF_MIDAS; switch (ID) { case "HandOfMidas": state = EItemState.HAND_OF_MIDAS; break; case "ATK+": state = EItemState.ATK; break; case "SpawnShoot+": state = EItemState.SPAWN_SHOOT; break; case "Range+": state = EItemState.RANGE; break; case "Tower+": state = EItemState.TOWER; break; } return(state); }
public HeathenWorkshopReadCommunityItem(SteamUGCDetails_t itemDetails) { SourceItemDetails = itemDetails; if (itemDetails.m_eFileType != EWorkshopFileType.k_EWorkshopFileTypeCommunity) { Debug.LogWarning("HeathenWorkshopReadItem is designed to display File Type = Community Item, this item is not a community item and may not load correctly."); } m_RemoteStorageDownloadUGCResult = CallResult <RemoteStorageDownloadUGCResult_t> .Create(HandleUGCDownload); TargetApp = itemDetails.m_nConsumerAppID; FileId = itemDetails.m_nPublishedFileId; Title = itemDetails.m_rgchTitle; Description = itemDetails.m_rgchDescription; Visibility = itemDetails.m_eVisibility; Author = new CSteamID(itemDetails.m_ulSteamIDOwner); CreatedOn = SteamUtilities.ConvertUnixDate(itemDetails.m_rtimeCreated); LastUpdated = SteamUtilities.ConvertUnixDate(itemDetails.m_rtimeUpdated); UpVotes = itemDetails.m_unVotesUp; DownVotes = itemDetails.m_unVotesDown; VoteScore = itemDetails.m_flScore; IsBanned = itemDetails.m_bBanned; IsTagsTruncated = itemDetails.m_bTagsTruncated; FileSize = itemDetails.m_nFileSize; Visibility = itemDetails.m_eVisibility; Tags.AddRange(itemDetails.m_rgchTags.Split(',')); uint state = SteamUGC.GetItemState(FileId); StateFlags = (EItemState)state; IsSubscribed = SteamUtilities.WorkshopItemStateHasFlag(StateFlags, EItemState.k_EItemStateSubscribed); if (itemDetails.m_nPreviewFileSize > 0) { var previewCall = SteamRemoteStorage.UGCDownload(itemDetails.m_hPreviewFile, 1); m_RemoteStorageDownloadUGCResult.Set(previewCall, HandleUGCDownloadPreviewFile); } else { Debug.LogWarning("Item [" + Title + "] has no preview file!"); } }
public static Dictionary <PublishedFileId_t, string> GetSubscribedItems() { if (!SteamManager.Initialised) { return(null); } uint numSubbed = SteamUGC.GetNumSubscribedItems(); PublishedFileId_t[] fileIds = new PublishedFileId_t[numSubbed]; SteamUGC.GetSubscribedItems(fileIds, numSubbed); ulong itemSize = 0; uint updatedTimestamp = 0; string folderPath = null; Dictionary <PublishedFileId_t, string> paths = new Dictionary <PublishedFileId_t, string>(); if (fileIds != null) { foreach (PublishedFileId_t fileId in fileIds) { EItemState state = (EItemState)SteamUGC.GetItemState(fileId); if ((state & EItemState.k_EItemStateInstalled) != 0) { if (SteamUGC.GetItemInstallInfo(fileId, out itemSize, out folderPath, 1024, out updatedTimestamp)) { paths.Add(fileId, folderPath); } } else { Logger.Debug("[WORKSHOP] State for Workshop Item " + fileId.m_PublishedFileId.ToString() + ": " + state.ToString()); } } } return(paths); }
private void LoadModIntoGame(PublishedFileId_t publishedFileId, bool owner) { ulong sizeOnDisk = 0; uint folderSize = 512; char[] temp = new char[folderSize]; string folder = new string(temp); uint timeStamp = 0; uint retval = SteamUGC.GetItemState(publishedFileId); EItemState state = (EItemState)retval; Debug.Log("Item state: " + state.ToString()); if (SteamUGC.GetItemInstallInfo(publishedFileId, out sizeOnDisk, out folder, folderSize, out timeStamp)) { try { foreach (Mod m in ModManager.importedMods) { if (m.path.Contains(folder)) { // Don't load twice return; } } // Register new mod in the ModManager ModImporter.ImportMod(folder, false, owner); } catch (System.Exception e) { Debug.LogWarning($"Failed to import {folder}: {e.Message}"); } } else { Debug.LogWarning("Attempted to load non-installed Steam Workshop item ID " + publishedFileId); } }
//init state to using--when player use item protected virtual void InitUse( ) { timer = 0.0f; state = EItemState.USING; }
=> src.Merge(errorSource.CreateErrorSource <T>().TakeUntil(src)); // TODO: Consider switch? public static bool RequiresDownloading(this EItemState state) => !state.IsInstalled() || state.NeedsUpdate();
public static bool IsSubscribed(this EItemState state) => state.HasFlag(EItemState.k_EItemStateSubscribed);
public static bool IsSubscribed(ulong id) { EItemState state = (EItemState)SteamUGC.GetItemState(new PublishedFileId_t(id)); return((state & EItemState.k_EItemStateSubscribed) == EItemState.k_EItemStateSubscribed); }
public static bool IsInstalled(this EItemState state) => state.HasFlag(EItemState.k_EItemStateInstalled);
/// <summary> /// Checks if the 'checkFlag' value is in the 'value' /// </summary> /// <param name="value"></param> /// <param name="checkflag"></param> /// <returns></returns> public static bool WorkshopItemStateHasFlag(EItemState value, EItemState checkflag) { return((value & checkflag) == checkflag); }
public static bool NeedsUpdate(this EItemState state) => state.HasFlag(EItemState.k_EItemStateNeedsUpdate);
public static bool IsLegacy(this EItemState state) => state.HasFlag(EItemState.k_EItemStateLegacyItem);