Compare commits

...

7 Commits

Author SHA1 Message Date
5fba35a0a2 Added unique 2026-05-15 21:43:28 +01:00
102b4fb7bf Revert "Merge branch 'main' of https://git.bibko.uk/Pasha/Pacore"
This reverts commit 0dc0896291, reversing
changes made to 1524422b09.
2026-02-02 10:26:54 +00:00
0dc0896291 Merge branch 'main' of https://git.bibko.uk/Pasha/Pacore 2026-02-02 10:19:51 +00:00
1524422b09 Updated workflow for correct folder layout 2026-02-02 10:19:43 +00:00
Pasha Bibko
fdab098562 tmp 2026-01-29 15:59:27 +00:00
e9f627662c Fixed workflow 2026-01-28 22:47:58 +00:00
1cd8d611e2 Added automated release action 2026-01-28 22:35:33 +00:00
6 changed files with 143 additions and 2 deletions

40
.github/workflows/create-release.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Create Unity package from repo
on:
workflow_dispatch:
inputs:
version:
description: 'Release version (e.g. 1.0.0)'
required: true
jobs:
build-package:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Setup Unity package folder
run: |
mkdir -p package
rsync -av --exclude='*.meta' Assets/Pacore/ package/
- name: Create tarball
run: |
VERSION=${{ github.event.inputs.version }}
PACKAGE_NAME="com.pashabibko.pacore-${VERSION}.tgz"
tar -czf "$PACKAGE_NAME" package
ls -1h "$PACKAGE_NAME"
- name: Create Github Release
uses: ncipollo/release-action@v1
with:
tag: ${{ github.event.inputs.version }}
name: Release ${{ github.event.inputs.version }}
body: "Automated release of Pacore package"
artifacts: "com.pashabibko.pacore-${{ github.event.inputs.version }}.tgz"
draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d9b64dde6eaaefc498098e1b5641cb52
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,82 @@
using Unity.Collections.LowLevel.Unsafe;
using System.Runtime.CompilerServices;
using System.Diagnostics;
using Unity.Collections;
using System;
namespace PashaBibko.Pacore.MemUtil
{
public unsafe struct Unique<T> : IDisposable
where T : unmanaged
{
private T* mPtr;
public bool IsValid
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get => mPtr != null;
}
public T Value
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
{
DebugOnly_CheckValid();
return *mPtr;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
set
{
DebugOnly_CheckValid();
*mPtr = value;
}
}
public ref T Ref
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
{
DebugOnly_CheckValid();
return ref *mPtr;
}
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static Unique<T> Create(T val = default)
{
T* ptr = (T*)UnsafeUtility.Malloc
(
sizeof(T),
UnsafeUtility.SizeOf<T>(),
Allocator.Persistent
);
*ptr = val;
return new Unique<T> { mPtr = ptr };
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Dispose()
{
if (IsValid)
{
UnsafeUtility.Free(mPtr, Allocator.Persistent);
}
}
[Conditional("UNITY_EDITOR")]
private void DebugOnly_CheckValid()
{
if (!IsValid)
{
throw new InvalidOperationException
(
$"Owned<{nameof(T)}> was expected to be valid."
);
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f4ac012a56e2aa9429ff4f33c5554e7d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -4,7 +4,7 @@
"references": [], "references": [],
"includePlatforms": [], "includePlatforms": [],
"excludePlatforms": [], "excludePlatforms": [],
"allowUnsafeCode": false, "allowUnsafeCode": true,
"overrideReferences": false, "overrideReferences": false,
"precompiledReferences": [], "precompiledReferences": [],
"autoReferenced": true, "autoReferenced": true,

View File

@@ -1,7 +1,7 @@
{ {
"name": "com.pashabibko.pacore", "name": "com.pashabibko.pacore",
"displayName": "Pacore", "displayName": "Pacore",
"version": "1.0.0", "version": "1.1.1-alpha",
"unity": "2022.3", "unity": "2022.3",
"description" : "Small Unity Util library", "description" : "Small Unity Util library",
"keywords": [ "tool", "script", "runtime" ], "keywords": [ "tool", "script", "runtime" ],