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");
                }
            }
        }
Exemple #2
0
 //假如以输入设备为中心
 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);
 }
Exemple #3
0
        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);
        }
Exemple #4
0
 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);
     }
 }