mirror of
https://github.com/GTNewHorizons/Binnie.git
synced 2026-11-14 17:24:53 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7553983e28 | ||
|
|
d47246adbe | ||
|
|
91446f7c07 | ||
|
|
c84b8ae033 | ||
|
|
a64ac3e19c | ||
|
|
a24d7a339c | ||
|
|
d92cae88e2 | ||
|
|
7b021331bb | ||
|
|
3a1b633044 | ||
|
|
7b744a3e2c | ||
|
|
de53168447 | ||
|
|
18073d2f76 | ||
|
|
87581cd03b | ||
|
|
6facfe5fa8 | ||
|
|
e32e427f93 | ||
|
|
fe35f8e237 | ||
|
|
4836d89ed9 | ||
|
|
d486b30dff | ||
|
|
1b9212786f | ||
|
|
d8bf61a44e | ||
|
|
bce6c26704 | ||
|
|
a9eb396b7e | ||
|
|
92211ddbf4 | ||
|
|
3c6ab0e052 | ||
|
|
16793c2385 | ||
|
|
9c820bd038 | ||
|
|
f12a75a356 | ||
|
|
74d8810684 |
No files matched your search
@@ -0,0 +1,9 @@
|
||||
directory="run/crash-reports"
|
||||
if [ -d $directory ]; then
|
||||
echo "Crash reports detected:"
|
||||
cat $directory/*
|
||||
exit 1
|
||||
else
|
||||
echo "No crash reports detected"
|
||||
exit 0
|
||||
fi
|
||||
@@ -0,0 +1,45 @@
|
||||
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
|
||||
|
||||
name: Build and test
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ master, main ]
|
||||
push:
|
||||
branches: [ master, main ]
|
||||
|
||||
jobs:
|
||||
build-and-test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up JDK 8
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '8'
|
||||
distribution: 'adopt'
|
||||
cache: gradle
|
||||
|
||||
- name: Grant execute permission for gradlew
|
||||
run: chmod +x gradlew
|
||||
|
||||
- name: Setup the workspace
|
||||
run: ./gradlew setupCIWorkspace
|
||||
|
||||
- name: Build the mod
|
||||
run: ./gradlew build
|
||||
|
||||
- name: Run server for 1 minute
|
||||
run: |
|
||||
mkdir run
|
||||
echo "eula=true" > run/eula.txt
|
||||
timeout 60 ./gradlew runServer || true
|
||||
|
||||
- name: Test no crashes happend
|
||||
run: |
|
||||
chmod +x .github/scripts/test-no-crash-reports.sh
|
||||
.github/scripts/test-no-crash-reports.sh
|
||||
@@ -0,0 +1,45 @@
|
||||
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
|
||||
|
||||
name: Release tagged build
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set release version
|
||||
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Set up JDK 8
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
java-version: '8'
|
||||
distribution: 'adopt'
|
||||
cache: gradle
|
||||
|
||||
- name: Grant execute permission for gradlew
|
||||
run: chmod +x gradlew
|
||||
|
||||
- name: Setup the workspace
|
||||
run: ./gradlew setupCIWorkspace
|
||||
|
||||
- name: Build the mod
|
||||
run: ./gradlew build
|
||||
|
||||
- name: Release under current tag
|
||||
uses: "marvinpinto/action-automatic-releases@latest"
|
||||
with:
|
||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
automatic_release_tag: "${{ env.RELEASE_VERSION }}"
|
||||
prerelease: false
|
||||
title: "${{ env.RELEASE_VERSION }}"
|
||||
files: build/libs/*.jar
|
||||
+25
-15
@@ -1,19 +1,29 @@
|
||||
.gradle
|
||||
# IntelliJ
|
||||
/build
|
||||
/run
|
||||
/eclipse
|
||||
/out
|
||||
/classes
|
||||
.idea
|
||||
.settings
|
||||
/.idea/
|
||||
/run/
|
||||
/build/
|
||||
/eclipse/
|
||||
.classpath
|
||||
.project
|
||||
/bin/
|
||||
/config/
|
||||
/crash-reports/
|
||||
/logs/
|
||||
options.txt
|
||||
/saves/
|
||||
usernamecache.json
|
||||
banned-ips.json
|
||||
banned-players.json
|
||||
eula.txt
|
||||
ops.json
|
||||
server.properties
|
||||
servers.dat
|
||||
usercache.json
|
||||
whitelist.json
|
||||
/out/
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
# minecraft
|
||||
/config
|
||||
/logs
|
||||
/saves
|
||||
/options.txt
|
||||
/usernamecache.json
|
||||
|
||||
changelog.html
|
||||
src/main/resources/mixins.*.json
|
||||
*.bat
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
sudo: required
|
||||
dist: trusty
|
||||
|
||||
language: java
|
||||
jdk: oraclejdk8
|
||||
|
||||
before_cache:
|
||||
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
|
||||
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
|
||||
- rm -f $HOME/.gradle/caches/minecraft/deobfedDeps/providedDummy.jar
|
||||
- rm -f $HOME/.gradle/caches/minecraft/deobfedDeps/compileDummy.jar
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.gradle/caches/
|
||||
- $HOME/.gradle/wrapper/
|
||||
|
||||
before_install: chmod +x gradlew
|
||||
install:
|
||||
- ./gradlew setupCIWorkspace -S
|
||||
script:
|
||||
- ./gradlew build
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
+499
-61
@@ -1,91 +1,529 @@
|
||||
//version: 928ecf7feb33a1149538b0e2cd17e3bc5f281428
|
||||
/*
|
||||
DO NOT CHANGE THIS FILE!
|
||||
|
||||
Also, you may replace this file at any time if there is an update available.
|
||||
Please check https://github.com/SinTh0r4s/ExampleMod1.7.10/blob/main/build.gradle for updates.
|
||||
*/
|
||||
|
||||
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
name = "forge"
|
||||
url = "http://files.minecraftforge.net/maven"
|
||||
url = "https://maven.minecraftforge.net"
|
||||
}
|
||||
maven {
|
||||
name = "sonatype"
|
||||
url = "https://oss.sonatype.org/content/repositories/snapshots/"
|
||||
}
|
||||
maven {
|
||||
url "https://plugins.gradle.org/m2/"
|
||||
name = "Scala CI dependencies"
|
||||
url = "https://repo1.maven.org/maven2/"
|
||||
}
|
||||
maven {
|
||||
name = "jitpack"
|
||||
url = "https://jitpack.io"
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
|
||||
classpath "gradle.plugin.se.bjurr.gitchangelog:git-changelog-gradle-plugin:1.47"
|
||||
classpath 'com.github.GTNewHorizons:ForgeGradle:1.2.4'
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id "com.matthewprenger.cursegradle" version "1.0.6"
|
||||
id 'idea'
|
||||
id 'scala'
|
||||
id("org.ajoberstar.grgit") version("3.1.1")
|
||||
id("com.github.johnrengelman.shadow") version("4.0.4")
|
||||
id("com.palantir.git-version") version("0.12.3")
|
||||
}
|
||||
apply plugin: "se.bjurr.gitchangelog.git-changelog-gradle-plugin"
|
||||
|
||||
apply plugin: 'forge'
|
||||
|
||||
version = "2.0.22"
|
||||
if (System.getenv("BUILD_NUMBER") != null) {
|
||||
version = version + "." + System.getenv("BUILD_NUMBER")
|
||||
}
|
||||
group = "binnie" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||
archivesBaseName = "binnie-mods-1.7.10"
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
def projectJavaVersion = JavaLanguageVersion.of(8)
|
||||
|
||||
// uncomment this hack if you use old IDEA
|
||||
/*sourceSets {
|
||||
main {
|
||||
output.resourcesDir = output.classesDir
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion.set(projectJavaVersion)
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
idea {
|
||||
module {
|
||||
inheritOutputDirs = true
|
||||
downloadJavadoc = true
|
||||
downloadSources = true
|
||||
}
|
||||
}
|
||||
|
||||
if(JavaVersion.current() != JavaVersion.VERSION_1_8) {
|
||||
throw new GradleException("This project requires Java 8, but it's running on " + JavaVersion.current())
|
||||
}
|
||||
|
||||
checkPropertyExists("modName")
|
||||
checkPropertyExists("modId")
|
||||
checkPropertyExists("modGroup")
|
||||
checkPropertyExists("autoUpdateBuildScript")
|
||||
checkPropertyExists("minecraftVersion")
|
||||
checkPropertyExists("forgeVersion")
|
||||
checkPropertyExists("replaceGradleTokenInFile")
|
||||
checkPropertyExists("gradleTokenModId")
|
||||
checkPropertyExists("gradleTokenModName")
|
||||
checkPropertyExists("gradleTokenVersion")
|
||||
checkPropertyExists("gradleTokenGroupName")
|
||||
checkPropertyExists("apiPackage")
|
||||
checkPropertyExists("accessTransformersFile")
|
||||
checkPropertyExists("usesMixins")
|
||||
checkPropertyExists("mixinPlugin")
|
||||
checkPropertyExists("mixinsPackage")
|
||||
checkPropertyExists("coreModClass")
|
||||
checkPropertyExists("containsMixinsAndOrCoreModOnly")
|
||||
checkPropertyExists("usesShadowedDependencies")
|
||||
checkPropertyExists("developmentEnvironmentUserName")
|
||||
|
||||
|
||||
String javaSourceDir = "src/main/java/"
|
||||
String scalaSourceDir = "src/main/scala/"
|
||||
|
||||
String targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/")
|
||||
String targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/")
|
||||
if((getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists()) == false) {
|
||||
throw new GradleException("Could not resolve \"modGroup\"! Could not find " + targetPackageJava + " or " + targetPackageScala)
|
||||
}
|
||||
|
||||
if(apiPackage) {
|
||||
targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/")
|
||||
targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/")
|
||||
if((getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists()) == false) {
|
||||
throw new GradleException("Could not resolve \"apiPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala)
|
||||
}
|
||||
}
|
||||
|
||||
if(accessTransformersFile) {
|
||||
String targetFile = "src/main/resources/META-INF/" + accessTransformersFile
|
||||
if(getFile(targetFile).exists() == false) {
|
||||
throw new GradleException("Could not resolve \"accessTransformersFile\"! Could not find " + targetFile)
|
||||
}
|
||||
}
|
||||
|
||||
if(usesMixins.toBoolean()) {
|
||||
if(mixinsPackage.isEmpty() || mixinPlugin.isEmpty()) {
|
||||
throw new GradleException("\"mixinPlugin\" requires \"mixinsPackage\" and \"mixinPlugin\" to be set!")
|
||||
}
|
||||
|
||||
targetPackageJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinsPackage.toString().replaceAll("\\.", "/")
|
||||
targetPackageScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinsPackage.toString().replaceAll("\\.", "/")
|
||||
if((getFile(targetPackageJava).exists() || getFile(targetPackageScala).exists()) == false) {
|
||||
throw new GradleException("Could not resolve \"mixinsPackage\"! Could not find " + targetPackageJava + " or " + targetPackageScala)
|
||||
}
|
||||
|
||||
String targetFileJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinPlugin.toString().replaceAll("\\.", "/") + ".java"
|
||||
String targetFileScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinPlugin.toString().replaceAll("\\.", "/") + ".scala"
|
||||
String targetFileScalaJava = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + mixinPlugin.toString().replaceAll("\\.", "/") + ".java"
|
||||
if((getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists()) == false) {
|
||||
throw new GradleException("Could not resolve \"mixinPlugin\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava)
|
||||
}
|
||||
}
|
||||
|
||||
if(coreModClass) {
|
||||
String targetFileJava = javaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + coreModClass.toString().replaceAll("\\.", "/") + ".java"
|
||||
String targetFileScala = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + coreModClass.toString().replaceAll("\\.", "/") + ".scala"
|
||||
String targetFileScalaJava = scalaSourceDir + modGroup.toString().replaceAll("\\.", "/") + "/" + coreModClass.toString().replaceAll("\\.", "/") + ".java"
|
||||
if((getFile(targetFileJava).exists() || getFile(targetFileScala).exists() || getFile(targetFileScalaJava).exists()) == false) {
|
||||
throw new GradleException("Could not resolve \"coreModClass\"! Could not find " + targetFileJava + " or " + targetFileScala + " or " + targetFileScalaJava)
|
||||
}
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS)
|
||||
|
||||
// Make sure GregTech build won't time out
|
||||
System.setProperty("org.gradle.internal.http.connectionTimeout", 120000 as String)
|
||||
System.setProperty("org.gradle.internal.http.socketTimeout", 120000 as String)
|
||||
}
|
||||
|
||||
// Fix Jenkins' Git: chmod a file should not be detected as a change and append a '.dirty' to the version
|
||||
'git config core.fileMode false'.execute()
|
||||
// Pulls version from git tag
|
||||
try {
|
||||
version = minecraftVersion + "-" + gitVersion()
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new IllegalStateException("This mod must be version controlled by Git AND the repository must provide at least one tag!");
|
||||
}
|
||||
|
||||
group = modGroup
|
||||
if(project.hasProperty("customArchiveBaseName") && customArchiveBaseName) {
|
||||
archivesBaseName = customArchiveBaseName
|
||||
}
|
||||
else {
|
||||
archivesBaseName = modId
|
||||
}
|
||||
|
||||
minecraft {
|
||||
version = "1.7.10-10.13.4.1614-1.7.10"
|
||||
runDir = "eclipse"
|
||||
}
|
||||
version = minecraftVersion + "-" + forgeVersion + "-" + minecraftVersion
|
||||
runDir = "run"
|
||||
|
||||
processResources {
|
||||
inputs.property "version", project.version
|
||||
inputs.property "mcversion", project.minecraft.version
|
||||
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
expand 'version': project.version,
|
||||
'mcversion': project.minecraft.version,
|
||||
'modid': "BinnieMods"
|
||||
}
|
||||
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
exclude 'mcmod.info'
|
||||
}
|
||||
}
|
||||
|
||||
task gitChangelogTask(type: se.bjurr.gitchangelog.plugin.gradle.GitChangelogTask) {
|
||||
filePath = "changelog.html"
|
||||
untaggedName = "Current release ${project.version}"
|
||||
fromCommit = "dbc5c1a564c39e4a9c042411d1bdbe450985ce2c"
|
||||
toRef = "HEAD"
|
||||
templateContent = file('changelog.mustache').getText('UTF-8')
|
||||
}
|
||||
|
||||
curseforge {
|
||||
apiKey = project.hasProperty('curseforge_apikey') ? project.curseforge_apikey : '0'
|
||||
project {
|
||||
id = '223525'
|
||||
changelog = file('changelog.html')
|
||||
changelogType = 'html'
|
||||
releaseType = 'release'
|
||||
relations {
|
||||
requiredLibrary 'forestry'
|
||||
incompatible 'binnie-fix'
|
||||
incompatible 'binniepatcher'
|
||||
incompatible 'more-binnie-fixes'
|
||||
if (replaceGradleTokenInFile) {
|
||||
replaceIn replaceGradleTokenInFile
|
||||
if(gradleTokenModId) {
|
||||
replace gradleTokenModId, modId
|
||||
}
|
||||
if(gradleTokenModName) {
|
||||
replace gradleTokenModName, modName
|
||||
}
|
||||
if(gradleTokenVersion) {
|
||||
replace gradleTokenVersion, versionDetails().lastTag
|
||||
}
|
||||
if(gradleTokenGroupName) {
|
||||
replace gradleTokenGroupName, modGroup
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
tasks.curseforge223525.dependsOn.add(gitChangelogTask)
|
||||
if(file("addon.gradle").exists()) {
|
||||
apply from: "addon.gradle"
|
||||
}
|
||||
|
||||
apply from: 'repositories.gradle'
|
||||
|
||||
configurations {
|
||||
implementation.extendsFrom(shadowImplementation)
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
name = "Overmind forge repo mirror"
|
||||
url = "https://gregtech.overminddl1.com/"
|
||||
}
|
||||
if(usesMixins.toBoolean()) {
|
||||
maven {
|
||||
name = "sponge"
|
||||
url = "https://repo.spongepowered.org/repository/maven-public"
|
||||
}
|
||||
maven {
|
||||
url = "https://jitpack.io"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
if(usesMixins.toBoolean()) {
|
||||
annotationProcessor("org.ow2.asm:asm-debug-all:5.0.3")
|
||||
annotationProcessor("com.google.guava:guava:24.1.1-jre")
|
||||
annotationProcessor("com.google.code.gson:gson:2.8.6")
|
||||
annotationProcessor("org.spongepowered:mixin:0.8-SNAPSHOT")
|
||||
// using 0.8 to workaround a issue in 0.7 which fails mixin application
|
||||
compile("org.spongepowered:mixin:0.7.11-SNAPSHOT") {
|
||||
// Mixin includes a lot of dependencies that are too up-to-date
|
||||
exclude module: "launchwrapper"
|
||||
exclude module: "guava"
|
||||
exclude module: "gson"
|
||||
exclude module: "commons-io"
|
||||
exclude module: "log4j-core"
|
||||
}
|
||||
compile("com.github.GTNewHorizons:SpongeMixins:1.3.3:dev")
|
||||
}
|
||||
}
|
||||
|
||||
apply from: 'dependencies.gradle'
|
||||
|
||||
def mixingConfigRefMap = "mixins." + modId + ".refmap.json"
|
||||
def refMap = "${tasks.compileJava.temporaryDir}" + File.separator + mixingConfigRefMap
|
||||
def mixinSrg = "${tasks.reobf.temporaryDir}" + File.separator + "mixins.srg"
|
||||
|
||||
task generateAssets {
|
||||
if(usesMixins.toBoolean()) {
|
||||
getFile("/src/main/resources/mixins." + modId + ".json").text = """{
|
||||
"required": true,
|
||||
"minVersion": "0.7.11",
|
||||
"package": "${modGroup}.${mixinsPackage}",
|
||||
"plugin": "${modGroup}.${mixinPlugin}",
|
||||
"refmap": "${mixingConfigRefMap}",
|
||||
"target": "@env(DEFAULT)",
|
||||
"compatibilityLevel": "JAVA_8"
|
||||
}
|
||||
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
task relocateShadowJar(type: ConfigureShadowRelocation) {
|
||||
target = tasks.shadowJar
|
||||
prefix = modGroup + ".shadow"
|
||||
}
|
||||
|
||||
shadowJar {
|
||||
manifest {
|
||||
attributes(getManifestAttributes())
|
||||
}
|
||||
|
||||
minimize() // This will only allow shading for actually used classes
|
||||
configurations = [project.configurations.shadowImplementation]
|
||||
dependsOn(relocateShadowJar)
|
||||
}
|
||||
|
||||
jar {
|
||||
manifest {
|
||||
attributes(getManifestAttributes())
|
||||
}
|
||||
|
||||
if(usesShadowedDependencies.toBoolean()) {
|
||||
dependsOn(shadowJar)
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
|
||||
reobf {
|
||||
if(usesMixins.toBoolean()) {
|
||||
addExtraSrgFile mixinSrg
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
if(usesMixins.toBoolean()) {
|
||||
tasks.compileJava {
|
||||
options.compilerArgs += [
|
||||
"-AreobfSrgFile=${tasks.reobf.srg}",
|
||||
"-AoutSrgFile=${mixinSrg}",
|
||||
"-AoutRefMapFile=${refMap}",
|
||||
// Elan: from what I understand they are just some linter configs so you get some warning on how to properly code
|
||||
"-XDenableSunApiLintControl",
|
||||
"-XDignore.symbol.file"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
runClient {
|
||||
def arguments = []
|
||||
|
||||
if(usesMixins.toBoolean()) {
|
||||
arguments += [
|
||||
"--mods=../build/libs/$modId-${version}.jar",
|
||||
"--tweakClass org.spongepowered.asm.launch.MixinTweaker"
|
||||
]
|
||||
}
|
||||
|
||||
if(developmentEnvironmentUserName) {
|
||||
arguments += [
|
||||
"--username",
|
||||
developmentEnvironmentUserName
|
||||
]
|
||||
}
|
||||
|
||||
args(arguments)
|
||||
}
|
||||
|
||||
runServer {
|
||||
def arguments = []
|
||||
|
||||
if (usesMixins.toBoolean()) {
|
||||
arguments += [
|
||||
"--mods=../build/libs/$modId-${version}.jar",
|
||||
"--tweakClass org.spongepowered.asm.launch.MixinTweaker"
|
||||
]
|
||||
}
|
||||
|
||||
args(arguments)
|
||||
}
|
||||
|
||||
tasks.withType(JavaExec).configureEach {
|
||||
javaLauncher.set(
|
||||
javaToolchains.launcherFor {
|
||||
languageVersion = projectJavaVersion
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
processResources
|
||||
{
|
||||
// this will ensure that this task is redone when the versions change.
|
||||
inputs.property "version", project.version
|
||||
inputs.property "mcversion", project.minecraft.version
|
||||
|
||||
// replace stuff in mcmod.info, nothing else
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
|
||||
// replace version and mcversion
|
||||
expand "minecraftVersion": project.minecraft.version,
|
||||
"modVersion": versionDetails().lastTag,
|
||||
"modId": modId,
|
||||
"modName": modName
|
||||
}
|
||||
|
||||
if(usesMixins.toBoolean()) {
|
||||
from refMap
|
||||
}
|
||||
|
||||
// copy everything else, thats not the mcmod.info
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
exclude 'mcmod.info'
|
||||
}
|
||||
}
|
||||
|
||||
def getManifestAttributes() {
|
||||
def manifestAttributes = [:]
|
||||
if(containsMixinsAndOrCoreModOnly.toBoolean() == false && (usesMixins.toBoolean() || coreModClass)) {
|
||||
manifestAttributes += ["FMLCorePluginContainsFMLMod": true]
|
||||
}
|
||||
|
||||
if(accessTransformersFile) {
|
||||
manifestAttributes += ["FMLAT" : accessTransformersFile.toString()]
|
||||
}
|
||||
|
||||
if(coreModClass) {
|
||||
manifestAttributes += ["FMLCorePlugin": modGroup + "." + coreModClass]
|
||||
}
|
||||
|
||||
if(usesMixins.toBoolean()) {
|
||||
manifestAttributes += [
|
||||
"TweakClass" : "org.spongepowered.asm.launch.MixinTweaker",
|
||||
"MixinConfigs" : "mixins." + modId + ".json",
|
||||
"ForceLoadAsMod" : containsMixinsAndOrCoreModOnly.toBoolean() == false
|
||||
]
|
||||
}
|
||||
return manifestAttributes
|
||||
}
|
||||
|
||||
task sourcesJar(type: Jar) {
|
||||
from (sourceSets.main.allJava)
|
||||
from (file("$projectDir/LICENSE"))
|
||||
getArchiveClassifier().set('sources')
|
||||
}
|
||||
|
||||
task shadowDevJar(type: ShadowJar) {
|
||||
from sourceSets.main.output
|
||||
getArchiveClassifier().set("dev")
|
||||
|
||||
manifest {
|
||||
attributes(getManifestAttributes())
|
||||
}
|
||||
|
||||
minimize() // This will only allow shading for actually used classes
|
||||
configurations = [project.configurations.shadowImplementation]
|
||||
}
|
||||
|
||||
task relocateShadowDevJar(type: ConfigureShadowRelocation) {
|
||||
target = tasks.shadowDevJar
|
||||
prefix = modGroup + ".shadow"
|
||||
}
|
||||
|
||||
task circularResolverJar(type: Jar) {
|
||||
dependsOn(relocateShadowDevJar)
|
||||
dependsOn(shadowDevJar)
|
||||
enabled = false
|
||||
}
|
||||
|
||||
task devJar(type: Jar) {
|
||||
from sourceSets.main.output
|
||||
getArchiveClassifier().set("dev")
|
||||
|
||||
manifest {
|
||||
attributes(getManifestAttributes())
|
||||
}
|
||||
|
||||
if(usesShadowedDependencies.toBoolean()) {
|
||||
dependsOn(circularResolverJar)
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
|
||||
task apiJar(type: Jar) {
|
||||
from (sourceSets.main.allJava) {
|
||||
include modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/") + '/**'
|
||||
}
|
||||
|
||||
from (sourceSets.main.output) {
|
||||
include modGroup.toString().replaceAll("\\.", "/") + "/" + apiPackage.toString().replaceAll("\\.", "/") + '/**'
|
||||
}
|
||||
|
||||
from (sourceSets.main.resources.srcDirs) {
|
||||
include("LICENSE")
|
||||
}
|
||||
|
||||
getArchiveClassifier().set('api')
|
||||
}
|
||||
|
||||
artifacts {
|
||||
archives sourcesJar
|
||||
archives devJar
|
||||
if(apiPackage) {
|
||||
archives apiJar
|
||||
}
|
||||
}
|
||||
|
||||
// Updating
|
||||
task updateBuildScript {
|
||||
doLast {
|
||||
if (performBuildScriptUpdate(projectDir.toString())) return
|
||||
|
||||
print("Build script already up-to-date!")
|
||||
}
|
||||
}
|
||||
|
||||
if (isNewBuildScriptVersionAvailable(projectDir.toString())) {
|
||||
if (autoUpdateBuildScript.toBoolean()) {
|
||||
performBuildScriptUpdate(projectDir.toString())
|
||||
} else {
|
||||
println("Build script update available! Run 'gradle updateBuildScript'")
|
||||
}
|
||||
}
|
||||
|
||||
static URL availableBuildScriptUrl() {
|
||||
new URL("https://raw.githubusercontent.com/SinTh0r4s/ExampleMod1.7.10/main/build.gradle")
|
||||
}
|
||||
|
||||
boolean performBuildScriptUpdate(String projectDir) {
|
||||
if (isNewBuildScriptVersionAvailable(projectDir)) {
|
||||
def buildscriptFile = getFile("build.gradle")
|
||||
availableBuildScriptUrl().withInputStream { i -> buildscriptFile.withOutputStream { it << i } }
|
||||
print("Build script updated. Please REIMPORT the project or RESTART your IDE!")
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
boolean isNewBuildScriptVersionAvailable(String projectDir) {
|
||||
Map parameters = ["connectTimeout": 2000, "readTimeout": 2000]
|
||||
|
||||
String currentBuildScript = getFile("build.gradle").getText()
|
||||
String currentBuildScriptHash = getVersionHash(currentBuildScript)
|
||||
String availableBuildScript = availableBuildScriptUrl().newInputStream(parameters).getText()
|
||||
String availableBuildScriptHash = getVersionHash(availableBuildScript)
|
||||
|
||||
boolean isUpToDate = currentBuildScriptHash.empty || availableBuildScriptHash.empty || currentBuildScriptHash == availableBuildScriptHash
|
||||
return !isUpToDate
|
||||
}
|
||||
|
||||
static String getVersionHash(String buildScriptContent) {
|
||||
String versionLine = buildScriptContent.find("^//version: [a-z0-9]*")
|
||||
if(versionLine != null) {
|
||||
return versionLine.split(": ").last()
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
configure(updateBuildScript) {
|
||||
group = 'forgegradle'
|
||||
description = 'Updates the build script to the latest version'
|
||||
}
|
||||
|
||||
// Helper methods
|
||||
|
||||
def checkPropertyExists(String propertyName) {
|
||||
if (project.hasProperty(propertyName) == false) {
|
||||
throw new GradleException("This project requires a property \"" + propertyName + "\"! Please add it your \"gradle.properties\". You can find all properties and their description here: https://github.com/SinTh0r4s/ExampleMod1.7.10/blob/main/gradle.properties")
|
||||
}
|
||||
}
|
||||
|
||||
def getFile(String relativePath) {
|
||||
return new File(projectDir, relativePath)
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
// Add your dependencies here
|
||||
|
||||
dependencies {
|
||||
compile("com.github.GTNewHorizons:ForestryMC:master-SNAPSHOT:dev")
|
||||
|
||||
|
||||
/*compileOnly("net.industrial-craft:industrialcraft-2:2.2.828-experimental:api") { // Transitive by ForestryMC
|
||||
transitive = false
|
||||
}
|
||||
compileOnly("com.mod-buildcraft:buildcraft:7.1.23:dev") { // Transitive by ForestryMC
|
||||
transitive = false
|
||||
}
|
||||
compileOnly("curse.maven:cofh-lib-220333:2388748") { // Transitive by ForestryMC
|
||||
transitive = false
|
||||
}*/
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
modName = Binnie Core
|
||||
|
||||
# This is a case-sensitive string to identify your mod. Convention is to use lower case.
|
||||
modId = BinnieCore
|
||||
|
||||
modGroup = binnie
|
||||
|
||||
# WHY is there no version field?
|
||||
# The build script relies on git to provide a version via tags. It is super easy and will enable you to always know the
|
||||
# code base or your binary. Check out this tutorial: https://blog.mattclemente.com/2017/10/13/versioning-with-git-tags/
|
||||
|
||||
# Will update your build.gradle automatically whenever an update is available
|
||||
autoUpdateBuildScript = false
|
||||
|
||||
minecraftVersion = 1.7.10
|
||||
forgeVersion = 10.13.4.1614
|
||||
|
||||
# Select a username for testing your mod with breakpoints. You may leave this empty for a random user name each time you
|
||||
# restart Minecraft in development. Choose this dependent on your mod:
|
||||
# Do you need consistent player progressing (for example Thaumcraft)? -> Select a name
|
||||
# Do you need to test how your custom blocks interacts with a player that is not the owner? -> leave name empty
|
||||
developmentEnvironmentUserName = "Developer"
|
||||
|
||||
# Define a source file of your project with:
|
||||
# public static final String VERSION = "GRADLETOKEN_VERSION";
|
||||
# The string's content will be replaced with your mods version when compiled. You should use this to specify your mod's
|
||||
# version in @Mod([...], version = VERSION, [...])
|
||||
# Leave these properties empty to skip individual token replacements
|
||||
replaceGradleTokenInFile =
|
||||
gradleTokenModId =
|
||||
gradleTokenModName =
|
||||
gradleTokenVersion =
|
||||
gradleTokenGroupName =
|
||||
|
||||
# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise you can
|
||||
# leave this property empty.
|
||||
# Example value: apiPackage = api + modGroup = com.myname.mymodid -> com.myname.mymodid.api
|
||||
apiPackage =
|
||||
|
||||
# Specify the configuration file for Forge's access transformers here. I must be placed into /src/main/resources/META-INF/
|
||||
# Example value: mymodid_at.cfg
|
||||
accessTransformersFile =
|
||||
|
||||
# Provides setup for Mixins if enabled. If you don't know what mixins are: Keep it disabled!
|
||||
usesMixins = false
|
||||
# Specify the location of your implementation of IMixinConfigPlugin. Leave it empty otherwise.
|
||||
mixinPlugin =
|
||||
# Specify the package that contains all of your Mixins. You may only place Mixins in this package or the build will fail!
|
||||
mixinsPackage =
|
||||
# Specify the core mod entry class if you use a core mod. This class must implement IFMLLoadingPlugin!
|
||||
# This parameter is for legacy compatability only
|
||||
# Example value: coreModClass = asm.FMLPlugin + modGroup = com.myname.mymodid -> com.myname.mymodid.asm.FMLPlugin
|
||||
coreModClass =
|
||||
# If your project is only a consolidation of mixins or a core mod and does NOT contain a 'normal' mod ( = some class
|
||||
# that is annotated with @Mod) you want this to be true. When in doubt: leave it on false!
|
||||
containsMixinsAndOrCoreModOnly = false
|
||||
|
||||
# If enabled, you may use 'shadowImplementation' for dependencies. They will be integrated in your jar. It is your
|
||||
# responsibility check the licence and request permission for distribution, if required.
|
||||
usesShadowedDependencies = false
|
||||
|
||||
# Optional parameter to customize the produced artifacts. Use this to preserver artifact naming when migrating older
|
||||
# projects. New projects should not use this parameter.
|
||||
customArchiveBaseName = binnie-mods
|
||||
Vendored
BIN
Binary file not shown.
+1
-2
@@ -1,6 +1,5 @@
|
||||
#Wed Jul 02 15:54:47 CDT 2014
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip
|
||||
@@ -1,4 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
@@ -6,47 +22,6 @@
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
esac
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched.
|
||||
if $cygwin ; then
|
||||
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
|
||||
fi
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
@@ -61,9 +36,49 @@ while [ -h "$PRG" ] ; do
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >&-
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >&-
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
@@ -90,7 +105,7 @@ location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
@@ -110,10 +125,11 @@ if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
@@ -154,11 +170,19 @@ if $cygwin ; then
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
APP_ARGS=$(save "$@")
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||
cd "$(dirname "$0")"
|
||||
fi
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
Vendored
+100
-90
@@ -1,90 +1,100 @@
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windowz variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@@ -0,0 +1,2 @@
|
||||
before_install:
|
||||
- ./gradlew setupCIWorkspace
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,18 @@
|
||||
// Add any additional repositories for your dependencies here
|
||||
|
||||
repositories {
|
||||
maven {
|
||||
name = "ic2"
|
||||
url = "http://maven.ic2.player.to/"
|
||||
metadataSources {
|
||||
mavenPom()
|
||||
artifact()
|
||||
}
|
||||
}
|
||||
maven {
|
||||
url "https://cursemaven.com"
|
||||
}
|
||||
maven {
|
||||
url = "https://jitpack.io"
|
||||
}
|
||||
}
|
||||
@@ -74,12 +74,8 @@ public class TileEntityMetadata extends TileEntity {
|
||||
}
|
||||
|
||||
public static ItemStack getItemStack(Block block, int damage) {
|
||||
NBTTagCompound tag = new NBTTagCompound();
|
||||
tag.setInteger("meta", damage);
|
||||
|
||||
ItemStack item = new ItemStack(block, 1, 0);
|
||||
item.setItemDamage((damage < 16387) ? damage : 16387);
|
||||
item.setTagCompound(tag);
|
||||
item.setItemDamage(Math.min(damage, 16387));
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package binnie.extrabees.genetics.requirements;
|
||||
|
||||
import forestry.api.core.IClimateProvider;
|
||||
import forestry.api.genetics.IAllele;
|
||||
import forestry.api.genetics.IGenome;
|
||||
import forestry.api.genetics.IMutationCondition;
|
||||
@@ -13,7 +14,7 @@ public class DummyMutationCondition implements IMutationCondition {
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) {
|
||||
public float getChance(World world, int x, int y, int z, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1, IClimateProvider climate) {
|
||||
return 1.0F;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ import net.minecraft.world.World;
|
||||
public class ItemETDoor extends ItemMetadata {
|
||||
public ItemETDoor(Block block) {
|
||||
super(block);
|
||||
maxStackSize = 1;
|
||||
maxStackSize = 8;
|
||||
setCreativeTab(CreativeTabs.tabRedstone);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package binnie.extratrees.block.decor;
|
||||
|
||||
import binnie.core.Mods;
|
||||
import binnie.core.block.BlockMetadata;
|
||||
import binnie.core.block.IBlockMetadata;
|
||||
import binnie.core.block.TileEntityMetadata;
|
||||
@@ -19,7 +18,6 @@ import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
@@ -41,15 +39,6 @@ public class BlockFence extends net.minecraft.block.BlockFence implements IBlock
|
||||
setStepSound(Block.soundTypeWood);
|
||||
}
|
||||
|
||||
public static boolean canConnect(Block block) {
|
||||
return block == ((ItemBlock) Mods.forestry.item("fences")).field_150939_a
|
||||
|| block == Blocks.fence
|
||||
|| block == Blocks.fence_gate
|
||||
|| block == Blocks.nether_brick_fence
|
||||
|| block instanceof IBlockFence
|
||||
|| block == ExtraTrees.blockGate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getSubBlocks(Item item, CreativeTabs tab, List list) {
|
||||
for (IFenceProvider type : PlankType.ExtraTreePlanks.values()) {
|
||||
@@ -146,16 +135,10 @@ public class BlockFence extends net.minecraft.block.BlockFence implements IBlock
|
||||
|
||||
@Override
|
||||
public boolean canConnectFenceTo(IBlockAccess world, int x, int y, int z) {
|
||||
if (!isFence(world, x, y, z)) {
|
||||
Block block = world.getBlock(x, y, z);
|
||||
return block != null && block.getMaterial().isOpaque() && block.renderAsNormalBlock();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isFence(IBlockAccess world, int x, int y, int z) {
|
||||
Block block = world.getBlock(x, y, z);
|
||||
return canConnect(block);
|
||||
Material material = block.getMaterial();
|
||||
return IBlockFence.isFence(block) && material == this.blockMaterial
|
||||
|| material.isOpaque() && block.renderAsNormalBlock() && material != Material.gourd;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -191,6 +174,13 @@ public class BlockFence extends net.minecraft.block.BlockFence implements IBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
//@SideOnly(Side.CLIENT)
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) {
|
||||
return BlockMetadata.getPickBlock(world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
//@SideOnly(Side.CLIENT)
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) {
|
||||
return BlockMetadata.getPickBlock(world, x, y, z);
|
||||
}
|
||||
|
||||
@@ -137,6 +137,13 @@ public class BlockGate extends BlockFenceGate implements IBlockMetadata {
|
||||
}
|
||||
|
||||
@Override
|
||||
//@SideOnly(Side.CLIENT)
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z) {
|
||||
return BlockMetadata.getPickBlock(world, x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
//@SideOnly(Side.CLIENT)
|
||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) {
|
||||
return BlockMetadata.getPickBlock(world, x, y, z);
|
||||
}
|
||||
|
||||
@@ -29,10 +29,6 @@ public class BlockHedge extends Block implements IBlockFence {
|
||||
setBlockName("hedge");
|
||||
}
|
||||
|
||||
public static boolean func_149825_a(Block block) {
|
||||
return BlockFence.canConnect(block);
|
||||
}
|
||||
|
||||
public static int getColor(int meta) {
|
||||
LeafType type = LeafType.values()[meta % 6];
|
||||
if (type == LeafType.CONIFER) {
|
||||
@@ -130,11 +126,11 @@ public class BlockHedge extends Block implements IBlockFence {
|
||||
return ModuleBlocks.hedgeRenderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectFenceTo(IBlockAccess world, int x, int y, int z) {
|
||||
Block block = world.getBlock(x, y, z);
|
||||
return block == this
|
||||
|| block == Blocks.fence_gate
|
||||
|| func_149825_a(block)
|
||||
|| IBlockFence.isFence(block)
|
||||
|| block.isLeaves(world, x, y, z)
|
||||
|| (block.getMaterial().isOpaque() && block.renderAsNormalBlock() && block.getMaterial() != Material.gourd);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,26 @@
|
||||
package binnie.extratrees.block.decor;
|
||||
|
||||
import binnie.core.Mods;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockFence;
|
||||
import net.minecraft.block.BlockFenceGate;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public interface IBlockFence {
|
||||
|
||||
/**
|
||||
* Test if the specified block is a fence
|
||||
*
|
||||
* @param block the block to test
|
||||
* @return {@code true} if the specified block is a fence
|
||||
*/
|
||||
static boolean isFence(Block block) {
|
||||
return block == ((ItemBlock) Mods.forestry.item("fences")).field_150939_a
|
||||
|| block instanceof BlockFence && block != Blocks.nether_brick_fence
|
||||
|| block instanceof BlockFenceGate;
|
||||
}
|
||||
|
||||
boolean canConnectFenceTo(IBlockAccess world, int x, int y, int z);
|
||||
}
|
||||
@@ -213,7 +213,7 @@ public enum ButterflySpecies implements IAlleleButterflySpecies {
|
||||
if (itemstack.getItem() == Mods.forestry.item("honeydew")) {
|
||||
return 0.7f;
|
||||
}
|
||||
if (itemstack.getItem() == Mods.forestry.item("beeComb")) {
|
||||
if (itemstack.getItem() == Mods.forestry.item("beeCombs")) {
|
||||
return 0.4f;
|
||||
}
|
||||
if (AlleleManager.alleleRegistry.isIndividual(itemstack)) {
|
||||
|
||||
@@ -375,7 +375,7 @@ public enum ExtraTreeFruitGene implements IAlleleFruit, IFruitProvider {
|
||||
|
||||
float modeYieldMod = 1.0f;
|
||||
for (Map.Entry<ItemStack, Float> entry2 : products.entrySet()) {
|
||||
if (world.rand.nextFloat() <= genome.getYield() * modeYieldMod * entry2.getValue() * 5.0f * stage) {
|
||||
if (world.rand.nextFloat() <= genome.getYield() * modeYieldMod * entry2.getValue() * stage) {
|
||||
product2.add(entry2.getKey().copy());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1347,7 +1347,7 @@ public enum ExtraTreeSpecies implements IAlleleTreeSpecies, IIconProvider, IGerm
|
||||
if (itemstack.getItem() == Mods.forestry.item("honeydew")) {
|
||||
return 0.7f;
|
||||
}
|
||||
if (itemstack.getItem() == Mods.forestry.item("beeComb")) {
|
||||
if (itemstack.getItem() == Mods.forestry.item("beeCombs")) {
|
||||
return 0.4f;
|
||||
}
|
||||
if (AlleleManager.alleleRegistry.isIndividual(itemstack)) {
|
||||
|
||||
@@ -53,7 +53,7 @@ public class AnalystPageDatabase extends ControlAnalystPage {
|
||||
Collection<IAlleleSpecies> options = new ArrayList<>();
|
||||
getSpecies(system);
|
||||
for (IAlleleSpecies species : getSpecies(system)) {
|
||||
if (value != null && value.isEmpty() && !species.getName().toLowerCase().contains(value.toLowerCase())) {
|
||||
if (value != null && !value.isEmpty() && !species.getName().toLowerCase().contains(value.toLowerCase())) {
|
||||
continue;
|
||||
}
|
||||
options.add(species);
|
||||
|
||||
@@ -2,14 +2,14 @@ botany.tab.botany=Binnie|花卉
|
||||
|
||||
botany.pigmentedGlass=染色玻璃
|
||||
botany.ceramicBlock=陶瓷块
|
||||
botany.ceramicTile=陶瓷瓦砖
|
||||
botany.ceramicTile=瓷砖
|
||||
botany.ceramicBricks=陶瓷砖块
|
||||
botany.strippedCeramicBricks=条纹陶瓷砖块
|
||||
botany.largeCeramicBricks=大型陶瓷瓦砖
|
||||
botany.splitCeramicTile=匀称陶瓷瓦砖
|
||||
botany.chequeredCeramicTile=方格陶瓷瓦砖
|
||||
botany.mixedCeramicTile=混合风格陶瓷瓦砖
|
||||
botany.verticalCeramicBricks=竖纹陶瓷瓦砖
|
||||
botany.largeCeramicBricks=大型瓷砖
|
||||
botany.splitCeramicTile=匀称瓷砖
|
||||
botany.chequeredCeramicTile=方格瓷砖
|
||||
botany.mixedCeramicTile=混合风格瓷砖
|
||||
botany.verticalCeramicBricks=竖纹瓷砖
|
||||
botany.verticalStripedCeramicBricks=竖状条纹陶瓷砖块
|
||||
botany.largeVerticalCeramicBricks=竖纹大型陶瓷砖块
|
||||
|
||||
|
||||
@@ -1,14 +1,429 @@
|
||||
extratrees.machine.machine.press.info=The Press squeezes fruit to give various fruit juices. It can be powered or run manually by right clicking.
|
||||
extratrees.machine.machine.lumbermill.info=The Lumbermill converts logs into planks at an increased rate, as well as giving by-products such as sawdust and bark.
|
||||
|
||||
extratrees.machine.kitchen.bar=Bar
|
||||
extratrees.machine.kitchen.bottleRack=Bottle Rack
|
||||
|
||||
extratrees.machine.machine.brewery=Brewery
|
||||
extratrees.machine.machine.brewery.info=The Brewery uses yeasts, juices and grains to make many kinds of Wines and Beers.
|
||||
extratrees.machine.machine.distillery=Distillery
|
||||
extratrees.machine.machine.distillery.info=The Distillery can single, double or triple distill certain alcohols to give brandies, liquors and other spirits.
|
||||
extratrees.machine.machine.nursery=Nursery
|
||||
extratrees.machine.machine.press=Fruit Press
|
||||
extratrees.machine.machine.press.info=The Press squeezes fruit to give various fruit juices. It can be powered or run manually by right clicking.
|
||||
|
||||
extratrees.machine.machine.lumbermill=Lumbermill
|
||||
extratrees.machine.machine.lumbermill.info=The Lumbermill converts logs into planks at an increased rate, as well as giving by-products such as sawdust and bark.
|
||||
extratrees.machine.lumbermill.logs=Logs
|
||||
extratrees.machine.lumbermill.error.noWood=No Wood
|
||||
extratrees.machine.lumbermill.error.noRoom=No room for new planks
|
||||
extratrees.machine.lumbermill.error.noWater=Not Enough Water
|
||||
|
||||
extratrees.machine.machine.woodworker=Woodworker
|
||||
extratrees.machine.machine.woodworker.info=The Woodworker creates patterned wooden tiles from two different woods.
|
||||
extratrees.machine.woodworker.material=Wooden Plank
|
||||
|
||||
extratrees.machine.machine.panelworker=Panelworker
|
||||
extratrees.machine.machine.panelworker.info=The Panelworker creates patterned wooden panels from two different woods.
|
||||
extratrees.machine.panelworker.material=Wooden Plank
|
||||
|
||||
extratrees.machine.machine.glassworker=Glassworker
|
||||
extratrees.machine.machine.glassworker.info=The Glassworker creates patterned stained glass.
|
||||
extratrees.machine.glassworker.material=Glass
|
||||
|
||||
extratrees.machine.machine.tileworker=Tileworker
|
||||
extratrees.machine.machine.tileworker.info=The Tileworker creates patterned ceramic tiles.
|
||||
extratrees.machine.tileworker.material=Ceramic Block
|
||||
|
||||
extratrees.machine.worker.error.glueRequired=Requires Adhesive to Function
|
||||
|
||||
extratrees.block.planks.fir=Fir
|
||||
extratrees.block.planks.cedar=Cedar
|
||||
extratrees.block.planks.hemlock=Hemlock
|
||||
extratrees.block.planks.cypress=Cypress
|
||||
extratrees.block.planks.fig=Fig
|
||||
extratrees.block.planks.beech=Beech
|
||||
extratrees.block.planks.alder=Alder
|
||||
extratrees.block.planks.hazel=Hazel
|
||||
extratrees.block.planks.hornbeam=Hornbeam
|
||||
extratrees.block.planks.box=Box
|
||||
extratrees.block.planks.butternut=Butternut
|
||||
extratrees.block.planks.hickory=Hickory
|
||||
extratrees.block.planks.whitebeam=Whitebeam
|
||||
extratrees.block.planks.elm=Elm
|
||||
extratrees.block.planks.apple=Apple
|
||||
extratrees.block.planks.yew=Yew
|
||||
extratrees.block.planks.pear=Pear
|
||||
extratrees.block.planks.hawthorn=Hawthorn
|
||||
extratrees.block.planks.rowan=Rowan
|
||||
extratrees.block.planks.elder=Elder
|
||||
extratrees.block.planks.maclura=Maclura
|
||||
extratrees.block.planks.syzgium=Syzgium
|
||||
extratrees.block.planks.brazilwood=Brazilwood
|
||||
extratrees.block.planks.logwood=Logwood
|
||||
extratrees.block.planks.iroko=Iroko
|
||||
extratrees.block.planks.locust=Locust
|
||||
extratrees.block.planks.eucalyptus=Eucalyptus
|
||||
extratrees.block.planks.purpleheart=Purpleheart
|
||||
extratrees.block.planks.ash=Ash
|
||||
extratrees.block.planks.holly=Holly
|
||||
extratrees.block.planks.olive=Olive
|
||||
extratrees.block.planks.sweetgum=Sweetgum
|
||||
extratrees.block.planks.rosewood=Rosewood
|
||||
extratrees.block.planks.gingko=Gingko
|
||||
extratrees.block.planks.pinkivory=Pink Ivory
|
||||
extratrees.block.planks.cherry=Cherry
|
||||
extratrees.block.planks.banana=Banana
|
||||
extratrees.block.planks.cinnamon=Cinnamon
|
||||
extratrees.block.planks.vanilla.oak=Oak
|
||||
extratrees.block.planks.vanilla.spruce=Spruce
|
||||
extratrees.block.planks.vanilla.birch=Birch
|
||||
extratrees.block.planks.vanilla.jungle=Jungle
|
||||
extratrees.block.planks.vanilla.darkoak=Dark Oak
|
||||
extratrees.block.planks.vanilla.acacia=Acacia
|
||||
|
||||
extratrees.block.planks.forestry.larch=Larch
|
||||
extratrees.block.planks.forestry.teak=Teak
|
||||
extratrees.block.planks.forestry.acacia=Desert Acacia
|
||||
extratrees.block.planks.forestry.lime=Lime
|
||||
extratrees.block.planks.forestry.chestnut=Chestnut
|
||||
extratrees.block.planks.forestry.wenge=Wenge
|
||||
extratrees.block.planks.forestry.baobab=Baobab
|
||||
extratrees.block.planks.forestry.sequoia=Sequoia
|
||||
extratrees.block.planks.forestry.kapok=Kapok
|
||||
extratrees.block.planks.forestry.ebony=Ebony
|
||||
extratrees.block.planks.forestry.mahogany=Mahogany
|
||||
extratrees.block.planks.forestry.balsa=Balsa
|
||||
extratrees.block.planks.forestry.willow=Willow
|
||||
extratrees.block.planks.forestry.walnut=Walnut
|
||||
extratrees.block.planks.forestry.greenheart=Greenheart
|
||||
extratrees.block.planks.forestry.cherry=Cherry
|
||||
extratrees.block.planks.forestry.mahoe=Mahoe
|
||||
extratrees.block.planks.forestry.poplar=Poplar
|
||||
extratrees.block.planks.forestry.palm=Palm
|
||||
extratrees.block.planks.forestry.papaya=Papaya
|
||||
extratrees.block.planks.forestry.pine=Pine
|
||||
extratrees.block.planks.forestry.plum=Plum
|
||||
extratrees.block.planks.forestry.maple=Maple
|
||||
extratrees.block.planks.forestry.citrus=Citrus
|
||||
extratrees.block.planks.forestry.giganteum=Giant Sequoia
|
||||
extratrees.block.planks.forestry.ipe=Ipe
|
||||
extratrees.block.planks.forestry.padauk=Padauk
|
||||
extratrees.block.planks.forestry.cocobolo=Cocobolo
|
||||
extratrees.block.planks.forestry.zebrawood=Zebrawood
|
||||
|
||||
extratrees.block.planks.ebxl.redwood=Redwood
|
||||
extratrees.block.planks.ebxl.fir=Scottish Fir
|
||||
extratrees.block.planks.ebxl.acacia=Excel Acacia
|
||||
|
||||
extratrees.block.planks.fir.desc=A good sturdy conifer wood.|Lumber Jack
|
||||
extratrees.block.planks.cedar.desc=A red tinged softwood.|Lumber Jack
|
||||
extratrees.block.planks.hemlock.desc=Hemlock gives a green hued conifer wood.|Lumber Jack
|
||||
extratrees.block.planks.cypress.desc=A conifer wood with a sligh yellow colouring.|Lumber Jack
|
||||
extratrees.block.planks.fig.desc=Generally not considered a viable construction wood, nonetheless a useful wood.|Lumber Jack
|
||||
extratrees.block.planks.beech.desc=A slightly lighter wood, pretty average.|Lumber Jack
|
||||
extratrees.block.planks.alder.desc=A darker hardwood, doesn't have many discerning properties.|Lumber Jack
|
||||
extratrees.block.planks.hazel.desc=A lovely pale wood, similar in colour to Birch.|Lumber Jack
|
||||
extratrees.block.planks.hornbeam.desc=Another average wood, without many interesting properties.|Lumber Jack
|
||||
extratrees.block.planks.box.desc=One of the palest woods avaiable, but only found on the short box shrub.|Lumber Jack
|
||||
extratrees.block.planks.butternut.desc=A creamy hued wood, though the tree is more known for its nuts.|Lumber Jack
|
||||
extratrees.block.planks.hickory.desc=A not particularly remarkable hardwood.|Lumber Jack
|
||||
extratrees.block.planks.whitebeam.desc=Despite it's name whitebeam has a rather subdued colour.|Lumber Jack
|
||||
extratrees.block.planks.elm.desc=A rather brigh peachy wood.|Lumber Jack
|
||||
extratrees.block.planks.apple.desc=A very dark wood, making apple trees a very useful cultivar.|Lumber Jack
|
||||
extratrees.block.planks.yew.desc=A rather attractively hued conifer wood.|Lumber Jack
|
||||
extratrees.block.planks.pear.desc=Unlike Apple wood, pear wood is not particularly unique.|Lumber Jack
|
||||
extratrees.block.planks.hawthorn.desc=An average softwood.|Lumber Jack
|
||||
extratrees.block.planks.rowan.desc=A more subdued wood with nice contrast between the planks.|Lumber Jack
|
||||
extratrees.block.planks.elder.desc=A average plank without much fanfare.|Lumber Jack
|
||||
extratrees.block.planks.maclura.desc=A very rich orange hue makes Maclura wood very desirable.|Lumber Jack
|
||||
extratrees.block.planks.syzgium.desc=With a tinge of pink Syzgium is a very unique wood.|Lumber Jack
|
||||
extratrees.block.planks.brazilwood.desc=Brazilwood is known for its deep purple shade.|Lumber Jack
|
||||
extratrees.block.planks.logwood.desc=Logwood is one of the closest you can get to a red wood.|Lumber Jack
|
||||
extratrees.block.planks.iroko.desc=This attractive dark wood would make a lovely lintel.|Lumber Jack
|
||||
extratrees.block.planks.locust.desc=Totally unrelated to the devouring insect plague.|Lumber Jack
|
||||
extratrees.block.planks.eucalyptus.desc=A pinkish wood, more commonly converted to wood pulp.|Lumber Jack
|
||||
extratrees.block.planks.purpleheart.desc=A deep shade of purple makes this tree aptly named.|Lumber Jack
|
||||
extratrees.block.planks.ash.desc=Gotta catch 'em all!|Ash Ketchum
|
||||
extratrees.block.planks.holly.desc=The whitest wood available, just avoid the pointy leaves to get to it.|Lumber Jack
|
||||
extratrees.block.planks.olive.desc=Coloured in the same way as its fruits, an attractive subdued green.|Lumber Jack
|
||||
extratrees.block.planks.sweetgum.desc=Yet another average wood, but has a certain character.|Lumber Jack
|
||||
extratrees.block.planks.rosewood.desc=Used to make chess pieces, this is another strongly hued wood.|Lumber Jack
|
||||
extratrees.block.planks.gingko.desc=Similar to Boxwood, Gingko wood is very pale.|Lumber Jack
|
||||
extratrees.block.planks.pinkivory.desc=What can I say. It's very pink.|Lumber Jack
|
||||
|
||||
extratrees.block.tooltip.twoColors=%s and %s
|
||||
extratrees.block.tooltip.twoMaterials=%s and %s
|
||||
|
||||
extratrees.block.door.name=%1$s Wood Door
|
||||
|
||||
extratrees.block.door.name.adv=%2$s %1$s Wood Door
|
||||
extratrees.block.door.type.standard=
|
||||
extratrees.block.door.type.solid=Solid
|
||||
extratrees.block.door.type.double=Split
|
||||
extratrees.block.door.type.full=Full
|
||||
|
||||
extratrees.block.plank.name=%1$s Wood Planks
|
||||
extratrees.block.log.name=%1$s Wood
|
||||
extratrees.block.woodslab.name=%1$s Wood Slab
|
||||
extratrees.block.woodstairs.name=%1$s Stairs
|
||||
extratrees.block.woodfence.name=%1$s Fence
|
||||
extratrees.block.woodgate.name=%1$s Gate
|
||||
|
||||
extratrees.block.multifence.name=%2$s %1$s Gate
|
||||
extratrees.block.multifence.name2=%2$s %1$s & $3$s Gate
|
||||
|
||||
extratrees.block.woodentile.name=%1$s Wooden Tile
|
||||
extratrees.block.woodenpanel.name=%1$s Wooden Panel
|
||||
extratrees.block.stainedglass.name=%1$s Stained Glass
|
||||
|
||||
extratrees.species.orchardapple.name=Orchard Apple
|
||||
extratrees.species.sweetcrabapple.name=Sweet Crab Apple
|
||||
extratrees.species.floweringcrabapple.name=Flowering Crab Apple
|
||||
extratrees.species.prairiecrabapple.name=Prairie Crab Apple
|
||||
extratrees.species.blackthorn.name=Blackthorn
|
||||
extratrees.species.cherryplum.name=Cherry Plum
|
||||
extratrees.species.peach.name=Peach
|
||||
extratrees.species.nectarine.name=Nectarine
|
||||
extratrees.species.apricot.name=Apricot
|
||||
extratrees.species.almond.name=Almond
|
||||
extratrees.species.wildcherry.name=Wild Cherry
|
||||
extratrees.species.sourcherry.name=Sour Cherry
|
||||
extratrees.species.blackcherry.name=Black Cherry
|
||||
extratrees.species.orange.name=Orange
|
||||
extratrees.species.manderin.name=Mandarin
|
||||
extratrees.species.satsuma.name=Satsuma
|
||||
extratrees.species.tangerine.name=Tangerine
|
||||
extratrees.species.lime.name=Lime
|
||||
extratrees.species.keylime.name=Key Lime
|
||||
extratrees.species.fingerlime.name=Finger Lime
|
||||
extratrees.species.pomelo.name=Pomelo
|
||||
extratrees.species.grapefruit.name=Grapefruit
|
||||
extratrees.species.kumquat.name=Kumquat
|
||||
extratrees.species.citron.name=Citron
|
||||
extratrees.species.buddhahand.name=Buddha's Hand
|
||||
extratrees.species.banana.name=Banana
|
||||
extratrees.species.redbanana.name=Red Banana
|
||||
extratrees.species.plantain.name=Plantain
|
||||
extratrees.species.butternut.name=Butternut
|
||||
extratrees.species.rowan.name=Common Rowan
|
||||
extratrees.species.hemlock.name=Western Hemlock
|
||||
extratrees.species.ash.name=Common Ash
|
||||
extratrees.species.alder.name=Common Alder
|
||||
extratrees.species.alder.desc=A common tree in wet places and marshes.|Arborist Manual
|
||||
extratrees.species.beech.name=Common Beech
|
||||
extratrees.species.beech.desc=An elegant tree with small inedible nuts, used in the manufacture of seed oil.|Arborist Manual
|
||||
extratrees.species.copperbeech.name=Copper Beech
|
||||
extratrees.species.copperbeech.desc=Beautiful purple brown leaves make this tree a favourite of gardeners.|Arborist Manual
|
||||
extratrees.species.aspen.name=Aspen
|
||||
extratrees.species.yew.name=Common Yew
|
||||
extratrees.species.cypress.name=Lawson Cypress
|
||||
extratrees.species.douglasfir.name=Douglas-fir
|
||||
extratrees.species.hazel.name=Common Hazel
|
||||
extratrees.species.sycamore.name=Sycamore Fig
|
||||
extratrees.species.whitebeam.name=Whitebeam
|
||||
extratrees.species.hawthorn.name=Common Hawthorn
|
||||
extratrees.species.pecan.name=Pecan
|
||||
extratrees.species.elm.name=Common Elm
|
||||
extratrees.species.elder.name=Elderberry
|
||||
extratrees.species.holly.name=Common Holly
|
||||
extratrees.species.hornbeam.name=Common Hornbeam
|
||||
extratrees.species.sallow.name=Great Sallow
|
||||
extratrees.species.acornoak.name=Acorn Oak
|
||||
extratrees.species.fir.name=Silver Fir
|
||||
extratrees.species.cedar.name=Great Cedar
|
||||
extratrees.species.olive.name=Olive
|
||||
extratrees.species.redmaple.name=Red Maple
|
||||
extratrees.species.balsamfir.name=Balsam Fir
|
||||
extratrees.species.loblollypine.name=Loblolly Pine
|
||||
extratrees.species.sweetgum.name=Sweetgum
|
||||
extratrees.species.locust.name=Black Locust
|
||||
extratrees.species.pear.name=Cultivated Pear
|
||||
extratrees.species.osangeosange.name=Osage-Orange
|
||||
extratrees.species.oldfustic.name=Old Fustic
|
||||
extratrees.species.brazilwood.name=Brazilwood
|
||||
extratrees.species.logwood.name=Logwood
|
||||
extratrees.species.rosewood.name=Rosewood
|
||||
extratrees.species.purpleheart.name=Purpleheart
|
||||
extratrees.species.iroko.name=Iroko
|
||||
extratrees.species.gingko.name=Ginkgo
|
||||
extratrees.species.brazilnut.name=Brazil Nut
|
||||
extratrees.species.rosegum.name=Rose Gum
|
||||
extratrees.species.swampgum.name=Swamp Gum
|
||||
extratrees.species.box.name=Boxwood
|
||||
extratrees.species.clove.name=Clove
|
||||
extratrees.species.coffee.name=Coffee
|
||||
extratrees.species.monkeypuzzle.name=Monkey Puzzle
|
||||
extratrees.species.rainbowgum.name=Rainbow Gum
|
||||
extratrees.species.pinkivory.name=Pink Ivory
|
||||
extratrees.species.blackcurrant.name=Blackcurrant
|
||||
extratrees.species.redcurrant.name=Redcurrant
|
||||
extratrees.species.blackberry.name=Blackberry
|
||||
extratrees.species.raspberry.name=Raspberry
|
||||
extratrees.species.blueberry.name=Blueberry
|
||||
extratrees.species.cranberry.name=Cranberry
|
||||
extratrees.species.juniper.name=Juniper
|
||||
extratrees.species.gooseberry.name=Gooseberry
|
||||
extratrees.species.goldenraspberry.name=Golden Raspberry
|
||||
extratrees.species.cinnamon.name=Cinnamon
|
||||
extratrees.species.coconut.name=Coconut
|
||||
extratrees.species.cashew.name=Cashew
|
||||
extratrees.species.avacado.name=Avocado
|
||||
extratrees.species.nutmeg.name=Nutmeg
|
||||
extratrees.species.allspice.name=Allspice
|
||||
extratrees.species.chilli.name=Chilli Pepper
|
||||
extratrees.species.staranise.name=Star Anise
|
||||
extratrees.species.mango.name=Mango
|
||||
extratrees.species.starfruit.name=Starfruit
|
||||
extratrees.species.candlenut.name=Candlenut
|
||||
extratrees.species.dwarfhazel.name=Dwarf Hazel
|
||||
|
||||
extratrees.item.food.crabapple=Crab Apple
|
||||
extratrees.item.food.buddhahand=Buddha’s Hand
|
||||
extratrees.item.food.manderin=Mandarin
|
||||
extratrees.item.food.avacado=Avocado
|
||||
extratrees.butterflies.species.whiteAdmiral=White Admiral
|
||||
extratrees.butterflies.species.purpleEmperor=Purple Emperor
|
||||
extratrees.butterflies.species.redAdmiral=Red Admiral
|
||||
extratrees.butterflies.species.paintedLady=Painted Lady
|
||||
extratrees.butterflies.species.smallTortoiseshell=Small Tortoiseshell
|
||||
extratrees.butterflies.species.camberwellBeauty=Camberwell Beauty
|
||||
extratrees.butterflies.species.peacock=Peacock
|
||||
extratrees.butterflies.species.wall=Wall
|
||||
extratrees.butterflies.species.crimsonRose=Crimson Rose
|
||||
extratrees.butterflies.species.kaiserIHind=Kaiser-i-Hind
|
||||
extratrees.butterflies.species.goldenBirdwing=Golden Birdwing
|
||||
extratrees.butterflies.species.marshFritillary=Marsh Fritillary
|
||||
extratrees.butterflies.species.pearlBorderedFritillary=Pearl-bordered Fritillary
|
||||
extratrees.butterflies.species.queenOfSpainFritillary=Queen of Spain Fritillary
|
||||
extratrees.butterflies.species.speckledWood=Speckled Wood
|
||||
extratrees.butterflies.species.scotchAngus=Scotch Angus
|
||||
extratrees.butterflies.species.gatekeeper=Gatekeeper
|
||||
extratrees.butterflies.species.meadowBrown=Meadow Brown
|
||||
extratrees.butterflies.species.smallHeath=Small Heath
|
||||
extratrees.butterflies.species.ringlet=Ringlet
|
||||
extratrees.butterflies.species.monarch=Monarch
|
||||
extratrees.butterflies.species.marbledWhite=Marbled White
|
||||
|
||||
extratrees.genetics.requirements.height=Minimum height from bedrock of %d
|
||||
extratrees.genetics.unknown=<Unknown>
|
||||
extratrees.genetics.discoveredBy=Discovered by %s
|
||||
extratrees.genetics.complexity=Complexity: %d
|
||||
|
||||
extratrees.item.carpentryHammer=Master Carpentry Hammer
|
||||
extratrees.item.masterCarpentryHammer=Carpentry Hammer
|
||||
extratrees.item.sawdust=Sawdust
|
||||
extratrees.item.bark=Bark
|
||||
extratrees.item.provenGear=Proven Gear
|
||||
extratrees.item.woodWax=Wood Polish
|
||||
extratrees.item.glassFitting=Glass Fittings
|
||||
|
||||
for.extratrees.item.food.apple=Apple
|
||||
for.extratrees.item.food.crabapple=Crabapple
|
||||
for.extratrees.item.food.orange=Orange
|
||||
for.extratrees.item.food.kumquat=Kumquat
|
||||
for.extratrees.item.food.lime=Lime
|
||||
for.extratrees.item.food.wildcherry=Wild Cherry
|
||||
for.extratrees.item.food.sourcherry=Sour Cherry
|
||||
for.extratrees.item.food.blackcherry=Black Cherry
|
||||
for.extratrees.item.food.blackthorn=Blackthorn
|
||||
for.extratrees.item.food.cherryplum=Cherry Plum
|
||||
for.extratrees.item.food.almond=Almond
|
||||
for.extratrees.item.food.apricot=Apricot
|
||||
for.extratrees.item.food.grapefruit=Grapefruit
|
||||
for.extratrees.item.food.peach=Peach
|
||||
for.extratrees.item.food.satsuma=Satsuma
|
||||
for.extratrees.item.food.buddhahand=Buddhas Hand
|
||||
for.extratrees.item.food.citron=Citron
|
||||
for.extratrees.item.food.fingerlime=Finger Lime
|
||||
for.extratrees.item.food.keylime=Key Lime
|
||||
for.extratrees.item.food.manderin=Manderin
|
||||
for.extratrees.item.food.nectarine=Nectarine
|
||||
for.extratrees.item.food.pomelo=Pomelo
|
||||
for.extratrees.item.food.tangerine=Tangerine
|
||||
for.extratrees.item.food.pear=Pear
|
||||
for.extratrees.item.food.sandpear=Sand Pear
|
||||
for.extratrees.item.food.hazelnut=Hazelnut
|
||||
for.extratrees.item.food.butternut=Butternut
|
||||
for.extratrees.item.food.beechnut=Beechnut
|
||||
for.extratrees.item.food.pecan=Pecan Nut
|
||||
for.extratrees.item.food.banana=Banana
|
||||
for.extratrees.item.food.redbanana=Red Banana
|
||||
for.extratrees.item.food.plantain=Plantain
|
||||
for.extratrees.item.food.brazilnut=Brazil Nut
|
||||
for.extratrees.item.food.fig=Fig
|
||||
for.extratrees.item.food.acorn=Acorn
|
||||
for.extratrees.item.food.elderberry=Elderberry
|
||||
for.extratrees.item.food.olive=Olive
|
||||
for.extratrees.item.food.gingkonut=Gingko Nut
|
||||
for.extratrees.item.food.coffee=Coffee
|
||||
for.extratrees.item.food.osangeosange=Osange Orange
|
||||
for.extratrees.item.food.osangeorange=Osange Orange
|
||||
for.extratrees.item.food.clove=Clove
|
||||
for.extratrees.item.food.papayimar=Papayimar
|
||||
for.extratrees.item.food.blackcurrant=Blackcurrant
|
||||
for.extratrees.item.food.redcurrant=Redcurrant
|
||||
for.extratrees.item.food.blackberry=Blackberry
|
||||
for.extratrees.item.food.raspberry=Raspberry
|
||||
for.extratrees.item.food.blueberry=Blueberry
|
||||
for.extratrees.item.food.cranberry=Cranberry
|
||||
for.extratrees.item.food.juniper=Juniper
|
||||
for.extratrees.item.food.gooseberry=Gooseberry
|
||||
for.extratrees.item.food.goldenraspberry=Golden Raspberry
|
||||
for.extratrees.item.food.coconut=Coconut
|
||||
for.extratrees.item.food.cashew=Cashew
|
||||
for.extratrees.item.food.avacado=Avacado
|
||||
for.extratrees.item.food.nutmeg=Nutmeg
|
||||
for.extratrees.item.food.allspice=Allspice
|
||||
for.extratrees.item.food.chilli=Chilli
|
||||
for.extratrees.item.food.staranise=Star Anise
|
||||
for.extratrees.item.food.mango=Mango
|
||||
for.extratrees.item.food.starfruit=Starfruit
|
||||
for.extratrees.item.food.candlenut=Candlenut
|
||||
|
||||
extratrees.item.database=Arborist Database
|
||||
extratrees.item.masterDatabase=Master Arborist Database
|
||||
extratrees.item.database.tooltip=Sengir-in-a-can
|
||||
|
||||
extratrees.item.mothDatabase=Lepidopterist Database
|
||||
extratrees.item.mothMasterDatabase=Master Lepidopterist Database
|
||||
extratrees.item.mothDatabase.tooltip=Binnie's Emporium of Lepidopterans
|
||||
|
||||
extratrees.fluid.sap=Sap
|
||||
extratrees.fluid.resin=Resin
|
||||
extratrees.fluid.latex=Latex
|
||||
extratrees.fluid.turpentine=Turpentine
|
||||
|
||||
extratrees.gui.database.planks.use=Can make:
|
||||
|
||||
extratrees.gui.database.mode.fruit=Fruit
|
||||
extratrees.gui.database.mode.wood=Wood
|
||||
extratrees.gui.database.mode.planks=Planks
|
||||
|
||||
extratrees.gui.database.tab.species.overview=Overview
|
||||
extratrees.gui.database.tab.species.genome=Genome
|
||||
extratrees.gui.database.tab.species.classification=Classification
|
||||
extratrees.gui.database.tab.species.resultant=Resultant Mutations
|
||||
extratrees.gui.database.tab.species.further=Further Mutations
|
||||
|
||||
extratrees.gui.database.tab.branches.overview=Overview
|
||||
extratrees.gui.database.tab.branches.species=Species
|
||||
|
||||
extratrees.gui.database.tab.breeder.breeder=Breeder
|
||||
|
||||
extratrees.gui.database.tab.fruit.natural=Natural Trees
|
||||
extratrees.gui.database.tab.fruit.natura.help=List of trees that naturally produce this fruit
|
||||
extratrees.gui.database.tab.fruit.potential=Potential Trees
|
||||
extratrees.gui.database.tab.fruit.potential.help=List of trees that can produce this fruit if they possess the right allele
|
||||
extratrees.gui.database.tab.wood.natural=Natural Trees
|
||||
extratrees.gui.database.tab.wood.natural.help=List of trees that are made of this wood
|
||||
extratrees.gui.database.tab.planks.overview=Overview
|
||||
extratrees.gui.database.tab.planks.overview.help=Description and possible uses
|
||||
extratrees.gui.database.tab.planks.natural=Natural Trees
|
||||
extratrees.gui.database.tab.planks.natural.help=List of trees that produce logs that can be crafted into this plank
|
||||
|
||||
extratrees.gui.database.tab.butterfly.species.overview=Overview
|
||||
extratrees.gui.database.tab.butterfly.species.classification=Classification
|
||||
extratrees.gui.database.tab.butterfly.species.specimen=Specimen
|
||||
extratrees.gui.database.tab.butterfly.species.resultant=Resultant Mutations
|
||||
extratrees.gui.database.tab.butterfly.species.further=Further Mutations
|
||||
extratrees.gui.database.tab.butterfly.branches.overview=Overview
|
||||
extratrees.gui.database.tab.butterfly.branches.species=Species
|
||||
extratrees.gui.database.tab.butterfly.breeder=Breeder
|
||||
|
||||
extratrees.gui.database.log=Log
|
||||
extratrees.gui.database.leaves=Leaves
|
||||
@@ -359,6 +359,7 @@ for.extratrees.item.food.elderberry=Elderberry
|
||||
for.extratrees.item.food.olive=Olive
|
||||
for.extratrees.item.food.gingkonut=Gingko Nut
|
||||
for.extratrees.item.food.coffee=Coffee
|
||||
for.extratrees.item.food.osangeosange=Osange Orange
|
||||
for.extratrees.item.food.osangeorange=Osange Orange
|
||||
for.extratrees.item.food.clove=Clove
|
||||
for.extratrees.item.food.papayimar=Papayimar
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
##################################################
|
||||
## Machines
|
||||
|
||||
extratrees.machine.kitchen.bar=Бар
|
||||
extratrees.machine.kitchen.bottleRack=Стойка для бутылок
|
||||
@@ -8,9 +6,9 @@ extratrees.machine.machine.brewery=Пивоварня
|
||||
extratrees.machine.machine.brewery.info=Пивоварня использует дрожжи (Yeast), соки (Juice) и зёрна (Grain), для производства разнообразных видов вина и пива.
|
||||
extratrees.machine.machine.distillery=Винокурня
|
||||
extratrees.machine.machine.distillery.info=Винокурня посредством двойной, тройной перегонки спирта производит коньяки, ликеры и другие спиртные напитки.
|
||||
extratrees.machine.machine.nursery=Питомник
|
||||
extratrees.machine.machine.press=Фруктовый пресс
|
||||
extratrees.machine.machine.press.info=Фруктовый пресс выжимает из фруктов различные фруктовые соки. Требуется энергия, но может также работать вручную, по правой кнопке мыши.
|
||||
extratrees.machine.machine.nursery=Питомник
|
||||
|
||||
extratrees.machine.machine.lumbermill=Лесопилка
|
||||
extratrees.machine.machine.lumbermill.info=Лесопилка разрезает бревна на доски с повышенной скоростью, а также производит побочные продукты - опилки (sawdust) и кору (bark). Требуется энергия и вода.
|
||||
@@ -37,7 +35,7 @@ extratrees.machine.tileworker.material=Керамический блок
|
||||
|
||||
extratrees.machine.worker.error.glueRequired=Требует клей для работы
|
||||
|
||||
#ДОСКИ мода EXTRATREES
|
||||
# ДОСКИ мода EXTRATREES
|
||||
extratrees.block.planks.fir=пихты
|
||||
extratrees.block.planks.cedar=кедра
|
||||
extratrees.block.planks.hemlock=тсуги
|
||||
@@ -76,8 +74,7 @@ extratrees.block.planks.pinkivory=умнини
|
||||
extratrees.block.planks.cherry=вишни
|
||||
extratrees.block.planks.banana=банана
|
||||
extratrees.block.planks.cinnamon=коричника цейлонского
|
||||
|
||||
#ДОСКИ "ВАНИЛЬНОГО" minecraft
|
||||
# ДОСКИ "ВАНИЛЬНОГО" minecraft
|
||||
extratrees.block.planks.vanilla.oak=дуба
|
||||
extratrees.block.planks.vanilla.spruce=ели
|
||||
extratrees.block.planks.vanilla.birch=берёзы
|
||||
@@ -85,7 +82,7 @@ extratrees.block.planks.vanilla.jungle=тропического дерева
|
||||
extratrees.block.planks.vanilla.darkoak=тёмного дуба
|
||||
extratrees.block.planks.vanilla.acacia=акации
|
||||
|
||||
#ДОСКИ мода FORESTRY
|
||||
# ДОСКИ мода FORESTRY
|
||||
extratrees.block.planks.forestry.larch=лиственницы
|
||||
extratrees.block.planks.forestry.teak=тикового дерева
|
||||
extratrees.block.planks.forestry.acacia=пустынной акации
|
||||
@@ -160,18 +157,14 @@ extratrees.block.planks.pinkivory.desc=Что я могу сказать, она
|
||||
extratrees.block.tooltip.twoColors=%s и %s
|
||||
extratrees.block.tooltip.twoMaterials=Из %s и %s
|
||||
|
||||
< %1$s is name of wood used for door >
|
||||
extratrees.block.door.name=Дверь из %1$s
|
||||
|
||||
< %1$s is name of wood used for door, %2$s is type of door >
|
||||
extratrees.block.door.name.adv=%2$s дверь из %1$s
|
||||
extratrees.block.door.name.adv=%2$s дверь из %1$s
|
||||
extratrees.block.door.type.standard=Обычная
|
||||
extratrees.block.door.type.solid=Solid
|
||||
extratrees.block.door.type.double=Разделенная
|
||||
extratrees.block.door.type.full=Плотная
|
||||
|
||||
< %1$s is name of the wood>
|
||||
extratrees.block.woodslab.name2=Составной деревянный забор %1$s
|
||||
extratrees.block.plank.name=Доски из %1$s
|
||||
extratrees.block.log.name=Древесина %1$s
|
||||
extratrees.block.woodslab.name=Плита из %1$s
|
||||
@@ -179,16 +172,12 @@ extratrees.block.woodstairs.name=Ступени из %1$s
|
||||
extratrees.block.woodfence.name=Забор из %1$s
|
||||
extratrees.block.woodgate.name=Калитка из %1$s
|
||||
|
||||
< %1$s is the adjective for the fence type, %2$s is the name of the wood >
|
||||
extratrees.block.multifence.name=%1$s ворота из %2$s
|
||||
< %3$s is the name of the second wood >
|
||||
extratrees.block.multifence.name2=%2$s забор из %1$s и $3$s
|
||||
|
||||
< %1$s is name of the design >
|
||||
extratrees.block.woodentile.name=Деревянный блок, дизайн %1$s
|
||||
extratrees.block.woodenpanel.name=Деревянная панель, дизайн %1$s
|
||||
extratrees.block.stainedglass.name=Витражное стекло, дизайн %1$s
|
||||
extratrees.block.ceramicBrick.name=%1$s Керамические кирпичи
|
||||
|
||||
# ВИДЫ ДЕРЕВЬЕВ
|
||||
extratrees.species.orchardapple.name=Яблоня садовая
|
||||
@@ -317,17 +306,17 @@ extratrees.butterflies.species.marbledWhite=Буддлея Давида
|
||||
|
||||
extratrees.genetics.requirements.height=Минимальная высота от бедрока должна быть %d
|
||||
extratrees.genetics.unknown=<Неизвестно>
|
||||
extratrees.genetics.discoveredBy=Изучено игроком %s
|
||||
extratrees.genetics.complexity=Сложность: %d
|
||||
extratrees.genetics.discoveredBy=Изучено игроком %s
|
||||
extratrees.genetics.complexity=Сложность: %d
|
||||
|
||||
extratrees.item.carpentryHammer=Master Carpentry Hammer
|
||||
extratrees.item.masterCarpentryHammer=Carpentry Hammer
|
||||
extratrees.item.sawdust=Опилки
|
||||
extratrees.item.bark=Кора
|
||||
extratrees.item.provenGear=Проверенная шестерня
|
||||
extratrees.item.woodWax=Полироль
|
||||
extratrees.item.glassFitting=Стеклянные фитинги
|
||||
|
||||
# ПРОДУКТЫ САДОВОДСТВА
|
||||
for.extratrees.item.food.osangeosange=Плод маклюра
|
||||
for.extratrees.item.food.apple=Яблоко
|
||||
for.extratrees.item.food.crabapple=Яблоко-дичка
|
||||
for.extratrees.item.food.orange=Апельсин
|
||||
@@ -367,7 +356,9 @@ for.extratrees.item.food.elderberry=Бузина
|
||||
for.extratrees.item.food.olive=Олива
|
||||
for.extratrees.item.food.gingkonut=Семена Гинкго
|
||||
for.extratrees.item.food.coffee=Кофейные зёрна
|
||||
for.extratrees.item.food.osangeorange=Плод маклюра
|
||||
# ПРОДУКТЫ САДОВОДСТВА
|
||||
for.extratrees.item.food.osangeosange=Плод маклюра
|
||||
for.extratrees.item.food.osangeorange=Osange Orange
|
||||
for.extratrees.item.food.clove=Гвоздика (пряность)
|
||||
for.extratrees.item.food.papayimar=Папайя
|
||||
for.extratrees.item.food.blackcurrant=Смородина чёрная
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
##################################################
|
||||
## Machines
|
||||
|
||||
extratrees.machine.kitchen.bar=Bar
|
||||
extratrees.machine.kitchen.bar=酒吧
|
||||
extratrees.machine.kitchen.bottleRack=瓶架
|
||||
|
||||
extratrees.machine.machine.brewery=发酵器
|
||||
@@ -95,7 +95,7 @@ extratrees.block.planks.forestry.ebony=乌檀树
|
||||
extratrees.block.planks.forestry.mahogany=桃心树
|
||||
extratrees.block.planks.forestry.balsa=巴尔杉树
|
||||
extratrees.block.planks.forestry.willow=柳树
|
||||
extratrees.block.planks.forestry.walnut=胡桃树
|
||||
extratrees.block.planks.forestry.walnut=核桃树
|
||||
extratrees.block.planks.forestry.greenheart=绿樟树
|
||||
extratrees.block.planks.forestry.cherry=樱树
|
||||
extratrees.block.planks.forestry.mahoe=高槿树
|
||||
@@ -284,40 +284,40 @@ extratrees.species.starfruit.name=杨桃
|
||||
extratrees.species.candlenut.name=石栗
|
||||
extratrees.species.dwarfhazel.name=矮榛
|
||||
|
||||
extratrees.butterflies.species.whiteAdmiral=White Admiral
|
||||
extratrees.butterflies.species.purpleEmperor=Purple Emperor
|
||||
extratrees.butterflies.species.redAdmiral=Red Admiral
|
||||
extratrees.butterflies.species.paintedLady=Painted Lady
|
||||
extratrees.butterflies.species.smallTortoiseshell=Small Tortoiseshell
|
||||
extratrees.butterflies.species.camberwellBeauty=Camberwell Beauty
|
||||
extratrees.butterflies.species.peacock=Peacock
|
||||
extratrees.butterflies.species.wall=Wall
|
||||
extratrees.butterflies.species.crimsonRose=Crimson Rose
|
||||
extratrees.butterflies.species.kaiserIHind=Kaiser-i-Hind
|
||||
extratrees.butterflies.species.goldenBirdwing=Golden Birdwing
|
||||
extratrees.butterflies.species.marshFritillary=Marsh Fritillary
|
||||
extratrees.butterflies.species.pearlBorderedFritillary=Pearl-bordered Fritillary
|
||||
extratrees.butterflies.species.queenOfSpainFritillary=Queen of Spain Fritillary
|
||||
extratrees.butterflies.species.speckledWood=Speckled Wood
|
||||
extratrees.butterflies.species.scotchAngus=Scotch Angus
|
||||
extratrees.butterflies.species.gatekeeper=Gatekeeper
|
||||
extratrees.butterflies.species.meadowBrown=Meadow Brown
|
||||
extratrees.butterflies.species.smallHeath=Small Heath
|
||||
extratrees.butterflies.species.ringlet=Ringlet
|
||||
extratrees.butterflies.species.monarch=Monarch
|
||||
extratrees.butterflies.species.marbledWhite=Marbled White
|
||||
extratrees.butterflies.species.whiteAdmiral=白蛺蝶
|
||||
extratrees.butterflies.species.purpleEmperor=紫色帝王蝶
|
||||
extratrees.butterflies.species.redAdmiral=红蛺蝶
|
||||
extratrees.butterflies.species.paintedLady=姬红蛱蝶
|
||||
extratrees.butterflies.species.smallTortoiseshell=小麻蛱蝶
|
||||
extratrees.butterflies.species.camberwellBeauty=坎伯韦尔美人蝶
|
||||
extratrees.butterflies.species.peacock=孔雀蝶
|
||||
extratrees.butterflies.species.wall=棕蛱蝶
|
||||
extratrees.butterflies.species.crimsonRose=绯红玫瑰蝶
|
||||
extratrees.butterflies.species.kaiserIHind=喙凤蝶
|
||||
extratrees.butterflies.species.goldenBirdwing=金裳凤蝶
|
||||
extratrees.butterflies.species.marshFritillary=沼泽豹纹蝶
|
||||
extratrees.butterflies.species.pearlBorderedFritillary=珍珠豹纹蝶
|
||||
extratrees.butterflies.species.queenOfSpainFritillary=西班牙豹纹女王蝶
|
||||
extratrees.butterflies.species.speckledWood=帕眼蝶
|
||||
extratrees.butterflies.species.scotchAngus=苏格兰百眼蝶
|
||||
extratrees.butterflies.species.gatekeeper=链眼蝶
|
||||
extratrees.butterflies.species.meadowBrown=草地棕眼蝶
|
||||
extratrees.butterflies.species.smallHeath=潘非珍眼蝶
|
||||
extratrees.butterflies.species.ringlet=阿芬眼蝶
|
||||
extratrees.butterflies.species.monarch=黑脉金斑蝶
|
||||
extratrees.butterflies.species.marbledWhite=加勒白眼蝶
|
||||
|
||||
extratrees.genetics.requirements.height=最低海拔要求:%d
|
||||
extratrees.genetics.unknown=<未知>
|
||||
extratrees.genetics.discoveredBy=由 %s 发现
|
||||
extratrees.genetics.complexity=复杂度:%d
|
||||
|
||||
extratrees.item.carpentryHammer=木工大师的锤子
|
||||
extratrees.item.carpentryHammer=木工大师锤
|
||||
extratrees.item.masterCarpentryHammer=木工锤
|
||||
extratrees.item.sawdust=锯末
|
||||
extratrees.item.bark=树皮
|
||||
extratrees.item.provenGear=标定齿轮
|
||||
extratrees.item.woodWax=Wood Polish
|
||||
extratrees.item.woodWax=光泽剂
|
||||
extratrees.item.glassFitting=玻璃配件
|
||||
|
||||
for.extratrees.item.food.apple=苹果
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
"modid": "BinnieCore",
|
||||
"name": "Binnie Core",
|
||||
"modid": "${modId}",
|
||||
"name": "${modName}",
|
||||
"description": "Base mod for Binnie's Mods, with lots of common code.",
|
||||
"version": "${version}",
|
||||
"mcversion": "${mcversion}",
|
||||
"version": "${modVersion}",
|
||||
"mcversion": "${minecraftVersion}",
|
||||
"url": "http://minecraft.curseforge.com/mc-mods/223525-binnies-mods",
|
||||
"updateUrl": "",
|
||||
"authorList": [ "Binnie" ],
|
||||
@@ -20,8 +20,8 @@
|
||||
"modid": "ExtraBees",
|
||||
"name": "Extra Bees",
|
||||
"description": "Adds new bees and products to expand the bee breeding in Forestry.",
|
||||
"version": "${version}",
|
||||
"mcversion": "${mcversion}",
|
||||
"version": "${modVersion}",
|
||||
"mcversion": "${minecraftVersion}",
|
||||
"url": "http://minecraft.curseforge.com/mc-mods/223525-binnies-mods",
|
||||
"updateUrl": "",
|
||||
"authorList": [ "Binnie" ],
|
||||
@@ -34,8 +34,8 @@
|
||||
"modid": "ExtraTrees",
|
||||
"name": "Extra Trees",
|
||||
"description": "Adds new trees, aesthetic blocks and alcohol production.",
|
||||
"version": "${version}",
|
||||
"mcversion": "${mcversion}",
|
||||
"version": "${modVersion}",
|
||||
"mcversion": "${minecraftVersion}",
|
||||
"url": "http://minecraft.curseforge.com/mc-mods/223525-binnies-mods",
|
||||
"updateUrl": "",
|
||||
"authorList": [ "Binnie" ],
|
||||
@@ -48,8 +48,8 @@
|
||||
"modid": "Botany",
|
||||
"name": "Botany",
|
||||
"description": "Adds breedable flowers.",
|
||||
"version": "${version}",
|
||||
"mcversion": "${mcversion}",
|
||||
"version": "${modVersion}",
|
||||
"mcversion": "${minecraftVersion}",
|
||||
"url": "http://minecraft.curseforge.com/mc-mods/223525-binnies-mods",
|
||||
"updateUrl": "",
|
||||
"authorList": [ "Binnie" ],
|
||||
@@ -62,8 +62,8 @@
|
||||
"modid": "Genetics",
|
||||
"name": "Genetics",
|
||||
"description": "Adds genetic manipulation for bees, trees, butterflies and flowers.",
|
||||
"version": "${version}",
|
||||
"mcversion": "${mcversion}",
|
||||
"version": "${modVersion}",
|
||||
"mcversion": "${minecraftVersion}",
|
||||
"url": "http://minecraft.curseforge.com/mc-mods/223525-binnies-mods",
|
||||
"updateUrl": "",
|
||||
"authorList": [ "Binnie" ],
|
||||
|
||||
Reference in new issue
Block a user