Implements PokemonLibrary
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
namespace PkmnLibSharp.Library.GrowthRates
|
||||
@@ -28,7 +29,7 @@ namespace PkmnLibSharp.Library.GrowthRates
|
||||
{
|
||||
Creatureliblibrary.Generated.GrowthRateLibrary.AddGrowthRate(Ptr, name.ToPtr(), gr.Ptr).Assert();
|
||||
}
|
||||
|
||||
|
||||
protected override void DeletePtr()
|
||||
{
|
||||
Creatureliblibrary.Generated.GrowthRateLibrary.Destruct(Ptr);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
namespace PkmnLibSharp.Library.GrowthRates
|
||||
|
||||
@@ -54,6 +54,10 @@ namespace PkmnLibSharp.Library.Items
|
||||
return item;
|
||||
}
|
||||
|
||||
internal ItemLibrary(IntPtr ptr) : base(ptr)
|
||||
{
|
||||
}
|
||||
|
||||
public ItemLibrary(ulong initialCapacity) : base(
|
||||
Creatureliblibrary.Generated.ItemLibrary.Construct(initialCapacity))
|
||||
{
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
namespace PkmnLibSharp.Library
|
||||
@@ -7,7 +8,15 @@ namespace PkmnLibSharp.Library
|
||||
public byte MaximalLevel => Creatureliblibrary.Generated.LibrarySettings.GetMaximalLevel(Ptr);
|
||||
public byte MaximalMoves => Creatureliblibrary.Generated.LibrarySettings.GetMaximalMoves(Ptr);
|
||||
public ushort ShinyRate => Pkmnlib.Generated.LibrarySettings.GetShinyRate(Ptr);
|
||||
|
||||
|
||||
internal LibrarySettings()
|
||||
{
|
||||
}
|
||||
|
||||
internal LibrarySettings(IntPtr ptr) : base(ptr)
|
||||
{
|
||||
}
|
||||
|
||||
public LibrarySettings(byte maximalLevel, byte maximalMoves, ushort shinyRate) : base(
|
||||
Pkmnlib.Generated.LibrarySettings.Construct(maximalLevel, maximalMoves, shinyRate))
|
||||
{
|
||||
|
||||
63
PkmnLibSharp/Library/PokemonLibrary.cs
Normal file
63
PkmnLibSharp/Library/PokemonLibrary.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using System;
|
||||
using Creatureliblibrary.Generated;
|
||||
using PkmnLibSharp.Library.Moves;
|
||||
using PkmnLibSharp.Utilities;
|
||||
using GrowthRateLibrary = PkmnLibSharp.Library.GrowthRates.GrowthRateLibrary;
|
||||
using ItemLibrary = PkmnLibSharp.Library.Items.ItemLibrary;
|
||||
|
||||
namespace PkmnLibSharp.Library
|
||||
{
|
||||
public class PokemonLibrary : PointerWrapper
|
||||
{
|
||||
private LibrarySettings _settings;
|
||||
|
||||
public LibrarySettings Settings =>
|
||||
_settings ??= ResolveOrCreatePtr<LibrarySettings>(DataLibrary.GetSettings(Ptr));
|
||||
|
||||
private SpeciesLibrary _species;
|
||||
|
||||
public SpeciesLibrary SpeciesLibrary =>
|
||||
_species ??= ResolveOrCreatePtr<SpeciesLibrary>(DataLibrary.GetSpeciesLibrary(Ptr));
|
||||
|
||||
private MoveLibrary _moves;
|
||||
public MoveLibrary MoveLibrary => _moves ??= ResolveOrCreatePtr<MoveLibrary>(DataLibrary.GetAttackLibrary(Ptr));
|
||||
|
||||
private ItemLibrary _items;
|
||||
public ItemLibrary ItemLibrary => _items ??= ResolveOrCreatePtr<ItemLibrary>(DataLibrary.GetItemLibrary(Ptr));
|
||||
|
||||
private GrowthRateLibrary _growthRateLibrary;
|
||||
|
||||
public GrowthRateLibrary GrowthRateLibrary => _growthRateLibrary ??=
|
||||
ResolveOrCreatePtr<GrowthRateLibrary>(DataLibrary.GetGrowthRates(Ptr));
|
||||
|
||||
private TypeLibrary _typeLibrary;
|
||||
|
||||
public TypeLibrary TypeLibrary =>
|
||||
_typeLibrary ??= ResolveOrCreatePtr<TypeLibrary>(DataLibrary.GetTypeLibrary(Ptr));
|
||||
|
||||
private NatureLibrary _natureLibrary;
|
||||
|
||||
public NatureLibrary NatureLibrary => _natureLibrary ??=
|
||||
ResolveOrCreatePtr<NatureLibrary>(Pkmnlib.Generated.PokemonLibrary.GetNatureLibrary(Ptr));
|
||||
|
||||
|
||||
internal PokemonLibrary(IntPtr ptr) : base(ptr)
|
||||
{
|
||||
}
|
||||
|
||||
public static PokemonLibrary Create(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);
|
||||
}
|
||||
|
||||
protected override void DeletePtr()
|
||||
{
|
||||
Pkmnlib.Generated.PokemonLibrary.Destruct(Ptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,6 +54,10 @@ namespace PkmnLibSharp.Library
|
||||
return species;
|
||||
}
|
||||
|
||||
internal SpeciesLibrary(IntPtr ptr) : base(ptr)
|
||||
{
|
||||
}
|
||||
|
||||
public SpeciesLibrary(ulong initialCapacity) : base(
|
||||
Creatureliblibrary.Generated.SpeciesLibrary.Construct(initialCapacity))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user