public static MyObjectBuilder_ToolbarItem ObjectBuilderFromDefinition(MyDefinitionBase defBase) { if (defBase is MyPhysicalItemDefinition) { MyObjectBuilder_ToolbarItemWeapon weaponData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemWeapon>(); weaponData.DefinitionId = defBase.Id; return(weaponData); } else if (defBase is MyCubeBlockDefinition) { MyCubeBlockDefinition blockDef = defBase as MyCubeBlockDefinition; MyObjectBuilder_ToolbarItemCubeBlock cubeData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemCubeBlock>(); cubeData.DefinitionId = defBase.Id; return(cubeData); } else if (defBase is MyAnimationDefinition) { var animData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemAnimation>(); animData.DefinitionId = defBase.Id; return(animData); } else if (defBase is MyVoxelHandDefinition) { var vhData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemVoxelHand>(); vhData.DefinitionId = defBase.Id; return(vhData); } else if (defBase is MyPrefabThrowerDefinition) { var ptData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemPrefabThrower>(); ptData.DefinitionId = defBase.Id; return(ptData); } else if (defBase is MyBotDefinition) { var bdData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemBot>(); bdData.DefinitionId = defBase.Id; return(bdData); } else if (defBase is MyAiCommandDefinition) { var acData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemAiCommand>(); acData.DefinitionId = defBase.Id; return(acData); } else if (defBase.Id.TypeId == typeof(MyObjectBuilder_RopeDefinition)) { var ob = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemRope>(); ob.DefinitionId = defBase.Id; return(ob); } else if (defBase is MyAreaMarkerDefinition) { var acData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemAreaMarker>(); acData.DefinitionId = defBase.Id; return(acData); } return(new MyObjectBuilder_ToolbarItemEmpty()); }
public static MyToolbarItem ToItem(ToolbarItem msgItem) { MyToolbarItem item = null; if (msgItem.GunId.HasValue) { MyObjectBuilder_ToolbarItemWeapon builder = MyToolbarItemFactory.WeaponObjectBuilder(); builder.defId = msgItem.GunId.Value; item = MyToolbarItemFactory.CreateToolbarItem(builder); } else if (string.IsNullOrEmpty(msgItem.GroupName)) { MyTerminalBlock block; if (MyEntities.TryGetEntityById(msgItem.EntityID, out block)) { var builder = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block); builder._Action = msgItem.Action; builder.Parameters = msgItem.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } else { MyCubeBlock parent; if (MyEntities.TryGetEntityById(msgItem.EntityID, out parent)) { var grid = parent.CubeGrid; var groupName = msgItem.GroupName; var group = grid.GridSystems.TerminalSystem.BlockGroups.Find(x => x.Name.ToString() == groupName); if (group != null) { var builder = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(@group); builder._Action = msgItem.Action; builder.Parameters = msgItem.Parameters; builder.BlockEntityId = msgItem.EntityID; item = MyToolbarItemFactory.CreateToolbarItem(builder); } } } return(item); }
public static MyToolbarItem ToItem(ToolbarItem msgItem) { MyToolbarItem item = null; if (msgItem.GunId != null) { MyObjectBuilder_ToolbarItemWeapon data = MyToolbarItemFactory.WeaponObjectBuilder(); data.defId = msgItem.GunId.Value; item = MyToolbarItemFactory.CreateToolbarItem(data); } else if (string.IsNullOrEmpty(msgItem.GroupName)) { MyTerminalBlock block; if (Sandbox.Game.Entities.MyEntities.TryGetEntityById <MyTerminalBlock>(msgItem.EntityID, out block, false)) { MyObjectBuilder_ToolbarItemTerminalBlock data = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block); data._Action = msgItem.Action; data.Parameters = msgItem.Parameters; item = MyToolbarItemFactory.CreateToolbarItem(data); } } else { MyCubeBlock block2; if (Sandbox.Game.Entities.MyEntities.TryGetEntityById <MyCubeBlock>(msgItem.EntityID, out block2, false)) { string groupName = msgItem.GroupName; MyBlockGroup group = block2.CubeGrid.GridSystems.TerminalSystem.BlockGroups.Find(x => x.Name.ToString() == groupName); if (group != null) { MyObjectBuilder_ToolbarItemTerminalGroup data = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(group); data._Action = msgItem.Action; data.Parameters = msgItem.Parameters; data.BlockEntityId = msgItem.EntityID; item = MyToolbarItemFactory.CreateToolbarItem(data); } } } return(item); }
public static MyObjectBuilder_ToolbarItem ObjectBuilderFromDefinition(MyDefinitionBase defBase) { if (defBase is MyUsableItemDefinition) { MyObjectBuilder_ToolbarItemUsable usableData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemUsable>(); usableData.DefinitionId = defBase.Id; return(usableData); } else if ((defBase is MyPhysicalItemDefinition) && (defBase.Id.TypeId == typeof(MyObjectBuilder_PhysicalGunObject))) { MyObjectBuilder_ToolbarItemWeapon weaponData = null; // CH: TODO: This is especially ugly, I know. But it's a quick fix. To do it properly, we will need to // remove this whole method and construct the inventory items solely based upon factory tags on toolbar item types if (MyPerGameSettings.Game == GameEnum.ME_GAME) { weaponData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemMedievalWeapon>(); } else { weaponData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemWeapon>(); } weaponData.DefinitionId = defBase.Id; return(weaponData); } else if (defBase is MyCubeBlockDefinition) { MyCubeBlockDefinition blockDef = defBase as MyCubeBlockDefinition; MyObjectBuilder_ToolbarItemCubeBlock cubeData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemCubeBlock>(); cubeData.DefinitionId = defBase.Id; return(cubeData); } else if (defBase is MyAnimationDefinition) { var animData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemAnimation>(); animData.DefinitionId = defBase.Id; return(animData); } else if (defBase is MyVoxelHandDefinition) { var vhData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemVoxelHand>(); vhData.DefinitionId = defBase.Id; return(vhData); } else if (defBase is MyPrefabThrowerDefinition) { var ptData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemPrefabThrower>(); ptData.DefinitionId = defBase.Id; return(ptData); } else if (defBase is MyBotDefinition) { var bdData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemBot>(); bdData.DefinitionId = defBase.Id; return(bdData); } else if (defBase is MyAiCommandDefinition) { var acData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemAiCommand>(); acData.DefinitionId = defBase.Id; return(acData); } else if (defBase.Id.TypeId == typeof(MyObjectBuilder_RopeDefinition)) { var ob = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemRope>(); ob.DefinitionId = defBase.Id; return(ob); } else if (defBase is MyAreaMarkerDefinition) { var acData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemAreaMarker>(); acData.DefinitionId = defBase.Id; return(acData); } else if (defBase is MyGridCreateToolDefinition) { var gctool = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemCreateGrid>(); gctool.DefinitionId = defBase.Id; return(gctool); } return(new MyObjectBuilder_ToolbarItemEmpty()); }
public static MyObjectBuilder_ToolbarItemWeapon WeaponObjectBuilder() { MyObjectBuilder_ToolbarItemWeapon output = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemWeapon>(); return(output); }