Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void GetTraitForObject(int index, string traitClassName)
- {
- var instance = this.stack[index];
- var objectType = instance.GetType();
- var methodInfo = objectType.GetMethods().FirstOrDefault(m => m.Name == "Trait");
- if (methodInfo != null)
- {
- var assemblies = AppDomain.CurrentDomain.GetAssemblies();
- var traitType = assemblies.FirstOrDefault(a => a.GetType("OpenRA.Traits." + traitClassName) != null);
- if (traitType != null)
- {
- var genericMethodInfo = methodInfo.MakeGenericMethod(traitType);
- if (genericMethodInfo.ReturnType != typeof(void))
- {
- object result = genericMethodInfo.Invoke(instance, null);
- this.stack.Push(result);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement