コード例 #1
0
ファイル: EventConnection.cs プロジェクト: gkjolin/RPGCore
		public EventEntry GetEntry (IBehaviourContext character)
		{
			if (this.SourceNode == null)
				return defaultEntry;

			EventEntry foundEntry;

			if (ContextCahce == null)
				ContextCahce = new Dictionary<IBehaviourContext, EventEntry> ();

			bool result = ContextCahce.TryGetValue (character, out foundEntry);

			EventOutput sourceOutput = (EventOutput)SourceSocket;

			EventEntry connectionEntry = sourceOutput.GetEntry (character);

			if (!result)
			{
				foundEntry = new EventEntry ();

				connectionEntry.OnEventFired += () =>
				{
					if (foundEntry != null)
						foundEntry.OnEventFired ();
				};

				ContextCahce.Add (character, foundEntry);
			}

			return foundEntry;
		}