Rework constructors to remove the Create pattern.
This commit is contained in:
@@ -112,7 +112,7 @@ namespace PkmnLibSharp.Library
|
||||
return Types[index];
|
||||
}
|
||||
|
||||
public static Forme Create(string name, float height, float weight, uint baseExperience, byte[] types,
|
||||
public Forme(string name, float height, float weight, uint baseExperience, byte[] types,
|
||||
ushort baseHealth, ushort baseAttack, ushort baseDefense, ushort baseSpecialAttack,
|
||||
ushort baseSpecialDefense, ushort baseSpeed, string[] abilities, string[] hiddenAbilities,
|
||||
LearnableMoves moves)
|
||||
@@ -130,7 +130,7 @@ namespace PkmnLibSharp.Library
|
||||
Marshal.FreeHGlobal(intPtr);
|
||||
foreach (var intPtr in hiddenAbilitiesConverted)
|
||||
Marshal.FreeHGlobal(intPtr);
|
||||
return f;
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
public byte GetRandomAbility(Random rand)
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace PkmnLibSharp.Library.GrowthRates
|
||||
{
|
||||
}
|
||||
|
||||
public static ExternGrowthRate Create(CalculateLevelDelegate levelFunc,
|
||||
public ExternGrowthRate(CalculateLevelDelegate levelFunc,
|
||||
CalculateExperienceDelegate experienceFunc)
|
||||
{
|
||||
var ptr = IntPtr.Zero;
|
||||
@@ -21,7 +21,7 @@ namespace PkmnLibSharp.Library.GrowthRates
|
||||
Marshal.GetFunctionPointerForDelegate(levelFunc),
|
||||
Marshal.GetFunctionPointerForDelegate(experienceFunc)
|
||||
);
|
||||
return new ExternGrowthRate(ptr);
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
protected override void DeletePtr()
|
||||
|
||||
@@ -8,6 +8,8 @@ namespace PkmnLibSharp.Library.GrowthRates
|
||||
internal GrowthRate(IntPtr ptr) : base(ptr)
|
||||
{
|
||||
}
|
||||
|
||||
protected GrowthRate(){}
|
||||
|
||||
public byte CalculateLevel(uint experience)
|
||||
{
|
||||
|
||||
@@ -26,14 +26,14 @@ namespace PkmnLibSharp.Library.Items
|
||||
return Creaturelib.Generated.Item.HasFlag(Ptr, s.ToPtr()) == MarshalHelper.True;
|
||||
}
|
||||
|
||||
public static Item Create(string name, ItemCategory category, BattleItemCategory battleCategory,
|
||||
public Item (string name, ItemCategory category, BattleItemCategory battleCategory,
|
||||
int price,
|
||||
string[] flags, byte flingPower)
|
||||
{
|
||||
var convertedFlags = flags.Select(x => x.ToPtr()).ToArray().ArrayPtr();
|
||||
var p = Pkmnlib.Generated.Item.Construct(name.ToPtr(), (Pkmnlib.ItemCategory) category,
|
||||
(Pkmnlib.BattleItemCategory) battleCategory, price, convertedFlags, (ulong) flags.Length, flingPower);
|
||||
return new Item(p);
|
||||
Initialize(p);
|
||||
}
|
||||
|
||||
protected override void DeletePtr()
|
||||
|
||||
@@ -11,11 +11,11 @@ namespace PkmnLibSharp.Library
|
||||
{
|
||||
}
|
||||
|
||||
public static LearnableMoves Create(byte maxLevel)
|
||||
public LearnableMoves(byte maxLevel)
|
||||
{
|
||||
var ptr = IntPtr.Zero;
|
||||
LearnableAttacks.Construct(ref ptr, maxLevel);
|
||||
return new LearnableMoves(ptr);
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
public void AddLevelAttack(byte level, MoveData move)
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace PkmnLibSharp.Library.Moves
|
||||
return AttackData.HasFlag(Ptr, s.ToPtr()) == 1;
|
||||
}
|
||||
|
||||
public static MoveData Create(string name, byte type, MoveCategory category, byte power, byte accuracy,
|
||||
public MoveData(string name, byte type, MoveCategory category, byte power, byte accuracy,
|
||||
byte baseUsage, MoveTarget target, sbyte priority, float effectChance, string effectName,
|
||||
EffectParameter[] parameters, string[] flags)
|
||||
{
|
||||
@@ -45,7 +45,7 @@ namespace PkmnLibSharp.Library.Moves
|
||||
AttackData.Construct(ref ptr, name.ToPtr(), type, (AttackCategory) category, power, accuracy, baseUsage,
|
||||
(AttackTarget) target, priority, effectChance, effectName.ToPtr(), pars,
|
||||
(ulong) parameters.Length, f, (ulong) flags.Length).Assert();
|
||||
return new MoveData(ptr);
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
protected override void DeletePtr()
|
||||
|
||||
@@ -63,11 +63,11 @@ namespace PkmnLibSharp.Library.Moves
|
||||
return move;
|
||||
}
|
||||
|
||||
public static MoveLibrary Create(ulong defaultCapacity)
|
||||
public MoveLibrary(ulong defaultCapacity)
|
||||
{
|
||||
var ptr = IntPtr.Zero;
|
||||
AttackLibrary.Construct(ref ptr, defaultCapacity).Assert();
|
||||
return new MoveLibrary(ptr);
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
protected internal override void MarkAsDeleted()
|
||||
|
||||
@@ -119,14 +119,14 @@ namespace PkmnLibSharp.Library
|
||||
{
|
||||
}
|
||||
|
||||
public static PokemonLibrary Create(LibrarySettings settings, SpeciesLibrary species, MoveLibrary moves,
|
||||
public PokemonLibrary(LibrarySettings settings, SpeciesLibrary species, MoveLibrary moves,
|
||||
ItemLibrary items,
|
||||
GrowthRateLibrary growthRates, TypeLibrary types, NatureLibrary natures)
|
||||
{
|
||||
var ptr = IntPtr.Zero;
|
||||
Pkmnlib.Generated.PokemonLibrary.Construct(ref ptr, settings.Ptr, species.Ptr, moves.Ptr, items.Ptr,
|
||||
growthRates.Ptr, types.Ptr, natures.Ptr).Assert();
|
||||
return new PokemonLibrary(ptr);
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
protected override void DeletePtr()
|
||||
|
||||
@@ -81,15 +81,14 @@ namespace PkmnLibSharp.Library
|
||||
{
|
||||
}
|
||||
|
||||
public static Species Create(ushort id, string name, Forme defaultForme, float genderRatio, string growthRate,
|
||||
public Species(ushort id, string name, Forme defaultForme, float genderRatio, string growthRate,
|
||||
byte captureRate, byte baseHappiness)
|
||||
{
|
||||
var ptr = IntPtr.Zero;
|
||||
PokemonSpecies.Construct(ref ptr, id, name.ToPtr(), defaultForme.Ptr, genderRatio,
|
||||
growthRate.ToPtr(), captureRate, baseHappiness).Assert();
|
||||
var s = new Species(ptr);
|
||||
s._formes.Add("default", defaultForme);
|
||||
return s;
|
||||
_formes.Add("default", defaultForme);
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
protected internal override void MarkAsDeleted()
|
||||
|
||||
Reference in New Issue
Block a user