forked from FabianTerhorst/coreclr-module
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIBaseObjectPool.cs
22 lines (21 loc) · 888 Bytes
/
IBaseObjectPool.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using AltV.Net.Elements.Entities;
using AltV.Net.Elements.Pools;
namespace AltV.Net
{
public interface IBaseObjectPool<TBaseObject> : IReadOnlyBaseObjectPool<TBaseObject> where TBaseObject : IBaseObject
{
TBaseObject Create(ICore core, IntPtr entityPointer, uint id);
void Add(TBaseObject entity);
bool Remove(TBaseObject entity);
bool Remove(IntPtr entityPointer);
TBaseObject GetOrCreate(ICore core, IntPtr entityPointer, uint entityId);
TBaseObject GetOrCreate(ICore core, IntPtr entityPointer);
KeyValuePair<IntPtr, TBaseObject>[] GetObjectsArray();
void ForEach(IBaseObjectCallback<TBaseObject> baseObjectCallback);
Task ForEach(IAsyncBaseObjectCallback<TBaseObject> asyncBaseObjectCallback);
void Dispose();
}
}