public MainWindow()
        {
            InitializeComponent();
            pg = ttt;


            ss.Add("A");
            ss.Add("B");
            ss.Add("C");

            EObjectType e = (EObjectType)Enum.Parse(typeof(EObjectType), "1");

            timer.Interval = TimeSpan.FromMilliseconds(10);
            timer.Tick    += TickTest;
            TextBox tb = new TextBox()
            {
                IsEnabled = true
            }; tb.KeyDown += sendtest;

            bb.DictionaryValues.Add(new Tuple <string, object, Control>("Text", "data", tb));
            bb.DictionaryValues.Add(new Tuple <string, object, Control>("ComboBox", new List <String>()
            {
                "one", "two", "three"
            }, new ComboBox()));
            bb.DictionaryValues.Add(new Tuple <string, object, Control>("CheckBox", true, new CheckBox()));
            //bb.DictionaryValues.Add(new Tuple<string, object, Control>("Custom", null, new DropDownCustomColorPicker.CustomColorPicker()));
        }
Example #2
0
        public static bool Prefix(PlayerControlGizmo __instance, EObjectType tarType, int tarId)
        {
            if (__instance.mouseOverTargetType == tarType && __instance.mouseOverTargetId == tarId)
            {
                return(true);
            }
            if (tarId == 0 || tarType != EObjectType.Entity)
            {
                return(true);
            }

            PlanetFactory factory    = __instance.player.factory;
            EntityData    entityData = factory.entityPool[tarId];

            if (entityData.id == 0)
            {
                return(true);
            }

            ItemProto itemProto = LDB.items.Select(entityData.protoId);

            if (itemProto.ModelCount > 1)
            {
                __instance.mouseOverTargetType = tarType;
                __instance.mouseOverTargetId   = tarId;
                if (__instance.mouseOverTargetGizmo != null)
                {
                    __instance.mouseOverTargetGizmo.Close();
                    __instance.mouseOverTargetGizmo = null;
                }

                if (__instance.mouseOverBuildingGizmo != null)
                {
                    __instance.mouseOverBuildingGizmo.Close();
                    __instance.mouseOverBuildingGizmo = null;
                }

                if (__instance.mouseOverMinerGizmo != null)
                {
                    __instance.mouseOverMinerGizmo.Close();
                    __instance.mouseOverMinerGizmo = null;
                }

                ModelProto proto = LDB.models.modelArray[entityData.modelIndex];
                __instance.mouseOverBuildingGizmo                 = BoxGizmo.Create(entityData.pos, entityData.rot, proto.prefabDesc.selectCenter, proto.prefabDesc.selectSize);
                __instance.mouseOverBuildingGizmo.multiplier      = 1f;
                __instance.mouseOverBuildingGizmo.alphaMultiplier = proto.prefabDesc.selectAlpha;
                __instance.mouseOverBuildingGizmo.fadeInScale     = 1.3f;
                __instance.mouseOverBuildingGizmo.fadeInTime      = 0.05f;
                __instance.mouseOverBuildingGizmo.fadeInFalloff   = 0.5f;
                __instance.mouseOverBuildingGizmo.fadeOutScale    = 1.3f;
                __instance.mouseOverBuildingGizmo.fadeOutTime     = 0.05f;
                __instance.mouseOverBuildingGizmo.fadeOutFalloff  = 0.5f;
                __instance.mouseOverBuildingGizmo.color           = Color.white;
                __instance.mouseOverBuildingGizmo.Open();
                return(false);
            }

            return(true);
        }
Example #3
0
 static public List <ZDObject> HitAtObject(ZDObject Target, EObjectType Type)
 {
     if (Recorder.ContainsKey(Target))
     {
         List <ZDObject> Result       = new List <ZDObject>();
         ZDObjectRecord  TargetRecord = Recorder[Target];
         (uint, uint)Origin = TargetRecord.Location;
         ZDObject Caller = TargetRecord.Owner;
         (int, int)OffsetLoc;
         foreach (var region in Caller.Regions)
         {
             OffsetLoc = ((int)Origin.Item1 + region.Key.x, (int)Origin.Item2 + region.Key.y);
             if (IsValidMapLoc(OffsetLoc.Item1, OffsetLoc.Item2))
             {
                 List <ZDObject> GetList = RecordGrid[OffsetLoc.Item1, OffsetLoc.Item2].GetTypeList(Type);
                 if (GetList != null)
                 {
                     Result.AddRange(GetList);
                 }
             }
         }
         if (Result.Count != 0)
         {
             return(Result);
         }
         else
         {
             return(null);
         }
     }
     return(null);
 }
