public void UpdateAttribute(PlayerDynamicAttribute attribute) { dynamicType = attribute.dynamicType; refToStaticType = attribute.refToStaticType; currentValue = attribute.currentValue; maxValue = attribute.maxValue; }
public static DynamicAttribute GetDynamicAttribute(IntPtr ptr) { if (ptr == null || ptr == IntPtr.Zero) { return(null); } DynamicAttributeType daType = DynamicAttribute_GetType(ptr); switch (daType) { case DynamicAttributeType.DAT_CURVED: return(new DynamicAttributeCurved(ptr)); case DynamicAttributeType.DAT_FIXED: return(new DynamicAttributeFixed(ptr)); case DynamicAttributeType.DAT_OSCILLATE: return(new DynamicAttributeOscillate(ptr)); case DynamicAttributeType.DAT_RANDOM: return(new DynamicAttributeRandom(ptr)); default: return(null); } }
internal static extern void DynamicAttribute_SetType(IntPtr ptr, DynamicAttributeType type);
public static void SetType(IntPtr ptr, DynamicAttributeType type) { DynamicAttribute_SetType(ptr, type); }
public static IElement GetIElementByPointer(IntPtr ptr) { if (ptr == null || ptr == IntPtr.Zero) { return(null); } try { Particle.ParticleType partype = Particle.Particle_GetParticleType(ptr); if (partype == Particle.ParticleType.PT_TECHNIQUE) { return(ParticleTechnique.GetInstances(ptr)); } else if (partype == Particle.ParticleType.PT_SYSTEM) { return(ParticleSystem.GetInstances(ptr)); } else if (partype == Particle.ParticleType.PT_AFFECTOR) { return(ParticleAffector.GetParticleAffectorByType(ptr)); } else if (partype == Particle.ParticleType.PT_EMITTER) { return(ParticleEmitter.GetParticleEmitterByPointer(ptr)); } //else if (partype == Particle.ParticleType.PT_VISUAL) // return new Particle(ptr); //For Some reason Particle.Particle_GetParticleType(ptr) doesn't return a valid type for PT_SYSTEM. //So test for ParticleSystem_GetCategory if it throws an exception then we know it really isn't one! ;) ParticleSystem.ParticleSystem_GetCategory(ptr); return(ParticleSystem.GetInstances(ptr)); } catch (Exception) { } try { String behaviourType = Marshal.PtrToStringAnsi(ParticleBehaviour.ParticleBehaviour_GetBehaviourType(ptr)); //ParticleBehaviourFactory if (behaviourType == "SlaveBehaviour") { return(SlaveBehaviour.GetInstance(ptr)); } } catch (Exception) { return(null); } try { DynamicAttributeType type = DynamicAttributeTypeHelper.DynamicAttribute_GetType(ptr); if (type == DynamicAttributeType.DAT_CURVED || type == DynamicAttributeType.DAT_FIXED || type == DynamicAttributeType.DAT_OSCILLATE || type == DynamicAttributeType.DAT_RANDOM) { return(DynamicAttributeTypeHelper.GetDynamicAttribute(ptr)); } } catch (Exception) { } return(null); }