public static string ClassName(plCreatableID type) { if (Enum.IsDefined(typeof(plCreatableID), type)) return Enum.GetName(typeof(plCreatableID), type); else throw new plFactoryException(String.Format("Internal Type 0x{0} is not defined", type.ToString("XXXX"))); }
/// <summary> /// Creates an instance of a plCreatable with the given internal type /// </summary> /// <param name="type">The internal/universal plCreatableID of the plCreatable to create</param> /// <returns>The new plCreatable</returns> /// <exception cref="plFacotoryException">The CreatableID (type) is invalid/unknown</exception> public static plCreatable Create(plCreatableID type) { switch (type) { case plCreatableID.plAvatarInputStateMsg: return new plAvatarInputStateMsg(); case plCreatableID.plClientGuid: return new plClientGuid(); case plCreatableID.plConsoleMsg: return new plConsoleMsg(); case plCreatableID.pfKIMsg: return new pfKIMsg(); case plCreatableID.plLinkEffectsTriggerMsg: return new plLinkEffectsTriggerMsg(); case plCreatableID.plLinkEffectsTriggerPrepMsg: return new plLinkEffectsTriggerPrepMsg(); case plCreatableID.plLoadAvatarMsg: return new plLoadAvatarMsg(); case plCreatableID.plLoadCloneMsg: return new plLoadCloneMsg(); case plCreatableID.plNetMsgGameMessage: return new plNetMsgGameMessage(); case plCreatableID.plNetMsgGameMessageDirected: return new plNetMsgGameMessageDirected(); case plCreatableID.plNetMsgGroupOwner: return new plNetMsgGroupOwner(); case plCreatableID.plNetMsgLoadClone: return new plNetMsgLoadClone(); case plCreatableID.plNetMsgMemberInfoHelper: return new plNetMsgMemberInfoHelper(); case plCreatableID.plNetMsgMembersList: return new plNetMsgMembersList(); case plCreatableID.plNetMsgPing: return new plNetMsgPing(); case plCreatableID.plNetMsgSDLState: return new plNetMsgSDLState(); case plCreatableID.plNetMsgSDLStateBCast: return new plNetMsgSDLStateBCast(); case plCreatableID.plNetMsgVoice: return new plNetMsgVoice(); case plCreatableID.plNotifyMsg: return new plNotifyMsg(); case plCreatableID.plSceneNode: return new plSceneNode(); case plCreatableID.plSceneObject: return new plSceneObject(); case plCreatableID.NULL: return null; default: if (Enum.IsDefined(typeof(plCreatableID), type)) { string name = plManagedType.ClassName(type); plDebugLog.GetLog("Factory").Warn( String.Format("Couldn't create a(n) {0} because it is not implemented yet", name)); throw new NotImplementedException(name); } else throw new plFactoryException("Unknown plCreatableID"); } }
internal plKey(plCreatableID type, string objName) { fKeyData = new plUoid(type, objName); }
public void Read(hsStream s) { ContentsFlags contents = (ContentsFlags)s.ReadByte(); fLocation.Read(s); if ((contents & ContentsFlags.kHasLoadMask) != 0) if (!s.Version.IsPlasma21) fLoadMask.Read(s); fClassType = plManagedType.Read(s); if (s.Version.IsUruLive || s.Version.IsPlasma21) fObjectID = s.ReadUInt(); fObjectName = s.ReadSafeString(); if (s.Version.IsPlasma20) { if ((contents & ContentsFlags.kHasCloneIDs) != 0) { fCloneID = s.ReadUInt(); fClonePlayerID = s.ReadUInt(); } } if ((contents & (ContentsFlags.kHasLoadMask | ContentsFlags.kHasLoadMask2)) != 0) if (s.Version.IsPlasma21) fLoadMask.Read(s); }
internal plUoid(plCreatableID type, string name) { fObjectName = name; fClassType = type; }
/// <summary> /// Creates a FAKE plKey based on the information given. /// </summary> /// <remarks> /// This key will NOT be added to (or checked by) the internal KeyCollector; therefore, you should /// ONLY use this method if you know what you're doing! Othwerise, you will create duplicate keys /// and completely screw the garbage collection. /// </remarks> /// <param name="loc">Key's Location</param> /// <param name="type">Managed Type ID</param> /// <param name="name">Object Name</param> /// <param name="id">Object ID</param> /// <returns>Fabricated key</returns> public static plKey Fabricate(plLocation loc, plCreatableID type, string name, uint id) { plUoid uoid = new plUoid(type, name); uoid.fLocation = loc; uoid.fObjectID = id; return new plKey(uoid); }
/// <summary> /// Gets a friendly, user consumable name for the specified Plasma Type /// </summary> /// <param name="type">The universal type</param> /// <returns>Friendly class name</returns> public static string FriendlyClassName(plCreatableID type) { switch (type) { case plCreatableID.plActivatorConditionalObject: return "Activator Conditional Object"; case plCreatableID.plAGAnim: return "AG Animation"; case plCreatableID.plAGMasterMod: return "AG Master Modifier"; case plCreatableID.plAGModifier: return "AG Modifier"; case plCreatableID.plATCAnim: return "ATC Animation"; case plCreatableID.plAudioInterface: return "Audio Interface"; case plCreatableID.plCameraBrainUru: return "Camera Brain (Uru)"; case plCreatableID.plCameraBrainUru_Avatar: return "Camera Brain (Avatar)"; case plCreatableID.plCameraBrainUru_Fixed: return "Camera Brain (Fixed)"; case plCreatableID.plCameraBrainUru_POA: return "Camera Brain (Point on Avatar)"; case plCreatableID.plCameraModifier1: return "Camera Modifier"; case plCreatableID.plCameraRegionDetector: return "Camera Region Detector"; case plCreatableID.plClusterGroup: return "Cluster Group"; case plCreatableID.plCoordinateInterface: return "Coordinate Interface"; case plCreatableID.plCubicEnvironmap: return "Cubic Environment Map"; case plCreatableID.plDirectShadowMaster: return "Shadow Master (Direct)"; case plCreatableID.plDirectionalLightInfo: return "Light Info (Directional)"; case plCreatableID.plDrawableSpans: return "Drawable Spans"; case plCreatableID.plDrawInterface: return "Draw Interface"; case plCreatableID.plDynaFootMgr: return "Dynamic Foot Manager"; case plCreatableID.plDynaRippleMgr: return "Dynamic Ripple Manager"; case plCreatableID.plDynaRippleVSMgr: return "Dynamic Ripple VS Manager"; case plCreatableID.plDynamicCamMap: return "Dynamic Camera Map"; case plCreatableID.plDynamicEnvMap: return "Dynamic Environment Map"; case plCreatableID.plDynamicTextMap: return "Dynamic Text Map"; case plCreatableID.plEAXListenerMod: return "EAX Listener Modifier"; case plCreatableID.plEAXReverbEffect: return "EAX Reverb Effect"; case plCreatableID.plFacingConditionalObject: return "Facing Conditional Object"; case plCreatableID.hsGMaterial: return "Material"; case plCreatableID.plHKPhysical: return "Physical (Havok)"; case plCreatableID.plInterfaceInfoModifier: return "Interface Info Modifier"; case plCreatableID.plLadderModifier: return "Ladder Modifier"; case plCreatableID.plLayerAnimation: return "Layer Animation"; case plCreatableID.plLineFollowMod: return "Line Follow Modifier"; case plCreatableID.plLogicModifier: return "Logic Modifier"; case plCreatableID.plMsgForwarder: return "Message Forwarder"; case plCreatableID.plMultistageBehMod: return "Multistage Behavior Modifier"; case plCreatableID.plNPCSpawnMod: return "NPC Spawn Modifier"; case plCreatableID.plODEPhysical: return "Physical (ODE)"; case plCreatableID.plObjectInBoxConditionalObject: return "Object in Box Conditional Object"; case plCreatableID.plObjectInVolumeAndFacingDetector: return "Object in Volume and Facing Detector"; case plCreatableID.plObjectInVolumeDetector: return "Object in Volume Detector"; case plCreatableID.plOmniLightInfo: return "Light Info (Omni)"; case plCreatableID.plOneShotMod: return "One Shot Modifier"; case plCreatableID.plPanicLinkRegion: return "Panic Link Region"; case plCreatableID.plParticleFlockEffect: return "Particle Effect (Flock)"; case plCreatableID.plParticleSystem: return "Particle System"; case plCreatableID.plPhysicalSndGroup: return "Physical Sound Group"; case plCreatableID.plPickingDetector: return "Picking Detector"; case plCreatableID.plPointShadowMaster: return "Shadow Master (Point)"; case plCreatableID.plPXPhysical: return "Physical (PhysX)"; case plCreatableID.plPythonFileMod: return "Python File Modifier"; case plCreatableID.plPythonFileModConditionalObject: return "Python File Conditional Object"; case plCreatableID.plRailCameraMod: return "Rail Camera Modifier"; case plCreatableID.plRandomSoundMod: return "Random Sound Modifier"; case plCreatableID.plRelevanceRegion: return "Relevance Region"; case plCreatableID.plResponderModifier: return "Responder Modifier"; case plCreatableID.plSceneNode: return "Scene Node"; case plCreatableID.plSceneObject: return "Scene Object"; case plCreatableID.plShadowCaster: return "Shadow Caster"; case plCreatableID.plSimulationInterface: return "Simulation Interface"; case plCreatableID.plSoftVolumeComplex: return "Soft Volume (Complex)"; case plCreatableID.plSoftVolumeIntersect: return "Soft Volume (Intersect)"; case plCreatableID.plSoftVolumeInvert: return "Soft Volume (Invert)"; case plCreatableID.plSoftVolumeSimple: return "Soft Volume (Simple)"; case plCreatableID.plSoftVolumeUnion: return "Soft Volume (Union)"; case plCreatableID.plSoundBuffer: return "Sound Buffer"; case plCreatableID.plSpawnMod: case plCreatableID.plSpawnModifier: return "Spawn Modifier"; case plCreatableID.plSpotLightInfo: return "Light Info (Spot)"; case plCreatableID.plSwimCircularCurrentRegion: return "Swim Current Region (Circular)"; case plCreatableID.plSwimStraightCurrentRegion: return "Swim Current Region (Circular)"; case plCreatableID.plSwimDetector: return "Swim Detector"; case plCreatableID.plSwimRegionInterface: return "Swim Region Interface"; case plCreatableID.plViewFaceModifier: return "View Face Modifier"; case plCreatableID.plVisRegion: return "Visibility Region"; case plCreatableID.plVolumeSensorConditionalObject: return "Volume Sensor Conditional Object"; case plCreatableID.plVolumeSensorConditionalObjectNoArbitration: return "Volume Sensor Conditional Object w/o Arbitration"; case plCreatableID.plWaveSet7: return "Wave Set 7"; case plCreatableID.plWinAudible: return "Win Audible"; case plCreatableID.plWin32StaticSound: return "Win32 Static Sound"; case plCreatableID.plWin32StreamingSound: return "Win32 Streaming Sound"; default: string ugly = ((plCreatableID)type).ToString(); plDebugLog.GetLog("Factory").Warn(String.Format("FIXME: {0} has no friendly name!", ugly)); return ugly.Substring(2); } }
public static void Write(hsStream s, plCreatableID data) { if (fTypeMaps == null) IBuildTypeMaps(); plCreatableID type = (plCreatableID)data; ushort end = (ushort)plCreatableID.NULL; foreach (KeyValuePair<plTypeBounds, Type> kvp in fTypeMaps) { if (kvp.Key.UpperBoundary >= s.Version && s.Version >= kvp.Key.LowerBoundary) { string value = Enum.GetName(typeof(plCreatableID), type); end = (ushort)Enum.Parse(kvp.Value, value); } } //Note: We must adjust < PotS IDs... if (s.Version < plVersion.PathOfTheShell) if (end > (ushort)UruTypes.plAvatarSpawnNotifyMsg) end--; //End type adjustment s.WriteUShort(end); }
public IList<plKey> GetKeys(plLocation loc, plCreatableID type) { return fKeyCollector.GetKeys(loc, type); }
public plKey FindKey(plLocation loc, plCreatableID type, string name) { return fKeyCollector.FindKey(loc, type, name); }