Here's an overview of my Factorio ship designs which can be built inexpensively.
See also the Design topics section below.
These ships are designed for use within the first four planets.
- The Hornet (the cheapest useful ship)
Here's an overview of my Factorio ship designs which can be built inexpensively.
See also the Design topics section below.
These ships are designed for use within the first four planets.
Important: I'm writing this when the last version of macOS (and the one I have installed) is Mojave. There is already a script which installs Mojave in a virtual machine here https://github.com/img2tab/okiomov. But if you are curios how to do everything manually to install High Sierra, then this guide may be useful.
After reading a few articles I ended up with these steps:
| /* | |
| In JavaScript, objects can be used to serve various purposes. | |
| To maximise our usage of the type system, we should assign different types to our objects depending | |
| on the desired purpose. | |
| In this blog post I will clarify two common purposes for objects known as records and dictionaries | |
| (aka maps), and how they can both be used with regards to the type system. |
| # from: https://doc.qt.io/qt-5/qtcharts-nesteddonuts-example.html | |
| import functools | |
| import random | |
| from PyQt5.QtChart import * | |
| from PyQt5.QtGui import * | |
| from PyQt5.QtCore import * | |
| from PyQt5.QtWidgets import * | |
| class Widget(QWidget): |
| // Get the text nodes which are descendants of the passed parent | |
| function getTextNodes(parent){ | |
| var all = []; | |
| for (parent = parent.firstChild; parent; parent = parent.nextSibling) { | |
| if (['SCRIPT','STYLE'].indexOf(parent.tagName) >= 0) continue; | |
| if (parent.nodeType === Node.TEXT_NODE) all.push(parent); | |
| else all = all.concat(getTextNodes(parent)); | |
| } | |
| return all; | |
| } |
| private val HEX_CHARS = "0123456789ABCDEF".toCharArray() | |
| fun ByteArray.toHex() : String{ | |
| val result = StringBuffer() | |
| forEach { | |
| val octet = it.toInt() | |
| val firstIndex = (octet and 0xF0).ushr(4) | |
| val secondIndex = octet and 0x0F | |
| result.append(HEX_CHARS[firstIndex]) |
| var mediaJSON = { "categories" : [ { "name" : "Movies", | |
| "videos" : [ | |
| { "description" : "Big Buck Bunny tells the story of a giant rabbit with a heart bigger than himself. When one sunny day three rodents rudely harass him, something snaps... and the rabbit ain't no bunny anymore! In the typical cartoon tradition he prepares the nasty rodents a comical revenge.\n\nLicensed under the Creative Commons Attribution license\nhttp://www.bigbuckbunny.org", | |
| "sources" : [ "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4" ], | |
| "subtitle" : "By Blender Foundation", | |
| "thumb" : "images/BigBuckBunny.jpg", | |
| "title" : "Big Buck Bunny" | |
| }, | |
| { "description" : "The first Blender Open Movie from 2006", | |
| "sources" : [ "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ElephantsDream.mp4" ], |