Skip to content

Instantly share code, notes, and snippets.

View sergebat's full-sized avatar

Sergey Batishchev sergebat

  • Vancouver, BC, Canada
View GitHub Profile
@sergebat
sergebat / clonefile.ps1
Created February 1, 2017 13:24
Create multiple copies of the $file in the same directory
# Create multiple copies of the $file in the same directory
# For example:
# clonefile.ps1 test01.txt 3 --> test02.txt, test03.txt
# clonefile.ps1 test0.png 4 --> test1.png, test2.png, test3.png
param([string]$file, [int]$count)
if (-Not ($file -match "\d+") ) {
"File should contain starting number, for example image020.png"
exit;
}
@sergebat
sergebat / combine.cmd
Created April 18, 2017 11:09
Combine all card*.png with a single frame.png and emit results into "result" folder
for %f in (card*.png) do magick frame.png %~nf.png -composite result/%~nf.png
@sergebat
sergebat / pack-all-spritesheets.js
Last active August 10, 2017 17:53
Pack images from each subfolder into individual spritesheet with texture packer
// Iterate all folders inside resources/img/source/
// Pack all images inside each folder with TexturePacker
// Put each individual spritesheet into resources/img/output (spritesheet name = folder name)
// Example:
// Source folders: resources/img/source/level1, resources/img/source/level2, resources/img/source/level3 ==>
// Output: resources/img/output/level1.json + png, resources/img/output/level2.json + png, resources/img/output/level3.json + png
const sh = require("shelljs");
sh.pushd("resources/img/source/");
sh.ls("-d", "*").forEach(
@sergebat
sergebat / PlayerPrefsDateTime.cs
Created September 22, 2017 17:34
Unity PlayerPrefs "extension" to save/retrieve dates/times
using System;
using UnityEngine;
public class PlayerPrefsDateTime {
public static DateTime GetDateTime(string key, DateTime defaultValue = default(DateTime)) {
if (PlayerPrefs.HasKey(key)) {
string stringValue = PlayerPrefs.GetString(key);
long longValue = Convert.ToInt64(stringValue);
return DateTime.FromBinary(longValue);
}
@sergebat
sergebat / .block
Created December 9, 2017 20:43 — forked from nevernormal1/.block
SVG Jigsaw Puzzle Generator
license: MIT
@sergebat
sergebat / package-lock.json
Created January 31, 2018 12:36
Minimal TS project
{
"name": "test",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@types/lodash": {
"version": "4.14.98",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.98.tgz",
"integrity": "sha512-nVCBlQnsTw+769CM5Xt3jR/UAje48DLqEVQVtPLOILOR2AhCmZJ+LEefmbLVspm9U8YhNnT4afAtDsnIZpLogw=="
@sergebat
sergebat / install-docker.sh
Created February 13, 2018 18:19 — forked from vn-tienle/install-docker.sh
Installing Docker bash shell script on Ubuntu
#!/bin/bash
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
@sergebat
sergebat / index.ts
Last active September 5, 2018 09:47
Method call log with experimental Typescript decorators
const DEBUG = false;
const logDebug = function(_target: any, key: string, descriptor: PropertyDescriptor): any {
const originalMethod = descriptor.value;
descriptor.value = function(...args: any[]) {
const functionName = key;
console.log(functionName + "(" + args.join(", ") + ")");
const result = originalMethod.apply(this, args);
console.log("=> " + result);
return result;
@sergebat
sergebat / typescript.json
Last active October 8, 2018 18:13
VSCode snippet: TypeScript class default export from module (class name === file name)
{
"PublicClass": {
"prefix": "clazz",
"body": [
"export default class $TM_FILENAME_BASE {",
"\tconstructor() {",
"\t}",
"}",
""
],
@sergebat
sergebat / SingletonScriptable.cs
Created October 18, 2018 18:39 — forked from nagedev/SingletonScriptable.cs
SingletonScriptable
using System.Linq;
using UnityEditor;
using UnityEngine;
public abstract class SingletonScriptable<T> : ScriptableObject where T : ScriptableObject
{
static T _instance = null;
public static T instance
{
get