Exemple #1
0
        public void Setup()
        {
            this.serviceCollection = new ServiceCollection();

            this.itemRegistryMock = new Mock <IItemRegistry>();
            this.itemRegistry     = new ItemRegistry();
        }
Exemple #2
0
 public void InitialStartup()
 {
     ItemRegistry.Initialize(new List <Type>()
     {
         typeof(StoneChunk)
     });
 }
 public static void Postfix(GameScript __instance, ref Item[] ___gatherStorage)
 {
     for (int i = 0; i < 9; i++)
     {
         AnimIcon animIcon = (AnimIcon)__instance.gatherStorageIconBack[i].GetComponent("AnimIcon");
         if ((ItemRegistry.GetTypeByID(___gatherStorage[i].id) & ItemType.LEVELING) != ItemType.LEVELING)
         {
             __instance.gatherStorageIconBack[i].SetActive(false);
             animIcon.anim = 0;
         }
         else
         {
             __instance.gatherStorageIconBack[i].GetComponent <Renderer>().material = (Material)Resources.Load("iBack" + ___gatherStorage[i].tier);
             if (___gatherStorage[i].tier == 3)
             {
                 animIcon.anim = 1;
             }
             else
             {
                 animIcon.anim = 0;
             }
             __instance.gatherStorageIconBack[i].SetActive(true);
         }
     }
 }
Exemple #4
0
 public static void Postfix(GameScript __instance, bool ___holdingCombatChip, Item ___holdingItem)
 {
     if (!___holdingCombatChip && ___holdingItem.id != 0 && ___holdingItem.q > 0)
     {
         AnimIcon animIcon = (AnimIcon)__instance.holdingItemBack.GetComponent("AnimIcon");
         if ((ItemRegistry.GetTypeByID(___holdingItem.id) & ItemType.LEVELING) != ItemType.LEVELING)
         {
             __instance.holdingItemBack.SetActive(false);
             animIcon.anim = 0;
         }
         else
         {
             __instance.holdingItemBack.GetComponent <Renderer>().material = (Material)Resources.Load("iBack" + ___holdingItem.tier);
             if (___holdingItem.tier == 3)
             {
                 animIcon.anim = 1;
             }
             else
             {
                 animIcon.anim = 0;
             }
             __instance.holdingItemBack.SetActive(true);
         }
     }
 }
 public static void Postfix(GameScript __instance, int i, ref Item[] ___inventoryQuest)
 {
     if (___inventoryQuest[i].q > 0)
     {
         AnimIcon animIcon = (AnimIcon)__instance.invQuestIconBack[i].GetComponent("AnimIcon");
         if ((ItemRegistry.GetTypeByID(___inventoryQuest[i].id) & ItemType.LEVELING) != ItemType.LEVELING)
         {
             __instance.invQuestIconBack[i].SetActive(false);
             animIcon.anim = 0;
         }
         else
         {
             __instance.invQuestIconBack[i].GetComponent <Renderer>().material = (Material)Resources.Load("iBack" + ___inventoryQuest[i].tier);
             if (___inventoryQuest[i].tier == 3)
             {
                 animIcon.anim = 1;
             }
             else
             {
                 animIcon.anim = 0;
             }
             __instance.invQuestIconBack[i].SetActive(true);
         }
     }
 }
