private void ChangeModelLod0(MyMwcObjectBuilder_CargoBox_TypesEnum cargoBoxType) { var modelLod0Enum = GetModelLod0EnumFromType(cargoBoxType); var modelLod0 = MyModels.GetModelForDraw(modelLod0Enum); m_modelLod0 = modelLod0; }
public void Init(string hudLabelText, MyMwcObjectBuilder_CargoBox objectBuilder, Matrix matrix) { Flags |= EntityFlags.EditableInEditor; StringBuilder hudLabelTextSb = (hudLabelText == null) ? MyTextsWrapper.Get(MyTextsWrapperEnum.CargoBox) : new StringBuilder(hudLabelText); // We want to make cargo box "lazy" to prevent rapid movement const float cargoBoxMass = 5000.0f; const float cargoAngularDamping = 0.5f; var modelLod0Enum = GetModelLod0EnumFromType(objectBuilder.CargoBoxType); base.Init(hudLabelTextSb, modelLod0Enum, null, null, null, objectBuilder); base.InitBoxPhysics(MyMaterialType.METAL, ModelLod0, cargoBoxMass, cargoAngularDamping, MyConstants.COLLISION_LAYER_DEFAULT, RigidBodyFlag.RBF_RBO_STATIC); this.Physics.LinearDamping = 0.7f; this.Physics.MaxLinearVelocity = 350; this.Physics.MaxAngularVelocity = 5; m_inventoryTemplate = objectBuilder.Inventory; if (m_inventoryTemplate != null) { Inventory.Init(m_inventoryTemplate); } CargoBoxType = objectBuilder.CargoBoxType; SetWorldMatrix(matrix); Save = true; this.Physics.Enabled = true; UpdateState(); }
public static MyModelsEnum GetModelLod0EnumFromType(MyMwcObjectBuilder_CargoBox_TypesEnum cargoBoxType) { switch (cargoBoxType) { case MyMwcObjectBuilder_CargoBox_TypesEnum.Type1: return(MyModelsEnum.cargo_box_1); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type2: return(MyModelsEnum.cargo_box_2); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type3: return(MyModelsEnum.cargo_box_3); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type4: return(MyModelsEnum.cargo_box_4); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type5: return(MyModelsEnum.cargo_box_5); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type6: return(MyModelsEnum.cargo_box_6); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type7: return(MyModelsEnum.cargo_box_7); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type8: return(MyModelsEnum.cargo_box_8); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type9: return(MyModelsEnum.cargo_box_9); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type10: return(MyModelsEnum.cargo_box_10); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type11: return(MyModelsEnum.cargo_box_11); case MyMwcObjectBuilder_CargoBox_TypesEnum.Type12: return(MyModelsEnum.cargo_box_12); case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_A: return(MyModelsEnum.CargoBox_prop_A); case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_B: return(MyModelsEnum.CargoBox_prop_B); case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_C: return(MyModelsEnum.CargoBox_prop_C); case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_D: return(MyModelsEnum.CargoBox_prop_D); case MyMwcObjectBuilder_CargoBox_TypesEnum.DroppedItems: return(MyModelsEnum.cargo_box_small); default: throw new ArgumentOutOfRangeException("cargoBoxType"); } }
protected override void SetHudMarker() { if (IsNotEmpty()) { MyHudMaxDistanceMultiplerTypes?maxDistanceMultiplerType = null; if (m_cargoBoxType == 0) { m_cargoBoxType = GetTypeFromModelLod0Enum(m_modelLod0.ModelEnum); } string displayName = GetCorrectDisplayName(ref maxDistanceMultiplerType); MyHud.ChangeText(this, new StringBuilder(displayName), MyGuitargetMode.CargoBox, 200f, MyHudIndicatorFlagsEnum.SHOW_BORDER_INDICATORS | MyHudIndicatorFlagsEnum.SHOW_DISTANCE | MyHudIndicatorFlagsEnum.SHOW_TEXT, maxDistanceMultiplerType: maxDistanceMultiplerType); } else { MyHud.RemoveText(this); } }
public static MyModelsEnum GetModelLod0EnumFromType(MyMwcObjectBuilder_CargoBox_TypesEnum cargoBoxType) { switch (cargoBoxType) { case MyMwcObjectBuilder_CargoBox_TypesEnum.Type1: return MyModelsEnum.cargo_box_1; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type2: return MyModelsEnum.cargo_box_2; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type3: return MyModelsEnum.cargo_box_3; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type4: return MyModelsEnum.cargo_box_4; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type5: return MyModelsEnum.cargo_box_5; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type6: return MyModelsEnum.cargo_box_6; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type7: return MyModelsEnum.cargo_box_7; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type8: return MyModelsEnum.cargo_box_8; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type9: return MyModelsEnum.cargo_box_9; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type10: return MyModelsEnum.cargo_box_10; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type11: return MyModelsEnum.cargo_box_11; case MyMwcObjectBuilder_CargoBox_TypesEnum.Type12: return MyModelsEnum.cargo_box_12; case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_A: return MyModelsEnum.CargoBox_prop_A; case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_B: return MyModelsEnum.CargoBox_prop_B; case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_C: return MyModelsEnum.CargoBox_prop_C; case MyMwcObjectBuilder_CargoBox_TypesEnum.TypeProp_D: return MyModelsEnum.CargoBox_prop_D; case MyMwcObjectBuilder_CargoBox_TypesEnum.DroppedItems: return MyModelsEnum.cargo_box_small; default: throw new ArgumentOutOfRangeException("cargoBoxType"); } }
protected override void SetHudMarker() { if (IsNotEmpty()) { MyHudMaxDistanceMultiplerTypes? maxDistanceMultiplerType = null; if (m_cargoBoxType == 0) m_cargoBoxType = GetTypeFromModelLod0Enum(m_modelLod0.ModelEnum); string displayName = GetCorrectDisplayName(ref maxDistanceMultiplerType); MyHud.ChangeText(this, new StringBuilder(displayName), MyGuitargetMode.CargoBox, 200f, MyHudIndicatorFlagsEnum.SHOW_BORDER_INDICATORS | MyHudIndicatorFlagsEnum.SHOW_DISTANCE | MyHudIndicatorFlagsEnum.SHOW_TEXT, maxDistanceMultiplerType: maxDistanceMultiplerType); } else { MyHud.RemoveText(this); } }
public static void WriteObjectBuilderCargoBoxTypesEnum(MyMwcObjectBuilder_CargoBox_TypesEnum val, BinaryWriter binaryWriter) { binaryWriter.Write((byte)val); }