Compare commits

...

9 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
03086fab06 Updated .gitignore for rider files 2026-01-28 22:09:28 +00:00
294033268a Removed IDEA folder 2026-01-28 22:07:17 +00:00
11 changed files with 145 additions and 36 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 }}

3
.gitignore vendored
View File

@@ -22,8 +22,9 @@
# Uncomment this line if you wish to ignore the asset store tools plugin # Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools* # /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin # Rider files
/[Aa]ssets/Plugins/Editor/JetBrains* /[Aa]ssets/Plugins/Editor/JetBrains*
/.idea/
# Visual Studio cache directory # Visual Studio cache directory
.vs/ .vs/

15
.idea/.idea.Pacore/.idea/.gitignore generated vendored
View File

@@ -1,15 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Rider ignored files
/contentModel.xml
/.idea.Pacore.iml
/modules.xml
/projectSettingsUpdater.xml
# Ignored default folder with query files
/queries/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="UserContentModel">
<attachedFolders />
<explicitIncludes />
<explicitExcludes />
</component>
</project>

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

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" ],