Exemple #6
0
        private void Init()
        {
            //TODO - just a test - WORKS!
            //_installedMods.Add(new TestMod());

            GlSetup();

            _itemRegistry   = new ItemRegistry();
            _blockRegistry  = new BlockRegistry();
            _recipeRegistry = new RecipeRegistry();

            LoadMods();

            GameRegistry();

            WorldRenderer  = new WorldRenderer();
            EntityRenderer = new EntityRenderer();
            GuiRenderer    = new GuiRenderer();
            FontRenderer   = new FontRenderer();

            SettingsManager.Load();

            //load settings
            Camera.SetTargetFov(SettingsManager.GetFloat("fov"));
            _sensitivity = SettingsManager.GetFloat("sensitivity");
            WorldRenderer.RenderDistance = SettingsManager.GetInt("renderdistance");

            OpenGuiScreen(new GuiScreenMainMenu());
        }
 public static bool Prefix(GameScript __instance, ref Item[] ___craft, ref int ___craftType, int a, ref bool __result)
 {
     if (___craftType == 3)
     {
         __result = (bool)typeof(GameScript).GetMethod("CanPlaceCraft2", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { a });
         return(false);
     }
     if (ItemRegistry.GetSingleton().HasEntry(a))
     {
         ItemInfo item = ItemRegistry.GetSingleton().GetEntry(a);
         __result = true;
         for (int i = 0; i < 3; i++)
         {
             if (___craft[i].id == a)
             {
                 __result = false;
                 __instance.Error(4);
                 break;
             }
             if (___craft[i].id > 0)
             {
                 if ((ItemRegistry.GetSingleton().HasEntry(___craft[i].id) ? (int)(ItemRegistry.GetSingleton().GetEntry(a).Type & ItemType.TIER_MASK) >> 8 : ___craft[i].id % 10) != (int)(item.Type & ItemType.TIER_MASK) >> 8)
                 {
                     __result = false;
                     __instance.Error(5);
                     break;
                 }
             }
         }
         return(false);
     }
     return(true);
 }
Exemple #8
0
    public override void Setup()
    {
        base.Setup();

        // Clear any existing data
        dropdown.ClearOptions();
        optionCategoryMap.Clear();

        foreach (ItemID id in GetItemIDs())
        {
            // Get the current option
            ItemData data = ItemRegistry.Get(id);
            TMP_Dropdown.OptionData option = new TMP_Dropdown.OptionData(data.Name.Get(itemDisplayName), data.ShopItem.Icon);

            // Add the option to the dropdown and the dictionary
            dropdown.options.Add(option);
            optionCategoryMap.Add(option, id);
        }

        // Setup the value changed callback
        dropdown.onValueChanged.AddListener(SetDropdownValue);
        // Setup the value to the first one
        if (dropdown.options.Count > 0)
        {
            SetDropdownValueWithoutNotify(0);
        }
    }