Example #4
0
        public static void SetMouseOverTarget(PlayerControlGizmo __instance, EObjectType tarType, int tarId)
        {
            if (Instance != null)
            {
                if (Instance._cursorTextObj == null)
                {
                    Instance._cursorTextObj = GameObject.Find("build-cursor-text")?.GetComponentInChildren <Text>();
                }

                if (tarId != 0 && tarType == EObjectType.Entity)
                {
                    PlanetFactory factory = GameMain.mainPlayer.factory;
                    if (factory != null)
                    {
                        var storageId = factory.entityPool[tarId].storageId;
                        var stationId = factory.entityPool[tarId].stationId;
                        if (storageId > 0)
                        {
                            Instance._cursorText = $"{"存储箱ID".Translate()}: {factory.index}.{storageId}";
                        }
                        else if (stationId > 0)
                        {
                            Instance._cursorText = $"{"物流站ID".Translate()}: S{factory.index}.{stationId}";
                        }
                    }
                }
                else
                {
                    Instance._cursorText = null;
                }
            }
        }
        public override void OnDeserialize(byte[] buffer, int index)
        {
            // object id
            uint objectId;

            Serializer.DeserializeData(buffer, ref index, out objectId);
            GameObjectId = objectId;

            // object type
            EObjectType type = (EObjectType)((int)buffer[index]);

            index++;

            bool isLocalPlayer = false;

            Serializer.DeserializeData(buffer, ref index, out isLocalPlayer);
            IsLocalPlayer = isLocalPlayer;

            // player linked id
            uint playerId = 0;

            Serializer.DeserializeData(buffer, ref index, out playerId);
            PlayerLinked = playerId;

            // Deserialize components
            byte componentsNumber = buffer[index];

            index++;

            for (int i = 0; i < componentsNumber; i++)
            {
                ISerializableComponent tmpComponent = GameComponentFactory.DeserializeComponent(buffer, ref index);
                Components.Add(tmpComponent);
            }
        }
Example #6
0
        /// <summary>
        /// 指定对象
        /// </summary>
        /// <param name="p_Name">1单项工程 2单位工程</param>
        /// <returns></returns>
        private bool isExist(string p_Name, EObjectType p_Type)
        {
            //1.判断对象在当前的DataSource中是否存在
            //int type = p_Type == EObjectType.UnitProject ? 2 : p_Type == EObjectType.Engineering ? 1 : 0;

            // return this.projectTrees1.bindingSource1.Cast<_Directory>().Count(info => info.NodeName == p_Name && info.Deep == type) > 0 ? true : false;
            return(false);
        }
Example #7
0
 private bool IfTypeHero(EObjectType eOT)
 {
     if ((Int32)EObjectType.HeroBegin < (Int32)eOT && (Int32)eOT < (Int32)EObjectType.NPCBegin)
     {
         return(true);
     }
     return(false);
 }
Example #8
0
 public GameObjectCreateArgs(uint gameObjectId, EObjectType type, bool isLocalPlayer, List <ISerializableComponent> componentsInfos, uint playerLinkedId)
 {
     GameObjectId    = gameObjectId;
     Type            = type;
     IsLocalPlayer   = isLocalPlayer;
     ComponentsInfos = componentsInfos;
     PlayerLinkedId  = playerLinkedId;
 }
Example #9
0
 public static Boolean IfTypeHero(EObjectType eOT)
 {
     if ((Int32)EObjectType.eObjectType_HeroBegin < (Int32)eOT && (Int32)eOT < (Int32)EObjectType.eObjectType_HeroBegin + (Int32)EConstEnum.eObjLevel1Inter)
     {
         return(true);
     }
     return(false);
 }
Example #10
0
 static public List <ZDObject> HitAtUnit(int x, int y, EObjectType Type)
 {
     (uint, uint)MapLoc = UnitToMap(x, y);
     if (MapLoc.Item1 < 0 || MapLoc.Item2 < 0 ||
         !(MapLoc.Item1 < ZDGameRule.MAP_WIDTH_UNIT && MapLoc.Item2 < ZDGameRule.MAP_HEIGHT_UNIT))
     {
         return(null);
     }
     return(RecordGrid[MapLoc.Item1, MapLoc.Item2].GetTypeList(Type));
 }
