Advertisement
StanHebben

Incinerator script

Jan 19th, 2016
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Sandbox.Common;
  7. using Sandbox.Common.Components;
  8. using Sandbox.Common.ObjectBuilders;
  9. using Sandbox.Definitions;
  10. using Sandbox.Engine;
  11. using Sandbox.Engine.Physics;
  12. using Sandbox.Engine.Multiplayer;
  13. using Sandbox.Game;
  14. using Sandbox.Game.Entities;
  15. using Sandbox.ModAPI;
  16. using Sandbox.ModAPI.Interfaces;
  17. using VRageMath;
  18. using VRage;
  19. using System.Text.RegularExpressions;
  20. using VRage.Game.Components;
  21. using VRage.ObjectBuilders;
  22. using VRage.ModAPI;
  23. using Sandbox.Game.Entities;
  24. using Sandbox.Game.Entities.Blocks;
  25. using Sandbox.Game.Entities.Cube;
  26.  
  27. namespace Incinerator
  28. {
  29. [MyEntityComponentDescriptor(typeof(MyObjectBuilder_CargoContainer), "IncineratorLarge", "IncineratorSmall")]
  30. public class Incinerator: MyGameLogicComponent
  31. {
  32. private MyObjectBuilder_EntityBase objectBuilder;
  33. private MyCubeBlock block;
  34.  
  35. public override void Init(MyObjectBuilder_EntityBase objectBuilder)
  36. {
  37. this.objectBuilder = objectBuilder;
  38. block = Entity as MyCubeBlock;
  39. Entity.NeedsUpdate = MyEntityUpdateEnum.EACH_100TH_FRAME;
  40. }
  41.  
  42. public override void UpdateBeforeSimulation100()
  43. {
  44. if (block == null)
  45. return;
  46.  
  47. MyFixedPoint capacity = block.CubeGrid.GridSizeEnum == MyCubeSize.Small ? 1000 : 25000;
  48.  
  49. List<MyPhysicalInventoryItem> items = block.Inventory.GetItems().ToList();
  50. foreach (var item in items) {
  51. MyFixedPoint amount = MyFixedPoint.Min(capacity, item.Amount);
  52. block.Inventory.RemoveItems(item.ItemId, amount);
  53. capacity -= amount;
  54. if (capacity == 0)
  55. break;
  56. }
  57. }
  58.  
  59. public override MyObjectBuilder_EntityBase GetObjectBuilder(bool copy)
  60. {
  61. return objectBuilder;
  62. }
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement