public override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap) { subsystemTimeOfDay = Project.FindSubsystem <SubsystemTimeOfDay>(); subsystemBlockEntities = Project.FindSubsystem <SubsystemBlockEntities>(); subsystemViews = Project.FindSubsystem <SubsystemViews>(); quantity = valuesDictionary.GetValue <int>("Quantity"); maxquantity = valuesDictionary.GetValue <int>("MaxQuantity"); mode = valuesDictionary.GetValue <int>("Mode"); int value = valuesDictionary.GetValue <int>("SlotsCount"); for (int i = 0; i < value; i++) { m_slots.Add(new Slot()); } ValuesDictionary value2 = valuesDictionary.GetValue <ValuesDictionary>("Slots"); for (int j = 0; j < m_slots.Count; j++) { ValuesDictionary value3 = value2.GetValue <ValuesDictionary>("Slot" + j.ToString(CultureInfo.InvariantCulture), null); if (value3 != null) { Slot slot = m_slots[j]; slot.Value = value3.GetValue <int>("Contents"); slot.Count = value3.GetValue <int>("Count"); } } }
//假如以输入设备为中心 public MyElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace_) : base(subsystemElectricity, cellFace_) { cellFace = cellFace_; //保存输入设备的坐标 subsystemBlockEntities = subsystemElectricity.Project.FindSubsystem <SubsystemBlockEntities>(); //获取该设备的实体 cptBase = subsystemBlockEntities.GetBlockEntity(cellFace.X, cellFace.Y, cellFace.Z).Entity.FindComponent <ComponentEnergyMachine>(true); cptBase.connections = subsystemItemElectric.getConlist(SubsystemElectricity.SubsystemTerrain.Terrain, cellFace.Point); }
public static bool removeMekFluidEntity(Project project, SubsystemBlockEntities subsystemBlockEntities, int x, int y, int z) { ComponentBlockEntity blockEntity = subsystemBlockEntities.GetBlockEntity(x, y, z); Vector3 position = new Vector3(x, y, z) + new Vector3(0.5f); if (blockEntity != null) { IInventory inventory = blockEntity.Entity.FindComponent <IInventory>(); if (inventory != null) { inventory.DropAllItems(position); } project.RemoveEntity(blockEntity.Entity, disposeEntity: true); } return(true); }
public override void Load(ValuesDictionary valuesDictionary) { //mesh-face //0-1//人正对黎明的太阳,方块正对人 //1-0 //2-5 //3-5 //4-11//上顶面 //5-7//下顶面 subsystemTerrain = Project.FindSubsystem <SubsystemTerrain>(true); subsystemBlockEntities = Project.FindSubsystem <SubsystemBlockEntities>(true); subsystemAudio = Project.FindSubsystem <SubsystemAudio>(true); getData(valuesDictionary.GetValue <ValuesDictionary>("PointInfo")); foreach (KeyValuePair <Point3, int> item in pointlist) { Point3 point = item.Key; if (!renderList.Contains(item.Key)) { renderList.Add(point); } } }
public override void Load(ValuesDictionary valuesDictionary) { SubsystemTerrain = base.Project.FindSubsystem <SubsystemTerrain>(true); subsystemBlockEntities = base.Project.FindSubsystem <SubsystemBlockEntities>(true); base.Load(valuesDictionary); foreach (Point3 item in valuesDictionary.GetValue <ValuesDictionary>("Devices").Values) { devices.Add(item); } foreach (ValuesDictionary pairs in valuesDictionary.GetValue <ValuesDictionary>("MutiDevices").Values) { List <Point3> points = new List <Point3>(); foreach (Point3 po in pairs.GetValue <ValuesDictionary>("Data").Values) { points.Add(po); } MutiDevices.Add(pairs.GetValue <Point3>("Point"), points); } foreach (ValuesDictionary keyValuePairs in valuesDictionary.GetValue <ValuesDictionary>("tranmitPoints").Values) { NewMutiBlockCheck.TranmitResult tranmitResult = new NewMutiBlockCheck.TranmitResult(); List <Point3> blocks = new List <Point3>(); tranmitResult.savePoint = keyValuePairs.GetValue <Point3>("savePoint"); tranmitResult.connectPoint = keyValuePairs.GetValue <Point3>("connPoint"); tranmitResult.pa = keyValuePairs.GetValue <Point3>("pa"); tranmitResult.directionIsX = keyValuePairs.GetValue <bool>("directionIsX"); tranmitResult.pb = keyValuePairs.GetValue <Point3>("pb"); foreach (Point3 point in keyValuePairs.GetValue <ValuesDictionary>("blocks").Values) { blocks.Add(point); } tranmitResult.blocks = blocks; tranmitResult.finished = true; tranmitPoints.Add(tranmitResult.savePoint, tranmitResult); } }