Exemple #9
0
 public static void Initialize(Game1 game)
 {
     #if DEBUG
     Logger.MaskLevel = LogLevel.Trace;
     #else
     Logger.MaskLevel = LogLevel.Info;
     #endif
     Logger.Log(LogLevel.Info, "GemfruitMod", "Loading hooks...");
     HookLoader.LoadHooks();
     Logger.Log(LogLevel.Info, "GemfruitMod", "ResourceRegistry creation");
     ResourceRegistry = new ResourceRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "PlaceableRegistry creation");
     PlaceableRegistry = new PlaceableRegistry(new LocalizedContentManager(game.Content.ServiceProvider, game.Content.RootDirectory));
     Logger.Log(LogLevel.Info, "GemfruitMod", "ItemRegistry creation");
     ItemRegistry = new ItemRegistry(new LocalizedContentManager(game.Content.ServiceProvider, game.Content.RootDirectory));
     Logger.Log(LogLevel.Info, "GemfruitMod", "MonsterRegistry creation");
     MonsterRegistry = new MonsterRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "MineshaftSpawnRegistry creation");
     MineshaftSpawnRegistry = new MineshaftSpawnRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "WildernessSpawnRegistry creation");
     WildernessSpawnRegistry = new WildernessSpawnRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "PreservesRecipeRegistry creation");
     PreservesRecipeRegistry = new PreservesRecipeRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "KegRecipeRegistry creation");
     KegRecipeRegistry = new KegRecipeRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "MayonnaiseRecipeRegistry creation");
     MayonnaiseRecipeRegistry = new MayonnaiseRecipeRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "CrystalariumRecipeRegistry creation");
     CrystalariumRecipeRegistry = new CrystalariumRecipeRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "ArtifactDropRegistry creation");
     ArtifactDropRegistry = new ArtifactDropRegistry();
     Logger.Log(LogLevel.Info, "GemfruitMod", "GeodeResultRegistry creation");
     GeodeResultRegistry = new GeodeResultRegistry();
 }
    public IItem YieldItem()
    {
        hitsTaken++;

        IItem returnItem = null;

        float probability = Random.Range(0f, 1f);

        if (probability <= (expectedRocksYielded / hitsRequired))
        {
            returnItem = ItemRegistry.Instantiate(yieldedItem);
        }

        if (hitsTaken >= hitsRequired)
        {
            gameObject.SetActive(false);

            // Instantiates the mined rock prefab with the matching y rotation.
            GameObject rock = Instantiate(minedRockPrefab, transform.position, Quaternion.Euler(0, transform.rotation.y, 0));
            rock.transform.parent = parent;
            Destroy(gameObject, 0.1f);
        }

        return(returnItem);
    }
 public static void Postfix(GameScript __instance, int i, ref Item[] ___craft)
 {
     if (___craft[i].q > 0)
     {
         AnimIcon animIcon = (AnimIcon)__instance.craftIconBack[i].GetComponent("AnimIcon");
         if ((ItemRegistry.GetTypeByID(___craft[i].id) & ItemType.LEVELING) != ItemType.LEVELING)
         {
             __instance.craftIconBack[i].SetActive(false);
             animIcon.anim = 0;
         }
         else
         {
             __instance.craftIconBack[i].GetComponent <Renderer>().material = (Material)Resources.Load("iBack" + ___craft[i].tier);
             MonoBehaviour.print("(GadgetCore Patched) inviconback tier " + ___craft[i].tier);
             if (___craft[i].tier == 3)
             {
                 animIcon.anim = 1;
             }
             else
             {
                 animIcon.anim = 0;
             }
             __instance.craftIconBack[i].SetActive(true);
         }
     }
 }
Exemple #12
0
        public bool ConnectToServer(string ip, int port)
        {
            var b = ServerHandler.Connect(ip, port);

            if (b)
            {
                ParticleRenderer = new ParticleRenderer();
                SkyboxRenderer   = new SkyboxRenderer();

                BlockPos playerPos = new BlockPos(0, 100, 0);//MathUtil.NextFloat(-100, 100));

                World = new WorldClientServer();

                Player = new EntityPlayerSp(World, playerPos.ToVec());

                World.AddEntity(Player);

                Player.SetItemStackInInventory(0, new ItemStack(ItemRegistry.GetItem(BlockRegistry.GetBlock <BlockCraftingTable>())));
                ResetMouse();

                MouseState state = Mouse.GetState();
                _mouseLast = new Point(state.X, state.Y);
            }

            return(b);
        }
Exemple #13
0
        public static bool Prefix(ItemScript __instance, int[] stats, ref Item ___item, ref Package ___package)
        {
            ___item    = GadgetCoreAPI.ConstructItemFromIntArray(stats);
            ___package = new Package(___item, __instance.gameObject, __instance.localItem);
            __instance.b.GetComponent <Renderer>().material = (Material)Resources.Load("i/i" + ___item.id);
            AnimIcon animIcon = (AnimIcon)__instance.back.GetComponent("AnimIcon");

            if ((ItemRegistry.GetTypeByID(___item.id) & ItemType.LEVELING) != ItemType.LEVELING)
            {
                __instance.back.SetActive(false);
                animIcon.anim = 0;
            }
            else
            {
                __instance.back.GetComponent <Renderer>().material = (Material)Resources.Load("iBack" + ___item.tier);
                if (___item.tier == 3)
                {
                    animIcon.anim = 1;
                }
                else
                {
                    animIcon.anim = 0;
                }
                __instance.back.SetActive(true);
            }
            __instance.StartCoroutine(Burst.Invoke(__instance, new object[] { }) as IEnumerator);
            return(false);
        }
 public static void Postfix(PlayerAppearance __instance, int[] ei, int a, bool dead)
 {
     if (ei[0] >= ItemRegistry.GetSingleton().GetIDStart() && ItemRegistry.GetSingleton().HasEntry(ei[0]) && (ItemRegistry.GetSingleton().GetEntry(ei[0]).GetEntryType() & ItemType.WEAPON) == ItemType.WEAPON && GadgetCoreAPI.IsCustomResourceRegistered("ie/ie" + ei[0]))
     {
         __instance.weaponObj.GetComponent <Renderer>().material = (Material)Resources.Load("ie/ie" + ei[0]);
     }
 }
