protected void RemoveLockedItem(string filePath) { try { LockedItemMutex.Wait(); try { for (int i = 0; i < LockedItems.Count; i++) { Item lockedItem = LockedItems[i]; if (String.Equals(lockedItem.FilePath, filePath, StringComparison.CurrentCultureIgnoreCase)) { LockedItems.RemoveAt(i); break; } } } finally { LockedItemMutex.Release(); } } catch (Exception exception) { Log.Error(exception, false); } }
private Character GetCharacter(int x, int y, RoomEditorState state) { foreach (Character character in _game.RootCharacterFolder.AllItemsFlat) { if (_room.Number != character.StartingRoom) { continue; } if (!VisibleItems.Contains(character.ScriptName) || LockedItems.Contains(character.ScriptName)) { continue; } AgsView view = _game.FindViewByID(character.NormalView); if (view != null && view.Loops.Count > 0) { if (HitTest(x, y, character, view)) { return(character); } } } return(null); }
protected void ProcessLockedItems() { try { System.Threading.Thread.Sleep(1000); while (LockedItems.Count > 0) { LockedItemMutex.Wait(); bool enabled = Enabled; if (!enabled) { break; } try { for (int i = 0; i < LockedItems.Count; i++) { Item lockedItem = LockedItems[i]; if (CanOpenFile(lockedItem.FilePath, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite, 1)) { DateTime lastWriteTime = GetFileLastWriteTime(lockedItem.FilePath); if (lastWriteTime > lockedItem.LastWriteTime) { if (ProcessFile(lockedItem.FilePath, false)) { LockedItems.RemoveAt(i); i--; break; } } } System.Threading.Thread.Sleep(100); } } finally { LockedItemMutex.Release(); } System.Threading.Thread.Sleep(1000); } } catch (Exception exception) { Log.Error(exception, false); } finally { LockedItemThread = null; } }
private bool IsMoveable(SelectedEdge edge) { if (!VisibleItems.Contains(edge.ToString()) || LockedItems.Contains(edge.ToString())) { return(false); } return(true); }
public void checkItems() { foreach (Relationship r in DataHandler.Relationships) { for (int i = 0; i < r.Level; i++) { LockedItems locked = Locked.Find((x) => x.ItemStat == r.Unlock[i].stat && x.LevelToUnlock == r.Unlock[i].LevelToUnlock); if (locked != null) { locked.Item.SetActive(true); Locked.Remove(locked); } } } }
protected void AddLockedItem(string filePath) { try { LockedItemMutex.Wait(); try { int lockedItemIndex = -1; for (int i = 0; i < LockedItems.Count; i++) { lockedItemIndex++; Item lockedItem = LockedItems[i]; if (String.Equals(lockedItem.FilePath, filePath, StringComparison.CurrentCultureIgnoreCase)) { break; } } if (lockedItemIndex == -1) { var lockedItem = new Item(this); lockedItem.FilePath = filePath; LockedItems.Add(lockedItem); } if (LockedItemThread == null) { LockedItemThread = new System.Threading.Thread(ProcessLockedItems); LockedItemThread.Start(); } } finally { LockedItemMutex.Release(); } } catch (Exception exception) { Log.Error(exception, false); } }
private RoomObject GetObject(int x, int y) { for (int i = _objectBaselines.Count - 1; i >= 0; i--) { RoomObject obj = _objectBaselines[i]; string name = GetUniqueName(obj); if (!VisibleItems.Contains(name) || LockedItems.Contains(name)) { continue; } if (HitTest(obj, x, y)) { return(obj); } } return(null); }
private bool IsLocked(int area) { string areaName = GetItemName(area); return(LockedItems.Contains(areaName)); }