Slight refactor to clean up resource loading from plugins
This commit is contained in:
parent
fdfca99e71
commit
a40d85fdae
@ -77,17 +77,24 @@ public static class LibraryLoader
|
|||||||
// ReSharper disable once SuspiciousTypeConversion.Global
|
// ReSharper disable once SuspiciousTypeConversion.Global
|
||||||
var mutators = plugins.OfType<IPluginDataMutator>().ToList();
|
var mutators = plugins.OfType<IPluginDataMutator>().ToList();
|
||||||
|
|
||||||
var typesLibrary = TypeDataLoader.LoadTypeLibrary(typesResult);
|
using var typesStream = typesResult.Open();
|
||||||
var naturesLibrary = NatureDataLoader.LoadNatureLibrary(naturesResult);
|
var typesLibrary = TypeDataLoader.LoadTypeLibrary(typesStream);
|
||||||
var movesLibrary = MoveDataLoader.LoadMoves(movesResult, typesLibrary,
|
using var naturesStream = naturesResult.Open();
|
||||||
|
var naturesLibrary = NatureDataLoader.LoadNatureLibrary(naturesStream);
|
||||||
|
using var movesStream = movesResult.Open();
|
||||||
|
var movesLibrary = MoveDataLoader.LoadMoves(movesStream, typesLibrary,
|
||||||
wrapper => mutators.ForEach(x => x.MutateMoveData(wrapper)));
|
wrapper => mutators.ForEach(x => x.MutateMoveData(wrapper)));
|
||||||
var itemsLibrary = ItemDataLoader.LoadItems(itemsResult,
|
using var itemsStream = itemsResult.Open();
|
||||||
|
var itemsLibrary = ItemDataLoader.LoadItems(itemsStream,
|
||||||
items => mutators.ForEach(x => x.MutateItemData(items)));
|
items => mutators.ForEach(x => x.MutateItemData(items)));
|
||||||
var abilitiesLibrary = AbilityDataLoader.LoadAbilities(abilitiesResult,
|
using var abilitiesStream = abilitiesResult.Open();
|
||||||
|
var abilitiesLibrary = AbilityDataLoader.LoadAbilities(abilitiesStream,
|
||||||
abilities => mutators.ForEach(x => x.MutateAbilityData(abilities)));
|
abilities => mutators.ForEach(x => x.MutateAbilityData(abilities)));
|
||||||
var growthRatesLibrary = GrowthRateDataLoader.LoadGrowthRates(growthRatesResult,
|
using var growthRatesStream = growthRatesResult.Open();
|
||||||
|
var growthRatesLibrary = GrowthRateDataLoader.LoadGrowthRates(growthRatesStream,
|
||||||
growthRates => mutators.ForEach(x => x.MutateGrowthRateData(growthRates)));
|
growthRates => mutators.ForEach(x => x.MutateGrowthRateData(growthRates)));
|
||||||
var speciesLibrary = SpeciesDataLoader.LoadSpecies(speciesResult, typesLibrary,
|
using var speciesStream = speciesResult.Open();
|
||||||
|
var speciesLibrary = SpeciesDataLoader.LoadSpecies(speciesStream, typesLibrary,
|
||||||
map => mutators.ForEach(x => x.MutateSpeciesData(map)));
|
map => mutators.ForEach(x => x.MutateSpeciesData(map)));
|
||||||
|
|
||||||
return new StaticLibraryImpl(settings, speciesLibrary, movesLibrary, abilitiesLibrary, typesLibrary,
|
return new StaticLibraryImpl(settings, speciesLibrary, movesLibrary, abilitiesLibrary, typesLibrary,
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
using System.Reflection;
|
||||||
using PkmnLib.Static.Libraries;
|
using PkmnLib.Static.Libraries;
|
||||||
|
|
||||||
namespace PkmnLib.Dynamic.ScriptHandling.Registry;
|
namespace PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
@ -13,9 +14,10 @@ public interface IResourceProvider
|
|||||||
LibrarySettings? Settings { get; }
|
LibrarySettings? Settings { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the resource for the given type. This is used to load resources from the plugin.
|
/// Gets the resource for the given type. This is used to load resources from the plugin. Returns null if the
|
||||||
|
/// plugin does not provide the resource.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Stream? GetResource(ResourceFileType request);
|
IResourceResult? GetResource(ResourceFileType request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -62,4 +64,36 @@ public enum ResourceFileType
|
|||||||
/// The type for the species of Pokémon. This includes the species names and the species effects.
|
/// The type for the species of Pokémon. This includes the species names and the species effects.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Species,
|
Species,
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Interface for a resource result. This is used to load resources from the plugin.
|
||||||
|
/// </summary>
|
||||||
|
public interface IResourceResult
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Opens the resource and returns a stream. This is used to load the resource from the plugin.
|
||||||
|
/// </summary>
|
||||||
|
Stream Open();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Class for a resource result that is loaded from an embedded resource in an assembly.
|
||||||
|
/// </summary>
|
||||||
|
public class AssemblyResourceResult : IResourceResult
|
||||||
|
{
|
||||||
|
private readonly string _resourceName;
|
||||||
|
private readonly Assembly _assembly;
|
||||||
|
|
||||||
|
/// <inheritdoc cref="AssemblyResourceResult" />
|
||||||
|
public AssemblyResourceResult(string resourceName, Assembly assembly)
|
||||||
|
{
|
||||||
|
_resourceName = resourceName;
|
||||||
|
_assembly = assembly;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public Stream Open() => _assembly.GetManifestResourceStream(_resourceName) ??
|
||||||
|
throw new InvalidOperationException(
|
||||||
|
$"Resource '{_resourceName}' not found in assembly '{_assembly.FullName}'.");
|
||||||
}
|
}
|
@ -1,327 +0,0 @@
|
|||||||
{
|
|
||||||
"adaptability": {
|
|
||||||
"effect": "IncreasedStab"
|
|
||||||
},
|
|
||||||
"aerilate": {
|
|
||||||
"effect": "ChangeMoveType",
|
|
||||||
"parameters": {
|
|
||||||
"from": "normal",
|
|
||||||
"to": "flying"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"aftermath": {
|
|
||||||
"effect": "Aftermath"
|
|
||||||
},
|
|
||||||
"air_lock": {
|
|
||||||
"effect": "SuppressWeather"
|
|
||||||
},
|
|
||||||
"analytic": {
|
|
||||||
"effect": "Analytic"
|
|
||||||
},
|
|
||||||
"anger_point": {
|
|
||||||
"effect": "AngerPoint"
|
|
||||||
},
|
|
||||||
"anticipation": {
|
|
||||||
"effect": "Anticipation"
|
|
||||||
},
|
|
||||||
"arena_trap": {
|
|
||||||
"effect": "ArenaTrap"
|
|
||||||
},
|
|
||||||
"aroma_veil": {
|
|
||||||
"effect": "AromaVeil"
|
|
||||||
},
|
|
||||||
"aura_break": {
|
|
||||||
"effect": "AuraBreal"
|
|
||||||
},
|
|
||||||
"bad_dreams": {
|
|
||||||
"effect": "BadDreams"
|
|
||||||
},
|
|
||||||
"battery": {
|
|
||||||
"effect": "Battery"
|
|
||||||
},
|
|
||||||
"battle_armor": {
|
|
||||||
"effect": "PreventCritical"
|
|
||||||
},
|
|
||||||
"battle_bond": {
|
|
||||||
"effect": "BattleBond",
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"beast_boost": {
|
|
||||||
"effect": "BeastBoost"
|
|
||||||
},
|
|
||||||
"berserk": {
|
|
||||||
"effect": "Berserk"
|
|
||||||
},
|
|
||||||
"big_pecks": {
|
|
||||||
"effect": "PreventDefLowering"
|
|
||||||
},
|
|
||||||
"blaze": {
|
|
||||||
"effect": "PowerUpType",
|
|
||||||
"parameters": {
|
|
||||||
"type": "fire"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bulletproof": {
|
|
||||||
"effect": "Bulletproof"
|
|
||||||
},
|
|
||||||
"cheek_pouch": {
|
|
||||||
"effect": "CheekPouch"
|
|
||||||
},
|
|
||||||
"chlorophyll": {
|
|
||||||
"effect": "DoubleSpeedInWeather",
|
|
||||||
"parameters": {
|
|
||||||
"weather": "HarshSunlight"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"clear_body": {
|
|
||||||
"effect": "PreventStatLowering"
|
|
||||||
},
|
|
||||||
"cloud_nine": {
|
|
||||||
"effect": "SuppressWeather"
|
|
||||||
},
|
|
||||||
"color_change": {
|
|
||||||
"effect": "ColorChange"
|
|
||||||
},
|
|
||||||
"comatose": {
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"competitive": {},
|
|
||||||
"compound_eyes": {},
|
|
||||||
"contrary": {},
|
|
||||||
"corrosion": {},
|
|
||||||
"cursed_body": {},
|
|
||||||
"cute_charm": {},
|
|
||||||
"damp": {},
|
|
||||||
"dancer": {},
|
|
||||||
"dark_aura": {},
|
|
||||||
"dazzling": {},
|
|
||||||
"defeatist": {},
|
|
||||||
"defiant": {},
|
|
||||||
"delta_stream": {},
|
|
||||||
"desolate_land": {},
|
|
||||||
"disguise": {
|
|
||||||
"flags": ["cant_be_changed", "cant_be_copied"]
|
|
||||||
},
|
|
||||||
"download": {},
|
|
||||||
"drizzle": {},
|
|
||||||
"drought": {},
|
|
||||||
"dry_skin": {},
|
|
||||||
"early_bird": {},
|
|
||||||
"effect_spore": {},
|
|
||||||
"electric_surge": {},
|
|
||||||
"emergency_exit": {},
|
|
||||||
"fairy_aura": {},
|
|
||||||
"filter": {},
|
|
||||||
"flame_body": {},
|
|
||||||
"flare_boost": {},
|
|
||||||
"flash_fire": {},
|
|
||||||
"flower_gift": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
},
|
|
||||||
"flower_veil": {},
|
|
||||||
"fluffy": {},
|
|
||||||
"forecast": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
},
|
|
||||||
"forewarn": {},
|
|
||||||
"friend_guard": {},
|
|
||||||
"frisk": {},
|
|
||||||
"full_metal_body": {},
|
|
||||||
"fur_coat": {},
|
|
||||||
"gale_wings": {},
|
|
||||||
"galvanize": {},
|
|
||||||
"gluttony": {},
|
|
||||||
"gooey": {},
|
|
||||||
"grass_pelt": {},
|
|
||||||
"grassy_surge": {},
|
|
||||||
"guts": {},
|
|
||||||
"harvest": {},
|
|
||||||
"healer": {},
|
|
||||||
"heatproof": {},
|
|
||||||
"heavy_metal": {},
|
|
||||||
"honey_gather": {},
|
|
||||||
"huge_power": {},
|
|
||||||
"hustle": {},
|
|
||||||
"hydration": {},
|
|
||||||
"hyper_cutter": {},
|
|
||||||
"ice_body": {},
|
|
||||||
"illuminate": {},
|
|
||||||
"illusion": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
},
|
|
||||||
"immunity": {},
|
|
||||||
"imposter": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
},
|
|
||||||
"infiltrator": {},
|
|
||||||
"innards_out": {},
|
|
||||||
"inner_focus": {},
|
|
||||||
"insomnia": {},
|
|
||||||
"intimidate": {},
|
|
||||||
"iron_barbs": {},
|
|
||||||
"iron_fist": {},
|
|
||||||
"justified": {},
|
|
||||||
"keen_eye": {},
|
|
||||||
"klutz": {},
|
|
||||||
"leaf_guard": {},
|
|
||||||
"levitate": {},
|
|
||||||
"light_metal": {},
|
|
||||||
"lightning_rod": {},
|
|
||||||
"limber": {},
|
|
||||||
"liquid_ooze": {},
|
|
||||||
"liquid_voice": {},
|
|
||||||
"long_reach": {},
|
|
||||||
"magic_bounce": {},
|
|
||||||
"magic_guard": {},
|
|
||||||
"magician": {},
|
|
||||||
"magma_armor": {},
|
|
||||||
"magnet_pull": {},
|
|
||||||
"marvel_scale": {},
|
|
||||||
"mega_launcher": {},
|
|
||||||
"merciless": {},
|
|
||||||
"minus": {},
|
|
||||||
"misty_surge": {},
|
|
||||||
"mold_breaker": {},
|
|
||||||
"moody": {},
|
|
||||||
"motor_drive": {},
|
|
||||||
"moxie": {},
|
|
||||||
"multiscale": {},
|
|
||||||
"multitype": {
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"mummy": {},
|
|
||||||
"natural_cure": {},
|
|
||||||
"no_guard": {},
|
|
||||||
"normalize": {},
|
|
||||||
"oblivious": {},
|
|
||||||
"overcoat": {},
|
|
||||||
"overgrow": {},
|
|
||||||
"own_tempo": {},
|
|
||||||
"parental_bond": {},
|
|
||||||
"pickpocket": {},
|
|
||||||
"pickup": {},
|
|
||||||
"pixilate": {},
|
|
||||||
"plus": {},
|
|
||||||
"poison_heal": {},
|
|
||||||
"poison_point": {},
|
|
||||||
"poison_touch": {},
|
|
||||||
"power_construct": {
|
|
||||||
"flags": ["cant_be_changed", "cant_be_copied"]
|
|
||||||
},
|
|
||||||
"power_of_alchemy": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
},
|
|
||||||
"prankster": {},
|
|
||||||
"pressure": {},
|
|
||||||
"primordial_sea": {},
|
|
||||||
"prism_armor": {},
|
|
||||||
"protean": {},
|
|
||||||
"psychic_surge": {},
|
|
||||||
"pure_power": {},
|
|
||||||
"queenly_majesty": {},
|
|
||||||
"quick_feet": {},
|
|
||||||
"rain_dish": {},
|
|
||||||
"rattled": {},
|
|
||||||
"receiver": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
},
|
|
||||||
"reckless": {},
|
|
||||||
"refrigerate": {},
|
|
||||||
"regenerator": {},
|
|
||||||
"rivalry": {},
|
|
||||||
"rks_system": {
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"rock_head": {},
|
|
||||||
"rough_skin": {},
|
|
||||||
"run_away": {},
|
|
||||||
"sand_force": {},
|
|
||||||
"sand_rush": {},
|
|
||||||
"sand_stream": {},
|
|
||||||
"sand_veil": {},
|
|
||||||
"sap_sipper": {},
|
|
||||||
"schooling": {
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"scrappy": {},
|
|
||||||
"serene_grace": {},
|
|
||||||
"shadow_shield": {},
|
|
||||||
"shadow_tag": {},
|
|
||||||
"shed_skin": {},
|
|
||||||
"sheer_force": {},
|
|
||||||
"shell_armor": {},
|
|
||||||
"shield_dust": {},
|
|
||||||
"shields_down": {
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"simple": {},
|
|
||||||
"skill_link": {},
|
|
||||||
"slow_start": {},
|
|
||||||
"slush_rush": {},
|
|
||||||
"sniper": {},
|
|
||||||
"snow_cloak": {},
|
|
||||||
"snow_warning": {},
|
|
||||||
"solar_power": {},
|
|
||||||
"solid_rock": {},
|
|
||||||
"soul_heart": {},
|
|
||||||
"soundproof": {},
|
|
||||||
"speed_boost": {},
|
|
||||||
"stakeout": {},
|
|
||||||
"stall": {},
|
|
||||||
"stamina": {},
|
|
||||||
"stance_change": {
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"static": {},
|
|
||||||
"steadfast": {},
|
|
||||||
"steelworker": {},
|
|
||||||
"stench": {},
|
|
||||||
"sticky_hold": {},
|
|
||||||
"storm_drain": {},
|
|
||||||
"strong_jaw": {},
|
|
||||||
"sturdy": {},
|
|
||||||
"suction_cups": {},
|
|
||||||
"super_luck": {},
|
|
||||||
"surge_surfer": {},
|
|
||||||
"swarm": {},
|
|
||||||
"sweet_veil": {},
|
|
||||||
"swift_swim": {},
|
|
||||||
"symbiosis": {},
|
|
||||||
"synchronize": {},
|
|
||||||
"tangled_feet": {},
|
|
||||||
"tangling_hair": {},
|
|
||||||
"technician": {},
|
|
||||||
"telepathy": {},
|
|
||||||
"teravolt": {},
|
|
||||||
"thick_fat": {},
|
|
||||||
"tinted_lens": {},
|
|
||||||
"torrent": {},
|
|
||||||
"tough_claws": {},
|
|
||||||
"toxic_boost": {},
|
|
||||||
"trace": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
},
|
|
||||||
"triage": {},
|
|
||||||
"truant": {
|
|
||||||
"flags": ["cant_be_changed"]
|
|
||||||
},
|
|
||||||
"turboblaze": {},
|
|
||||||
"unaware": {},
|
|
||||||
"unburden": {},
|
|
||||||
"unnerve": {},
|
|
||||||
"victory_star": {},
|
|
||||||
"vital_spirit": {},
|
|
||||||
"volt_absorb": {},
|
|
||||||
"water_absorb": {},
|
|
||||||
"water_bubble": {},
|
|
||||||
"water_compaction": {},
|
|
||||||
"water_veil": {},
|
|
||||||
"weak_armor": {},
|
|
||||||
"white_smoke": {},
|
|
||||||
"wimp_out": {},
|
|
||||||
"wonder_guard": {},
|
|
||||||
"wonder_skin": {},
|
|
||||||
"zen_mode": {
|
|
||||||
"flags": ["cant_be_copied"]
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,614 +0,0 @@
|
|||||||
{
|
|
||||||
"Erratic": [
|
|
||||||
0,
|
|
||||||
15,
|
|
||||||
52,
|
|
||||||
122,
|
|
||||||
237,
|
|
||||||
406,
|
|
||||||
637,
|
|
||||||
942,
|
|
||||||
1326,
|
|
||||||
1800,
|
|
||||||
2369,
|
|
||||||
3041,
|
|
||||||
3822,
|
|
||||||
4719,
|
|
||||||
5737,
|
|
||||||
6881,
|
|
||||||
8155,
|
|
||||||
9564,
|
|
||||||
11111,
|
|
||||||
12800,
|
|
||||||
14632,
|
|
||||||
16610,
|
|
||||||
18737,
|
|
||||||
21012,
|
|
||||||
23437,
|
|
||||||
26012,
|
|
||||||
28737,
|
|
||||||
31610,
|
|
||||||
34632,
|
|
||||||
37800,
|
|
||||||
41111,
|
|
||||||
44564,
|
|
||||||
48155,
|
|
||||||
51881,
|
|
||||||
55737,
|
|
||||||
59719,
|
|
||||||
63822,
|
|
||||||
68041,
|
|
||||||
72369,
|
|
||||||
76800,
|
|
||||||
81326,
|
|
||||||
85942,
|
|
||||||
90637,
|
|
||||||
95406,
|
|
||||||
100237,
|
|
||||||
105122,
|
|
||||||
110052,
|
|
||||||
115015,
|
|
||||||
120001,
|
|
||||||
125000,
|
|
||||||
131324,
|
|
||||||
137795,
|
|
||||||
144410,
|
|
||||||
151165,
|
|
||||||
158056,
|
|
||||||
165079,
|
|
||||||
172229,
|
|
||||||
179503,
|
|
||||||
186894,
|
|
||||||
194400,
|
|
||||||
202013,
|
|
||||||
209728,
|
|
||||||
217540,
|
|
||||||
225443,
|
|
||||||
233431,
|
|
||||||
241496,
|
|
||||||
249633,
|
|
||||||
257834,
|
|
||||||
267406,
|
|
||||||
276458,
|
|
||||||
286328,
|
|
||||||
296358,
|
|
||||||
305767,
|
|
||||||
316074,
|
|
||||||
326531,
|
|
||||||
336255,
|
|
||||||
346965,
|
|
||||||
357812,
|
|
||||||
367807,
|
|
||||||
378880,
|
|
||||||
390077,
|
|
||||||
400293,
|
|
||||||
411686,
|
|
||||||
423190,
|
|
||||||
433572,
|
|
||||||
445239,
|
|
||||||
457001,
|
|
||||||
467489,
|
|
||||||
479378,
|
|
||||||
491346,
|
|
||||||
501878,
|
|
||||||
513934,
|
|
||||||
526049,
|
|
||||||
536557,
|
|
||||||
548720,
|
|
||||||
560922,
|
|
||||||
571333,
|
|
||||||
583539,
|
|
||||||
591882,
|
|
||||||
600000
|
|
||||||
],
|
|
||||||
"Fast": [
|
|
||||||
0,
|
|
||||||
6,
|
|
||||||
21,
|
|
||||||
51,
|
|
||||||
100,
|
|
||||||
172,
|
|
||||||
274,
|
|
||||||
409,
|
|
||||||
583,
|
|
||||||
800,
|
|
||||||
1064,
|
|
||||||
1382,
|
|
||||||
1757,
|
|
||||||
2195,
|
|
||||||
2700,
|
|
||||||
3276,
|
|
||||||
3930,
|
|
||||||
4665,
|
|
||||||
5487,
|
|
||||||
6400,
|
|
||||||
7408,
|
|
||||||
8518,
|
|
||||||
9733,
|
|
||||||
11059,
|
|
||||||
12500,
|
|
||||||
14060,
|
|
||||||
15746,
|
|
||||||
17561,
|
|
||||||
19511,
|
|
||||||
21600,
|
|
||||||
23832,
|
|
||||||
26214,
|
|
||||||
28749,
|
|
||||||
31443,
|
|
||||||
34300,
|
|
||||||
37324,
|
|
||||||
40522,
|
|
||||||
43897,
|
|
||||||
47455,
|
|
||||||
51200,
|
|
||||||
55136,
|
|
||||||
59270,
|
|
||||||
63605,
|
|
||||||
68147,
|
|
||||||
72900,
|
|
||||||
77868,
|
|
||||||
83058,
|
|
||||||
88473,
|
|
||||||
94119,
|
|
||||||
100000,
|
|
||||||
106120,
|
|
||||||
112486,
|
|
||||||
119101,
|
|
||||||
125971,
|
|
||||||
133100,
|
|
||||||
140492,
|
|
||||||
148154,
|
|
||||||
156089,
|
|
||||||
164303,
|
|
||||||
172800,
|
|
||||||
181584,
|
|
||||||
190662,
|
|
||||||
200037,
|
|
||||||
209715,
|
|
||||||
219700,
|
|
||||||
229996,
|
|
||||||
240610,
|
|
||||||
251545,
|
|
||||||
262807,
|
|
||||||
274400,
|
|
||||||
286328,
|
|
||||||
298598,
|
|
||||||
311213,
|
|
||||||
324179,
|
|
||||||
337500,
|
|
||||||
351180,
|
|
||||||
365226,
|
|
||||||
379641,
|
|
||||||
394431,
|
|
||||||
409600,
|
|
||||||
425152,
|
|
||||||
441094,
|
|
||||||
457429,
|
|
||||||
474163,
|
|
||||||
491300,
|
|
||||||
508844,
|
|
||||||
526802,
|
|
||||||
545177,
|
|
||||||
563975,
|
|
||||||
583200,
|
|
||||||
602856,
|
|
||||||
622950,
|
|
||||||
643485,
|
|
||||||
664467,
|
|
||||||
685900,
|
|
||||||
707788,
|
|
||||||
730138,
|
|
||||||
752953,
|
|
||||||
776239,
|
|
||||||
800000
|
|
||||||
],
|
|
||||||
"MediumFast": [
|
|
||||||
0,
|
|
||||||
8,
|
|
||||||
27,
|
|
||||||
64,
|
|
||||||
125,
|
|
||||||
216,
|
|
||||||
343,
|
|
||||||
512,
|
|
||||||
729,
|
|
||||||
1000,
|
|
||||||
1331,
|
|
||||||
1728,
|
|
||||||
2197,
|
|
||||||
2744,
|
|
||||||
3375,
|
|
||||||
4096,
|
|
||||||
4913,
|
|
||||||
5832,
|
|
||||||
6859,
|
|
||||||
8000,
|
|
||||||
9261,
|
|
||||||
10648,
|
|
||||||
12167,
|
|
||||||
13824,
|
|
||||||
15625,
|
|
||||||
17576,
|
|
||||||
19683,
|
|
||||||
21952,
|
|
||||||
24389,
|
|
||||||
27000,
|
|
||||||
29791,
|
|
||||||
32768,
|
|
||||||
35937,
|
|
||||||
39304,
|
|
||||||
42875,
|
|
||||||
46656,
|
|
||||||
50653,
|
|
||||||
54872,
|
|
||||||
59319,
|
|
||||||
64000,
|
|
||||||
68921,
|
|
||||||
74088,
|
|
||||||
79507,
|
|
||||||
85184,
|
|
||||||
91125,
|
|
||||||
97336,
|
|
||||||
103823,
|
|
||||||
110592,
|
|
||||||
117649,
|
|
||||||
125000,
|
|
||||||
132651,
|
|
||||||
140608,
|
|
||||||
148877,
|
|
||||||
157464,
|
|
||||||
166375,
|
|
||||||
175616,
|
|
||||||
185193,
|
|
||||||
195112,
|
|
||||||
205379,
|
|
||||||
216000,
|
|
||||||
226981,
|
|
||||||
238328,
|
|
||||||
250047,
|
|
||||||
262144,
|
|
||||||
274625,
|
|
||||||
287496,
|
|
||||||
300763,
|
|
||||||
314432,
|
|
||||||
328509,
|
|
||||||
343000,
|
|
||||||
357911,
|
|
||||||
373248,
|
|
||||||
389017,
|
|
||||||
405224,
|
|
||||||
421875,
|
|
||||||
438976,
|
|
||||||
456533,
|
|
||||||
474552,
|
|
||||||
493039,
|
|
||||||
512000,
|
|
||||||
531441,
|
|
||||||
551368,
|
|
||||||
571787,
|
|
||||||
592704,
|
|
||||||
614125,
|
|
||||||
636056,
|
|
||||||
658503,
|
|
||||||
681472,
|
|
||||||
704969,
|
|
||||||
729000,
|
|
||||||
753571,
|
|
||||||
778688,
|
|
||||||
804357,
|
|
||||||
830584,
|
|
||||||
857375,
|
|
||||||
884736,
|
|
||||||
912673,
|
|
||||||
941192,
|
|
||||||
970299,
|
|
||||||
1000000
|
|
||||||
],
|
|
||||||
"MediumSlow": [
|
|
||||||
0,
|
|
||||||
9,
|
|
||||||
57,
|
|
||||||
96,
|
|
||||||
135,
|
|
||||||
179,
|
|
||||||
236,
|
|
||||||
314,
|
|
||||||
419,
|
|
||||||
560,
|
|
||||||
742,
|
|
||||||
973,
|
|
||||||
1261,
|
|
||||||
1612,
|
|
||||||
2035,
|
|
||||||
2535,
|
|
||||||
3120,
|
|
||||||
3798,
|
|
||||||
4575,
|
|
||||||
5460,
|
|
||||||
6458,
|
|
||||||
7577,
|
|
||||||
8825,
|
|
||||||
10208,
|
|
||||||
11735,
|
|
||||||
13411,
|
|
||||||
15244,
|
|
||||||
17242,
|
|
||||||
19411,
|
|
||||||
21760,
|
|
||||||
24294,
|
|
||||||
27021,
|
|
||||||
29949,
|
|
||||||
33084,
|
|
||||||
36435,
|
|
||||||
40007,
|
|
||||||
43808,
|
|
||||||
47846,
|
|
||||||
52127,
|
|
||||||
56660,
|
|
||||||
61450,
|
|
||||||
66505,
|
|
||||||
71833,
|
|
||||||
77440,
|
|
||||||
83335,
|
|
||||||
89523,
|
|
||||||
96012,
|
|
||||||
102810,
|
|
||||||
109923,
|
|
||||||
117360,
|
|
||||||
125126,
|
|
||||||
133229,
|
|
||||||
141677,
|
|
||||||
150476,
|
|
||||||
159635,
|
|
||||||
169159,
|
|
||||||
179056,
|
|
||||||
189334,
|
|
||||||
199999,
|
|
||||||
211060,
|
|
||||||
222522,
|
|
||||||
234393,
|
|
||||||
246681,
|
|
||||||
259392,
|
|
||||||
272535,
|
|
||||||
286115,
|
|
||||||
300140,
|
|
||||||
314618,
|
|
||||||
329555,
|
|
||||||
344960,
|
|
||||||
360838,
|
|
||||||
377197,
|
|
||||||
394045,
|
|
||||||
411388,
|
|
||||||
429235,
|
|
||||||
447591,
|
|
||||||
466464,
|
|
||||||
485862,
|
|
||||||
505791,
|
|
||||||
526260,
|
|
||||||
547274,
|
|
||||||
568841,
|
|
||||||
590969,
|
|
||||||
613664,
|
|
||||||
636935,
|
|
||||||
660787,
|
|
||||||
685228,
|
|
||||||
710266,
|
|
||||||
735907,
|
|
||||||
762160,
|
|
||||||
789030,
|
|
||||||
816525,
|
|
||||||
844653,
|
|
||||||
873420,
|
|
||||||
902835,
|
|
||||||
932903,
|
|
||||||
963632,
|
|
||||||
995030,
|
|
||||||
1027103,
|
|
||||||
1059860
|
|
||||||
],
|
|
||||||
"Slow": [
|
|
||||||
0,
|
|
||||||
10,
|
|
||||||
33,
|
|
||||||
80,
|
|
||||||
156,
|
|
||||||
270,
|
|
||||||
428,
|
|
||||||
640,
|
|
||||||
911,
|
|
||||||
1250,
|
|
||||||
1663,
|
|
||||||
2160,
|
|
||||||
2746,
|
|
||||||
3430,
|
|
||||||
4218,
|
|
||||||
5120,
|
|
||||||
6141,
|
|
||||||
7290,
|
|
||||||
8573,
|
|
||||||
10000,
|
|
||||||
11576,
|
|
||||||
13310,
|
|
||||||
15208,
|
|
||||||
17280,
|
|
||||||
19531,
|
|
||||||
21970,
|
|
||||||
24603,
|
|
||||||
27440,
|
|
||||||
30486,
|
|
||||||
33750,
|
|
||||||
37238,
|
|
||||||
40960,
|
|
||||||
44921,
|
|
||||||
49130,
|
|
||||||
53593,
|
|
||||||
58320,
|
|
||||||
63316,
|
|
||||||
68590,
|
|
||||||
74148,
|
|
||||||
80000,
|
|
||||||
86151,
|
|
||||||
92610,
|
|
||||||
99383,
|
|
||||||
106480,
|
|
||||||
113906,
|
|
||||||
121670,
|
|
||||||
129778,
|
|
||||||
138240,
|
|
||||||
147061,
|
|
||||||
156250,
|
|
||||||
165813,
|
|
||||||
175760,
|
|
||||||
186096,
|
|
||||||
196830,
|
|
||||||
207968,
|
|
||||||
219520,
|
|
||||||
231491,
|
|
||||||
243890,
|
|
||||||
256723,
|
|
||||||
270000,
|
|
||||||
283726,
|
|
||||||
297910,
|
|
||||||
312558,
|
|
||||||
327680,
|
|
||||||
343281,
|
|
||||||
359370,
|
|
||||||
375953,
|
|
||||||
393040,
|
|
||||||
410636,
|
|
||||||
428750,
|
|
||||||
447388,
|
|
||||||
466560,
|
|
||||||
486271,
|
|
||||||
506530,
|
|
||||||
527343,
|
|
||||||
548720,
|
|
||||||
570666,
|
|
||||||
593190,
|
|
||||||
616298,
|
|
||||||
640000,
|
|
||||||
664301,
|
|
||||||
689210,
|
|
||||||
714733,
|
|
||||||
740880,
|
|
||||||
767656,
|
|
||||||
795070,
|
|
||||||
823128,
|
|
||||||
851840,
|
|
||||||
881211,
|
|
||||||
911250,
|
|
||||||
941963,
|
|
||||||
973360,
|
|
||||||
1005446,
|
|
||||||
1038230,
|
|
||||||
1071718,
|
|
||||||
1105920,
|
|
||||||
1140841,
|
|
||||||
1176490,
|
|
||||||
1212873,
|
|
||||||
1250000
|
|
||||||
],
|
|
||||||
"Fluctuating": [
|
|
||||||
0,
|
|
||||||
4,
|
|
||||||
13,
|
|
||||||
32,
|
|
||||||
65,
|
|
||||||
112,
|
|
||||||
178,
|
|
||||||
276,
|
|
||||||
393,
|
|
||||||
540,
|
|
||||||
745,
|
|
||||||
967,
|
|
||||||
1230,
|
|
||||||
1591,
|
|
||||||
1957,
|
|
||||||
2457,
|
|
||||||
3046,
|
|
||||||
3732,
|
|
||||||
4526,
|
|
||||||
5440,
|
|
||||||
6482,
|
|
||||||
7666,
|
|
||||||
9003,
|
|
||||||
10506,
|
|
||||||
12187,
|
|
||||||
14060,
|
|
||||||
16140,
|
|
||||||
18439,
|
|
||||||
20974,
|
|
||||||
23760,
|
|
||||||
26811,
|
|
||||||
30146,
|
|
||||||
33780,
|
|
||||||
37731,
|
|
||||||
42017,
|
|
||||||
46656,
|
|
||||||
50653,
|
|
||||||
55969,
|
|
||||||
60505,
|
|
||||||
66560,
|
|
||||||
71677,
|
|
||||||
78533,
|
|
||||||
84277,
|
|
||||||
91998,
|
|
||||||
98415,
|
|
||||||
107069,
|
|
||||||
114205,
|
|
||||||
123863,
|
|
||||||
131766,
|
|
||||||
142500,
|
|
||||||
151222,
|
|
||||||
163105,
|
|
||||||
172697,
|
|
||||||
185807,
|
|
||||||
196322,
|
|
||||||
210739,
|
|
||||||
222231,
|
|
||||||
238036,
|
|
||||||
250562,
|
|
||||||
267840,
|
|
||||||
281456,
|
|
||||||
300293,
|
|
||||||
315059,
|
|
||||||
335544,
|
|
||||||
351520,
|
|
||||||
373744,
|
|
||||||
390991,
|
|
||||||
415050,
|
|
||||||
433631,
|
|
||||||
459620,
|
|
||||||
479600,
|
|
||||||
507617,
|
|
||||||
529063,
|
|
||||||
559209,
|
|
||||||
582187,
|
|
||||||
614566,
|
|
||||||
639146,
|
|
||||||
673863,
|
|
||||||
700115,
|
|
||||||
737280,
|
|
||||||
765275,
|
|
||||||
804997,
|
|
||||||
834809,
|
|
||||||
877201,
|
|
||||||
908905,
|
|
||||||
954084,
|
|
||||||
987754,
|
|
||||||
1035837,
|
|
||||||
1071552,
|
|
||||||
1122660,
|
|
||||||
1160499,
|
|
||||||
1214753,
|
|
||||||
1254796,
|
|
||||||
1312322,
|
|
||||||
1354652,
|
|
||||||
1415577,
|
|
||||||
1460276,
|
|
||||||
1524731,
|
|
||||||
1571884,
|
|
||||||
1640000
|
|
||||||
]
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,26 +0,0 @@
|
|||||||
Name|Increased|Decreased
|
|
||||||
Hardy||
|
|
||||||
Lonely|Attack|Defense
|
|
||||||
Brave|Attack|Speed
|
|
||||||
Adamant|Attack|SpecialAttack
|
|
||||||
Naughty|Attack|SpecialDefense
|
|
||||||
Bold|Defense|Attack
|
|
||||||
Docile||
|
|
||||||
Relaxed|Defense|Speed
|
|
||||||
Impish|Defense|SpecialAttack
|
|
||||||
Lax|Defense|SpecialDefense
|
|
||||||
Timid|Speed|Attack
|
|
||||||
Hasty|Speed|Defense
|
|
||||||
Serious||
|
|
||||||
Jolly|Speed|SpecialAttack
|
|
||||||
Naive|Speed|SpecialDefense
|
|
||||||
Modest|SpecialAttack|Attack
|
|
||||||
Mild|SpecialAttack|Defense
|
|
||||||
Quiet|SpecialAttack|Speed
|
|
||||||
Bashful||
|
|
||||||
Rash|SpecialAttack|SpecialDefense
|
|
||||||
Calm|SpecialDefense|Attack
|
|
||||||
Gentle|SpecialDefense|Defense
|
|
||||||
Sassy|SpecialDefense|Speed
|
|
||||||
Careful|SpecialDefense|SpecialAttack
|
|
||||||
Quirky||
|
|
|
File diff suppressed because it is too large
Load Diff
@ -1,19 +0,0 @@
|
|||||||
Types|Normal|Fighting|Flying|Poison|Ground|Rock|Bug|Ghost|Steel|Fire|Water|Grass|Electric|Psychic|Ice|Dragon|Dark|Fairy
|
|
||||||
Normal|1|1|1|1|1|0.5|1|0|0.5|1|1|1|1|1|1|1|1|1
|
|
||||||
Fighting|2|1|0.5|0.5|1|2|0.5|0|2|1|1|1|1|0.5|2|1|2|0.5
|
|
||||||
Flying|1|2|1|1|1|0.5|2|1|0.5|1|1|2|0.5|1|1|1|1|1
|
|
||||||
Poison|1|1|1|0.5|0.5|0.5|1|0.5|0|1|1|2|1|1|1|1|1|2
|
|
||||||
Ground|1|1|0|2|1|2|0.5|1|2|2|1|0.5|2|1|1|1|1|1
|
|
||||||
Rock|1|0.5|2|1|0.5|1|2|1|0.5|2|1|1|1|1|2|1|1|1
|
|
||||||
Bug|1|0.5|0.5|0.5|1|1|1|0.5|0.5|0.5|1|2|1|2|1|1|2|0.5
|
|
||||||
Ghost|0|1|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|1
|
|
||||||
Steel|1|1|1|1|1|2|1|1|0.5|0.5|0.5|1|0.5|1|2|1|1|2
|
|
||||||
Fire|1|1|1|1|1|0.5|2|1|2|0.5|0.5|2|1|1|2|0.5|1|1
|
|
||||||
Water|1|1|1|1|2|2|1|1|1|2|0.5|0.5|1|1|1|0.5|1|1
|
|
||||||
Grass|1|1|0.5|0.5|2|2|0.5|1|0.5|0.5|2|0.5|1|1|1|0.5|1|1
|
|
||||||
Electric|1|1|2|1|0|1|1|1|1|1|2|0.5|0.5|1|1|0.5|1|1
|
|
||||||
Psychic|1|2|1|2|1|1|1|1|0.5|1|1|1|1|0.5|1|1|0|1
|
|
||||||
Ice|1|1|2|1|2|1|1|1|0.5|0.5|0.5|2|1|1|0.5|2|1|1
|
|
||||||
Dragon|1|1|1|1|1|1|1|1|0.5|1|1|1|1|1|1|2|1|0
|
|
||||||
Dark|1|0.5|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|0.5
|
|
||||||
Fairy|1|2|1|0.5|1|1|1|1|0.5|0.5|1|1|1|1|1|2|2|1
|
|
|
@ -40,7 +40,7 @@ public class MoveDataTests
|
|||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
// Helper method to find the line number of the effect in the JSON file
|
// Helper method to find the line number of the effect in the JSON file
|
||||||
var file = Path.GetFullPath("../../../../PkmnLib.Tests/Data/Moves.jsonc");
|
var file = Path.GetFullPath("../../../../Plugins/PkmnLib.Plugin.Gen7/Data/Moves.jsonc");
|
||||||
var json = await File.ReadAllLinesAsync(file);
|
var json = await File.ReadAllLinesAsync(file);
|
||||||
var moveLineNumber = json.Select((line, index) => new { line, index })
|
var moveLineNumber = json.Select((line, index) => new { line, index })
|
||||||
.FirstOrDefault(x => x.line.Contains($"\"name\": \"{test.Move.Name}\""))?.index + 1;
|
.FirstOrDefault(x => x.line.Contains($"\"name\": \"{test.Move.Name}\""))?.index + 1;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||||
|
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
|
|
||||||
namespace PkmnLib.Tests.Dataloader;
|
namespace PkmnLib.Tests.Dataloader;
|
||||||
|
|
||||||
@ -7,7 +8,9 @@ public class AbilityDataLoaderTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task TestPrimaryAbilityFile()
|
public async Task TestPrimaryAbilityFile()
|
||||||
{
|
{
|
||||||
await using var stream = File.OpenRead("Data/Abilities.json");
|
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||||
|
var result = plugin.GetResource(ResourceFileType.Abilities)!;
|
||||||
|
await using var stream = result.Open();
|
||||||
var library = AbilityDataLoader.LoadAbilities(stream);
|
var library = AbilityDataLoader.LoadAbilities(stream);
|
||||||
await Assert.That(library).IsNotNull();
|
await Assert.That(library).IsNotNull();
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||||
|
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
|
|
||||||
namespace PkmnLib.Tests.Dataloader;
|
namespace PkmnLib.Tests.Dataloader;
|
||||||
|
|
||||||
@ -7,7 +8,9 @@ public class GrowthRateDataLoaderTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task TestPrimaryGrowthRateFile()
|
public async Task TestPrimaryGrowthRateFile()
|
||||||
{
|
{
|
||||||
await using var file = File.Open("Data/GrowthRates.json", FileMode.Open, FileAccess.Read, FileShare.Read);
|
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||||
|
var result = plugin.GetResource(ResourceFileType.GrowthRates)!;
|
||||||
|
await using var file = result.Open();
|
||||||
var library = GrowthRateDataLoader.LoadGrowthRates(file);
|
var library = GrowthRateDataLoader.LoadGrowthRates(file);
|
||||||
await Assert.That(library).IsNotNull();
|
await Assert.That(library).IsNotNull();
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||||
|
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
|
|
||||||
namespace PkmnLib.Tests.Dataloader;
|
namespace PkmnLib.Tests.Dataloader;
|
||||||
|
|
||||||
@ -7,7 +8,9 @@ public class ItemDataLoaderTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task TestPrimaryItemFile()
|
public async Task TestPrimaryItemFile()
|
||||||
{
|
{
|
||||||
await using var stream = File.OpenRead("Data/Items.json");
|
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||||
|
var result = plugin.GetResource(ResourceFileType.Items)!;
|
||||||
|
await using var stream = result.Open();
|
||||||
var library = ItemDataLoader.LoadItems(stream);
|
var library = ItemDataLoader.LoadItems(stream);
|
||||||
await Assert.That(library).IsNotNull();
|
await Assert.That(library).IsNotNull();
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||||
|
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
using PkmnLib.Static.Libraries;
|
using PkmnLib.Static.Libraries;
|
||||||
|
|
||||||
namespace PkmnLib.Tests.Dataloader;
|
namespace PkmnLib.Tests.Dataloader;
|
||||||
@ -8,7 +9,9 @@ public class MoveDataLoaderTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task TestPrimaryMoveFile()
|
public async Task TestPrimaryMoveFile()
|
||||||
{
|
{
|
||||||
await using var stream = File.OpenRead("Data/Moves.jsonc");
|
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||||
|
var result = plugin.GetResource(ResourceFileType.Moves)!;
|
||||||
|
await using var stream = result.Open();
|
||||||
var typeLibrary = new TypeLibrary();
|
var typeLibrary = new TypeLibrary();
|
||||||
typeLibrary.RegisterType("Normal");
|
typeLibrary.RegisterType("Normal");
|
||||||
typeLibrary.RegisterType("Fire");
|
typeLibrary.RegisterType("Fire");
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||||
|
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
|
|
||||||
namespace PkmnLib.Tests.Dataloader;
|
namespace PkmnLib.Tests.Dataloader;
|
||||||
|
|
||||||
@ -7,7 +8,9 @@ public class NatureDataloaderTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task TestPrimaryNatureFile()
|
public async Task TestPrimaryNatureFile()
|
||||||
{
|
{
|
||||||
await using var file = File.Open("Data/Natures.csv", FileMode.Open, FileAccess.Read, FileShare.Read);
|
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||||
|
var result = plugin.GetResource(ResourceFileType.Natures)!;
|
||||||
|
await using var file = result.Open();
|
||||||
var library = NatureDataLoader.LoadNatureLibrary(file);
|
var library = NatureDataLoader.LoadNatureLibrary(file);
|
||||||
await Assert.That(library).IsNotNull();
|
await Assert.That(library).IsNotNull();
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||||
|
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
using PkmnLib.Static.Libraries;
|
using PkmnLib.Static.Libraries;
|
||||||
|
|
||||||
namespace PkmnLib.Tests.Dataloader;
|
namespace PkmnLib.Tests.Dataloader;
|
||||||
@ -8,7 +9,9 @@ public class SpeciesDataloaderTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task TestPrimarySpeciesFile()
|
public async Task TestPrimarySpeciesFile()
|
||||||
{
|
{
|
||||||
await using var file = File.Open("Data/Pokemon.json", FileMode.Open, FileAccess.Read, FileShare.Read);
|
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||||
|
var result = plugin.GetResource(ResourceFileType.Species)!;
|
||||||
|
await using var file = result.Open();
|
||||||
var typeLibrary = new TypeLibrary();
|
var typeLibrary = new TypeLibrary();
|
||||||
typeLibrary.RegisterType("Normal");
|
typeLibrary.RegisterType("Normal");
|
||||||
typeLibrary.RegisterType("Fire");
|
typeLibrary.RegisterType("Fire");
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||||
|
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||||
|
|
||||||
namespace PkmnLib.Tests.Dataloader;
|
namespace PkmnLib.Tests.Dataloader;
|
||||||
|
|
||||||
@ -7,7 +8,9 @@ public class TypeDataloaderTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task TestPrimaryTypesFile()
|
public async Task TestPrimaryTypesFile()
|
||||||
{
|
{
|
||||||
await using var file = File.Open("Data/Types.csv", FileMode.Open, FileAccess.Read, FileShare.Read);
|
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||||
|
var result = plugin.GetResource(ResourceFileType.Types)!;
|
||||||
|
await using var file = result.Open();
|
||||||
var library = TypeDataLoader.LoadTypeLibrary(file);
|
var library = TypeDataLoader.LoadTypeLibrary(file);
|
||||||
await Assert.That(library).IsNotNull();
|
await Assert.That(library).IsNotNull();
|
||||||
|
|
||||||
|
@ -33,10 +33,6 @@
|
|||||||
<ProjectReference Include="..\Plugins\PkmnLib.Plugin.Gen7\PkmnLib.Plugin.Gen7.csproj"/>
|
<ProjectReference Include="..\Plugins\PkmnLib.Plugin.Gen7\PkmnLib.Plugin.Gen7.csproj"/>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Data\"/>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="Data\*">
|
<None Update="Data\*">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.IO;
|
|
||||||
using PkmnLib.Plugin.Gen7.Libraries.Battling;
|
using PkmnLib.Plugin.Gen7.Libraries.Battling;
|
||||||
using PkmnLib.Static.Libraries;
|
using PkmnLib.Static.Libraries;
|
||||||
|
|
||||||
@ -49,24 +48,24 @@ public class Gen7Plugin : Dynamic.ScriptHandling.Registry.Plugin, IResourceProvi
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
Stream? IResourceProvider.GetResource(ResourceFileType request)
|
IResourceResult IResourceProvider.GetResource(ResourceFileType request)
|
||||||
{
|
{
|
||||||
return request switch
|
return request switch
|
||||||
{
|
{
|
||||||
ResourceFileType.Types => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
ResourceFileType.Types => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Types.csv",
|
||||||
"PkmnLib.Plugin.Gen7.Data.Types.csv"),
|
typeof(Gen7Plugin).Assembly),
|
||||||
ResourceFileType.Natures => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
ResourceFileType.Natures => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Natures.csv",
|
||||||
"PkmnLib.Plugin.Gen7.Data.Natures.csv"),
|
typeof(Gen7Plugin).Assembly),
|
||||||
ResourceFileType.Moves => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
ResourceFileType.Moves => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Moves.jsonc",
|
||||||
"PkmnLib.Plugin.Gen7.Data.Moves.jsonc"),
|
typeof(Gen7Plugin).Assembly),
|
||||||
ResourceFileType.Items => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
ResourceFileType.Items => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Items.json",
|
||||||
"PkmnLib.Plugin.Gen7.Data.Items.json"),
|
typeof(Gen7Plugin).Assembly),
|
||||||
ResourceFileType.Abilities => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
ResourceFileType.Abilities => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Abilities.json",
|
||||||
"PkmnLib.Plugin.Gen7.Data.Abilities.json"),
|
typeof(Gen7Plugin).Assembly),
|
||||||
ResourceFileType.GrowthRates => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
ResourceFileType.GrowthRates => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.GrowthRates.json",
|
||||||
"PkmnLib.Plugin.Gen7.Data.GrowthRates.json"),
|
typeof(Gen7Plugin).Assembly),
|
||||||
ResourceFileType.Species => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
ResourceFileType.Species => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Pokemon.json",
|
||||||
"PkmnLib.Plugin.Gen7.Data.Pokemon.json"),
|
typeof(Gen7Plugin).Assembly),
|
||||||
_ => throw new ArgumentOutOfRangeException(nameof(request), request, null),
|
_ => throw new ArgumentOutOfRangeException(nameof(request), request, null),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user