Example #11
0
 static public List <ZDObject> HitAt(int x, int y, ZDObject Caller, EObjectType Type)
 {
     (uint, uint)MapLoc = Recorder[Caller].Location;
     x += (int)MapLoc.Item1;
     y += (int)MapLoc.Item2;
     if (x < 0 || y < 0 || !(x < ZDGameRule.MAP_WIDTH_UNIT && y < ZDGameRule.MAP_HEIGHT_UNIT))
     {
         return(null);
     }
     return(RecordGrid[x, y].GetTypeList(Type));
 }
Example #12
0
        public MainWindow()
        {
            InitializeComponent();
            pg = ttt;


            ss.Add("A");
            ss.Add("B");
            ss.Add("C");

            EObjectType e = (EObjectType)Enum.Parse(typeof(EObjectType), "1");
        }
Example #13
0
 protected InteractiveObject(Int32 p_staticID, EObjectType p_objectType, Int32 p_spawnerID) : base(p_staticID, p_objectType, p_spawnerID)
 {
     m_originalPosition     = new Position(-1, -1);
     m_commands             = new List <SpawnCommand>();
     m_interactions         = new List <BaseInteraction>();
     m_questObjectives      = new List <SpawnQuestObjective>();
     m_trapEffectSpawnerIDs = new List <Int32>();
     m_stateMachine         = new StateMachine <EState>();
     m_stateMachine.AddState(new State <EState>(EState.IDLE));
     m_stateMachine.AddState(new State <EState>(EState.RUNNING));
     m_stateMachine.AddState(new State <EState>(EState.AFTER_RUNNING));
     m_stateMachine.AddState(new State <EState>(EState.FINISHED));
     m_stateMachine.ChangeState(EState.IDLE);
 }
Example #14
0
 internal static string TypeString(EObjectType aType)
 {
     switch (aType)
     {
         case EObjectType.Blob:
             return ("blob");
         case EObjectType.Commit:
             return ("commit");
         case EObjectType.Tree:
             return ("tree");
         case EObjectType.Tag:
             return ("tag");
         default:
             throw (new GitException("Unknown object type"));
     }
 }
Example #15
0
        public static IGameObjectPrototype GetPrototype(EObjectType objectType)
        {
            if (gameObjects == null)
            {
                Initialize();
            }

            if (gameObjects.ContainsKey(objectType))
            {
                return(gameObjects[objectType]);
            }
            else
            {
                Console.WriteLine("Object of type required doesn't exists in the factory");
                return(null);
            }
        }
Example #16
0
        private bool IsPreservedType(EObjectType Type)
        {
            switch (Type)
            {
            case EObjectType.ACollect:
                break;

            case EObjectType.ADamage:
                break;

            case EObjectType.Character:
                break;

            default:
                return(false);
            }
            return(true);
        }
Example #17
0
        protected GridSlot GetMoveTarget(List <GridSlot> p_movePath)
        {
            Grid                   grid       = LegacyLogic.Instance.MapLoader.Grid;
            EObjectType            type       = (Brain.Data.AITargets != EAITarget.Monster) ? EObjectType.PARTY : EObjectType.MONSTER;
            List <GridSlot>        list       = new List <GridSlot>();
            IEnumerable <GridSlot> enumerable = grid.SlotIteratorAround(Controller.Position, Brain.Data.AIRange);

            foreach (GridSlot gridSlot in enumerable)
            {
                if (gridSlot.CountEntityTypes(type) > 0)
                {
                    list.Add(gridSlot);
                }
            }
            if (list.Count > 1)
            {
                list.Sort(delegate(GridSlot a, GridSlot b)
                {
                    Int32 num = Position.DistanceSquared(Controller.Position, a.Position).CompareTo(Position.DistanceSquared(Controller.Position, b.Position));
                    if (num == 0)
                    {
                        return(b.CountEntityTypes(type).CompareTo(a.CountEntityTypes(type)));
                    }
                    return(num);
                });
            }
            if (list.Count > 0)
            {
                foreach (GridSlot gridSlot2 in list)
                {
                    p_movePath.Clear();
                    if (grid.CalculateMovablePath(Controller, gridSlot2.Position, p_movePath) <= Brain.Data.AIRange)
                    {
                        if (p_movePath.Count > 0)
                        {
                            p_movePath.RemoveAt(0);
                        }
                        return(gridSlot2);
                    }
                }
            }
            p_movePath.Clear();
            return(null);
        }