Exemple #15
0
 public void InitialStartup()
 {
     ItemRegistry.Initialize(new List <Type>()
     {
         typeof(StoneRubble),
         typeof(Log)
     });
 }
 public void Craft(CraftingRecipe recipe)
 {
     if (recipe.MaterialsPresent(inventory))
     {
         inventory = recipe.CraftFrom(inventory);
         AddToInventory(ItemRegistry.Instantiate(recipe.ProducesType));
     }
 }
Exemple #17
0
 void Start()
 {
     itemCollector = GetComponent <ItemCollector>();
     foreach (ItemType type in items)
     {
         itemCollector.AddToInventory(ItemRegistry.Instantiate(type));
     }
 }
 public static bool Prefix(GameScript __instance, int id, ref int __result)
 {
     if (ItemRegistry.GetSingleton().HasEntry(id))
     {
         __result = ItemRegistry.GetSingleton().GetEntry(id).Value;
         return(false);
     }
     return(true);
 }
 public static bool Prefix(GameScript __instance, Package package, ref IEnumerator __result)
 {
     if (ItemRegistry.GetSingleton().HasEntry(package.item.id))
     {
         __result = AddItem(__instance, package);
         return(false);
     }
     return(true);
 }
Exemple #20
0
 public static bool Prefix(GameScript __instance, int id, ref IEnumerator __result)
 {
     if (ItemRegistry.GetSingleton().HasEntry(id))
     {
         __result = AddItemGather(__instance, id);
         return(false);
     }
     return(true);
 }
Exemple #21
0
        internal ItemRegistry LoadItemRegistry(Guid dimensionID)
        {
            using (StreamReader sr = new StreamReader(WorldStorage.DimensionPaths[dimensionID] + Path.DirectorySeparatorChar + dimensionID + ".itemreg"))
            {
                ItemRegistry reg = (ItemRegistry)ProtoUtil.TypeModel.DeserializeWithLengthPrefix(sr.BaseStream, null, typeof(ItemRegistry), ProtoBuf.PrefixStyle.Base128, 0);

                return(reg);
            }
        }
Exemple #22
0
 public static bool Prefix(Projectile __instance, int dmg, ref int id, Vector3 dir)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, dmg, id, dir));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.GetSingleton() /* ProjectileRegistry */, ref id);
     return(true);
 }
