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 / 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 / install-docker.sh
Created February 13, 2018 18:19 — forked from lehuutien1996/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 / 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 / .block
Created December 9, 2017 20:43 — forked from nevernormal1/.block
SVG Jigsaw Puzzle Generator
license: MIT
@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 / 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 / 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 / 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 / Gruntfile-colorizefla.js
Last active October 4, 2015 13:59
Grunt target to find and replace in bulk colors of the uncompressed fla file (xfl)
var path = require('path');
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
colorizefla: {
blacknwhite: {
colors: [
{name: "Color1", from: "#A8B89D", to: "#666666"},
{name: "Color2", from: "#C2D1B6", to: "#999999"}
]
@sergebat
sergebat / hardware.ts
Created August 19, 2014 10:39
Example on handling "Back" button in Ludei/easeljs/typescript game
declare var CocoonJS;
module hardware {
var backButtonHandler: () => void = null;
var backButtonDisplayObject: createjs.DisplayObject = null;
/**
* Call hardware.captureBackButton just before showing the screen, where you want to support "back" functionality,
* pass your own handler (typically screen onQuit handler).
*
* It assumes that only one screen is shown at a time.