I'm coding a pokemon theme mod and would like to know how to use your framework, i have some questions :
1) I wanted to know how to set the number of days to change the texture of the pokemon, as if it had evolved (growth) 2) Is it posible to edit the name of the pokemon when they change texture ? For example from pichu => pikachu => raichu 3) Is it posible to use a specific item to change texture, like fire stone or leaf stone to "evolve" the pokemon ?
I'm new to modding and am learning from this mod creation, so i would like to thank you again !
1. You can condition any specific textures behind animal ages. You can look at the documentation for info. 2. and 3. are not possible yet unfortunately (not without writing your own C#).
Here's the translation for the latest version of the mod into Portuguese.
{ "selph.ExtraAnimalConfig.AddedToSiloMsg": "{{count}} unidades de {{displayName}} foram adicionadas ao silo.", "selph.ExtraAnimalConfig.SiloCountMsg": "Quantidade de {{displayName}}: {{count}}/{{maxCount}}", }
{ "selph.ExtraAnimalConfig.AddedToSiloMsg": "{{count}} unidades de {{displayName}} foram adicionadas ao silo.", "selph.ExtraAnimalConfig.SiloCountMsg": "Quantidade de {{displayName}}: {{count}}/{{maxCount}}", "selph.ExtraAnimalConfig.HopperEmpty": "O funil está vazio. Faça um silo para armazenar a ração e encha ele.", }
I wanted to ask if it was intended for animals that can go out in the rain to also go out when it's green rain? Would it be possible to differentiate between normal rain and more dangerous rain-based weather, like the green rain but also the Tropical Storm from Project Danger Weather, or the Acid Rain from Weather Wonders? Or would it be too complicated to implement? Thanks.
I can look into adding support for specifying condition to go out, which should be able to support Cloudy Skies (the framework)'s custom weathers. For now, at least for green rain, you can do something like patch in IgnoreRain only if it's not green rain in CP.
I have the mod installed but for some reason it's not being recognized by SMAPI. I'm getting an error that I need EAC installed to use Immersive Manurte and it's preventing me from using the mod. Any ideas what might be happening?
i can’t figure out why my frogs aren’t eating their bug meat. the hopper is placing it in the trough but they don’t eat it and are looking thin. i set the feeditemid to the qualified itemid for bug meat. the other attributes I set for them are working, like going outside in the rain and outside forager so i don’t understand why the bug meat feeding isn’t working.
Do you have Chicken Feed installed? As of the latest version that mod overrides all Coop animals' FeedItemId to Chicken Feed, and the frogs are considered coop animals so they will have that set as well. As a result they will only eat poultry feed.
The fix is to change the frog's home to be the terrarium so Chicken Feed's edit doesn't apply; that does mean however that coop animals assigned to the terrarium will then starve because they will only eat chicken feed, and FeedItemId overrides the building's hay spot override. As a result you'll have to remove Coop animals from being eligible from being put inside the terrarium. Let me know if this is acceptable, or whether I should add features to EAC to accommodate this. (But FYI I'll be out on holiday, so it'd take a month or more to implement any fix, so I suggest sticking with the "separate house" approach for now).
does the chicken feed mod override the BuildingFeedOverrideId for all buildings that house coop animals even if the building has BuildingFeedOverrideId set to something else, or does it override all coop animals feedId regardless of the building they are in?
so in the frog data i need to set the "House" field to the terrarium id, and in the terrarium data set the ValidOccupantTypes to the same id? Here's the updates i made to modify the terrarium and frog data to specify the terrarium as the allowed building/occupant: https://smapi.io/json/none/f5ef2932335e47bd8c5309288e220285 i would assume the inclusion of feedItemId to the individual frogs is redundant in this case and will remove it since the building has the buildingFeedOverrideId set already
It doesn't change the terrarium's feed override. It overrides the coops, and a small set of modded coop-like buildings, to use chicken feed, and changes the feed ID of every coop animal to be chicken feed so they can be housed in mixed-feed buildings with no overrides (but no one seems to have made such a mod yet).
Yes, you're correct that if FeedItemId isn't set the animal will use the building override next. That code looks right to me, but let me know if it doesn't work.
Hello. I have some issues with Mizu's TurkeyAfter installing this Mod (becaus of "Milkable Sheeps") the Turkey eggs turned into hay. and I'm not able to pick it up. any chance to fix this? thank you!
68 comments
I'm coding a pokemon theme mod and would like to know how to use your framework, i have some questions :
1) I wanted to know how to set the number of days to change the texture of the pokemon, as if it had evolved (growth)
2) Is it posible to edit the name of the pokemon when they change texture ? For example from pichu => pikachu => raichu
3) Is it posible to use a specific item to change texture, like fire stone or leaf stone to "evolve" the pokemon ?
I'm new to modding and am learning from this mod creation, so i would like to thank you again !
2. and 3. are not possible yet unfortunately (not without writing your own C#).
---> System.Reflection.TargetInvocationException:调用的目标引发了异常。
---> InvalidOperationException:找不到AnimalHouse_checkAction_Transpiler的入口点 - 当前状态无效
在 HarmonyLib.CodeMatcher.ThrowIfInvalid(字符串说明)
在 HarmonyLib.CodeMatcher.ThrowIfNotMatch(字符串解释, CodeMatch[] 匹配)
at Selph.StardewMods.ExtraAnimalConfig.AnimalDataPatcher.AnimalHouse_checkAction_Transpiler(IEnumerable'1 指令)
at System.Reflection.MethodBaseInvoker.InterpretedInvoke_Method(对象 obj, IntPtr* args)
在 System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span'1 copyOfArgs, BindingFlags invokeAttr)
--- 内部异常堆栈跟踪---结束
在 System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span'1 copyOfArgs, BindingFlags invokeAttr)
在 System.Reflection.MethodBaseInvoker.InvokeWithOneArg(Object obj、BindingFlags invokeAttr、Binder Binder、Object[] 参数、CultureInfo 区域性)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder Binder, Object[] parameters, CultureInfo 区域性)
在 System.Reflection.MethodBase.Invoke(Object obj, Object[] 参数)
在 HarmonyLib.CodeTranspiler.<>c__DisplayClass11_0.<GetResult>b__0(MethodInfo 转译器)
在 System.Collections.Generic.List'1[[System.Reflection.MethodInfo, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]。ForEach(Action'1作)
在 HarmonyLib.CodeTranspiler.GetResult(ILGenerator 生成器,MethodBase 方法)
at HarmonyLib.MethodBodyReader.FinalizeILCodes(发射器发射器, List'1 转译器, List'1 endLabels, Boolean& hasReturnCode, Boolean& methodEndsInDeadCode)
在HarmonyLib.MethodCopier.Finalize(发射器发射器, List'1 endLabels, Boolean& hasReturnCode, Boolean& methodEndsInDeadCode)
在HarmonyLib.MethodPatcher.CreateReplacement(Dictionary'2& finalInstructions)
在 HarmonyLib.PatchFunctions.UpdateWrapper(MethodBase 原始, PatchInfo patchInfo)
在 HarmonyLib.PatchProcessor.Patch()
在 HarmonyLib.Harmony.Patch(MethodBase 原件、HarmonyMethod 前缀、HarmonyMethod 后缀、HarmonyMethod 转译器、HarmonyMethod 终结器)
在 Selph.StardewMods.ExtraAnimalConfig.AnimalDataPatcher.ApplyPatches(和谐和声)
在 Selph.StardewMods.ExtraAnimalConfig.ModEntry.Entry(IModHelper helper)
在 StardewModdingAPI.Mobile.AndroidModLoaderManager.<>c__DisplayClass13_0.<TryStartModEntry>b__0()
在 System.Threading.Tasks.Task.InnerInvoke()
在 System.Threading.Tasks.Task.<>c.<.cctor>b__281_0(Object obj)
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback 回调, Object state)
--- 从上一个位置开始的堆栈跟踪结束---
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback 回调, Object state)
在System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- 内部异常堆栈跟踪---结束
在 StardewModdingAPI.Mobile.AndroidModLoaderManager.TryStartModEntry(IMod mod)
在 StardewModdingAPI.Framework.SCore.LoadMods(IModMetadata[] mods, JsonHelper jsonHelper, ContentCoordinator contentCore, ModDatabase modDatabase)
{
"selph.ExtraAnimalConfig.AddedToSiloMsg": "{{count}} unidades de {{displayName}} foram adicionadas ao silo.",
"selph.ExtraAnimalConfig.SiloCountMsg": "Quantidade de {{displayName}}: {{count}}/{{maxCount}}",
}
(EDIT: Whoops, forgot to add it. I'll add it in the next *next* update)
"selph.ExtraAnimalConfig.AddedToSiloMsg": "{{count}} unidades de {{displayName}} foram adicionadas ao silo.",
"selph.ExtraAnimalConfig.SiloCountMsg": "Quantidade de {{displayName}}: {{count}}/{{maxCount}}",
"selph.ExtraAnimalConfig.HopperEmpty": "O funil está vazio. Faça um silo para armazenar a ração e encha ele.",
}
For now, at least for green rain, you can do something like patch in IgnoreRain only if it's not green rain in CP.
https://smapi.io/json/none/d94af8cfa97643429a36474b82d67436
It's for the frogs from Frog Friends
The fix is to change the frog's home to be the terrarium so Chicken Feed's edit doesn't apply; that does mean however that coop animals assigned to the terrarium will then starve because they will only eat chicken feed, and FeedItemId overrides the building's hay spot override. As a result you'll have to remove Coop animals from being eligible from being put inside the terrarium. Let me know if this is acceptable, or whether I should add features to EAC to accommodate this. (But FYI I'll be out on holiday, so it'd take a month or more to implement any fix, so I suggest sticking with the "separate house" approach for now).
so in the frog data i need to set the "House" field to the terrarium id, and in the terrarium data set the ValidOccupantTypes to the same id?
Here's the updates i made to modify the terrarium and frog data to specify the terrarium as the allowed building/occupant:
https://smapi.io/json/none/f5ef2932335e47bd8c5309288e220285
i would assume the inclusion of feedItemId to the individual frogs is redundant in this case and will remove it since the building has the buildingFeedOverrideId set already
Yes, you're correct that if FeedItemId isn't set the animal will use the building override next. That code looks right to me, but let me know if it doesn't work.
:)
any chance to fix this? thank you!