public void Init(MyPrefabBase kinematicPartOwner, MyMwcObjectBuilderTypeEnum prefabKinematicPartBuilderType, int? prefabKinematicPartBuilderId, MyModelsEnum modelEnum, MyMaterialType materialType, Matrix kinematicLocalMatrix, float kinematicVelocityMax, MySoundCuesEnum? loopSound, MySoundCuesEnum? loopDamagedSound, MySoundCuesEnum? startSound, MySoundCuesEnum? endSound, float kinematicStart, float kinematicEnd) { m_needsUpdate = true; m_kinematicPartOwner = kinematicPartOwner; m_kinematicLocalMatrix = kinematicLocalMatrix; m_kinematicVelocityMax = kinematicVelocityMax; m_kinematicStart = kinematicStart; m_kinematicEnd = kinematicEnd; m_loopSoundCue = loopSound; m_loopDamagedSoundCue = loopDamagedSound; m_startSoundCue = startSound; m_endSoundCue = endSound; MyMwcObjectBuilder_Base objbuilder = MyMwcObjectBuilder_Base.CreateNewObject(prefabKinematicPartBuilderType, prefabKinematicPartBuilderId); m_config = m_kinematicPartOwner.GetConfiguration(); base.Init(null, modelEnum, null, kinematicPartOwner, null, objbuilder); LocalMatrix = Matrix.Identity; MaterialIndex = m_kinematicPartOwner.MaterialIndex; //InitTrianglePhysics(materialType, 1.0f, ModelLod0, null, MyConstants.COLLISION_LAYER_PREFAB_KINEMATIC_PART); InitBoxPhysics(materialType, ModelLod0, 100, 0, MyConstants.COLLISION_LAYER_PREFAB_KINEMATIC_PART, RigidBodyFlag.RBF_RBO_STATIC); Physics.Enabled = true; m_kinematicPartOwner.OnPositionChanged += OwnerPositionChanged; }
public MyPrefabConfigurationAlarm(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, MyModelsEnum modelLod0EnumOn, MyModelsEnum? modelLod1EnumOn, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag, needsUpdate: true, requiresEnergy: false) { ModelLod0EnumOn = modelLod0EnumOn; ModelLod1EnumOn = modelLod1EnumOn; }
public MyPrefabConfigurationGenerator(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, float range, float rotatingVelocity = DEFAULT_ROTATING_VELOCITY, MyModelsEnum? modelCol = null, float explosionParticleEffectScale = 1) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Generator, range, rotatingVelocity, MySoundCuesEnum.Amb3D_GenXstart, MySoundCuesEnum.Amb3D_GenXloop, MySoundCuesEnum.Amb3D_GenXend, modelCol, explosionParticleEffectScale:explosionParticleEffectScale) { }
public MyPrefabConfigurationKinematic(MyModelsEnum modelBaseLod0Enum, MyModelsEnum? modelBaseLod1Enum, List<MyPrefabConfigurationKinematicPart> kinematicParts, MySoundCuesEnum? soundOpening, MySoundCuesEnum? soundLooping, MySoundCuesEnum? soundClosing, float openTime, float closeTime, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyModelsEnum? collisionModelEnum = null) : this(modelBaseLod0Enum, modelBaseLod1Enum, kinematicParts, soundOpening, soundLooping, soundClosing, openTime, closeTime, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Default, collisionModelEnum) { }
public MyPrefabConfigurationKinematicRotating(MyModelsEnum modelBaseLod0Enum, MyModelsEnum? modelBaseLod1Enum, MySoundCuesEnum? soundOpening, MySoundCuesEnum? soundLooping, MySoundCuesEnum? soundClosing, float rotatingVelocity, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType) : this(modelBaseLod0Enum, modelBaseLod1Enum, soundOpening, soundLooping, soundClosing, rotatingVelocity, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Default) { }
public MyPrefabConfigurationGenerator(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag, float range, float rotatingVelocity = DEFAULT_ROTATING_VELOCITY, MySoundCuesEnum? startRotatingCue = MySoundCuesEnum.Amb3D_GenXstart, MySoundCuesEnum? looptRotatingCue = MySoundCuesEnum.Amb3D_GenXloop, MySoundCuesEnum? endRotatingCue = MySoundCuesEnum.Amb3D_GenXend, MyModelsEnum? modelCol = null, float explosionParticleEffectScale = 1) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag, minElectricCapacity: MyGameplayConstants.DEFAULT_MAX_ELECTRIC_CAPACITY, rotatingVelocity: rotatingVelocity, collisionModelEnum: modelCol, startRotatingCue: startRotatingCue, loopRotatingCue: looptRotatingCue, endRotatingCue: endRotatingCue, displayHud: true, explosionParticleEffectScale:explosionParticleEffectScale) { Range = range; }
void InitDebris(string hudLabelText, MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, MyMaterialType materialType, MyMwcObjectBuilder_LargeDebrisField objectBuilder, Matrix matrix) { StringBuilder hudLabelTextSb = (hudLabelText == null) ? null : new StringBuilder(hudLabelText); base.Init(hudLabelTextSb, modelLod0Enum, modelLod1Enum, null, null, objectBuilder); MyModel model = MyModels.GetModelOnlyData(modelLod0Enum); InitTrianglePhysics(materialType, 1.0f, model, null, enable: false); SetWorldMatrix(matrix); }
public MyPrefabConfigurationKinematicRotating(MyModelsEnum modelBaseLod0Enum, MyModelsEnum? modelBaseLod1Enum, MySoundCuesEnum? soundOpening, MySoundCuesEnum? soundLooping, MySoundCuesEnum? soundClosing, float rotatingVelocity, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag) : base(modelBaseLod0Enum, modelBaseLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag) { SoundOpening = soundOpening; SoundLooping = soundLooping; SoundClosing = soundClosing; RotatingVelocity = rotatingVelocity; }
public virtual void Init(StringBuilder hudLabelText, MyModelsEnum? modelEnum, MyMaterialType materialType, MyEntity parentObject, Vector3 position, Vector3 forwardVector, Vector3 upVector, MyMwcObjectBuilder_Base objectBuilder, MyModelsEnum? collisionModelEnum = null) { base.Init(hudLabelText, modelEnum, null, parentObject, null, objectBuilder, modelCollision: collisionModelEnum); this.LocalMatrix = Matrix.CreateWorld(position, forwardVector, upVector); //NeedsUpdate = true; //Smallship updates weapons manually CastShadows = false; PreloadTextures(); }
public float ZOffset; // z-offset from ship's dummy public void Init(StringBuilder hudLabelText, MyModelsEnum? modelEnum, MyMaterialType materialType, MySmallShip parent, Vector3 position, Vector3 forwardVector, Vector3 upVector, MyMwcObjectBuilder_Base objectBuilder) { base.Init(hudLabelText, modelEnum, materialType, parent, position, forwardVector, upVector, objectBuilder); Debug.Assert(objectBuilder is MyMwcObjectBuilder_SmallShip_Weapon); WeaponType = ((MyMwcObjectBuilder_SmallShip_Weapon)objectBuilder).WeaponType; // Don't need to check frustum, because it's checked by this gun's parent m_frustumCheckBeforeDrawEnabled = false; }
public MyPrefabConfigurationKinematicPart(int prefabId, MyModelsEnum modelMovingEnum, string open, string close, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, DamageTypesEnum damageType, MyModelsEnum? modelLod1 = null, MyModelsEnum? collisionModelEnum = null) : base(modelMovingEnum, modelLod1, buildType, categoryType, subCategoryType, materialType, //0.5 because of door parts, to not take also second part PrefabTypesFlagEnum.Default, needsUpdate: true, explosionRadiusMultiplier: 0.5f, explosionDamage: 0.33f, collisionModelEnum: collisionModelEnum, explosionParticleEffectScale: 2.0f) { m_modelMovingEnum = modelMovingEnum; m_open = open; m_close = close; m_damageType = damageType; PrefabId = prefabId; }
public MyPrefabConfigurationKinematic(MyModelsEnum modelBaseLod0Enum, MyModelsEnum? modelBaseLod1Enum, List<MyPrefabConfigurationKinematicPart> kinematicParts, MySoundCuesEnum? soundOpening, MySoundCuesEnum? soundLooping, MySoundCuesEnum? soundClosing, float openTime, float closeTime, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag, MyModelsEnum? collisionModelEnum = null) : base(modelBaseLod0Enum, modelBaseLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag, collisionModelEnum: collisionModelEnum, displayHud: true) { m_openTime = openTime; m_closeTime = closeTime; KinematicParts = kinematicParts; m_soundOpening = soundOpening; m_soundLooping = soundLooping; m_soundClosing = soundClosing; }
public void Init(MyPrefabBase rotatingOwner, MyModelsEnum modelEnum, MyMaterialType matType, Matrix rotatingLocal, float rotatingVelocityMax, MySoundCuesEnum? loopSound, MySoundCuesEnum? loopDamagedSound, MySoundCuesEnum? startSound, MySoundCuesEnum? endSound, Vector3 rotationVector, bool activated) { m_rotationVector = rotationVector; base.Init(rotatingOwner, MyMwcObjectBuilderTypeEnum.PrefabKinematicRotatingPart, (int)MyMwcObjectBuilder_PrefabKinematicRotatingPart_TypesEnum.DEFAULT, modelEnum, matType, rotatingLocal, rotatingVelocityMax, loopSound, loopDamagedSound, startSound, endSound, 1f, 1f); if (activated) { PersistentFlags &= ~MyPersistentEntityFlags.Deactivated; } else { PersistentFlags |= MyPersistentEntityFlags.Deactivated; } }
public MyPrefabConfigurationLargeWeapon( BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyMwcObjectBuilder_PrefabLargeWeapon_TypesEnum weaponType, MyMwcObjectBuilder_Prefab_AppearanceEnum? factionSpecific = null, MyExplosionTypeEnum explosionType = MyExplosionTypeEnum.SMALL_SHIP_EXPLOSION, float explosionRadiusMultiplier = 5, float explosionDamageMultiplier = 300) : base(buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Default, factionSpecific: factionSpecific, explosionType: explosionType, explosionRadiusMultiplier: explosionRadiusMultiplier, explosionDamageMultiplier: explosionDamageMultiplier, requiresEnergy: true, displayHud: true) { WeaponType = weaponType; }
public MyPrefabConfigurationLargeShip( MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyMwcObjectBuilder_Prefab_AppearanceEnum? factionSpecific = null, MyModelsEnum? collisionModelEnum = null, MyExplosionTypeEnum explosionType = MyExplosionTypeEnum.BOMB_EXPLOSION, float particleScale = 1) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.LargeShip, factionSpecific: factionSpecific, needsUpdate: true, collisionModelEnum: collisionModelEnum, explosionType: explosionType, explosionParticleEffectScale: particleScale) { }
// IMPORTANT: This class isn't realy inicialized by constructor, but by Start() // So don't initialize members here, do it in Start() public virtual void Init(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, MyMaterialType materialType, float scale, List<MyRBElementDesc> collisionPrimitives, float mass) { MyPhysicsObjects physobj = MyPhysics.physicsSystem.GetPhysicsObjects(); base.Init(null, modelLod0Enum, modelLod1Enum, null, scale, null); m_maxLifeTimeInMiliseconds = MyMwcUtils.GetRandomInt(MyExplosionsConstants.EXPLOSION_DEBRIS_LIVING_MIN_IN_MILISECONDS, MyExplosionsConstants.EXPLOSION_DEBRIS_LIVING_MAX_IN_MILISECONDS); m_randomizedDiffuseTextureColorMultiplier = MyMwcUtils.GetRandomFloat(0.4f, 0.6f); m_initialOrientation = Matrix.CreateRotationX(MyMwcUtils.GetRandomRadian()) * Matrix.CreateRotationY(MyMwcUtils.GetRandomRadian()) * Matrix.CreateRotationZ(MyMwcUtils.GetRandomRadian()); // create physics this.Physics = new MyPhysicsBody(this, mass, 0) { MaterialType = materialType }; for (int i = 0; i < collisionPrimitives.Count; i++) { MyRBSphereElement sphereEl = (MyRBSphereElement)physobj.CreateRBElement(collisionPrimitives[i]); // sphereEl.Radius *= scale; this.Physics.AddElement(sphereEl, true); } }
/// <summary> /// Creates new instance of prefab configuration /// </summary> /// <param name="modelLod0Enum">Model LOD0</param> /// <param name="modelLod1Enum">Model LOD2</param> /// <param name="buildType">Build type</param> /// <param name="categoryType">Category type</param> /// <param name="subCategoryType">Subcategory type</param> /// <param name="materialType">Material type</param> /// <param name="prefabTypeFlag">Prefab type flags</param> protected MyPrefabConfiguration( MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag, MyModelsEnum? collisionModelEnum = null, MyMwcObjectBuilder_Prefab_AppearanceEnum? factionSpecific = null, bool needsUpdate = false, bool initPhysics = true, bool enabledInEditor = true, float rotatingVelocity = DEFAULT_ROTATING_VELOCITY, MySoundCuesEnum? startRotatingCue = null, MySoundCuesEnum? loopRotatingCue = null, MySoundCuesEnum? loopRotatingDamagedCue = null, MySoundCuesEnum? endRotatingCue = null, MyPreviewPointOfViewEnum previewAngle = MyPreviewPointOfViewEnum.Front, float minElectricCapacity = MyGameplayConstants.DEFAULT_MIN_ELECTRIC_CAPACITY, float maxElectricCapacity = MyGameplayConstants.DEFAULT_MAX_ELECTRIC_CAPACITY, MyExplosionTypeEnum explosionType = MyExplosionTypeEnum.SMALL_SHIP_EXPLOSION, float explosionRadiusMultiplier = 1, float explosionDamage = 1, float minSizeForExplosion = MyExplosionsConstants.MIN_OBJECT_SIZE_TO_CAUSE_EXPLOSION_AND_CREATE_DEBRIS, bool causesAlarm = false, bool requiresEnergy = false, float explosionParticleEffectScale = 1, bool displayHud = false) : this(buildType, categoryType, subCategoryType, materialType, prefabTypeFlag, factionSpecific, needsUpdate, initPhysics, enabledInEditor, rotatingVelocity, startRotatingCue, loopRotatingCue, loopRotatingDamagedCue, endRotatingCue, previewAngle, minElectricCapacity, maxElectricCapacity, explosionType, explosionRadiusMultiplier, explosionDamage, minSizeForExplosion, causesAlarm, requiresEnergy: requiresEnergy, explosionParticleEffectScale: explosionParticleEffectScale, displayHud: displayHud) { m_modelLod0Enum = modelLod0Enum; m_modelLod1Enum = modelLod1Enum; m_collisionModelEnum = collisionModelEnum; }
public MyPrefabConfigurationLight(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, MyLightPrefabTypeEnum type, MyModelsEnum?collisionModelEnum = null) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, type, PrefabTypesFlagEnum.Default, collisionModelEnum) { }
void InitDebris(string hudLabelText, MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, MyMaterialType materialType, MyMwcObjectBuilder_SmallDebris objectBuilder, Matrix matrix, float mass) { StringBuilder hudLabelTextSb = (hudLabelText == null) ? null : new StringBuilder(hudLabelText); base.Init(hudLabelTextSb, modelLod0Enum, modelLod1Enum, null, null, objectBuilder); if (objectBuilder != null) { SetWorldMatrix(matrix); } if (mass > 0) { base.InitBoxPhysics(materialType, this.ModelLod0, mass, 0, MyConstants.COLLISION_LAYER_DEFAULT, RigidBodyFlag.RBF_DEFAULT); this.Physics.PlayCollisionCueEnabled = true; } }
public MyPrefabConfigurationHangar(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag, MyModelsEnum? collisionModel = null) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag, displayHud: true, collisionModelEnum: collisionModel) { }
public static void AddCollisionCue(MyMaterialCollisionType type, MyMaterialType materialType1, MyMaterialType materialType2, MySoundCuesEnum?cue) { CollisionCues[(int)type, (int)materialType1, (int)materialType2] = cue; CollisionCues[(int)type, (int)materialType2, (int)materialType1] = cue; }
internal void Clear() { WorldMatrix = MatrixD.Zero; CommonObjectData = default(MyObjectDataCommon); NonVoxelObjectData = MyObjectDataNonVoxel.Invalid; VoxelCommonObjectData = MyObjectDataVoxelCommon.Invalid; Mesh = LodMeshId.NULL; MergedMesh = MyMergedLodMeshId.NULL; Instancing = InstancingId.NULL; DepthShaders = MyMaterialShadersBundleId.NULL; Shaders = MyMaterialShadersBundleId.NULL; ForwardShaders = MyMaterialShadersBundleId.NULL; DrawSubmesh = default(MyDrawSubmesh); PerMaterialIndex = 0; SectionSubmeshes = null; InstanceCount = 0; StartInstance = 0; SkinningMatrices = null; Type = MyMaterialType.OPAQUE; Flags = 0; Lod = 0; ObjectBuffer = null; Parent = null; Material = MyMeshMaterialId.NULL; UnusedMaterials = UnusedMaterials ?? new HashSet<string>(); UnusedMaterials.Clear(); }
public MyPrefabConfigurationFoundationFactory(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyModelsEnum? collisionModelEnum = null) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.FoundationFactory, collisionModelEnum) { }
public MyPrefabConfigurationParticles(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyParticleEffectsIDEnum effectID) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, effectID, PrefabTypesFlagEnum.Default) { }
// IMPORTANT: This class isn't realy inicialized by constructor, but by Start() // So don't initialize members here, do it in Start() public virtual void Init(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, MyMaterialType materialType, float scale, List <MyRBElementDesc> collisionPrimitives, float mass) { MyPhysicsObjects physobj = MyPhysics.physicsSystem.GetPhysicsObjects(); base.Init(null, modelLod0Enum, modelLod1Enum, null, scale, null); m_maxLifeTimeInMiliseconds = MyMwcUtils.GetRandomInt(MyExplosionsConstants.EXPLOSION_DEBRIS_LIVING_MIN_IN_MILISECONDS, MyExplosionsConstants.EXPLOSION_DEBRIS_LIVING_MAX_IN_MILISECONDS); m_randomizedDiffuseTextureColorMultiplier = MyMwcUtils.GetRandomFloat(0.4f, 0.6f); m_initialOrientation = Matrix.CreateRotationX(MyMwcUtils.GetRandomRadian()) * Matrix.CreateRotationY(MyMwcUtils.GetRandomRadian()) * Matrix.CreateRotationZ(MyMwcUtils.GetRandomRadian()); // create physics this.Physics = new MyPhysicsBody(this, mass, 0) { MaterialType = materialType }; for (int i = 0; i < collisionPrimitives.Count; i++) { MyRBSphereElement sphereEl = (MyRBSphereElement)physobj.CreateRBElement(collisionPrimitives[i]); // sphereEl.Radius *= scale; this.Physics.AddElement(sphereEl, true); } }
public MyPrefabConfigurationParticles(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, MyParticleEffectsIDEnum effectID) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, effectID, PrefabTypesFlagEnum.Default) { }
public MyPrefabConfigurationKinematicRotating(MyModelsEnum modelBaseLod0Enum, MyModelsEnum?modelBaseLod1Enum, MySoundCuesEnum?soundOpening, MySoundCuesEnum?soundLooping, MySoundCuesEnum?soundClosing, float rotatingVelocity, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag) : base(modelBaseLod0Enum, modelBaseLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag) { SoundOpening = soundOpening; SoundLooping = soundLooping; SoundClosing = soundClosing; RotatingVelocity = rotatingVelocity; }
public MyPrefabConfigurationSound(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, MySoundCuesEnum sound, PrefabTypesFlagEnum prefabTypesFlag) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypesFlag, needsUpdate: true) { Sound = sound; }
public MyPrefabConfigurationHangar(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag, MyModelsEnum?collisionModel = null) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag, displayHud : true, collisionModelEnum : collisionModel) { }
public MyPrefabConfigurationHangar(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, MyModelsEnum?collisionModel = null) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Hangar, collisionModel : collisionModel) { }
/// <summary> /// Creates new instance of prefab configuration with default prefab type flags /// </summary> /// <param name="modelLod0Enum">Model LOD0</param> /// <param name="modelLod1Enum">Model LOD2</param> /// <param name="buildType">Build type</param> /// <param name="categoryType">Category type</param> /// <param name="subCategoryType">Subcategory type</param> /// <param name="materialType">Material type</param> /// <param name="factionSpecific">To which faction is this prefab specific. Null if prefab is for all factions. Used for material (texture) set availability. </param> public MyPrefabConfiguration( MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyMwcObjectBuilder_Prefab_AppearanceEnum? factionSpecific = null, MyModelsEnum? collisionModelEnum = null, bool needsUpdate = false, bool initPhysics = true, bool enabledInEditor = true, float rotatingVelocity = DEFAULT_ROTATING_VELOCITY, MySoundCuesEnum? startRotatingCue = null, MySoundCuesEnum? loopRotatingCue = null, MySoundCuesEnum? loopRotatingDamagedCue = null, MySoundCuesEnum? endRotatingCue = null, MyPreviewPointOfViewEnum previewAngle = MyPreviewPointOfViewEnum.Front, MyExplosionTypeEnum explosionType = MyExplosionTypeEnum.SMALL_SHIP_EXPLOSION, float explosionRadiusMultiplier = 1, float explosionDamageMultiplier = 1, float minSizeForExplosion = MyExplosionsConstants.MIN_OBJECT_SIZE_TO_CAUSE_EXPLOSION_AND_CREATE_DEBRIS, bool causesAlarm = false, bool requiresEnergy = false, float explosionParticleEffectScale = 1, bool displayHud = false) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Default, collisionModelEnum, factionSpecific, needsUpdate, initPhysics, enabledInEditor, rotatingVelocity, startRotatingCue, loopRotatingCue, loopRotatingDamagedCue, endRotatingCue, previewAngle, explosionType: explosionType, explosionRadiusMultiplier: explosionRadiusMultiplier, explosionDamage: explosionDamageMultiplier, minSizeForExplosion: minSizeForExplosion, causesAlarm: causesAlarm, requiresEnergy: requiresEnergy, explosionParticleEffectScale: explosionParticleEffectScale, displayHud: displayHud) { System.Diagnostics.Debug.Assert(modelLod0Enum != modelLod1Enum, "LOD0 and LOD1 models are the same!"); if (collisionModelEnum != null) { System.Diagnostics.Debug.Assert(modelLod0Enum != collisionModelEnum, "LOD0 and COL models are the same!"); System.Diagnostics.Debug.Assert(modelLod1Enum != collisionModelEnum, "LOD1 and COL models are the same!"); } }
public MyPrefabConfigurationParticles(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, MyParticleEffectsIDEnum effectID, PrefabTypesFlagEnum prefabTypeFlag) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypeFlag) { EffectID = effectID; }
/// <summary> /// Creates new instance of prefab configuration without model /// </summary> /// <param name="buildType">Build type</param> /// <param name="categoryType">Category type</param> /// <param name="subCategoryType">Subcategory type</param> /// <param name="materialType">Material type</param> /// <param name="prefabTypeFlag">Prefab type flags</param> /// <param name="factionSpecific">To which faction is this prefab specific. Null if prefab is for all factions. Used for material (texture) set availability. </param> /// <param name="previewPointOfView">Indicates whether the preview image for this prefab should be from a different angle than normal. Use for flat objects that have incorrect default previews (such as signs). </param> protected MyPrefabConfiguration( BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, PrefabTypesFlagEnum prefabTypeFlag, MyMwcObjectBuilder_Prefab_AppearanceEnum? factionSpecific = null, bool needsUpdate = false, bool initPhysics = true, bool enabledInEditor = true, float rotatingVelocity = DEFAULT_ROTATING_VELOCITY, MySoundCuesEnum? startRotatingCue = null, MySoundCuesEnum? loopRotatingCue = null, MySoundCuesEnum? loopRotatingDamagedCue = null, MySoundCuesEnum? endRotatingCue = null, MyPreviewPointOfViewEnum previewPointOfView = MyPreviewPointOfViewEnum.Front, float minElectricCapacity = MyGameplayConstants.DEFAULT_MIN_ELECTRIC_CAPACITY, float maxElectricCapacity = MyGameplayConstants.DEFAULT_MAX_ELECTRIC_CAPACITY, MyExplosionTypeEnum explosionType = MyExplosionTypeEnum.SMALL_SHIP_EXPLOSION, float explosionRadiusMultiplier = 1.5f, float explosionDamageMultiplier = 1, float minSizeForExplosion = MyExplosionsConstants.MIN_OBJECT_SIZE_TO_CAUSE_EXPLOSION_AND_CREATE_DEBRIS, bool causesAlarm = false, bool requiresEnergy = false, float explosionParticleEffectScale = 1, bool displayHud = false) { //m_modelLod0Enum = null; m_modelLod1Enum = null; BuildType = buildType; CategoryType = categoryType; SubCategoryType = subCategoryType; MaterialType = materialType; PrefabTypeFlag = prefabTypeFlag; FactionSpecific = factionSpecific; EnabledInEditor = enabledInEditor; RotatingVelocity = rotatingVelocity; StartRotatingCue = startRotatingCue; LoopRotatingCue = loopRotatingCue; LoopRotatingDamagedCue = loopRotatingDamagedCue; EndRotatingCue = endRotatingCue; PreviewPointOfView = new MyPreviewPointOfView(previewPointOfView); MinElectricCapacity = minElectricCapacity; MaxElectricCapacity = maxElectricCapacity; NeedsUpdate = needsUpdate; InitPhysics = initPhysics; ExplosionType = explosionType; ExplosionRadiusMultiplier = explosionRadiusMultiplier; ExplosionDamage = explosionDamageMultiplier; ExplosionParticleEffectScale = explosionParticleEffectScale; MinSizeForExplosion = minSizeForExplosion; CausesAlarm = causesAlarm; RequiresEnergy = requiresEnergy; DisplayHud = displayHud; }
public MyPrefabConfigurationKinematicRotating(MyModelsEnum modelBaseLod0Enum, MyModelsEnum?modelBaseLod1Enum, MySoundCuesEnum?soundOpening, MySoundCuesEnum?soundLooping, MySoundCuesEnum?soundClosing, float rotatingVelocity, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType) : this(modelBaseLod0Enum, modelBaseLod1Enum, soundOpening, soundLooping, soundClosing, rotatingVelocity, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Default) { }
public static string ToString(MyMaterialType materialType) { switch(materialType) { case MyMaterialType.ALPHA_MASKED: return "ALPHA_MASKED"; case MyMaterialType.FORWARD: return "FORWARD"; case MyMaterialType.OPAQUE: return "OPAQUE"; case MyMaterialType.TRANSPARENT: return "TRANSPARENT"; default: return "ERROR"; } }
public MyPrefabConfigurationLight(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyLightPrefabTypeEnum type, MyModelsEnum? collisionModelEnum = null) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, type, PrefabTypesFlagEnum.Default, collisionModelEnum) { }
public MyPrefabConfigurationHangar(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyModelsEnum? collisionModel = null) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, PrefabTypesFlagEnum.Hangar, collisionModel: collisionModel) { }
public static MyMaterialTypeProperties GetMaterialProperties(MyMaterialType materialType) { return(MaterialProperties[(int)materialType]); }
void InitDebris(string hudLabelText, MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, MyMaterialType materialType, MyMwcObjectBuilder_LargeDebrisField objectBuilder, Matrix matrix) { StringBuilder hudLabelTextSb = (hudLabelText == null) ? null : new StringBuilder(hudLabelText); base.Init(hudLabelTextSb, modelLod0Enum, modelLod1Enum, null, null, objectBuilder); MyModel model = MyModels.GetModelOnlyData(modelLod0Enum); InitTrianglePhysics(materialType, 1.0f, model, null, enable: false); SetWorldMatrix(matrix); }
public static MySoundCuesEnum?GetCollisionCue(MyMaterialCollisionType type, MyMaterialType materialType1, MyMaterialType materialType2) { return(CollisionCues[(int)type, (int)materialType1, (int)materialType2]); }
internal static bool IsSortingOrderBackToFront(MyMaterialType type) { switch(type) { case MyMaterialType.TRANSPARENT: return true; default: return false; } }
public void InitPhysics(float sizeMultiplier, MyMaterialType materialType) { // Collision SPHERE - works best if miner ship is controled by human player (so we ignore high impulses after collision, good sliding along walls, etc) MyModel model = MyModels.GetModelOnlyData(m_shipTypeProperties.Visual.ModelLod0Enum); //InitSpherePhysics(objectBuilder is MyMwcObjectBuilder_SmallShip_Player ? MyMaterialType.PLAYERSHIP : m_shipTypeProperties.Visual.MaterialType, model, m_shipTypeProperties.Physics.Mass, 0, MyConstants.COLLISION_LAYER_ALL, RigidBodyFlag.RBF_DEFAULT); InitBoxPhysics(materialType, model.BoundingBox.GetCenter(), sizeMultiplier * model.BoundingBoxSize, GetPhysicsProperties().Mass, m_angularDampingDefault, MyConstants.COLLISION_LAYER_DEFAULT, RigidBodyFlag.RBF_DEFAULT); // Lets disable this because we have too many of strange bugs (shivering, inside collisions), maybe it is caused by this below if (sizeMultiplier != 1 && this != MySession.PlayerShip) { Physics.RigidBody.InertiaTensor = MyPhysicsUtils.GetSphereInertiaTensor(model.BoundingBox.Size().Length() / 2, Physics.Mass); } //this.Physics.GroupMask = this.GroupMask; this.Physics.Type = MyConstants.RIGIDBODY_TYPE_SHIP; this.Physics.PlayCollisionCueEnabled = true; //this.Physics.MaxLinearVelocity = GetEngineProperties().MaxSpeed * GetEngineProperties().AfterburnerSpeedMultiplier; this.Physics.MaxAngularVelocity = GetPhysicsProperties().MaxAngularVelocity; this.Physics.Enabled = true; this.Physics.CollisionLayer = MyConstants.COLLISION_LAYER_SMALL_SHIP; }
public MyPrefabConfigurationLight(MyModelsEnum modelLod0Enum, MyModelsEnum? modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum? subCategoryType, MyMaterialType materialType, MyLightPrefabTypeEnum type, PrefabTypesFlagEnum prefabTypesFlag, MyModelsEnum? collisionModelEnum = null) : base(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, prefabTypesFlag, previewAngle: MyPreviewPointOfViewEnum.Bottom, needsUpdate: true, collisionModelEnum: collisionModelEnum) { LightType = type; }
public MyPrefabConfigurationSound(MyModelsEnum modelLod0Enum, MyModelsEnum?modelLod1Enum, BuildTypesEnum buildType, CategoryTypesEnum categoryType, SubCategoryTypesEnum?subCategoryType, MyMaterialType materialType, MySoundCuesEnum sound) : this(modelLod0Enum, modelLod1Enum, buildType, categoryType, subCategoryType, materialType, sound, PrefabTypesFlagEnum.Default) { }