Example #18
0
        /*
         * /// <summary>
         * ///【公共属性】获取配置信息对象
         * /// </summary>
         * public virtual _ObjMetaanalysis ObjMetaanalysis
         * {
         *  get
         *  {
         *      return this.Parent.DataObject.Get("通用汇总分析") as _ObjMetaanalysis;
         *  }
         *  set
         *  {
         *      this.Parent.DataObject.Set("通用汇总分析", value);
         *  }
         * }*/

        /// <summary>
        /// 当前业务对象中是否存指定名称的业务对象(默认查找当前对象的字典中的所有对象包括:单项工程,单位工程)
        /// </summary>
        /// <param name="p_Name">名称</param>
        /// <param name="p_TypeName">类型名称0,1,2可多选</param>
        /// <returns>是否存在</returns>
        public virtual bool IsExist(string p_Code, EObjectType p_ObjectType)
        {
            foreach (_COBJECTS item in this.Parent.StrustObject.ObjectList.Values)
            {
                if (p_ObjectType == EObjectType.Engineering)
                {
                    if (item.Property.Basis.CODE == p_Code)
                    {
                        return(true);
                    }
                }
                if (p_ObjectType == EObjectType.UnitProject)
                {
                    if (item.Property.IsExist(p_Code, p_ObjectType))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
Example #19
0
        public static bool OnPlayerInspecteeChange(UIGame __instance, EObjectType objType, int objId)
        {
            if (Instance != null)
            {
                if (Instance._inspectingStorage)
                {
                    if (objType == EObjectType.Entity)
                    {
                        // Trying to inspect another object
                        if (objId != 0)
                        {
                            var factory   = GameMain.mainPlayer.factory;
                            var storageId = factory?.entityPool[objId].storageId;
                            var stationId = factory?.entityPool[objId].stationId;
                            // The other object is another storage
                            if (storageId > 0)
                            {
                                Instance.CloseStorage();
                                return(true);
                            }

                            if (stationId > 0)
                            {
                                Instance.CloseStation();
                                return(true);
                            }
                        }
                        else // PlayerAction_Inspect.InspectNothing()  e.g., in space
                        {
                            // Prevent storage ID set to 0, which closes the window.
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }
Example #20
0
            /// <summary>
            /// Extract from RaycastLogic::GameTick
            /// Use to filter buidling
            /// </summary>
            public static void Select(RaycastLogic __instance, BuildingFilter filter)
            {
                int activeColHashCount = Traverse.Create((object)__instance).Field("activeColHashCount").GetValue <int>();

                int[] activeColHashes         = Traverse.Create((object)__instance).Field("activeColHashes").GetValue <int[]>();
                ColliderContainer[] colChunks = Traverse.Create((object)__instance).Field("colChunks").GetValue <ColliderContainer[]>();

                if (!__instance.doCast || GameMain.localPlanet != __instance.planet || (VFInput.inFullscreenGUI || !Application.isFocused))
                {
                    return;
                }

                for (int i = 0; i < activeColHashCount; i++)
                {
                    int            activeColHash = activeColHashes[i];
                    ColliderData[] colliderPool  = colChunks[activeColHash].colliderPool;

                    for (int j = 1; j < colChunks[activeColHash].cursor; j++)
                    {
                        if (colliderPool[j].idType != 0)
                        {
                            EObjectType objType  = colliderPool[j].objType;
                            bool        typeFlag = objType == EObjectType.Vein || objType == EObjectType.Vegetable;
                            if (!typeFlag || !__instance.ignoreVegeAndVein)
                            {
                                if ((colliderPool[j].usage == EColliderUsage.Build || typeFlag) &&
                                    colliderPool[j].shape == EColliderShape.Box)
                                {
                                    //Send to filter
                                    filter(colliderPool[j]);
                                }
                            }
                        }
                    }
                }
            }
Example #21
0
 public BaseObject(Int32 p_staticID, EObjectType p_type, Int32 p_spawnerID)
 {
     m_type = p_type;
     InitBaseObject(p_staticID, p_spawnerID);
 }
Example #22
0
        public static MapObjectReader GetObjectReader(EObjectType objectType)
        {
            MapObjectReader readerObject = null;

            switch (objectType)
            {
            case EObjectType.EVENT:
                return(new CGEventReader());

            case EObjectType.HERO:
            case EObjectType.RANDOM_HERO:
            case EObjectType.PRISON:
                return(new CGHeroReader());

            case EObjectType.MONSTER:      //Monster
            case EObjectType.RANDOM_MONSTER:
            case EObjectType.RANDOM_MONSTER_L1:
            case EObjectType.RANDOM_MONSTER_L2:
            case EObjectType.RANDOM_MONSTER_L3:
            case EObjectType.RANDOM_MONSTER_L4:
            case EObjectType.RANDOM_MONSTER_L5:
            case EObjectType.RANDOM_MONSTER_L6:
            case EObjectType.RANDOM_MONSTER_L7:
                return(new CGCreatureReader());

            case EObjectType.OCEAN_BOTTLE:
            case EObjectType.SIGN:
                return(new CGSignBottleReader());

            case EObjectType.SEER_HUT:
                return(new CGSeerHutReader());

            case EObjectType.WITCH_HUT:
                return(new CGWitchHutReader());

            case EObjectType.SCHOLAR:
                return(new CGScholarReader());

            case EObjectType.GARRISON:
            case EObjectType.GARRISON2:
                return(new CGGarrisonReader());

            case EObjectType.ARTIFACT:
            case EObjectType.RANDOM_ART:
            case EObjectType.RANDOM_TREASURE_ART:
            case EObjectType.RANDOM_MINOR_ART:
            case EObjectType.RANDOM_MAJOR_ART:
            case EObjectType.RANDOM_RELIC_ART:
            case EObjectType.SPELL_SCROLL:
                return(new CGArtifactReader());

            case EObjectType.RANDOM_RESOURCE:
            case EObjectType.RESOURCE:
                return(new CGResourceReader());

            case EObjectType.RANDOM_TOWN:
            case EObjectType.TOWN:
                return(new CGTownReader());

            case EObjectType.MINE:
            case EObjectType.ABANDONED_MINE:
                return(new CGMineReader());

            case EObjectType.CREATURE_GENERATOR1:
            case EObjectType.CREATURE_GENERATOR2:
            case EObjectType.CREATURE_GENERATOR3:
            case EObjectType.CREATURE_GENERATOR4:
                return(new CGDwellingSimpleReader());

            case EObjectType.SHRINE_OF_MAGIC_GESTURE:
            case EObjectType.SHRINE_OF_MAGIC_INCANTATION:
            case EObjectType.SHRINE_OF_MAGIC_THOUGHT:
                return(new CGShrineReader());

            case EObjectType.PANDORAS_BOX:
                return(new CGPandoraBoxReader());

            case EObjectType.GRAIL:
                return(new CGGrailReader());

            case EObjectType.RANDOM_DWELLING:
            case EObjectType.RANDOM_DWELLING_FACTION:
            case EObjectType.RANDOM_DWELLING_LVL:
                return(new CGDwellingReader());

            case EObjectType.QUEST_GUARD:
                return(new CGQuestGuardReader());

            case EObjectType.SHIPYARD:
                return(new CGShipyardReader());

            case EObjectType.HERO_PLACEHOLDER:
                return(new CGHeroPlaceholderReader());

            case EObjectType.BORDERGUARD:
                return(new CGBorderGuardReader());

            case EObjectType.BORDER_GATE:
                return(new CGBorderGateReader());

            case EObjectType.PYRAMID:
                return(new CGPyramidReader());

            case EObjectType.LIGHTHOUSE:
                return(new CGLightHouseReader());

            default:
                break;
            }

            return(readerObject);
        }
Example #23
0
        public void Load(SaveGameData p_data)
        {
            m_name = p_data.Get <String>("Name", null);
            Int32 num = p_data.Get <Int32>("ObjectCount", 0);

            for (Int32 i = 0; i < num; i++)
            {
                SaveGameData saveGameData = p_data.Get <SaveGameData>("InteractiveObject" + i, null);
                if (saveGameData != null)
                {
                    try
                    {
                        Int32             p_staticID        = saveGameData.Get <Int32>("StaticID", 0);
                        Int32             p_spawnID         = saveGameData.Get <Int32>("SpawnerID", 0);
                        EObjectType       p_type            = saveGameData.Get <EObjectType>("ObjectType", EObjectType.NONE);
                        InteractiveObject interactiveObject = (InteractiveObject)EntityFactory.Create(p_type, p_staticID, p_spawnID);
                        interactiveObject.Load(saveGameData);
                        m_objects.Add(interactiveObject);
                    }
                    catch (Exception p_message)
                    {
                        LegacyLogger.LogError(p_message);
                    }
                }
            }
            Int32 num2 = p_data.Get <Int32>("MonsterCount", 0);

            for (Int32 j = 0; j < num2; j++)
            {
                SaveGameData saveGameData2 = p_data.Get <SaveGameData>("Monster" + j, null);
                if (saveGameData2 != null)
                {
                    try
                    {
                        Monster monster = new Monster();
                        monster.Load(saveGameData2);
                        m_monster.Add(monster);
                    }
                    catch (Exception p_message2)
                    {
                        LegacyLogger.LogError(p_message2);
                    }
                }
            }
            SaveGameData saveGameData3 = p_data.Get <SaveGameData>("InvalidSpawns", null);

            if (saveGameData3 != null)
            {
                List <Int32> collection = SaveGame.CreateArrayFromData <Int32>(saveGameData3);
                m_invalidSpawns.AddRange(collection);
            }
            SaveGameData saveGameData4 = p_data.Get <SaveGameData>("TerrainMatrix", null);

            if (saveGameData4 != null)
            {
                m_terrainDataHeight = saveGameData4.Get <Int32>("MatrixHeight", 0);
                m_terrainDataWidth  = saveGameData4.Get <Int32>("MatrixWidth", 0);
                m_terrainData       = new TerrainTypeData[m_terrainDataWidth * m_terrainDataHeight];
                for (Int32 k = 0; k < m_terrainDataHeight; k++)
                {
                    for (Int32 l = 0; l < m_terrainDataWidth; l++)
                    {
                        SaveGameData saveGameData5 = saveGameData4.Get <SaveGameData>(String.Concat(new Object[]
                        {
                            "terrain_",
                            l,
                            "_",
                            k
                        }), null);
                        if (saveGameData5 != null)
                        {
                            TerrainTypeData terrainTypeData = default(TerrainTypeData);
                            terrainTypeData.Load(saveGameData5);
                            m_terrainData[k * m_terrainDataWidth + l] = terrainTypeData;
                        }
                    }
                }
            }
        }
Example #24
0
 internal Object(EObjectType aType, byte[] aContents)
 {
     iType = aType;
     iContents = aContents;
 }
Example #25
0
 internal static byte TypeByte(EObjectType aType)
 {
     return ((byte)aType);
 }
Example #26
0
        internal string WriteObject(byte[] aContent, EObjectType aType)
        {
            byte zero = 0;
            byte space = (byte)' ';
            byte[] type = Object.TypeBytes(aType);
            byte[] length = ASCIIEncoding.ASCII.GetBytes(aContent.Length.ToString());
            byte[] obj = new byte[type.Length + length.Length + aContent.Length + 2];

            Array.Copy(type, 0, obj, 0, type.Length);
            obj[type.Length] = space;
            Array.Copy(length, 0, obj, type.Length + 1, length.Length);
            obj[type.Length + length.Length + 1] = zero;
            Array.Copy(aContent, 0, obj, type.Length + length.Length + 2, aContent.Length);

            string id = Hash.String(iHash.Compute(obj));

            DirectoryInfo folder = iFolderObjects.CreateSubdirectory(id.Substring(0, 2));

            String path = Path.Combine(folder.FullName, id.Substring(2));

            if (File.Exists(path))
            {
                return (id);
            }

            var file = new FileStream(path, FileMode.CreateNew, FileAccess.Write);

            DeflaterOutputStream deflater = new DeflaterOutputStream(file);

            using (var writer = new BinaryWriter(deflater))
            {
                writer.Write(obj);
                deflater.Finish();
            }

            return (id);
        }
Example #27
0
        public static BaseObject Create(EObjectType p_type, Int32 p_staticID, Int32 p_spawnID)
        {
            switch (p_type)
            {
            case EObjectType.MONSTER:
                return(new Monster(p_staticID, p_spawnID));

            case EObjectType.SIGN:
                return(new Sign(p_staticID, p_spawnID));

            case EObjectType.DOOR:
                return(new Door(p_staticID, p_spawnID));

            case EObjectType.ENTRANCE:
                return(new Entrance(p_staticID, p_spawnID));

            case EObjectType.TELEPORTER:
                return(new Teleporter(p_staticID, p_spawnID));

            case EObjectType.LEVER:
                return(new Lever(p_staticID, p_spawnID));

            case EObjectType.BUTTON:
                return(new Button(p_staticID, p_spawnID));

            case EObjectType.SENSOR:
                return(new Sensor(p_staticID, p_spawnID));

            case EObjectType.CONTAINER:
                return(new Container(p_staticID, p_spawnID));

            case EObjectType.NPC_CONTAINER:
                return(new NpcContainer(p_staticID, p_spawnID));

            case EObjectType.TRAP:
                return(new Trap(p_staticID, p_spawnID));

            case EObjectType.CONDITIONAL_TRIGGER:
                return(new ConditionalTrigger(p_staticID, p_spawnID));

            case EObjectType.CUTSCENE:
                return(new Cutscene(p_spawnID));

            case EObjectType.TRAP_EFFECT_CONTAINER:
                return(new TrapEffectContainer(p_staticID, p_spawnID));

            case EObjectType.SUMMON:
                return(new Summon(p_staticID, p_spawnID));

            case EObjectType.PRESSURE_PLATE:
                return(new PressurePlate(p_staticID, p_spawnID));

            case EObjectType.PREFAB_CONTAINER:
                return(new PrefabContainer(p_staticID, p_spawnID));

            case EObjectType.COUNTING_OBJECT:
                return(new CounterObject(p_staticID, p_spawnID));

            case EObjectType.PLATFORM:
                return(new Platform(p_staticID, p_spawnID));

            case EObjectType.PLACEHOLDER:
                return(new PlaceHolder(p_staticID, p_spawnID));

            case EObjectType.COMMAND_CONTAINER:
                return(new CommandContainer(p_staticID, p_spawnID));

            case EObjectType.BARREL:
                return(new Barrel(p_staticID, p_spawnID));

            case EObjectType.RECHARGING_OBJECT:
                return(new RechargingObject(p_staticID, p_spawnID));

            case EObjectType.SHRINE:
                return(new Shrine(p_staticID, p_spawnID));
            }
            throw new NotImplementedException(String.Concat(new Object[]
            {
                "Create unknown, ObjectType: ",
                p_type,
                "; StaticID: ",
                p_staticID,
                "; SpawnID: ",
                p_spawnID
            }));
        }
Example #28
0
 protected Button(Int32 p_staticID, EObjectType p_objectType, Int32 p_spawnerID)
     : base(p_staticID, p_objectType, p_spawnerID)
 {
     m_State = EInteractiveObjectState.BUTTON_UP;
 }
Example #29
0
 public MovingEntity(Int32 p_staticID, EObjectType p_type, Int32 p_spawnerID) : base(p_staticID, p_type, p_spawnerID)
 {
 }
Example #30
0
 internal static byte[] TypeBytes(EObjectType aType)
 {
     return (ASCIIEncoding.ASCII.GetBytes(TypeString(aType)));
 }
Example #31
0
        internal Tag(Repository aRepository, string aId, byte[] aBytes)
        {
            iRepository = aRepository;
            iId = aId;

            string id = null;
            string type = null;

            string tag = ASCIIEncoding.ASCII.GetString(aBytes);

            string[] lines = tag.Split(new char[] { '\n' });

            int offset = 1;

            foreach (string line in lines)
            {
                if (line.Length == 0)
                {
                    break;
                }

                offset += line.Length + 1;

                int keyEnd = line.IndexOf(' ');

                CorruptIf(keyEnd < 0);

                string key = line.Substring(0, keyEnd);

                string value = line.Substring(keyEnd + 1);

                switch (key)
                {
                    case "object":
                        id = value;
                        break;

                    case "type":
                        type = value;
                        break;

                    case "tag":
                        iName = value;
                        break;

                    case "tagger":
                        iTagger = PersonTime.Create(value);
                        break;

                    default:
                        CorruptIf(true);
                        break;
                }
            }

            iDescription = tag.Substring(offset);

            CorruptIf(iName == null);
            CorruptIf(iTagger == null);

            CorruptIf(id == null);
            CorruptIf(type == null);

            switch (type)
            {
                case "commit":
                    iType = EObjectType.Commit;
                    break;
                case "blob":
                    iType = EObjectType.Blob;
                    break;
                case "tree":
                    iType = EObjectType.Tree;
                    break;
                case "tag":
                    iType = EObjectType.Tag;
                    break;
                default:
                    CorruptIf(true);
                    break;
            }
        }
Example #32
0
 public IndoorSceneBase(Int32 p_staticID, EObjectType p_objectType, Int32 p_spawnerID) : base(p_staticID, p_objectType, p_spawnerID)
 {
 }
Example #33
0
 static public List <ZDObject> HitAtUnit(Vector2 UnitLoc, EObjectType Type)
 {
     return(HitAtUnit((int)UnitLoc.x, (int)UnitLoc.y, Type));
 }
Example #34
0
 static public List <ZDObject> HitAt(Vector2 input, ZDObject Caller, EObjectType Type)
 {
     return(HitAt((int)input.x, (int)input.y, Caller, Type));
 }
            // This function is based on PlayerAction_Mine.GameTick
            public void DroneGameTick()
            {
                double        powerFactor = 0.01666666753590107;
                PlanetFactory factory     = this.player.factory;

                if (factory == null)
                {
                    // This has only been seen briefly when the Render Distance mod is transitioning to or from a planet view.
                    return;
                }
                double miningEnergyCost = this.player.mecha.miningPower * powerFactor;
                double energyAvailable;
                float  fractionOfEnergyAvailable;

                this.player.mecha.QueryEnergy(miningEnergyCost, out energyAvailable, out fractionOfEnergyAvailable);
                int miningTime = (int)(this.player.mecha.miningSpeed * configSpeedScaleFactor * fractionOfEnergyAvailable * 10000f + 0.49f);

                VegeData vegeData = factory.GetVegeData(this.miningId);

                this.miningProtoId = (int)vegeData.protoId;
                VegeProto vegeProto = LDB.veges.Select((int)vegeData.protoId);

                if (vegeProto != null)
                {
                    this.miningTick += miningTime;
                    this.player.mecha.coreEnergy -= energyAvailable;
                    this.player.mecha.MarkEnergyChange(5, -miningEnergyCost);
                    this.percent = Mathf.Clamp01((float)((double)this.miningTick / (double)(vegeProto.MiningTime * 10000)));
                    if (this.miningTick >= vegeProto.MiningTime * 10000)
                    {
                        System.Random random = new System.Random(vegeData.id + ((this.player.planetData.seed & 16383) << 14));
                        bool          inventoryOverflowFlag = false;
                        int           popupQueueIndex       = 0;
                        for (int itemIdx = 0; itemIdx < vegeProto.MiningItem.Length; itemIdx++)
                        {
                            float randomMiningChance = (float)random.NextDouble();
                            if (randomMiningChance < vegeProto.MiningChance[itemIdx])
                            {
                                int minedItem      = vegeProto.MiningItem[itemIdx];
                                int minedItemCount = (int)((float)vegeProto.MiningCount[itemIdx] * (vegeData.scl.y * vegeData.scl.y) + 0.5f);
                                if (minedItemCount > 0 && LDB.items.Select(minedItem) != null)
                                {
                                    int inventoryOverflowCount = this.player.package.AddItemStacked(minedItem, minedItemCount);
                                    if (inventoryOverflowCount != 0)
                                    {
                                        UIItemup.Up(minedItem, inventoryOverflowCount);
                                        UIRealtimeTip.PopupItemGet(minedItem, inventoryOverflowCount, vegeData.pos + vegeData.pos.normalized, popupQueueIndex++);
                                    }
                                    else  // Unable to fit all items
                                    {
                                        inventoryOverflowFlag = true;
                                    }
                                }
                            }
                        }
                        VFEffectEmitter.Emit(vegeProto.MiningEffect, vegeData.pos, vegeData.rot);
                        VFAudio.Create(vegeProto.MiningAudio, null, vegeData.pos, true);
                        factory.RemoveVegeWithComponents(vegeData.id);
                        GameMain.gameScenario.NotifyOnVegetableMined((int)vegeData.protoId);
                        this.miningType = EObjectType.Entity;  // This change will cause the mission to be completed.
                        this.miningId   = 0;
                        if (inventoryOverflowFlag)
                        {
                            //Logger.LogInfo("Inventory overflow detected.");
                        }
                        this.miningTick = 0;
                    }
                }
                else
                {
                    //Logger.LogInfo("null vegeProto.  Icarus likely removed clearing target.");
                    this.miningType = EObjectType.Entity;  // This change will cause the mission to be completed.
                    this.miningId   = 0;
                    this.miningTick = 0;
                    this.percent    = 0f;
                    factory.RemoveVegeWithComponents(vegeData.id);
                }
            }