Exemple #23
0
 public static bool Prefix(ItemStandScript __instance, ref int[] p)
 {
     if (!GadgetNetwork.MatrixReady && GadgetNetwork.GetTimeSinceConnect() < GadgetNetwork.MatrixTimeout)
     {
         __instance.StartCoroutine(GadgetUtils.WaitAndInvoke(RPCMethod, GadgetNetwork.MatrixTimeout - GadgetNetwork.GetTimeSinceConnect(), () => GadgetNetwork.MatrixReady, __instance, p));
         return(false);
     }
     GadgetNetwork.ConvertIDToLocal(ItemRegistry.GetSingleton(), ref p[0]);
     return(true);
 }
 public IItem YieldItem()
 {
     pickedUp = true;
     if (destroyOnYield)
     {
         gameObject.SetActive(false);
         Invoke("DoDestroy", destroyDelay);
     }
     return(ItemRegistry.Instantiate(itemType));
 }
        static void Postfix(ItemRegistry __instance, Dictionary <TaggedObjectType, List <ITaggedItem> > ___itemsByType)
        {
            Array values = Enum.GetValues(typeof(MCTaggedObjectType));

            for (int i = 0; i < values.Length; i++)
            {
                TaggedObjectType key = (TaggedObjectType)values.GetValue(i);
                ___itemsByType[key] = new List <ITaggedItem>();
            }
        }
 public static bool Prefix(PlayerScript __instance, ref bool ___attacking, ref bool ___canAttack, ref GameScript ___gameScript, ref IEnumerator __result)
 {
     if (ItemRegistry.GetSingleton().HasEntry(GameScript.equippedIDs[0]) && !___attacking && ___canAttack && !___gameScript.combatSwitching && !PlayerScript.beaming && !VanillaItemInfo.Attacking)
     {
         ItemRegistry.GetSingleton().GetEntry(GameScript.equippedIDs[0]).InvokeOnAttack(__instance);
         __result = GadgetCoreAPI.EmptyEnumerator();
         return(false);
     }
     return(true);
 }
Exemple #27
0
        public static bool Prefix(GameScript __instance, int slot, ref Item ___holdingItem, ref Item[] ___craft)
        {
            ItemInfo itemInfo        = ItemRegistry.GetSingleton().GetEntry(___holdingItem.id);
            ItemType holdingItemType = itemInfo != null ? (itemInfo.Type & (ItemType.BASIC_MASK | ItemType.TYPE_MASK)) : ItemRegistry.GetDefaultTypeByID(___holdingItem.id);

            if ((holdingItemType & ItemType.NONSTACKING) == ItemType.NONSTACKING && ___craft[slot].id == ___holdingItem.id)
            {
                return(false);
            }
            return(true);
        }
        /// <summary>
        /// This constructor is for creating a dimension identical to a dimension loaded from disk/network.
        /// </summary>
        /// <param name="dimensionName"></param>
        /// <param name="chunks"></param>
        /// <param name="id"></param>
        /// <param name="registry"></param>
        public Dimension(string dimensionName, ProtoArray <Chunk> chunks, Guid id, ItemRegistry registry)
        {
            this.ID            = id;
            this.Manager       = new ChunkManager(id, chunks);
            this.DimensionName = dimensionName;

            int dimensionID = World.AddDimension(this);

            //Anything that needs a dimensionID
            this.Items = registry;
        }
 internal void RegisterPlaceableItems(ItemRegistry r)
 {
     foreach (var fi in _dictionary.Values.Select(f => f.GetPlaceableItem()))
     {
         if (r.Get(fi.Key).IsPresent())
         {
             fi.Key = new ResourceKey(fi.Key.Namespace, fi.Key.Key + "_placeable");
         }
         r.Register(fi.Key, fi);
     }
 }
Exemple #30
0
        public static bool Prefix(GameScript __instance, int slot, ref Item ___holdingItem)
        {
            ItemInfo itemInfo        = ItemRegistry.GetSingleton().GetEntry(___holdingItem.id);
            ItemType holdingItemType = itemInfo != null ? (itemInfo.Type & (ItemType.BASIC_MASK | ItemType.TYPE_MASK)) : ItemRegistry.GetDefaultTypeByID(___holdingItem.id);

            if ((holdingItemType & ItemType.NONSTACKING) == ItemType.NONSTACKING)
            {
                SelectItemStorage.Invoke(__instance, new object[] { slot });
                return(false);
            }
            return(true);
        }
Exemple #31
0
 public override void InitItems(ItemRegistry registry)
 {
     registry.Register<TrayBasket>(TrayBasket.ID);
     registry.Register<TechBlowbot>(TechBlowbot.ID);
     registry.Register<ChargableBattery>(ChargableBattery.ID);
 }