geforkt von Mirrors/FastAsyncWorldEdit
Merge remote-tracking branch 'upstream/1.16' into fixEntities
Dieser Commit ist enthalten in:
Commit
3aa041aa7e
31
NOTICE.txt
31
NOTICE.txt
@ -16,3 +16,34 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
|
Unknown LZ4 Java code
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
http://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.
|
||||||
|
|
||||||
|
BufferedRandomAccessFile.java
|
||||||
|
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
|
||||||
|
See the NOTICE file distributed with this work for additional information regarding
|
||||||
|
copyright ownership. The ASF licenses this file to you under the Apache License,
|
||||||
|
Version 2.0 ("License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at http://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.
|
||||||
|
|
||||||
|
SimplexNoise.java
|
||||||
|
|
||||||
|
Version 2012-03-09
|
||||||
|
This code was placed in the public domain by its original author, Stefan Gustavson. You may use it
|
||||||
|
as you see fit, but attribution is appreciated.
|
||||||
|
@ -14,17 +14,18 @@ logger.lifecycle("""
|
|||||||
Output files will be in [subproject]/build/libs
|
Output files will be in [subproject]/build/libs
|
||||||
*******************************************
|
*******************************************
|
||||||
""")
|
""")
|
||||||
|
|
||||||
//TODO FIX THIS WHEN I FEEL LIKE IT
|
//TODO FIX THIS WHEN I FEEL LIKE IT
|
||||||
var rootVersion = "1.16"
|
var rootVersion by extra("1.16")
|
||||||
var revision: String = ""
|
var revision: String by extra("")
|
||||||
var buildNumber = ""
|
var buildNumber by extra("")
|
||||||
var date: String = ""
|
var date: String by extra("")
|
||||||
ext {
|
ext {
|
||||||
val git: Grgit = Grgit.open {
|
val git: Grgit = Grgit.open {
|
||||||
dir = File("$rootDir/.git");
|
dir = File("$rootDir/.git");
|
||||||
}
|
}
|
||||||
ext["date"] = git.head().dateTime.format(DateTimeFormatter.ofPattern("yy.MM.dd"));
|
date = git.head().dateTime.format(DateTimeFormatter.ofPattern("yy.MM.dd"));
|
||||||
ext["revision"] = "-${git.head().abbreviatedId}";
|
revision = "-${git.head().abbreviatedId}";
|
||||||
var parents: MutableList<String>? = git.head().parentIds;
|
var parents: MutableList<String>? = git.head().parentIds;
|
||||||
if (project.hasProperty("buildnumber")) {
|
if (project.hasProperty("buildnumber")) {
|
||||||
buildNumber = project.properties["buildnumber"] as String;
|
buildNumber = project.properties["buildnumber"] as String;
|
||||||
@ -48,6 +49,8 @@ allprojects {
|
|||||||
|
|
||||||
version = String.format("%s-%s", rootVersion, buildNumber)
|
version = String.format("%s-%s", rootVersion, buildNumber)
|
||||||
|
|
||||||
|
applyCommonConfiguration()
|
||||||
|
|
||||||
if (!project.hasProperty("gitCommitHash")) {
|
if (!project.hasProperty("gitCommitHash")) {
|
||||||
apply(plugin = "org.ajoberstar.grgit")
|
apply(plugin = "org.ajoberstar.grgit")
|
||||||
ext["gitCommitHash"] = try {
|
ext["gitCommitHash"] = try {
|
||||||
|
@ -52,11 +52,11 @@ dependencies {
|
|||||||
implementation("com.github.jengelman.gradle.plugins:shadow:5.2.0")
|
implementation("com.github.jengelman.gradle.plugins:shadow:5.2.0")
|
||||||
implementation("net.ltgt.apt-eclipse:net.ltgt.apt-eclipse.gradle.plugin:0.21")
|
implementation("net.ltgt.apt-eclipse:net.ltgt.apt-eclipse.gradle.plugin:0.21")
|
||||||
implementation("net.ltgt.apt-idea:net.ltgt.apt-idea.gradle.plugin:0.21")
|
implementation("net.ltgt.apt-idea:net.ltgt.apt-idea.gradle.plugin:0.21")
|
||||||
implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.16.0")
|
//implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.16.0")
|
||||||
implementation("gradle.plugin.org.spongepowered:spongegradle:0.9.0")
|
//implementation("gradle.plugin.org.spongepowered:spongegradle:0.9.0")
|
||||||
implementation("net.minecraftforge.gradle:ForgeGradle:3.0.179")
|
//implementation("net.minecraftforge.gradle:ForgeGradle:3.0.181")
|
||||||
implementation("net.fabricmc:fabric-loom:$loomVersion")
|
//implementation("net.fabricmc:fabric-loom:$loomVersion")
|
||||||
implementation("net.fabricmc:sponge-mixin:$mixinVersion")
|
//implementation("net.fabricmc:sponge-mixin:$mixinVersion")
|
||||||
implementation("gradle.plugin.com.mendhak.gradlecrowdin:plugin:0.1.0")
|
implementation("gradle.plugin.com.mendhak.gradlecrowdin:plugin:0.1.0")
|
||||||
implementation("org.enginehub.gradle:gradle-codecov-plugin:0.1.0")
|
implementation("org.enginehub.gradle:gradle-codecov-plugin:0.1.0")
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.artifacts.ExternalModuleDependency
|
||||||
import org.gradle.api.artifacts.ModuleDependency
|
import org.gradle.api.artifacts.ModuleDependency
|
||||||
import org.gradle.api.internal.HasConvention
|
import org.gradle.api.internal.HasConvention
|
||||||
import org.gradle.api.plugins.MavenRepositoryHandlerConvention
|
import org.gradle.api.plugins.MavenRepositoryHandlerConvention
|
||||||
@ -41,7 +42,7 @@ fun Project.applyLibrariesConfiguration() {
|
|||||||
val deps = configurations["shade"].incoming.dependencies
|
val deps = configurations["shade"].incoming.dependencies
|
||||||
.filterIsInstance<ModuleDependency>()
|
.filterIsInstance<ModuleDependency>()
|
||||||
.map { it.copy() }
|
.map { it.copy() }
|
||||||
.map { dependency ->
|
.map { dependency: ModuleDependency ->
|
||||||
dependency.artifact {
|
dependency.artifact {
|
||||||
name = dependency.name
|
name = dependency.name
|
||||||
type = artifactType
|
type = artifactType
|
||||||
@ -95,3 +96,16 @@ fun Project.applyLibrariesConfiguration() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Project.constrainDependenciesToLibsCore() {
|
||||||
|
evaluationDependsOn(":worldedit-libs:core")
|
||||||
|
val coreDeps = project(":worldedit-libs:core").configurations["shade"].dependencies
|
||||||
|
.filterIsInstance<ExternalModuleDependency>()
|
||||||
|
dependencies.constraints {
|
||||||
|
for (coreDep in coreDeps) {
|
||||||
|
add("shade", "${coreDep.group}:${coreDep.name}:${coreDep.version}") {
|
||||||
|
because("libs should align with libs:core")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -4,6 +4,7 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.plugins.JavaPluginConvention
|
import org.gradle.api.plugins.JavaPluginConvention
|
||||||
import org.gradle.api.plugins.quality.CheckstyleExtension
|
import org.gradle.api.plugins.quality.CheckstyleExtension
|
||||||
import org.gradle.api.tasks.bundling.Jar
|
import org.gradle.api.tasks.bundling.Jar
|
||||||
|
import org.gradle.api.tasks.compile.JavaCompile
|
||||||
import org.gradle.api.tasks.javadoc.Javadoc
|
import org.gradle.api.tasks.javadoc.Javadoc
|
||||||
import org.gradle.api.tasks.testing.Test
|
import org.gradle.api.tasks.testing.Test
|
||||||
import org.gradle.external.javadoc.CoreJavadocOptions
|
import org.gradle.external.javadoc.CoreJavadocOptions
|
||||||
@ -32,6 +33,18 @@ fun Project.applyPlatformAndCoreConfiguration() {
|
|||||||
targetCompatibility = JavaVersion.VERSION_1_8
|
targetCompatibility = JavaVersion.VERSION_1_8
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks
|
||||||
|
.withType<JavaCompile>()
|
||||||
|
.matching { it.name == "compileJava" || it.name == "compileTestJava" }
|
||||||
|
.configureEach {
|
||||||
|
val disabledLint = listOf(
|
||||||
|
"processing", "path", "fallthrough", "serial"
|
||||||
|
)
|
||||||
|
//options.compilerArgs.addAll(listOf("-Xlint:all") + disabledLint.map { "-Xlint:-$it" })
|
||||||
|
options.isDeprecation = false
|
||||||
|
options.encoding = "UTF-8"
|
||||||
|
}
|
||||||
|
|
||||||
// configure<CheckstyleExtension> {
|
// configure<CheckstyleExtension> {
|
||||||
// configFile = rootProject.file("config/checkstyle/checkstyle.xml")
|
// configFile = rootProject.file("config/checkstyle/checkstyle.xml")
|
||||||
// toolVersion = "8.34"
|
// toolVersion = "8.34"
|
||||||
@ -52,19 +65,14 @@ fun Project.applyPlatformAndCoreConfiguration() {
|
|||||||
|
|
||||||
// Java 8 turns on doclint which we fail
|
// Java 8 turns on doclint which we fail
|
||||||
tasks.withType<Javadoc>().configureEach {
|
tasks.withType<Javadoc>().configureEach {
|
||||||
//delete("docs/javadoc")
|
(options as StandardJavadocDocletOptions).apply {
|
||||||
//setDestinationDir(file("docs/javadoc"))
|
addStringOption("Xdoclint:none", "-quiet")
|
||||||
//title = "${project.name} ${project.version} API"
|
tags(
|
||||||
//(options as StandardJavadocDocletOptions).addStringOption("author", "true")
|
"apiNote:a:API Note:",
|
||||||
(options as CoreJavadocOptions).addStringOption("Xdoclint:none", "-quiet")
|
"implSpec:a:Implementation Requirements:",
|
||||||
// subprojects.forEach { proj ->
|
"implNote:a:Implementation Note:"
|
||||||
// proj.tasks.withType<Javadoc>().forEach { javadocTask ->
|
)
|
||||||
// source += javadocTask.source
|
}
|
||||||
// classpath += javadocTask.classpath
|
|
||||||
// excludes += javadocTask.excludes
|
|
||||||
// includes += javadocTask.includes
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register<Jar>("javadocJar") {
|
tasks.register<Jar>("javadocJar") {
|
||||||
|
@ -2,12 +2,15 @@ import org.gradle.api.Project
|
|||||||
|
|
||||||
object Versions {
|
object Versions {
|
||||||
const val TEXT = "3.0.4"
|
const val TEXT = "3.0.4"
|
||||||
const val TEXT_EXTRAS = "3.0.5"
|
const val TEXT_EXTRAS = "3.0.6"
|
||||||
const val PISTON = "0.5.6"
|
const val PISTON = "0.5.6"
|
||||||
const val AUTO_VALUE = "1.7"
|
const val AUTO_VALUE = "1.7"
|
||||||
const val JUNIT = "5.6.1"
|
const val JUNIT = "5.6.1"
|
||||||
const val MOCKITO = "3.3.3"
|
const val MOCKITO = "3.3.3"
|
||||||
const val LOGBACK = "1.2.3"
|
const val LOGBACK = "1.2.3"
|
||||||
|
const val FAST_UTIL = "8.2.1"
|
||||||
|
const val GUAVA = "21.0"
|
||||||
|
const val GSON = "2.8.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Properties that need a project reference to resolve:
|
// Properties that need a project reference to resolve:
|
||||||
|
@ -96,7 +96,7 @@ Checks based on Google Checks, modified for EngineHub.
|
|||||||
value="Member name ''{0}'' must match pattern ''{1}''."/>
|
value="Member name ''{0}'' must match pattern ''{1}''."/>
|
||||||
</module>
|
</module>
|
||||||
<module name="ParameterName">
|
<module name="ParameterName">
|
||||||
<property name="format" value="^([a-z][a-z0-9][_a-zA-Z0-9]*|[a-z])$"/>
|
<property name="format" value="^([a-z][_a-zA-Z0-9]*|[a-z])$"/>
|
||||||
<message key="name.invalidPattern"
|
<message key="name.invalidPattern"
|
||||||
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
|
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
|
||||||
</module>
|
</module>
|
||||||
|
@ -23,7 +23,6 @@ repositories {
|
|||||||
name = "ProtocolLib Repo"
|
name = "ProtocolLib Repo"
|
||||||
url = uri("https://repo.dmulloy2.net/nexus/repository/public/")
|
url = uri("https://repo.dmulloy2.net/nexus/repository/public/")
|
||||||
}
|
}
|
||||||
maven { url = uri("https://repo.inventivetalent.org/content/groups/public/")}
|
|
||||||
flatDir {dir(File("src/main/resources"))}
|
flatDir {dir(File("src/main/resources"))}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,32 +33,36 @@ configurations.all {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile("com.github.MilkBowl:VaultAPI:1.7") { isTransitive = false }
|
compileOnly("com.github.MilkBowl:VaultAPI:1.7") {
|
||||||
|
isTransitive = false
|
||||||
|
}
|
||||||
"api"(project(":worldedit-core"))
|
"api"(project(":worldedit-core"))
|
||||||
"api"(project(":worldedit-libs:bukkit"))
|
"api"(project(":worldedit-libs:bukkit"))
|
||||||
"compile"(":worldedit-adapters:")
|
"compile"(":worldedit-adapters:")
|
||||||
"compile"("org.spigotmcv1_14_r1:spigotmcv1_14_r1:1_14_r1")
|
"compile"("org.spigotmcv1_14_r1:spigotmcv1_14_r1:1_14_r1")
|
||||||
"compile"("org.spigotmcv1_15_r1:spigotmcv1_15_r1:1_15_r1")
|
"compile"("org.spigotmcv1_15_r1:spigotmcv1_15_r1:1_15_r1")
|
||||||
"compile"("it.unimi.dsi:fastutil:8.2.1")
|
"implementation"("it.unimi.dsi:fastutil:${Versions.FAST_UTIL}")
|
||||||
"api"("com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT") {
|
"api"("com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT") {
|
||||||
exclude("junit", "junit")
|
exclude("junit", "junit")
|
||||||
isTransitive = false
|
isTransitive = false
|
||||||
}
|
}
|
||||||
|
"compileOnly"("org.jetbrains:annotations:20.0.0")
|
||||||
"compileOnly"("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
"compileOnly"("org.spigotmc:spigot:1.14.4-R0.1-SNAPSHOT")
|
||||||
"compileOnly"("org.spigotmc:spigot:1.15.2-R0.1-SNAPSHOT")
|
"compileOnly"("org.spigotmc:spigot:1.15.2-R0.1-SNAPSHOT")
|
||||||
"compileOnly"("org.spigotmc:spigot:1.16.1-R0.1-SNAPSHOT")
|
"compileOnly"("org.spigotmc:spigot:1.16.1-R0.1-SNAPSHOT")
|
||||||
"implementation"("io.papermc:paperlib:1.0.2")
|
"implementation"("io.papermc:paperlib:1.0.+")
|
||||||
"compileOnly"("com.sk89q:dummypermscompat:1.10")
|
"compileOnly"("com.sk89q:dummypermscompat:1.10") {
|
||||||
|
exclude("com.github.MilkBowl", "VaultAPI")
|
||||||
|
}
|
||||||
"implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1")
|
"implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1")
|
||||||
"testCompile"("org.mockito:mockito-core:1.9.0-rc1")
|
"testImplementation"("org.mockito:mockito-core:1.9.0-rc1")
|
||||||
"compileOnly"("com.sk89q.worldguard:worldguard-bukkit:7.+") {
|
"compileOnly"("com.sk89q.worldguard:worldguard-bukkit:7.+") {
|
||||||
exclude("com.sk89q.worldedit", "worldedit-bukkit")
|
exclude("com.sk89q.worldedit", "worldedit-bukkit")
|
||||||
exclude("com.sk89q.worldedit", "worldedit-core")
|
exclude("com.sk89q.worldedit", "worldedit-core")
|
||||||
exclude("com.sk89q.worldedit.worldedit-libs", "bukkit")
|
exclude("com.sk89q.worldedit.worldedit-libs", "bukkit")
|
||||||
exclude("com.sk89q.worldedit.worldedit-libs", "core")
|
exclude("com.sk89q.worldedit.worldedit-libs", "core")
|
||||||
}
|
}
|
||||||
"implementation"("org.inventivetalent:mapmanager:1.7.3-SNAPSHOT") { isTransitive = false }
|
"implementation"("com.github.InventivetalentDev:MapManager:1.7.+") { isTransitive = false }
|
||||||
|
|
||||||
"implementation"("com.github.TechFortress:GriefPrevention:16.+") { isTransitive = false }
|
"implementation"("com.github.TechFortress:GriefPrevention:16.+") { isTransitive = false }
|
||||||
"implementation"("com.massivecraft:mcore:7.0.1") { isTransitive = false }
|
"implementation"("com.massivecraft:mcore:7.0.1") { isTransitive = false }
|
||||||
"implementation"("com.bekvon.bukkit.residence:Residence:4.5._13.1") { isTransitive = false }
|
"implementation"("com.bekvon.bukkit.residence:Residence:4.5._13.1") { isTransitive = false }
|
||||||
@ -100,7 +103,7 @@ tasks.named<ShadowJar>("shadowJar") {
|
|||||||
include(dependency("org.bstats:bstats-bukkit:1.7"))
|
include(dependency("org.bstats:bstats-bukkit:1.7"))
|
||||||
}
|
}
|
||||||
relocate("io.papermc.lib", "com.sk89q.worldedit.bukkit.paperlib") {
|
relocate("io.papermc.lib", "com.sk89q.worldedit.bukkit.paperlib") {
|
||||||
include(dependency("io.papermc:paperlib:1.0.2"))
|
include(dependency("io.papermc:paperlib:1.+"))
|
||||||
}
|
}
|
||||||
relocate("it.unimi.dsi.fastutil", "com.sk89q.worldedit.bukkit.fastutil") {
|
relocate("it.unimi.dsi.fastutil", "com.sk89q.worldedit.bukkit.fastutil") {
|
||||||
include(dependency("it.unimi.dsi:fastutil"))
|
include(dependency("it.unimi.dsi:fastutil"))
|
||||||
|
@ -88,7 +88,7 @@ public class FaweBukkit implements IFawe, Listener {
|
|||||||
Integer.parseInt(Bukkit.getBukkitVersion().split("-")[0].split("\\.")[1]) >= 16;
|
Integer.parseInt(Bukkit.getBukkitVersion().split("-")[0].split("\\.")[1]) >= 16;
|
||||||
|
|
||||||
//Vault is Spigot/Paper only so this needs to be done in the Bukkit module
|
//Vault is Spigot/Paper only so this needs to be done in the Bukkit module
|
||||||
setupVault();
|
TaskManager.IMP.later(this::setupVault, 0);
|
||||||
|
|
||||||
//PlotSquared support is limited to Spigot/Paper as of 02/20/2020
|
//PlotSquared support is limited to Spigot/Paper as of 02/20/2020
|
||||||
TaskManager.IMP.later(this::setupPlotSquared, 0);
|
TaskManager.IMP.later(this::setupPlotSquared, 0);
|
||||||
|
@ -22,7 +22,7 @@ package com.sk89q.worldedit.bukkit;
|
|||||||
|
|
||||||
import com.boydti.fawe.Fawe;
|
import com.boydti.fawe.Fawe;
|
||||||
import com.boydti.fawe.bukkit.FaweBukkit;
|
import com.boydti.fawe.bukkit.FaweBukkit;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_14_R4;
|
import com.boydti.fawe.config.Settings;
|
||||||
import com.boydti.fawe.util.MainUtil;
|
import com.boydti.fawe.util.MainUtil;
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.sk89q.util.yaml.YAMLProcessor;
|
import com.sk89q.util.yaml.YAMLProcessor;
|
||||||
@ -33,6 +33,7 @@ import com.sk89q.worldedit.WorldEdit;
|
|||||||
import com.sk89q.worldedit.bukkit.adapter.AdapterLoadException;
|
import com.sk89q.worldedit.bukkit.adapter.AdapterLoadException;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
|
import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.BukkitImplLoader;
|
import com.sk89q.worldedit.bukkit.adapter.BukkitImplLoader;
|
||||||
|
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_14_R4;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_15_R2;
|
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_15_R2;
|
||||||
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_16_R1;
|
import com.sk89q.worldedit.bukkit.adapter.impl.FAWE_Spigot_v1_16_R1;
|
||||||
import com.sk89q.worldedit.event.platform.CommandEvent;
|
import com.sk89q.worldedit.event.platform.CommandEvent;
|
||||||
@ -42,8 +43,8 @@ import com.sk89q.worldedit.extension.platform.Actor;
|
|||||||
import com.sk89q.worldedit.extension.platform.Capability;
|
import com.sk89q.worldedit.extension.platform.Capability;
|
||||||
import com.sk89q.worldedit.extension.platform.Platform;
|
import com.sk89q.worldedit.extension.platform.Platform;
|
||||||
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
||||||
import com.sk89q.worldedit.internal.command.CommandUtil;
|
|
||||||
import com.sk89q.worldedit.internal.anvil.ChunkDeleter;
|
import com.sk89q.worldedit.internal.anvil.ChunkDeleter;
|
||||||
|
import com.sk89q.worldedit.internal.command.CommandUtil;
|
||||||
import com.sk89q.worldedit.world.biome.BiomeType;
|
import com.sk89q.worldedit.world.biome.BiomeType;
|
||||||
import com.sk89q.worldedit.world.block.BlockCategory;
|
import com.sk89q.worldedit.world.block.BlockCategory;
|
||||||
import com.sk89q.worldedit.world.entity.EntityType;
|
import com.sk89q.worldedit.world.entity.EntityType;
|
||||||
@ -51,9 +52,6 @@ import com.sk89q.worldedit.world.gamemode.GameModes;
|
|||||||
import com.sk89q.worldedit.world.item.ItemCategory;
|
import com.sk89q.worldedit.world.item.ItemCategory;
|
||||||
import com.sk89q.worldedit.world.weather.WeatherTypes;
|
import com.sk89q.worldedit.world.weather.WeatherTypes;
|
||||||
import io.papermc.lib.PaperLib;
|
import io.papermc.lib.PaperLib;
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -75,22 +73,25 @@ import org.bukkit.plugin.PluginManager;
|
|||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
import org.bukkit.plugin.java.JavaPluginLoader;
|
import org.bukkit.plugin.java.JavaPluginLoader;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
@ -112,6 +113,7 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
private BukkitConfiguration config;
|
private BukkitConfiguration config;
|
||||||
|
|
||||||
private static Map<String, Plugin> lookupNames;
|
private static Map<String, Plugin> lookupNames;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// Disable AWE as otherwise both fail to load
|
// Disable AWE as otherwise both fail to load
|
||||||
PluginManager manager = Bukkit.getPluginManager();
|
PluginManager manager = Bukkit.getPluginManager();
|
||||||
@ -142,7 +144,8 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
return super.put(key, plugin);
|
return super.put(key, plugin);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (Throwable ignore) {}
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public WorldEditPlugin() {
|
public WorldEditPlugin() {
|
||||||
@ -167,7 +170,9 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoad() {
|
public void onLoad() {
|
||||||
if (INSTANCE != null) return;
|
if (INSTANCE != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
rename();
|
rename();
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
FaweBukkit imp = new FaweBukkit(this);
|
FaweBukkit imp = new FaweBukkit(this);
|
||||||
@ -185,8 +190,8 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
if (Files.exists(delChunks)) {
|
if (Files.exists(delChunks)) {
|
||||||
ChunkDeleter.runFromFile(delChunks, true);
|
ChunkDeleter.runFromFile(delChunks, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
fail(() -> PermissionsResolverManager.initialize(INSTANCE), "Failed to initialize permissions resolver");
|
fail(() -> PermissionsResolverManager.initialize(INSTANCE), "Failed to initialize permissions resolver");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -194,15 +199,17 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
if (INSTANCE != null) return;
|
if (INSTANCE != null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
onLoad();
|
onLoad();
|
||||||
|
|
||||||
PermissionsResolverManager.initialize(this); // Setup permission resolver
|
PermissionsResolverManager.initialize(this); // Setup permission resolver
|
||||||
|
|
||||||
// Register CUI
|
// Register CUI
|
||||||
fail(() -> {
|
fail(() -> {
|
||||||
getServer().getMessenger().registerIncomingPluginChannel(this, CUI_PLUGIN_CHANNEL, new CUIChannelListener(this));
|
getServer().getMessenger().registerIncomingPluginChannel(this, CUI_PLUGIN_CHANNEL, new CUIChannelListener(this));
|
||||||
getServer().getMessenger().registerOutgoingPluginChannel(this, CUI_PLUGIN_CHANNEL);
|
getServer().getMessenger().registerOutgoingPluginChannel(this, CUI_PLUGIN_CHANNEL);
|
||||||
}, "Failed to register CUI");
|
}, "Failed to register CUI");
|
||||||
|
|
||||||
// Now we can register events
|
// Now we can register events
|
||||||
@ -227,8 +234,15 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable metrics
|
// Setup metrics
|
||||||
new Metrics(this, BSTATS_PLUGIN_ID);
|
if (Settings.IMP.ENABLED_COMPONENTS.BSTATS) {
|
||||||
|
new Metrics(this, BSTATS_PLUGIN_ID);
|
||||||
|
} else {
|
||||||
|
getLogger().warning("bStats is disabled. Please enable it in /plugins/FastAsyncWorldEdit/config.yml. It helps the developers to identify the features most used");
|
||||||
|
getLogger().warning("and organize future updates better. Cheers.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Suggest PaperMC
|
||||||
PaperLib.suggestPaper(this);
|
PaperLib.suggestPaper(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -248,8 +262,11 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
// Biome
|
// Biome
|
||||||
for (Biome biome : Biome.values()) {
|
for (Biome biome : Biome.values()) {
|
||||||
String lowerCaseBiomeName = biome.name().toLowerCase(Locale.ROOT);
|
String lowerCaseBiomeName = biome.name().toLowerCase(Locale.ROOT);
|
||||||
BiomeType biomeType = BiomeType.REGISTRY.register("minecraft:" + lowerCaseBiomeName, new BiomeType("minecraft:" + lowerCaseBiomeName));
|
BiomeType biomeType = BiomeType.REGISTRY.register(
|
||||||
if (bukkitAdapter != null) biomeType.setLegacyId(bukkitAdapter.getInternalBiomeId(biomeType));
|
"minecraft:" + lowerCaseBiomeName, new BiomeType("minecraft:" + lowerCaseBiomeName));
|
||||||
|
if (bukkitAdapter != null) {
|
||||||
|
biomeType.setLegacyId(bukkitAdapter.getInternalBiomeId(biomeType));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Block & Item
|
// Block & Item
|
||||||
/*for (Material material : Material.values()) {
|
/*for (Material material : Material.values()) {
|
||||||
@ -321,7 +338,9 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
File pluginsFolder = MainUtil.getJarFile().getParentFile();
|
File pluginsFolder = MainUtil.getJarFile().getParentFile();
|
||||||
|
|
||||||
for (File file : pluginsFolder.listFiles()) {
|
for (File file : pluginsFolder.listFiles()) {
|
||||||
if (file.length() == 2052) return;
|
if (file.length() == 2052) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Plugin plugin = Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit");
|
Plugin plugin = Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit");
|
||||||
File dummy = MainUtil.copyFile(MainUtil.getJarFile(), "DummyFawe.src", pluginsFolder, "DummyFawe.jar");
|
File dummy = MainUtil.copyFile(MainUtil.getJarFile(), "DummyFawe.src", pluginsFolder, "DummyFawe.jar");
|
||||||
@ -396,9 +415,9 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
if (platform instanceof BukkitServerInterface) {
|
if (platform instanceof BukkitServerInterface) {
|
||||||
log.warn(e.getMessage());
|
log.warn(e.getMessage());
|
||||||
} else {
|
} else {
|
||||||
log.info("WorldEdit could not find a Bukkit adapter for this MC version, " +
|
log.info("WorldEdit could not find a Bukkit adapter for this MC version, "
|
||||||
"but it seems that you have another implementation of WorldEdit installed (" + platform.getPlatformName() + ") " +
|
+ "but it seems that you have another implementation of WorldEdit installed (" + platform.getPlatformName() + ") "
|
||||||
"that handles the world editing.");
|
+ "that handles the world editing.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -439,7 +458,9 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
File actual = new File(getDataFolder(), name);
|
File actual = new File(getDataFolder(), name);
|
||||||
if (!actual.exists()) {
|
if (!actual.exists()) {
|
||||||
try (InputStream stream = getResource("defaults/" + name)) {
|
try (InputStream stream = getResource("defaults/" + name)) {
|
||||||
if (stream == null) throw new FileNotFoundException();
|
if (stream == null) {
|
||||||
|
throw new FileNotFoundException();
|
||||||
|
}
|
||||||
copyDefaultConfig(stream, actual, name);
|
copyDefaultConfig(stream, actual, name);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
getLogger().severe("Unable to read default configuration: " + name);
|
getLogger().severe("Unable to read default configuration: " + name);
|
||||||
@ -630,9 +651,12 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
|
|
||||||
private class WorldInitListener implements Listener {
|
private class WorldInitListener implements Listener {
|
||||||
private boolean loaded = false;
|
private boolean loaded = false;
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
public void onWorldInit(@SuppressWarnings("unused") WorldInitEvent event) {
|
public void onWorldInit(@SuppressWarnings("unused") WorldInitEvent event) {
|
||||||
if (loaded) return;
|
if (loaded) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
loaded = true;
|
loaded = true;
|
||||||
setupWorldData();
|
setupWorldData();
|
||||||
}
|
}
|
||||||
@ -645,17 +669,23 @@ public class WorldEditPlugin extends JavaPlugin { //implements TabCompleter
|
|||||||
@SuppressWarnings("UnnecessaryFullyQualifiedName")
|
@SuppressWarnings("UnnecessaryFullyQualifiedName")
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onAsyncTabComplete(com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event) {
|
public void onAsyncTabComplete(com.destroystokyo.paper.event.server.AsyncTabCompleteEvent event) {
|
||||||
if (!event.isCommand()) return;
|
if (!event.isCommand()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
String buffer = event.getBuffer();
|
String buffer = event.getBuffer();
|
||||||
int firstSpace = buffer.indexOf(' ');
|
int firstSpace = buffer.indexOf(' ');
|
||||||
if (firstSpace < 0) return;
|
if (firstSpace < 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
String label = buffer.substring(0, firstSpace);
|
String label = buffer.substring(0, firstSpace);
|
||||||
// Strip leading slash, if present.
|
// Strip leading slash, if present.
|
||||||
label = label.startsWith("/") ? label.substring(1) : label;
|
label = label.startsWith("/") ? label.substring(1) : label;
|
||||||
final Optional<org.enginehub.piston.Command> command
|
final Optional<org.enginehub.piston.Command> command
|
||||||
= WorldEdit.getInstance().getPlatformManager().getPlatformCommandManager().getCommandManager().getCommand(label);
|
= WorldEdit.getInstance().getPlatformManager().getPlatformCommandManager().getCommandManager().getCommand(label);
|
||||||
if (!command.isPresent()) return;
|
if (!command.isPresent()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
CommandSuggestionEvent suggestEvent = new CommandSuggestionEvent(wrapCommandSender(event.getSender()), buffer);
|
CommandSuggestionEvent suggestEvent = new CommandSuggestionEvent(wrapCommandSender(event.getSender()), buffer);
|
||||||
getWorldEdit().getEventBus().post(suggestEvent);
|
getWorldEdit().getEventBus().post(suggestEvent);
|
||||||
|
@ -1,13 +1,19 @@
|
|||||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
`java-library`
|
||||||
|
}
|
||||||
|
|
||||||
applyPlatformAndCoreConfiguration()
|
applyPlatformAndCoreConfiguration()
|
||||||
applyShadowConfiguration()
|
applyShadowConfiguration()
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"compile"(project(":worldedit-core"))
|
"api"(project(":worldedit-core"))
|
||||||
"compile"("org.apache.logging.log4j:log4j-core:2.8.1")
|
"implementation"("org.apache.logging.log4j:log4j-core:2.8.1")
|
||||||
"compile"("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1")
|
"implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1")
|
||||||
"compile"("commons-cli:commons-cli:1.4")
|
"implementation"("commons-cli:commons-cli:1.4")
|
||||||
|
"implementation"("com.google.guava:guava:${Versions.GUAVA}")
|
||||||
|
"implementation"("com.google.code.gson:gson:${Versions.GSON}")
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named<Jar>("jar") {
|
tasks.named<Jar>("jar") {
|
||||||
|
@ -29,22 +29,22 @@ configurations.all {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"compile"(project(":worldedit-libs:core"))
|
"api"(project(":worldedit-libs:core"))
|
||||||
"compile"("de.schlichtherle:truezip:6.8.3")
|
"implementation"("de.schlichtherle:truezip:6.8.3")
|
||||||
"compile"("net.java.truevfs:truevfs-profile-default_2.13:0.12.1")
|
"implementation"("net.java.truevfs:truevfs-profile-default_2.13:0.12.1")
|
||||||
"compile"("org.mozilla:rhino-runtime:1.7.12")
|
"implementation"("org.mozilla:rhino-runtime:1.7.12")
|
||||||
"compile"("org.yaml:snakeyaml:1.23")
|
"implementation"("org.yaml:snakeyaml:1.23")
|
||||||
"compile"("com.google.guava:guava:21.0")
|
"implementation"("com.google.guava:guava:${Versions.GUAVA}")
|
||||||
"compile"("com.google.code.findbugs:jsr305:3.0.2")
|
"implementation"("com.google.code.findbugs:jsr305:3.0.2")
|
||||||
"compile"("com.google.code.gson:gson:2.8.0")
|
"implementation"("com.google.code.gson:gson:${Versions.GSON}")
|
||||||
"compile"("org.slf4j:slf4j-api:1.7.26")
|
"implementation"("org.slf4j:slf4j-api:1.7.26")
|
||||||
"compile"("it.unimi.dsi:fastutil:8.2.1")
|
"implementation"("it.unimi.dsi:fastutil:${Versions.FAST_UTIL}")
|
||||||
|
|
||||||
val antlrVersion = "4.7.2"
|
val antlrVersion = "4.7.2"
|
||||||
"antlr"("org.antlr:antlr4:$antlrVersion")
|
"antlr"("org.antlr:antlr4:$antlrVersion")
|
||||||
"implementation"("org.antlr:antlr4-runtime:$antlrVersion")
|
"implementation"("org.antlr:antlr4-runtime:$antlrVersion")
|
||||||
|
|
||||||
"compile"("com.googlecode.json-simple:json-simple:1.1.1") { isTransitive = false }
|
"implementation"("com.googlecode.json-simple:json-simple:1.1.1") { isTransitive = false }
|
||||||
"compileOnly"(project(":worldedit-libs:core:ap"))
|
"compileOnly"(project(":worldedit-libs:core:ap"))
|
||||||
"annotationProcessor"(project(":worldedit-libs:core:ap"))
|
"annotationProcessor"(project(":worldedit-libs:core:ap"))
|
||||||
// ensure this is on the classpath for the AP
|
// ensure this is on the classpath for the AP
|
||||||
@ -53,7 +53,6 @@ dependencies {
|
|||||||
"annotationProcessor"("com.google.auto.value:auto-value:${Versions.AUTO_VALUE}")
|
"annotationProcessor"("com.google.auto.value:auto-value:${Versions.AUTO_VALUE}")
|
||||||
"testImplementation"("ch.qos.logback:logback-core:${Versions.LOGBACK}")
|
"testImplementation"("ch.qos.logback:logback-core:${Versions.LOGBACK}")
|
||||||
"testImplementation"("ch.qos.logback:logback-classic:${Versions.LOGBACK}")
|
"testImplementation"("ch.qos.logback:logback-classic:${Versions.LOGBACK}")
|
||||||
"compile"("co.aikar:fastutil-lite:1.0")
|
|
||||||
"compile"("com.github.luben:zstd-jni:1.4.3-1")
|
"compile"("com.github.luben:zstd-jni:1.4.3-1")
|
||||||
"compileOnly"("net.fabiozumbi12:redprotect:1.9.6")
|
"compileOnly"("net.fabiozumbi12:redprotect:1.9.6")
|
||||||
"compile"("com.github.intellectualsites.plotsquared:PlotSquared-API:latest") {
|
"compile"("com.github.intellectualsites.plotsquared:PlotSquared-API:latest") {
|
||||||
@ -62,7 +61,7 @@ dependencies {
|
|||||||
"compile"("com.plotsquared:PlotSquared-Core:5.12.2") {
|
"compile"("com.plotsquared:PlotSquared-Core:5.12.2") {
|
||||||
isTransitive = false
|
isTransitive = false
|
||||||
}
|
}
|
||||||
implementation(kotlin("stdlib-jdk8", "1.3.61"))
|
implementation(kotlin("stdlib-jdk8", "1.3.72"))
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named<Test>("test") {
|
tasks.named<Test>("test") {
|
||||||
|
@ -21,4 +21,5 @@ dependencies {
|
|||||||
"implementation"(project(":worldedit-core"))
|
"implementation"(project(":worldedit-core"))
|
||||||
"implementation"(kotlin("stdlib-jdk8"))
|
"implementation"(kotlin("stdlib-jdk8"))
|
||||||
"implementation"(kotlin("reflect"))
|
"implementation"(kotlin("reflect"))
|
||||||
|
"implementation"("com.google.guava:guava:${Versions.GUAVA}")
|
||||||
}
|
}
|
||||||
|
@ -80,6 +80,9 @@ public class Settings extends Config {
|
|||||||
"Specific aspects can be turned on and off further below"
|
"Specific aspects can be turned on and off further below"
|
||||||
})
|
})
|
||||||
public boolean PLOTSQUARED_HOOK = true;
|
public boolean PLOTSQUARED_HOOK = true;
|
||||||
|
@Comment({"Send anonymous FAWE statistics to https://bstats.org/.",
|
||||||
|
"Please keep this setting enabled. It helps us identifying which parts of FAWE are used the most to organize future updates better."})
|
||||||
|
public boolean BSTATS = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Comment("Paths for various directories")
|
@Comment("Paths for various directories")
|
||||||
|
@ -233,6 +233,8 @@ public final class IncendoPaster implements Paster {
|
|||||||
b.append("Uptime: ").append(TimeUnit.MINUTES.convert(rb.getUptime(), TimeUnit.MILLISECONDS) + " minutes").append('\n');
|
b.append("Uptime: ").append(TimeUnit.MINUTES.convert(rb.getUptime(), TimeUnit.MILLISECONDS) + " minutes").append('\n');
|
||||||
b.append("Free Memory: ").append(runtime.freeMemory() / 1024 / 1024 + " MB").append('\n');
|
b.append("Free Memory: ").append(runtime.freeMemory() / 1024 / 1024 + " MB").append('\n');
|
||||||
b.append("Max Memory: ").append(runtime.maxMemory() / 1024 / 1024 + " MB").append('\n');
|
b.append("Max Memory: ").append(runtime.maxMemory() / 1024 / 1024 + " MB").append('\n');
|
||||||
|
b.append("Total Memory: ").append(runtime.totalMemory() / 1024 / 1024 + " MB").append('\n');
|
||||||
|
b.append("Available Processors: ").append(runtime.availableProcessors()).append('\n');
|
||||||
b.append("Java Name: ").append(rb.getVmName()).append('\n');
|
b.append("Java Name: ").append(rb.getVmName()).append('\n');
|
||||||
b.append("Java Version: '").append(System.getProperty("java.version")).append("'\n");
|
b.append("Java Version: '").append(System.getProperty("java.version")).append("'\n");
|
||||||
b.append("Java Vendor: '").append(System.getProperty("java.vendor")).append("'\n");
|
b.append("Java Vendor: '").append(System.getProperty("java.vendor")).append("'\n");
|
||||||
|
@ -71,7 +71,7 @@ public class WorldEditCommands {
|
|||||||
@Command(
|
@Command(
|
||||||
name = "version",
|
name = "version",
|
||||||
aliases = { "ver" },
|
aliases = { "ver" },
|
||||||
desc = "Get WorldEdit/FAWE version"
|
desc = "Get the FAWE version"
|
||||||
)
|
)
|
||||||
@CommandPermissions(queued = false)
|
@CommandPermissions(queued = false)
|
||||||
public void version(Actor actor) {
|
public void version(Actor actor) {
|
||||||
@ -132,9 +132,8 @@ public class WorldEditCommands {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Command(
|
@Command(
|
||||||
name = "report",
|
name = "debugpaste",
|
||||||
aliases = { "debugpaste" },
|
desc = "Writes a report of latest.log, config.yml, config-legacy.yml, strings.json to https://athion.net/ISPaster/paste"
|
||||||
desc = "Writes a report of latest.log, config.yml, message.yml https://athion.net/ISPaster/paste"
|
|
||||||
)
|
)
|
||||||
@CommandPermissions(value = {"worldedit.report", "worldedit.debugpaste"}, queued = false)
|
@CommandPermissions(value = {"worldedit.report", "worldedit.debugpaste"}, queued = false)
|
||||||
public void report(Actor actor) throws WorldEditException {
|
public void report(Actor actor) throws WorldEditException {
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.internal.wna;
|
package com.sk89q.worldedit.internal.wna;
|
||||||
@ -110,7 +110,9 @@ public interface WorldNativeAccess<NC, NBS, NP> {
|
|||||||
/**
|
/**
|
||||||
* Receive the current side-effect set from the high level call.
|
* Receive the current side-effect set from the high level call.
|
||||||
*
|
*
|
||||||
|
* <p>
|
||||||
* This allows the implementation to branch on the side-effects internally.
|
* This allows the implementation to branch on the side-effects internally.
|
||||||
|
* </p>
|
||||||
*
|
*
|
||||||
* @param sideEffectSet the set of side-effects
|
* @param sideEffectSet the set of side-effects
|
||||||
*/
|
*/
|
||||||
@ -149,9 +151,11 @@ public interface WorldNativeAccess<NC, NBS, NP> {
|
|||||||
void onBlockStateChange(NP pos, NBS oldState, NBS newState);
|
void onBlockStateChange(NP pos, NBS oldState, NBS newState);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is a heavily modified function stripped from MC to apply worldedit-modifications.
|
* This is a heavily modified function stripped from MC to apply WorldEdit-modifications.
|
||||||
*
|
*
|
||||||
|
* <p>
|
||||||
* See Forge's World.markAndNotifyBlock
|
* See Forge's World.markAndNotifyBlock
|
||||||
|
* </p>
|
||||||
*/
|
*/
|
||||||
default void markAndNotifyBlock(NP pos, NC chunk, NBS oldState, NBS newState, SideEffectSet sideEffectSet) {
|
default void markAndNotifyBlock(NP pos, NC chunk, NBS oldState, NBS newState, SideEffectSet sideEffectSet) {
|
||||||
NBS blockState1 = getBlockState(chunk, pos);
|
NBS blockState1 = getBlockState(chunk, pos);
|
||||||
@ -178,6 +182,7 @@ public interface WorldNativeAccess<NC, NBS, NP> {
|
|||||||
updateNeighbors(pos, oldState, newState, 512);
|
updateNeighbors(pos, oldState, newState, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Seems used only for PoI updates
|
||||||
onBlockStateChange(pos, oldState, newState);
|
onBlockStateChange(pos, oldState, newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,23 +3,25 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "WNA", or WorldEdit Native Access.
|
* "WNA", or WorldEdit Native Access.
|
||||||
*
|
*
|
||||||
|
* <p>
|
||||||
* Contains internal helper functions for sharing code between platforms.
|
* Contains internal helper functions for sharing code between platforms.
|
||||||
|
* </p>
|
||||||
*/
|
*/
|
||||||
package com.sk89q.worldedit.internal.wna;
|
package com.sk89q.worldedit.internal.wna;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
@ -37,8 +37,10 @@ public class BlockVector2 {
|
|||||||
* A comparator for BlockVector2ds that orders the vectors by rows, with x as the
|
* A comparator for BlockVector2ds that orders the vectors by rows, with x as the
|
||||||
* column and z as the row.
|
* column and z as the row.
|
||||||
*
|
*
|
||||||
|
* <p>
|
||||||
* For example, if x is the horizontal axis and z is the vertical axis, it
|
* For example, if x is the horizontal axis and z is the vertical axis, it
|
||||||
* sorts like so:
|
* sorts like so:
|
||||||
|
* </p>
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* 0123
|
* 0123
|
||||||
@ -67,14 +69,18 @@ public class BlockVector2 {
|
|||||||
return ONE;
|
return ONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
return new BlockVector2(x, z);
|
return new BlockVector2(x, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected int x, z;
|
protected int x;
|
||||||
|
protected int z;
|
||||||
|
|
||||||
protected BlockVector2(){}
|
protected BlockVector2(){
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct an instance.
|
* Construct an instance.
|
||||||
@ -221,7 +227,8 @@ public class BlockVector2 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public BlockVector2 add(BlockVector2... others) {
|
public BlockVector2 add(BlockVector2... others) {
|
||||||
int newX = x, newZ = z;
|
int newX = x;
|
||||||
|
int newZ = z;
|
||||||
|
|
||||||
for (BlockVector2 other : others) {
|
for (BlockVector2 other : others) {
|
||||||
newX += other.x;
|
newX += other.x;
|
||||||
@ -262,7 +269,8 @@ public class BlockVector2 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public BlockVector2 subtract(BlockVector2... others) {
|
public BlockVector2 subtract(BlockVector2... others) {
|
||||||
int newX = x, newZ = z;
|
int newX = x;
|
||||||
|
int newZ = z;
|
||||||
|
|
||||||
for (BlockVector2 other : others) {
|
for (BlockVector2 other : others) {
|
||||||
newX -= other.x;
|
newX -= other.x;
|
||||||
@ -300,7 +308,8 @@ public class BlockVector2 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public BlockVector2 multiply(BlockVector2... others) {
|
public BlockVector2 multiply(BlockVector2... others) {
|
||||||
int newX = x, newZ = z;
|
int newX = x;
|
||||||
|
int newZ = z;
|
||||||
|
|
||||||
for (BlockVector2 other : others) {
|
for (BlockVector2 other : others) {
|
||||||
newX *= other.x;
|
newX *= other.x;
|
||||||
@ -371,6 +380,7 @@ public class BlockVector2 {
|
|||||||
public BlockVector2 shr(int n) {
|
public BlockVector2 shr(int n) {
|
||||||
return shr(n, n);
|
return shr(n, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the length of the vector.
|
* Get the length of the vector.
|
||||||
*
|
*
|
||||||
@ -520,8 +530,8 @@ public class BlockVector2 {
|
|||||||
*/
|
*/
|
||||||
public BlockVector2 getMinimum(BlockVector2 v2) {
|
public BlockVector2 getMinimum(BlockVector2 v2) {
|
||||||
return new BlockVector2(
|
return new BlockVector2(
|
||||||
Math.min(x, v2.x),
|
Math.min(x, v2.x),
|
||||||
Math.min(z, v2.z)
|
Math.min(z, v2.z)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -533,8 +543,8 @@ public class BlockVector2 {
|
|||||||
*/
|
*/
|
||||||
public BlockVector2 getMaximum(BlockVector2 v2) {
|
public BlockVector2 getMaximum(BlockVector2 v2) {
|
||||||
return new BlockVector2(
|
return new BlockVector2(
|
||||||
Math.max(x, v2.x),
|
Math.max(x, v2.x),
|
||||||
Math.max(z, v2.z)
|
Math.max(z, v2.z)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
@ -67,6 +67,8 @@ public abstract class BlockVector3 {
|
|||||||
return ONE;
|
return ONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
return new BlockVector3Imp(x, y, z);
|
return new BlockVector3Imp(x, y, z);
|
||||||
@ -80,9 +82,9 @@ public abstract class BlockVector3 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isLongPackable(BlockVector3 location) {
|
public static boolean isLongPackable(BlockVector3 location) {
|
||||||
return isHorizontallyInBounds(location.getX()) &&
|
return isHorizontallyInBounds(location.getX())
|
||||||
isHorizontallyInBounds(location.getZ()) &&
|
&& isHorizontallyInBounds(location.getZ())
|
||||||
0 <= location.getY() && location.getY() <= WORLD_Y_MAX;
|
&& 0 <= location.getY() && location.getY() <= WORLD_Y_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void checkLongPackable(BlockVector3 location) {
|
public static void checkLongPackable(BlockVector3 location) {
|
||||||
@ -110,6 +112,7 @@ public abstract class BlockVector3 {
|
|||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* Useful for sorting by chunk block storage order.
|
* Useful for sorting by chunk block storage order.
|
||||||
|
* </p>
|
||||||
*/
|
*/
|
||||||
public static Comparator<BlockVector3> sortByCoordsYzx() {
|
public static Comparator<BlockVector3> sortByCoordsYzx() {
|
||||||
return YzxOrderComparator.YZX_ORDER;
|
return YzxOrderComparator.YZX_ORDER;
|
||||||
@ -125,7 +128,7 @@ public abstract class BlockVector3 {
|
|||||||
|
|
||||||
public long toLongPackedForm() {
|
public long toLongPackedForm() {
|
||||||
checkLongPackable(this);
|
checkLongPackable(this);
|
||||||
return (getX() & BITS_26) | ((getZ() & BITS_26) << 26) | (((getY() & (long) BITS_12) << (26 + 26)));
|
return (getX() & BITS_26) | ((getZ() & BITS_26) << 26) | (((getY() & BITS_12) << (26 + 26)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public MutableBlockVector3 mutX(double x) {
|
public MutableBlockVector3 mutX(double x) {
|
||||||
@ -264,7 +267,9 @@ public abstract class BlockVector3 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public BlockVector3 add(BlockVector3... others) {
|
public BlockVector3 add(BlockVector3... others) {
|
||||||
int newX = getX(), newY = getY(), newZ = getZ();
|
int newX = getX();
|
||||||
|
int newY = getY();
|
||||||
|
int newZ = getZ();
|
||||||
|
|
||||||
for (BlockVector3 other : others) {
|
for (BlockVector3 other : others) {
|
||||||
newX += other.getX();
|
newX += other.getX();
|
||||||
@ -307,7 +312,9 @@ public abstract class BlockVector3 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public BlockVector3 subtract(BlockVector3... others) {
|
public BlockVector3 subtract(BlockVector3... others) {
|
||||||
int newX = getX(), newY = getY(), newZ = getZ();
|
int newX = getX();
|
||||||
|
int newY = getY();
|
||||||
|
int newZ = getZ();
|
||||||
|
|
||||||
for (BlockVector3 other : others) {
|
for (BlockVector3 other : others) {
|
||||||
newX -= other.getX();
|
newX -= other.getX();
|
||||||
@ -347,7 +354,9 @@ public abstract class BlockVector3 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public BlockVector3 multiply(BlockVector3... others) {
|
public BlockVector3 multiply(BlockVector3... others) {
|
||||||
int newX = getX(), newY = getY(), newZ = getZ();
|
int newX = getX();
|
||||||
|
int newY = getY();
|
||||||
|
int newZ = getZ();
|
||||||
|
|
||||||
for (BlockVector3 other : others) {
|
for (BlockVector3 other : others) {
|
||||||
newX *= other.getX();
|
newX *= other.getX();
|
||||||
@ -766,8 +775,7 @@ public abstract class BlockVector3 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final boolean equals(BlockVector3 other) {
|
public final boolean equals(BlockVector3 other) {
|
||||||
return other.getX() == this.getX() && other.getY() == this.getY() && other.getZ() == this
|
return other.getX() == this.getX() && other.getY() == this.getY() && other.getZ() == this.getZ();
|
||||||
.getZ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -38,7 +38,9 @@ public final class BlockVector3Imp extends BlockVector3 {
|
|||||||
return new BlockVector3Imp(x, y, z);
|
return new BlockVector3Imp(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final int x, y, z;
|
private final int x;
|
||||||
|
private final int y;
|
||||||
|
private final int z;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct an instance.
|
* Construct an instance.
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
@ -63,14 +63,16 @@ public final class MathUtils {
|
|||||||
dInt += 360;
|
dInt += 360;
|
||||||
}
|
}
|
||||||
switch (dInt) {
|
switch (dInt) {
|
||||||
case 0:
|
case 0:
|
||||||
return 1.0;
|
return 1.0;
|
||||||
case 90:
|
case 90:
|
||||||
return 0.0;
|
return 0.0;
|
||||||
case 180:
|
case 180:
|
||||||
return -1.0;
|
return -1.0;
|
||||||
case 270:
|
case 270:
|
||||||
return 0.0;
|
return 0.0;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Math.cos(Math.toRadians(degrees));
|
return Math.cos(Math.toRadians(degrees));
|
||||||
@ -92,14 +94,16 @@ public final class MathUtils {
|
|||||||
dInt += 360;
|
dInt += 360;
|
||||||
}
|
}
|
||||||
switch (dInt) {
|
switch (dInt) {
|
||||||
case 0:
|
case 0:
|
||||||
return 0.0;
|
return 0.0;
|
||||||
case 90:
|
case 90:
|
||||||
return 1.0;
|
return 1.0;
|
||||||
case 180:
|
case 180:
|
||||||
return 0.0;
|
return 0.0;
|
||||||
case 270:
|
case 270:
|
||||||
return -1.0;
|
return -1.0;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Math.sin(Math.toRadians(degrees));
|
return Math.sin(Math.toRadians(degrees));
|
||||||
@ -109,7 +113,9 @@ public final class MathUtils {
|
|||||||
* Returns the rounded double of the given value, rounding to the
|
* Returns the rounded double of the given value, rounding to the
|
||||||
* nearest integer value away from zero on ties.
|
* nearest integer value away from zero on ties.
|
||||||
*
|
*
|
||||||
|
* <p>
|
||||||
* This behavior is the same as {@link java.math.RoundingMode#HALF_UP}.
|
* This behavior is the same as {@link java.math.RoundingMode#HALF_UP}.
|
||||||
|
* </p>
|
||||||
*
|
*
|
||||||
* @param value the value
|
* @param value the value
|
||||||
* @return the rounded value
|
* @return the rounded value
|
||||||
|
@ -8,7 +8,8 @@ public class MutableBlockVector2 extends BlockVector2 {
|
|||||||
return MUTABLE_CACHE.get().setComponents(x, z);
|
return MUTABLE_CACHE.get().setComponents(x, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MutableBlockVector2() {}
|
public MutableBlockVector2() {
|
||||||
|
}
|
||||||
|
|
||||||
public MutableBlockVector2(int x, int z) {
|
public MutableBlockVector2(int x, int z) {
|
||||||
super(x, z);
|
super(x, z);
|
||||||
|
@ -16,7 +16,8 @@ public class MutableBlockVector3 extends BlockVector3 {
|
|||||||
return FaweCache.IMP.MUTABLE_BLOCKVECTOR3.get().setComponents(x, y, z);
|
return FaweCache.IMP.MUTABLE_BLOCKVECTOR3.get().setComponents(x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MutableBlockVector3() {}
|
public MutableBlockVector3() {
|
||||||
|
}
|
||||||
|
|
||||||
public MutableBlockVector3(BlockVector3 other) {
|
public MutableBlockVector3(BlockVector3 other) {
|
||||||
this(other.getX(), other.getY(), other.getZ());
|
this(other.getX(), other.getY(), other.getZ());
|
||||||
@ -26,7 +27,9 @@ public class MutableBlockVector3 extends BlockVector3 {
|
|||||||
return setComponents(other.getBlockX(), other.getBlockY(), other.getBlockZ());
|
return setComponents(other.getBlockX(), other.getBlockY(), other.getBlockZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
private int x,y,z;
|
private int x;
|
||||||
|
private int y;
|
||||||
|
private int z;
|
||||||
|
|
||||||
public MutableBlockVector3(int x, int y, int z) {
|
public MutableBlockVector3(int x, int y, int z) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
|
@ -4,7 +4,9 @@ import com.boydti.fawe.FaweCache;
|
|||||||
|
|
||||||
public class MutableVector3 extends Vector3 {
|
public class MutableVector3 extends Vector3 {
|
||||||
|
|
||||||
private double x, y, z;
|
private double x;
|
||||||
|
private double y;
|
||||||
|
private double z;
|
||||||
|
|
||||||
public MutableVector3() {
|
public MutableVector3() {
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
@ -44,11 +44,14 @@ public final class Vector2 {
|
|||||||
return ONE;
|
return ONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return new Vector2(x, z);
|
return new Vector2(x, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final double x, z;
|
private final double x;
|
||||||
|
private final double z;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct an instance.
|
* Construct an instance.
|
||||||
@ -128,7 +131,8 @@ public final class Vector2 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public Vector2 add(Vector2... others) {
|
public Vector2 add(Vector2... others) {
|
||||||
double newX = x, newZ = z;
|
double newX = x;
|
||||||
|
double newZ = z;
|
||||||
|
|
||||||
for (Vector2 other : others) {
|
for (Vector2 other : others) {
|
||||||
newX += other.x;
|
newX += other.x;
|
||||||
@ -169,7 +173,8 @@ public final class Vector2 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public Vector2 subtract(Vector2... others) {
|
public Vector2 subtract(Vector2... others) {
|
||||||
double newX = x, newZ = z;
|
double newX = x;
|
||||||
|
double newZ = z;
|
||||||
|
|
||||||
for (Vector2 other : others) {
|
for (Vector2 other : others) {
|
||||||
newX -= other.x;
|
newX -= other.x;
|
||||||
@ -207,7 +212,8 @@ public final class Vector2 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public Vector2 multiply(Vector2... others) {
|
public Vector2 multiply(Vector2... others) {
|
||||||
double newX = x, newZ = z;
|
double newX = x;
|
||||||
|
double newZ = z;
|
||||||
|
|
||||||
for (Vector2 other : others) {
|
for (Vector2 other : others) {
|
||||||
newX *= other.x;
|
newX *= other.x;
|
||||||
@ -418,7 +424,7 @@ public final class Vector2 {
|
|||||||
Math.max(z, v2.z)
|
Math.max(z, v2.z)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BlockVector2 toBlockPoint(double x, double z) {
|
public static BlockVector2 toBlockPoint(double x, double z) {
|
||||||
return BlockVector2.at(x, z);
|
return BlockVector2.at(x, z);
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
@ -54,6 +54,8 @@ public abstract class Vector3 {
|
|||||||
return ONE;
|
return ONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
return new Vector3Impl(x, y, z);
|
return new Vector3Impl(x, y, z);
|
||||||
@ -75,6 +77,7 @@ public abstract class Vector3 {
|
|||||||
*
|
*
|
||||||
* <p>
|
* <p>
|
||||||
* Useful for sorting by chunk block storage order.
|
* Useful for sorting by chunk block storage order.
|
||||||
|
* </p>
|
||||||
*/
|
*/
|
||||||
public static Comparator<Vector3> sortByCoordsYzx() {
|
public static Comparator<Vector3> sortByCoordsYzx() {
|
||||||
return YzxOrderComparator.YZX_ORDER;
|
return YzxOrderComparator.YZX_ORDER;
|
||||||
@ -209,7 +212,9 @@ public abstract class Vector3 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public Vector3 add(Vector3... others) {
|
public Vector3 add(Vector3... others) {
|
||||||
double newX = getX(), newY = getY(), newZ = getZ();
|
double newX = getX();
|
||||||
|
double newY = getY();
|
||||||
|
double newZ = getZ();
|
||||||
|
|
||||||
for (Vector3 other : others) {
|
for (Vector3 other : others) {
|
||||||
newX += other.getX();
|
newX += other.getX();
|
||||||
@ -252,7 +257,9 @@ public abstract class Vector3 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public Vector3 subtract(Vector3... others) {
|
public Vector3 subtract(Vector3... others) {
|
||||||
double newX = getX(), newY = getY(), newZ = getZ();
|
double newX = getX();
|
||||||
|
double newY = getY();
|
||||||
|
double newZ = getZ();
|
||||||
|
|
||||||
for (Vector3 other : others) {
|
for (Vector3 other : others) {
|
||||||
newX -= other.getX();
|
newX -= other.getX();
|
||||||
@ -292,7 +299,9 @@ public abstract class Vector3 {
|
|||||||
* @return a new vector
|
* @return a new vector
|
||||||
*/
|
*/
|
||||||
public Vector3 multiply(Vector3... others) {
|
public Vector3 multiply(Vector3... others) {
|
||||||
double newX = getX(), newY = getY(), newZ = getZ();
|
double newX = getX();
|
||||||
|
double newY = getY();
|
||||||
|
double newZ = getZ();
|
||||||
|
|
||||||
for (Vector3 other : others) {
|
for (Vector3 other : others) {
|
||||||
newX *= other.getX();
|
newX *= other.getX();
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package com.sk89q.worldedit.math;
|
package com.sk89q.worldedit.math;
|
||||||
|
|
||||||
public class Vector3Impl extends Vector3 {
|
public class Vector3Impl extends Vector3 {
|
||||||
private final double x,y,z;
|
private final double x;
|
||||||
|
private final double y;
|
||||||
|
private final double z;
|
||||||
|
|
||||||
public Vector3Impl(double x, double y, double z) {
|
public Vector3Impl(double x, double y, double z) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.convolution;
|
package com.sk89q.worldedit.math.convolution;
|
||||||
@ -25,8 +25,8 @@ package com.sk89q.worldedit.math.convolution;
|
|||||||
public class GaussianKernel extends Kernel {
|
public class GaussianKernel extends Kernel {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor of the kernel
|
* Constructor of the kernel.
|
||||||
*
|
*
|
||||||
* @param radius the resulting diameter will be radius * 2 + 1
|
* @param radius the resulting diameter will be radius * 2 + 1
|
||||||
* @param sigma controls 'flatness'
|
* @param sigma controls 'flatness'
|
||||||
*/
|
*/
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.convolution;
|
package com.sk89q.worldedit.math.convolution;
|
||||||
@ -46,14 +46,14 @@ public class HeightMap {
|
|||||||
private final boolean layers;
|
private final boolean layers;
|
||||||
private int[] data;
|
private int[] data;
|
||||||
private boolean[] invalid;
|
private boolean[] invalid;
|
||||||
private int width;
|
private final int width;
|
||||||
private int height;
|
private final int height;
|
||||||
|
|
||||||
private Region region;
|
private final Region region;
|
||||||
private EditSession session;
|
private final EditSession session;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs the HeightMap
|
* Constructs the HeightMap.
|
||||||
*
|
*
|
||||||
* @param session an edit session
|
* @param session an edit session
|
||||||
* @param region the region
|
* @param region the region
|
||||||
@ -106,10 +106,11 @@ public class HeightMap {
|
|||||||
int yTmp = 255;
|
int yTmp = 255;
|
||||||
for (int z = 0; z < height; ++z) {
|
for (int z = 0; z < height; ++z) {
|
||||||
for (int x = 0; x < width; ++x, index++) {
|
for (int x = 0; x < width; ++x, index++) {
|
||||||
if (mask != null)
|
if (mask != null) {
|
||||||
yTmp = session.getNearestSurfaceTerrainBlock(x + minX, z + minZ, yTmp, minY, maxY, Integer.MIN_VALUE, Integer.MAX_VALUE, mask);
|
yTmp = session.getNearestSurfaceTerrainBlock(x + minX, z + minZ, yTmp, minY, maxY, Integer.MIN_VALUE, Integer.MAX_VALUE, mask);
|
||||||
else
|
} else {
|
||||||
yTmp = session.getNearestSurfaceTerrainBlock(x + minX, z + minZ, yTmp, minY, maxY, Integer.MIN_VALUE, Integer.MAX_VALUE);
|
yTmp = session.getNearestSurfaceTerrainBlock(x + minX, z + minZ, yTmp, minY, maxY, Integer.MIN_VALUE, Integer.MAX_VALUE);
|
||||||
|
}
|
||||||
switch (yTmp) {
|
switch (yTmp) {
|
||||||
case Integer.MIN_VALUE:
|
case Integer.MIN_VALUE:
|
||||||
yTmp = minY;
|
yTmp = minY;
|
||||||
@ -145,8 +146,8 @@ public class HeightMap {
|
|||||||
* @param filter the filter
|
* @param filter the filter
|
||||||
* @param iterations the number of iterations
|
* @param iterations the number of iterations
|
||||||
* @return number of blocks affected
|
* @return number of blocks affected
|
||||||
|
* @throws MaxChangedBlocksException if the maximum block change limit is exceeded
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public int applyFilter(HeightMapFilter filter, int iterations) throws MaxChangedBlocksException {
|
public int applyFilter(HeightMapFilter filter, int iterations) throws MaxChangedBlocksException {
|
||||||
checkNotNull(filter);
|
checkNotNull(filter);
|
||||||
|
|
||||||
@ -182,7 +183,9 @@ public class HeightMap {
|
|||||||
for (int z = 0; z < height; ++z) {
|
for (int z = 0; z < height; ++z) {
|
||||||
int zr = z + originZ;
|
int zr = z + originZ;
|
||||||
for (int x = 0; x < width; ++x) {
|
for (int x = 0; x < width; ++x) {
|
||||||
if (this.invalid != null && this.invalid[index]) continue;
|
if (this.invalid != null && this.invalid[index]) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int curHeight = this.data[index];
|
int curHeight = this.data[index];
|
||||||
|
|
||||||
//Clamp newHeight within the selection area
|
//Clamp newHeight within the selection area
|
||||||
@ -204,7 +207,9 @@ public class HeightMap {
|
|||||||
// Grow -- start from 1 below top replacing airblocks
|
// Grow -- start from 1 below top replacing airblocks
|
||||||
for (int setY = newBlock - 1, getY = curBlock; setY >= curBlock; --setY, getY--) {
|
for (int setY = newBlock - 1, getY = curBlock; setY >= curBlock; --setY, getY--) {
|
||||||
BlockStateHolder<BlockState> get = session.getBlock(xr, getY, zr);
|
BlockStateHolder<BlockState> get = session.getBlock(xr, getY, zr);
|
||||||
if (get != BlockTypes.AIR.getDefaultState()) tmpBlock = get;
|
if (get != BlockTypes.AIR.getDefaultState()) {
|
||||||
|
tmpBlock = get;
|
||||||
|
}
|
||||||
session.setBlock(xr, setY, zr, tmpBlock);
|
session.setBlock(xr, setY, zr, tmpBlock);
|
||||||
++blocksChanged;
|
++blocksChanged;
|
||||||
}
|
}
|
||||||
@ -244,17 +249,18 @@ public class HeightMap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Apply a raw heightmap to the region
|
* Apply a raw heightmap to the region.
|
||||||
*
|
*
|
||||||
* @param data the data
|
* @param data the data
|
||||||
* @return number of blocks affected
|
* @return number of blocks affected
|
||||||
|
* @throws MaxChangedBlocksException if the maximum block change limit is exceeded
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public int apply(int[] data) throws MaxChangedBlocksException {
|
public int apply(int[] data) throws MaxChangedBlocksException {
|
||||||
checkNotNull(data);
|
checkNotNull(data);
|
||||||
|
|
||||||
BlockVector3 minY = region.getMinimumPoint();
|
BlockVector3 minY = region.getMinimumPoint();
|
||||||
int originX = minY.getBlockX();
|
int originX = minY.getBlockX();
|
||||||
|
int originY = minY.getBlockY();
|
||||||
int originZ = minY.getBlockZ();
|
int originZ = minY.getBlockZ();
|
||||||
|
|
||||||
int maxY = region.getMaximumPoint().getBlockY();
|
int maxY = region.getMaximumPoint().getBlockY();
|
||||||
@ -268,7 +274,9 @@ public class HeightMap {
|
|||||||
for (int z = 0; z < height; ++z) {
|
for (int z = 0; z < height; ++z) {
|
||||||
int zr = z + originZ;
|
int zr = z + originZ;
|
||||||
for (int x = 0; x < width; ++x, index++) {
|
for (int x = 0; x < width; ++x, index++) {
|
||||||
if (this.invalid != null && this.invalid[index]) continue;
|
if (this.invalid != null && this.invalid[index]) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
int curHeight = this.data[index];
|
int curHeight = this.data[index];
|
||||||
|
|
||||||
@ -293,7 +301,9 @@ public class HeightMap {
|
|||||||
} else {
|
} else {
|
||||||
get = BlockTypes.AIR.getDefaultState();
|
get = BlockTypes.AIR.getDefaultState();
|
||||||
}
|
}
|
||||||
if (get != BlockTypes.AIR.getDefaultState()) tmpBlock = get;
|
if (get != BlockTypes.AIR.getDefaultState()) {
|
||||||
|
tmpBlock = get;
|
||||||
|
}
|
||||||
session.setBlock(xr, setY, zr, tmpBlock);
|
session.setBlock(xr, setY, zr, tmpBlock);
|
||||||
++blocksChanged;
|
++blocksChanged;
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.convolution;
|
package com.sk89q.worldedit.math.convolution;
|
||||||
@ -32,7 +32,7 @@ public class HeightMapFilter {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct the HeightMapFilter object.
|
* Construct the HeightMapFilter object.
|
||||||
*
|
*
|
||||||
* @param kernel the kernel
|
* @param kernel the kernel
|
||||||
*/
|
*/
|
||||||
public HeightMapFilter(Kernel kernel) {
|
public HeightMapFilter(Kernel kernel) {
|
||||||
@ -42,7 +42,7 @@ public class HeightMapFilter {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct the HeightMapFilter object.
|
* Construct the HeightMapFilter object.
|
||||||
*
|
*
|
||||||
* @param kernelWidth the width
|
* @param kernelWidth the width
|
||||||
* @param kernelHeight the height
|
* @param kernelHeight the height
|
||||||
* @param kernelData the data
|
* @param kernelData the data
|
||||||
@ -53,15 +53,15 @@ public class HeightMapFilter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the kernel
|
* Get the kernel.
|
||||||
*/
|
*/
|
||||||
public Kernel getKernel() {
|
public Kernel getKernel() {
|
||||||
return kernel;
|
return kernel;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Kernel
|
* Set the kernel.
|
||||||
*
|
*
|
||||||
* @param kernel the kernel
|
* @param kernel the kernel
|
||||||
*/
|
*/
|
||||||
public void setKernel(Kernel kernel) {
|
public void setKernel(Kernel kernel) {
|
||||||
@ -71,7 +71,7 @@ public class HeightMapFilter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter with a 2D kernel
|
* Filter with a 2D kernel.
|
||||||
*
|
*
|
||||||
* @param inData the data
|
* @param inData the data
|
||||||
* @param width the width
|
* @param width the width
|
||||||
@ -107,7 +107,9 @@ public class HeightMapFilter {
|
|||||||
int matrixOffset = ky * kw;
|
int matrixOffset = ky * kw;
|
||||||
for (int kx = 0; kx < kw; ++kx) {
|
for (int kx = 0; kx < kw; ++kx) {
|
||||||
float f = matrix[matrixOffset + kx];
|
float f = matrix[matrixOffset + kx];
|
||||||
if (f == 0) continue;
|
if (f == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
int offsetX = x + kx - kox;
|
int offsetX = x + kx - kox;
|
||||||
// Clamp coordinates inside data
|
// Clamp coordinates inside data
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.convolution;
|
package com.sk89q.worldedit.math.convolution;
|
||||||
@ -27,11 +27,11 @@ package com.sk89q.worldedit.math.convolution;
|
|||||||
*/
|
*/
|
||||||
public class Kernel {
|
public class Kernel {
|
||||||
|
|
||||||
private int width;
|
private final int width;
|
||||||
private int height;
|
private final int height;
|
||||||
private int xOrigin;
|
private final int xOrigin;
|
||||||
private int yOrigin;
|
private final int yOrigin;
|
||||||
private float[] data;
|
private final float[] data;
|
||||||
|
|
||||||
public Kernel(int width, int height, float[] data) {
|
public Kernel(int width, int height, float[] data) {
|
||||||
this.width = width;
|
this.width = width;
|
||||||
@ -72,4 +72,4 @@ public class Kernel {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,24 +3,26 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.convolution;
|
package com.sk89q.worldedit.math.convolution;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A linear Kernel generator (all cells weight the same)
|
* A linear Kernel generator (all cells weigh the same).
|
||||||
*/
|
*/
|
||||||
public class LinearKernel extends Kernel {
|
public class LinearKernel extends Kernel {
|
||||||
|
|
||||||
@ -32,7 +34,7 @@ public class LinearKernel extends Kernel {
|
|||||||
int diameter = radius * 2 + 1;
|
int diameter = radius * 2 + 1;
|
||||||
float[] data = new float[diameter * diameter];
|
float[] data = new float[diameter * diameter];
|
||||||
|
|
||||||
for (int i = 0; i < data.length; data[i++] = 1.0f / data.length);
|
Arrays.fill(data, 1.0f / data.length);
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.geom;
|
package com.sk89q.worldedit.math.geom;
|
||||||
@ -31,19 +31,18 @@ import java.util.List;
|
|||||||
public final class Polygons {
|
public final class Polygons {
|
||||||
|
|
||||||
private Polygons() {
|
private Polygons() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculates the polygon shape of a cylinder which can then be used for e.g. intersection detection.
|
* Calculates the polygon shape of a cylinder which can then be used for e.g. intersection detection.
|
||||||
*
|
*
|
||||||
* @param center the center point of the cylinder
|
* @param center the center point of the cylinder
|
||||||
* @param radius the radius of the cylinder
|
* @param radius the radius of the cylinder
|
||||||
* @param maxPoints max points to be used for the calculation
|
* @param maxPoints max points to be used for the calculation
|
||||||
* @return a list of {@link BlockVector2} which resemble the shape as a polygon
|
* @return a list of {@link BlockVector2} which resemble the shape as a polygon
|
||||||
*/
|
*/
|
||||||
public static List<BlockVector2> polygonizeCylinder(BlockVector2 center, Vector2 radius, int maxPoints) {
|
public static List<BlockVector2> polygonizeCylinder(BlockVector2 center, Vector2 radius, int maxPoints) {
|
||||||
int nPoints = (int) Math.ceil(Math.PI*radius.length());
|
int nPoints = (int) Math.ceil(Math.PI * radius.length());
|
||||||
|
|
||||||
// These strange semantics for maxPoints are copied from the selectSecondary method.
|
// These strange semantics for maxPoints are copied from the selectSecondary method.
|
||||||
if (maxPoints >= 0 && nPoints >= maxPoints) {
|
if (maxPoints >= 0 && nPoints >= maxPoints) {
|
||||||
@ -60,5 +59,5 @@ public final class Polygons {
|
|||||||
|
|
||||||
return points;
|
return points;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// $Id$
|
// $Id$
|
||||||
@ -26,7 +26,7 @@ import com.sk89q.worldedit.math.Vector3;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents an arbitrary function in ℝ → ℝ<sup>3</sup>
|
* Represents an arbitrary function in ℝ → ℝ<sup>3</sup>.
|
||||||
*/
|
*/
|
||||||
public interface Interpolation {
|
public interface Interpolation {
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ public interface Interpolation {
|
|||||||
void setNodes(List<Node> nodes);
|
void setNodes(List<Node> nodes);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the result of f(position)
|
* Gets the result of f(position).
|
||||||
*
|
*
|
||||||
* @param position the position to interpolate
|
* @param position the position to interpolate
|
||||||
* @return the result
|
* @return the result
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// $Id$
|
// $Id$
|
||||||
@ -43,10 +43,10 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
private Vector3[] coeffC;
|
private Vector3[] coeffC;
|
||||||
private Vector3[] coeffD;
|
private Vector3[] coeffD;
|
||||||
private double scaling;
|
private double scaling;
|
||||||
private MutableBlockVector3 mutable = new MutableBlockVector3();
|
private final MutableBlockVector3 mutable = new MutableBlockVector3();
|
||||||
|
|
||||||
public KochanekBartelsInterpolation() {
|
public KochanekBartelsInterpolation() {
|
||||||
setNodes(Collections.<Node>emptyList());
|
setNodes(Collections.emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -64,8 +64,9 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
coeffC = new Vector3[nNodes];
|
coeffC = new Vector3[nNodes];
|
||||||
coeffD = new Vector3[nNodes];
|
coeffD = new Vector3[nNodes];
|
||||||
|
|
||||||
if (nNodes == 0)
|
if (nNodes == 0) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Node nodeB = nodes.get(0);
|
Node nodeB = nodes.get(0);
|
||||||
double tensionB = nodeB.getTension();
|
double tensionB = nodeB.getTension();
|
||||||
@ -84,14 +85,14 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Kochanek-Bartels tangent coefficients
|
// Kochanek-Bartels tangent coefficients
|
||||||
final double ta = (1-tensionA)*(1+biasA)*(1+continuityA)/2; // Factor for lhs of d[i]
|
final double ta = (1 - tensionA) * (1 + biasA) * (1 + continuityA) / 2; // Factor for lhs of d[i]
|
||||||
final double tb = (1-tensionA)*(1-biasA)*(1-continuityA)/2; // Factor for rhs of d[i]
|
final double tb = (1 - tensionA) * (1 - biasA) * (1 - continuityA) / 2; // Factor for rhs of d[i]
|
||||||
final double tc = (1-tensionB)*(1+biasB)*(1-continuityB)/2; // Factor for lhs of d[i+1]
|
final double tc = (1 - tensionB) * (1 + biasB) * (1 - continuityB) / 2; // Factor for lhs of d[i+1]
|
||||||
final double td = (1-tensionB)*(1-biasB)*(1+continuityB)/2; // Factor for rhs of d[i+1]
|
final double td = (1 - tensionB) * (1 - biasB) * (1 + continuityB) / 2; // Factor for rhs of d[i+1]
|
||||||
|
|
||||||
coeffA[i] = linearCombination(i, -ta, ta- tb-tc+2, tb+tc-td-2, td);
|
coeffA[i] = linearCombination(i, -ta, ta - tb - tc + 2, tb + tc - td - 2, td);
|
||||||
coeffB[i] = linearCombination(i, 2*ta, -2*ta+2*tb+tc-3, -2*tb-tc+td+3, -td);
|
coeffB[i] = linearCombination(i, 2 * ta, -2 * ta + 2 * tb + tc - 3, -2 * tb - tc + td + 3, -td);
|
||||||
coeffC[i] = linearCombination(i, -ta, ta- tb , tb , 0);
|
coeffC[i] = linearCombination(i, -ta, ta - tb, tb, 0);
|
||||||
//coeffD[i] = linearCombination(i, 0, 1, 0, 0);
|
//coeffD[i] = linearCombination(i, 0, 1, 0, 0);
|
||||||
coeffD[i] = retrieve(i); // this is an optimization
|
coeffD[i] = retrieve(i); // this is an optimization
|
||||||
}
|
}
|
||||||
@ -125,11 +126,13 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
* @return nodes[clamp(0, nodes.length-1)]
|
* @return nodes[clamp(0, nodes.length-1)]
|
||||||
*/
|
*/
|
||||||
private Vector3 retrieve(int index) {
|
private Vector3 retrieve(int index) {
|
||||||
if (index < 0)
|
if (index < 0) {
|
||||||
return fastRetrieve(0);
|
return fastRetrieve(0);
|
||||||
|
}
|
||||||
|
|
||||||
if (index >= nodes.size())
|
if (index >= nodes.size()) {
|
||||||
return fastRetrieve(nodes.size()-1);
|
return fastRetrieve(nodes.size() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
return fastRetrieve(index);
|
return fastRetrieve(index);
|
||||||
}
|
}
|
||||||
@ -140,11 +143,13 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3 getPosition(double position) {
|
public Vector3 getPosition(double position) {
|
||||||
if (coeffA == null)
|
if (coeffA == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
position *= scaling;
|
position *= scaling;
|
||||||
|
|
||||||
@ -166,11 +171,13 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3 get1stDerivative(double position) {
|
public Vector3 get1stDerivative(double position) {
|
||||||
if (coeffA == null)
|
if (coeffA == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
position *= scaling;
|
position *= scaling;
|
||||||
|
|
||||||
@ -181,16 +188,18 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
final Vector3 b = coeffB[index];
|
final Vector3 b = coeffB[index];
|
||||||
final Vector3 c = coeffC[index];
|
final Vector3 c = coeffC[index];
|
||||||
|
|
||||||
return a.multiply(1.5*position - 3.0*index).add(b).multiply(2.0*position).add(a.multiply(1.5*index).subtract(b).multiply(2.0*index)).add(c).multiply(scaling);
|
return a.multiply(1.5 * position - 3.0 * index).add(b).multiply(2.0 * position).add(a.multiply(1.5 * index).subtract(b).multiply(2.0 * index)).add(c).multiply(scaling);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double arcLength(double positionA, double positionB) {
|
public double arcLength(double positionA, double positionB) {
|
||||||
if (coeffA == null)
|
if (coeffA == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (positionA > positionB)
|
if (positionA > positionB) {
|
||||||
return arcLength(positionB, positionA);
|
return arcLength(positionB, positionA);
|
||||||
|
}
|
||||||
|
|
||||||
positionA *= scaling;
|
positionA *= scaling;
|
||||||
positionB *= scaling;
|
positionB *= scaling;
|
||||||
@ -205,23 +214,21 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assumes a < b
|
* Assumes a < b.
|
||||||
*/
|
*/
|
||||||
private double arcLengthRecursive(int indexLeft, double remainderLeft, int indexRight, double remainderRight) {
|
private double arcLengthRecursive(int indexLeft, double remainderLeft, int indexRight, double remainderRight) {
|
||||||
switch (indexRight - indexLeft) {
|
switch (indexRight - indexLeft) {
|
||||||
case 0:
|
case 0:
|
||||||
return arcLengthRecursive(indexLeft, remainderLeft, remainderRight);
|
return arcLengthRecursive(indexLeft, remainderLeft, remainderRight);
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
// This case is merely a speed-up for a very common case
|
// This case is merely a speed-up for a very common case
|
||||||
return
|
return arcLengthRecursive(indexLeft, remainderLeft, 1.0)
|
||||||
arcLengthRecursive(indexLeft, remainderLeft, 1.0) +
|
+ arcLengthRecursive(indexRight, 0.0, remainderRight);
|
||||||
arcLengthRecursive(indexRight, 0.0, remainderRight);
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return
|
return arcLengthRecursive(indexLeft, remainderLeft, indexRight - 1, 1.0)
|
||||||
arcLengthRecursive(indexLeft, remainderLeft, indexRight - 1, 1.0) +
|
+ arcLengthRecursive(indexRight, 0.0, remainderRight);
|
||||||
arcLengthRecursive(indexRight, 0.0, remainderRight);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -233,9 +240,9 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
final int nPoints = 8;
|
final int nPoints = 8;
|
||||||
|
|
||||||
double accum = a.multiply(remainderLeft).add(b).multiply(remainderLeft).add(c).length() / 2.0;
|
double accum = a.multiply(remainderLeft).add(b).multiply(remainderLeft).add(c).length() / 2.0;
|
||||||
for (int i = 1; i < nPoints-1; ++i) {
|
for (int i = 1; i < nPoints - 1; ++i) {
|
||||||
double t = ((double) i) / nPoints;
|
double t = ((double) i) / nPoints;
|
||||||
t = (remainderRight-remainderLeft)*t + remainderLeft;
|
t = (remainderRight - remainderLeft) * t + remainderLeft;
|
||||||
accum += a.multiply(t).add(b).multiply(t).add(c).length();
|
accum += a.multiply(t).add(b).multiply(t).add(c).length();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -245,11 +252,13 @@ public class KochanekBartelsInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSegment(double position) {
|
public int getSegment(double position) {
|
||||||
if (coeffA == null)
|
if (coeffA == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
position *= scaling;
|
position *= scaling;
|
||||||
|
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// $Id$
|
// $Id$
|
||||||
@ -37,17 +37,19 @@ public class LinearInterpolation implements Interpolation {
|
|||||||
@Override
|
@Override
|
||||||
public void setNodes(List<Node> nodes) {
|
public void setNodes(List<Node> nodes) {
|
||||||
checkNotNull(nodes);
|
checkNotNull(nodes);
|
||||||
|
|
||||||
this.nodes = nodes;
|
this.nodes = nodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3 getPosition(double position) {
|
public Vector3 getPosition(double position) {
|
||||||
if (nodes == null)
|
if (nodes == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
position *= nodes.size() - 1;
|
position *= nodes.size() - 1;
|
||||||
|
|
||||||
@ -77,11 +79,13 @@ public class LinearInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3 get1stDerivative(double position) {
|
public Vector3 get1stDerivative(double position) {
|
||||||
if (nodes == null)
|
if (nodes == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
position *= nodes.size() - 1;
|
position *= nodes.size() - 1;
|
||||||
|
|
||||||
@ -95,11 +99,13 @@ public class LinearInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double arcLength(double positionA, double positionB) {
|
public double arcLength(double positionA, double positionB) {
|
||||||
if (nodes == null)
|
if (nodes == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (positionA > positionB)
|
if (positionA > positionB) {
|
||||||
return arcLength(positionB, positionA);
|
return arcLength(positionB, positionA);
|
||||||
|
}
|
||||||
|
|
||||||
positionA *= nodes.size() - 1;
|
positionA *= nodes.size() - 1;
|
||||||
positionB *= nodes.size() - 1;
|
positionB *= nodes.size() - 1;
|
||||||
@ -118,19 +124,17 @@ public class LinearInterpolation implements Interpolation {
|
|||||||
*/
|
*/
|
||||||
private double arcLengthRecursive(int indexA, double remainderA, int indexB, double remainderB) {
|
private double arcLengthRecursive(int indexA, double remainderA, int indexB, double remainderB) {
|
||||||
switch (indexB - indexA) {
|
switch (indexB - indexA) {
|
||||||
case 0:
|
case 0:
|
||||||
return arcLengthRecursive(indexA, remainderA, remainderB);
|
return arcLengthRecursive(indexA, remainderA, remainderB);
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
// This case is merely a speed-up for a very common case
|
// This case is merely a speed-up for a very common case
|
||||||
return
|
return arcLengthRecursive(indexA, remainderA, 1.0)
|
||||||
arcLengthRecursive(indexA, remainderA, 1.0) +
|
+ arcLengthRecursive(indexB, 0.0, remainderB);
|
||||||
arcLengthRecursive(indexB, 0.0, remainderB);
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return
|
return arcLengthRecursive(indexA, remainderA, indexB - 1, 1.0)
|
||||||
arcLengthRecursive(indexA, remainderA, indexB - 1, 1.0) +
|
+ arcLengthRecursive(indexB, 0.0, remainderB);
|
||||||
arcLengthRecursive(indexB, 0.0, remainderB);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -143,11 +147,13 @@ public class LinearInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSegment(double position) {
|
public int getSegment(double position) {
|
||||||
if (nodes == null)
|
if (nodes == null) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
position *= nodes.size() - 1;
|
position *= nodes.size() - 1;
|
||||||
|
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// $Id$
|
// $Id$
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// $Id$
|
// $Id$
|
||||||
@ -47,7 +47,7 @@ public class ReparametrisingInterpolation implements Interpolation {
|
|||||||
|
|
||||||
public ReparametrisingInterpolation(Interpolation baseInterpolation) {
|
public ReparametrisingInterpolation(Interpolation baseInterpolation) {
|
||||||
checkNotNull(baseInterpolation);
|
checkNotNull(baseInterpolation);
|
||||||
|
|
||||||
this.baseInterpolation = baseInterpolation;
|
this.baseInterpolation = baseInterpolation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,16 +67,18 @@ public class ReparametrisingInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3 getPosition(double position) {
|
public Vector3 getPosition(double position) {
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return baseInterpolation.getPosition(arcToParameter(position));
|
return baseInterpolation.getPosition(arcToParameter(position));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Vector3 get1stDerivative(double position) {
|
public Vector3 get1stDerivative(double position) {
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return baseInterpolation.get1stDerivative(arcToParameter(position)).normalize().multiply(totalArcLength);
|
return baseInterpolation.get1stDerivative(arcToParameter(position)).normalize().multiply(totalArcLength);
|
||||||
}
|
}
|
||||||
@ -87,10 +89,13 @@ public class ReparametrisingInterpolation implements Interpolation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private double arcToParameter(double arc) {
|
private double arcToParameter(double arc) {
|
||||||
if (cache.isEmpty())
|
if (cache.isEmpty()) {
|
||||||
throw new IllegalStateException("Must call setNodes first.");
|
throw new IllegalStateException("Must call setNodes first.");
|
||||||
|
}
|
||||||
|
|
||||||
if (arc > 1) arc = 1;
|
if (arc > 1) {
|
||||||
|
arc = 1;
|
||||||
|
}
|
||||||
arc *= totalArcLength;
|
arc *= totalArcLength;
|
||||||
|
|
||||||
Entry<Double, Double> floorEntry = cache.floorEntry(arc);
|
Entry<Double, Double> floorEntry = cache.floorEntry(arc);
|
||||||
@ -140,8 +145,7 @@ public class ReparametrisingInterpolation implements Interpolation {
|
|||||||
// search between left and mid
|
// search between left and mid
|
||||||
rightArc = midArc;
|
rightArc = midArc;
|
||||||
rightParameter = midParameter;
|
rightParameter = midParameter;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// search between mid and right
|
// search between mid and right
|
||||||
leftArc = midArc;
|
leftArc = midArc;
|
||||||
leftParameter = midParameter;
|
leftParameter = midParameter;
|
||||||
@ -152,8 +156,9 @@ public class ReparametrisingInterpolation implements Interpolation {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getSegment(double position) {
|
public int getSegment(double position) {
|
||||||
if (position > 1)
|
if (position > 1) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
|
}
|
||||||
|
|
||||||
return baseInterpolation.getSegment(arcToParameter(position));
|
return baseInterpolation.getSegment(arcToParameter(position));
|
||||||
}
|
}
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.noise;
|
package com.sk89q.worldedit.math.noise;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.noise;
|
package com.sk89q.worldedit.math.noise;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.noise;
|
package com.sk89q.worldedit.math.noise;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.noise;
|
package com.sk89q.worldedit.math.noise;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.noise;
|
package com.sk89q.worldedit.math.noise;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.noise;
|
package com.sk89q.worldedit.math.noise;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.transform;
|
package com.sk89q.worldedit.math.transform;
|
||||||
@ -34,15 +34,13 @@ import java.io.Serializable;
|
|||||||
*/
|
*/
|
||||||
public class AffineTransform implements Transform, Serializable {
|
public class AffineTransform implements Transform, Serializable {
|
||||||
|
|
||||||
private AffineTransform inverse;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* coefficients for x coordinate.
|
* coefficients for x coordinate.
|
||||||
*/
|
*/
|
||||||
private final double m00;
|
private final double m00;
|
||||||
private final double m01;
|
private final double m01;
|
||||||
private final double m02;
|
private final double m02;
|
||||||
private double m03;
|
private final double m03;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* coefficients for y coordinate.
|
* coefficients for y coordinate.
|
||||||
@ -50,7 +48,7 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
private final double m10;
|
private final double m10;
|
||||||
private final double m11;
|
private final double m11;
|
||||||
private final double m12;
|
private final double m12;
|
||||||
private double m13;
|
private final double m13;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* coefficients for z coordinate.
|
* coefficients for z coordinate.
|
||||||
@ -58,13 +56,13 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
private final double m20;
|
private final double m20;
|
||||||
private final double m21;
|
private final double m21;
|
||||||
private final double m22;
|
private final double m22;
|
||||||
private double m23;
|
private final double m23;
|
||||||
|
|
||||||
// ===================================================================
|
// ===================================================================
|
||||||
// constructors
|
// constructors
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new affine transform3D set to identity.
|
* Creates a new affine transform3D set to the identity.
|
||||||
*/
|
*/
|
||||||
public AffineTransform() {
|
public AffineTransform() {
|
||||||
// init to identity matrix
|
// init to identity matrix
|
||||||
@ -85,6 +83,7 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
m20 = coefs[6];
|
m20 = coefs[6];
|
||||||
m21 = coefs[7];
|
m21 = coefs[7];
|
||||||
m22 = coefs[8];
|
m22 = coefs[8];
|
||||||
|
m03 = m13 = m23 = 0;
|
||||||
} else if (coefs.length == 12) {
|
} else if (coefs.length == 12) {
|
||||||
m00 = coefs[0];
|
m00 = coefs[0];
|
||||||
m01 = coefs[1];
|
m01 = coefs[1];
|
||||||
@ -99,11 +98,14 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
m22 = coefs[10];
|
m22 = coefs[10];
|
||||||
m23 = coefs[11];
|
m23 = coefs[11];
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalArgumentException("Input array must have 9 or 12 elements");
|
throw new IllegalArgumentException(
|
||||||
|
"Input array must have 9 or 12 elements");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AffineTransform(double xx, double yx, double zx, double tx, double xy, double yy, double zy, double ty, double xz, double yz, double zz, double tz) {
|
public AffineTransform(double xx, double yx, double zx, double tx,
|
||||||
|
double xy, double yy, double zy, double ty, double xz, double yz,
|
||||||
|
double zz, double tz) {
|
||||||
m00 = xx;
|
m00 = xx;
|
||||||
m01 = yx;
|
m01 = yx;
|
||||||
m02 = zx;
|
m02 = zx;
|
||||||
@ -123,40 +125,10 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isIdentity() {
|
public boolean isIdentity() {
|
||||||
if (m00 != 1) {
|
return m00 == m11 && m11 == m22 && m22 == 1
|
||||||
return false;
|
&& m01 == m02 && m02 == m03 && m03 == 0
|
||||||
}
|
&& m10 == m12 && m12 == m13 && m13 == 0
|
||||||
if (m11 != 1) {
|
&& m20 == m21 && m21 == m23 && m23 == 0;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m22 != 1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m01 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m02 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m03 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m10 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m12 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m13 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m20 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (m21 != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return m23 == 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -164,20 +136,7 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
* 12 double.
|
* 12 double.
|
||||||
*/
|
*/
|
||||||
public double[] coefficients() {
|
public double[] coefficients() {
|
||||||
return new double[] {
|
return new double[]{m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23};
|
||||||
m00,
|
|
||||||
m01,
|
|
||||||
m02,
|
|
||||||
m03,
|
|
||||||
m10,
|
|
||||||
m11,
|
|
||||||
m12,
|
|
||||||
m13,
|
|
||||||
m20,
|
|
||||||
m21,
|
|
||||||
m22,
|
|
||||||
m23
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOffAxis() {
|
public boolean isOffAxis() {
|
||||||
@ -198,8 +157,8 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
* @return the determinant of the transform.
|
* @return the determinant of the transform.
|
||||||
*/
|
*/
|
||||||
private double determinant() {
|
private double determinant() {
|
||||||
return m00 * (m11 * m22 - m12 * m21) - m01 * (m10 * m22 - m20 * m12) + m02 * (m10 * m21
|
return m00 * (m11 * m22 - m12 * m21) - m01 * (m10 * m22 - m20 * m12)
|
||||||
- m20 * m11);
|
+ m02 * (m10 * m21 - m20 * m11);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -207,26 +166,23 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public AffineTransform inverse() {
|
public AffineTransform inverse() {
|
||||||
if (inverse != null) {
|
|
||||||
return inverse;
|
|
||||||
}
|
|
||||||
double det = this.determinant();
|
double det = this.determinant();
|
||||||
return new AffineTransform(
|
return new AffineTransform(
|
||||||
(m11 * m22 - m21 * m12) / det,
|
(m11 * m22 - m21 * m12) / det,
|
||||||
(m21 * m02 - m01 * m22) / det,
|
(m21 * m02 - m01 * m22) / det,
|
||||||
(m01 * m12 - m11 * m02) / det,
|
(m01 * m12 - m11 * m02) / det,
|
||||||
(m01 * (m22 * m13 - m12 * m23) + m02 * (m11 * m23 - m21 * m13) - m03 * (m11 * m22
|
(m01 * (m22 * m13 - m12 * m23) + m02 * (m11 * m23 - m21 * m13)
|
||||||
- m21 * m12)) / det,
|
- m03 * (m11 * m22 - m21 * m12)) / det,
|
||||||
(m20 * m12 - m10 * m22) / det,
|
(m20 * m12 - m10 * m22) / det,
|
||||||
(m00 * m22 - m20 * m02) / det,
|
(m00 * m22 - m20 * m02) / det,
|
||||||
(m10 * m02 - m00 * m12) / det,
|
(m10 * m02 - m00 * m12) / det,
|
||||||
(m00 * (m12 * m23 - m22 * m13) - m02 * (m10 * m23 - m20 * m13) + m03 * (m10 * m22
|
(m00 * (m12 * m23 - m22 * m13) - m02 * (m10 * m23 - m20 * m13)
|
||||||
- m20 * m12)) / det,
|
+ m03 * (m10 * m22 - m20 * m12)) / det,
|
||||||
(m10 * m21 - m20 * m11) / det,
|
(m10 * m21 - m20 * m11) / det,
|
||||||
(m20 * m01 - m00 * m21) / det,
|
(m20 * m01 - m00 * m21) / det,
|
||||||
(m00 * m11 - m10 * m01) / det,
|
(m00 * m11 - m10 * m01) / det,
|
||||||
(m00 * (m21 * m13 - m11 * m23) + m01 * (m10 * m23 - m20 * m13) - m03 * (m10 * m21
|
(m00 * (m21 * m13 - m11 * m23) + m01 * (m10 * m23 - m20 * m13)
|
||||||
- m20 * m11)) / det);
|
- m03 * (m10 * m21 - m20 * m11)) / det);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===================================================================
|
// ===================================================================
|
||||||
@ -252,7 +208,10 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
double n21 = m20 * that.m01 + m21 * that.m11 + m22 * that.m21;
|
double n21 = m20 * that.m01 + m21 * that.m11 + m22 * that.m21;
|
||||||
double n22 = m20 * that.m02 + m21 * that.m12 + m22 * that.m22;
|
double n22 = m20 * that.m02 + m21 * that.m12 + m22 * that.m22;
|
||||||
double n23 = m20 * that.m03 + m21 * that.m13 + m22 * that.m23 + m23;
|
double n23 = m20 * that.m03 + m21 * that.m13 + m22 * that.m23 + m23;
|
||||||
return new AffineTransform(n00, n01, n02, n03, n10, n11, n12, n13, n20, n21, n22, n23);
|
return new AffineTransform(
|
||||||
|
n00, n01, n02, n03,
|
||||||
|
n10, n11, n12, n13,
|
||||||
|
n20, n21, n22, n23);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -275,7 +234,10 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
double n21 = that.m20 * m01 + that.m21 * m11 + that.m22 * m21;
|
double n21 = that.m20 * m01 + that.m21 * m11 + that.m22 * m21;
|
||||||
double n22 = that.m20 * m02 + that.m21 * m12 + that.m22 * m22;
|
double n22 = that.m20 * m02 + that.m21 * m12 + that.m22 * m22;
|
||||||
double n23 = that.m20 * m03 + that.m21 * m13 + that.m22 * m23 + that.m23;
|
double n23 = that.m20 * m03 + that.m21 * m13 + that.m22 * m23 + that.m23;
|
||||||
return new AffineTransform(n00, n01, n02, n03, n10, n11, n12, n13, n20, n21, n22, n23);
|
return new AffineTransform(
|
||||||
|
n00, n01, n02, n03,
|
||||||
|
n10, n11, n12, n13,
|
||||||
|
n20, n21, n22, n23);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AffineTransform translate(Vector3 vec) {
|
public AffineTransform translate(Vector3 vec) {
|
||||||
@ -293,19 +255,31 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
public AffineTransform rotateX(double theta) {
|
public AffineTransform rotateX(double theta) {
|
||||||
double cot = MathUtils.dCos(theta);
|
double cot = MathUtils.dCos(theta);
|
||||||
double sit = MathUtils.dSin(theta);
|
double sit = MathUtils.dSin(theta);
|
||||||
return concatenate(new AffineTransform(1, 0, 0, 0, 0, cot, -sit, 0, 0, sit, cot, 0));
|
return concatenate(
|
||||||
|
new AffineTransform(
|
||||||
|
1, 0, 0, 0,
|
||||||
|
0, cot, -sit, 0,
|
||||||
|
0, sit, cot, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public AffineTransform rotateY(double theta) {
|
public AffineTransform rotateY(double theta) {
|
||||||
double cot = MathUtils.dCos(theta);
|
double cot = MathUtils.dCos(theta);
|
||||||
double sit = MathUtils.dSin(theta);
|
double sit = MathUtils.dSin(theta);
|
||||||
return concatenate(new AffineTransform(cot, 0, sit, 0, 0, 1, 0, 0, -sit, 0, cot, 0));
|
return concatenate(
|
||||||
|
new AffineTransform(
|
||||||
|
cot, 0, sit, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
-sit, 0, cot, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public AffineTransform rotateZ(double theta) {
|
public AffineTransform rotateZ(double theta) {
|
||||||
double cot = MathUtils.dCos(theta);
|
double cot = MathUtils.dCos(theta);
|
||||||
double sit = MathUtils.dSin(theta);
|
double sit = MathUtils.dSin(theta);
|
||||||
return concatenate(new AffineTransform(cot, -sit, 0, 0, sit, cot, 0, 0, 0, 0, 1, 0));
|
return concatenate(
|
||||||
|
new AffineTransform(
|
||||||
|
cot, -sit, 0, 0,
|
||||||
|
sit, cot, 0, 0,
|
||||||
|
0, 0, 1, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public AffineTransform scale(double s) {
|
public AffineTransform scale(double s) {
|
||||||
@ -361,13 +335,20 @@ public class AffineTransform implements Transform, Serializable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if this affine transform is representing a horizontal flip.
|
* Returns if this affine transform represents a horizontal flip.
|
||||||
*/
|
*/
|
||||||
public boolean isHorizontalFlip() {
|
public boolean isHorizontalFlip() {
|
||||||
// use the determinant of the x-z submatrix to check if this is a horizontal flip
|
// use the determinant of the x-z submatrix to check if this is a horizontal flip
|
||||||
return m00 * m22 - m02 * m20 < 0;
|
return m00 * m22 - m02 * m20 < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns if this affine transform represents a vertical flip.
|
||||||
|
*/
|
||||||
|
public boolean isVerticalFlip() {
|
||||||
|
return m11 < 0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format("Affine[%g %g %g %g, %g %g %g %g, %g %g %g %g]}", m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23);
|
return String.format("Affine[%g %g %g %g, %g %g %g %g, %g %g %g %g]}", m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23);
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.transform;
|
package com.sk89q.worldedit.math.transform;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.transform;
|
package com.sk89q.worldedit.math.transform;
|
||||||
|
@ -2,7 +2,7 @@ package com.sk89q.worldedit.math.transform;
|
|||||||
|
|
||||||
import com.sk89q.worldedit.math.Vector3;
|
import com.sk89q.worldedit.math.Vector3;
|
||||||
|
|
||||||
public class RoundedTransform implements Transform{
|
public class RoundedTransform implements Transform {
|
||||||
private final Transform transform;
|
private final Transform transform;
|
||||||
|
|
||||||
public RoundedTransform(Transform transform) {
|
public RoundedTransform(Transform transform) {
|
||||||
@ -17,7 +17,8 @@ public class RoundedTransform implements Transform{
|
|||||||
@Override
|
@Override
|
||||||
public Vector3 apply(Vector3 input) {
|
public Vector3 apply(Vector3 input) {
|
||||||
Vector3 val = transform.apply(input);
|
Vector3 val = transform.apply(input);
|
||||||
return Vector3.at(Math.floor(val.getX() + 0.5), Math.floor(val.getY() + 0.5), Math.floor(val.getY() + 0.5));
|
return Vector3.at(Math.floor(val.getX() + 0.5), Math.floor(val.getY() + 0.5), Math
|
||||||
|
.floor(val.getY() + 0.5));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.transform;
|
package com.sk89q.worldedit.math.transform;
|
||||||
|
@ -3,18 +3,18 @@
|
|||||||
* Copyright (C) sk89q <http://www.sk89q.com>
|
* Copyright (C) sk89q <http://www.sk89q.com>
|
||||||
* Copyright (C) WorldEdit team and contributors
|
* Copyright (C) WorldEdit team and contributors
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify it
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* under the terms of the GNU Lesser General Public License as published by the
|
* it under the terms of the GNU General Public License as published by
|
||||||
* Free Software Foundation, either version 3 of the License, or
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
* (at your option) any later version.
|
* (at your option) any later version.
|
||||||
*
|
*
|
||||||
* This program is distributed in the hope that it will be useful, but WITHOUT
|
* This program is distributed in the hope that it will be useful,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* for more details.
|
* GNU General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package com.sk89q.worldedit.math.transform;
|
package com.sk89q.worldedit.math.transform;
|
||||||
|
@ -32,6 +32,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public abstract class AbstractRegion extends AbstractSet<BlockVector3> implements Region {
|
public abstract class AbstractRegion extends AbstractSet<BlockVector3> implements Region {
|
||||||
@ -226,12 +227,8 @@ public abstract class AbstractRegion extends AbstractSet<BlockVector3> implement
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Region region = ((Region) o);
|
Region region = ((Region) o);
|
||||||
if (this.getWorld() != region.getWorld()) {
|
|
||||||
if (this.getWorld() == null || region.getWorld() == null) {
|
if (Objects.equals(this.getWorld(), region.getWorld())
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (this.getWorld().equals(region.getWorld())
|
|
||||||
&& this.getMinimumPoint().equals(region.getMinimumPoint())
|
&& this.getMinimumPoint().equals(region.getMinimumPoint())
|
||||||
&& this.getMaximumPoint().equals(region.getMaximumPoint())
|
&& this.getMaximumPoint().equals(region.getMaximumPoint())
|
||||||
&& this.getVolume() == region.getVolume()) {
|
&& this.getVolume() == region.getVolume()) {
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
|
|
||||||
package com.sk89q.worldedit.util.paste;
|
package com.sk89q.worldedit.util.paste;
|
||||||
|
|
||||||
import com.boydti.fawe.util.IncendoPaster;
|
|
||||||
import com.sk89q.worldedit.command.util.AsyncCommandBuilder;
|
import com.sk89q.worldedit.command.util.AsyncCommandBuilder;
|
||||||
import com.sk89q.worldedit.extension.platform.Actor;
|
import com.sk89q.worldedit.extension.platform.Actor;
|
||||||
import com.sk89q.worldedit.util.formatting.text.TextComponent;
|
import com.sk89q.worldedit.util.formatting.text.TextComponent;
|
||||||
@ -31,7 +30,7 @@ import java.util.concurrent.Callable;
|
|||||||
|
|
||||||
public final class ActorCallbackPaste {
|
public final class ActorCallbackPaste {
|
||||||
|
|
||||||
private static final Paster paster = new IncendoPaster("fastasyncworldedit");
|
private static final Paster paster = new EngineHubPaste();
|
||||||
|
|
||||||
private ActorCallbackPaste() {
|
private ActorCallbackPaste() {
|
||||||
}
|
}
|
||||||
|
@ -1,322 +0,0 @@
|
|||||||
# 原译者:Green_Chennai (MCBBS: ww2498010071)
|
|
||||||
# 2018年10月14日 08:44:53进行过第7次更新
|
|
||||||
|
|
||||||
# 佛壁灯于 2018年12月10日 21:24:35 (UTC+8) 大幅改进翻译质量
|
|
||||||
# 请其他译者勿使用机器翻译。谢谢!
|
|
||||||
|
|
||||||
info:
|
|
||||||
prefix: '(FAWE)'
|
|
||||||
file_deleted: '%s0 已被删除。'
|
|
||||||
schematic_pasting: '正在粘贴布局。此操作无法撤销。'
|
|
||||||
lighting_propogate_selection: '光照已在 %s0 个区块内传播。(注:您可使用 //removelight 移除)'
|
|
||||||
updated_lighting_selection: '已更新 %s0 个区块内的光照。(数据包可能要稍后发出)'
|
|
||||||
set_region: '选择区域已设置为您当前允许的区域'
|
|
||||||
worldedit_command_limit: '请等待完成您的当前操作'
|
|
||||||
worldedit_delayed: '正在处理您的快异创世操作,请稍后···'
|
|
||||||
worldedit_run: '很抱歉造成延误,现正执行 %s'
|
|
||||||
worldedit_complete: '编辑完成。'
|
|
||||||
require_selection_in_mask: '您选中的 %s 不在蒙版内。您只能在允许的区域内编辑。'
|
|
||||||
worldedit_volume: '您不能选择 %current% 大小的区域。所允许的最大区域为 %max%。'
|
|
||||||
worldedit_iterations: '您不能重复 %current% 次。所允许的最多重复为 %max% 次。'
|
|
||||||
worldedit_unsafe: '已阻止对此命令的访问'
|
|
||||||
worldedit_dangerous_worldedit: '%s1 在 %s0 处进行了不安全的编辑'
|
|
||||||
worldedit_toggle_tips_on: '已禁用快异创世提示。'
|
|
||||||
worldedit_toggle_tips_off: '已启用快异创世提示。'
|
|
||||||
|
|
||||||
worldedit_bypassed: '正绕过快异创世限制。'
|
|
||||||
worldedit_unmasked: '您的快异创世编辑现已不受限制。'
|
|
||||||
|
|
||||||
worldedit_restricted: '您的快异创世编辑现正受限制。'
|
|
||||||
worldedit_oom_admin: |-
|
|
||||||
可选项:
|
|
||||||
- //fast
|
|
||||||
- 进行小编辑
|
|
||||||
- 分配更多内存
|
|
||||||
- 禁用 `max-memory-percent`
|
|
||||||
compressed: '已压缩历史。保存为 ~ %s0b(%s1 倍原大小)'
|
|
||||||
action_complete: '已在 %s0 秒内完成操作'
|
|
||||||
|
|
||||||
error:
|
|
||||||
worldedit_extend: '您的编辑可能已超过所允许的范围。'
|
|
||||||
web_unauthorized: '仅允许来自已配置网页主机的链接: %s0'
|
|
||||||
command_syntax: '用法: %s0'
|
|
||||||
no_perm: '您缺少权限节点: %s0'
|
|
||||||
setting_disable: '缺少设置: %s0'
|
|
||||||
brush_not_found: '可用画笔: %s0'
|
|
||||||
brush_incompatible: '画笔与此版本不兼容'
|
|
||||||
schematic_not_found: '未找到布局: %s0'
|
|
||||||
no_region: '您当前没有允许修改的区域'
|
|
||||||
no_mask: '您当前没有蒙版集'
|
|
||||||
not_player: '您必须为玩家才能执行此操作!'
|
|
||||||
player_not_found: '玩家未找到: %s0'
|
|
||||||
oom: |-
|
|
||||||
[致命错误] 系统检测到可用内存 < 1%。我们将执行下列操作:
|
|
||||||
- 终止创世的方块放置
|
|
||||||
- 清除创世历史
|
|
||||||
- 卸载无用区块
|
|
||||||
- 杀死实体
|
|
||||||
- 收集垃圾
|
|
||||||
若您正尝试使服务器崩溃,请忽略此消息
|
|
||||||
注:低内存可能但不一定由创世导致
|
|
||||||
worldedit_some_fails: '%s0 个方块由于在您所允许的区域外而无法放置。'
|
|
||||||
worldedit_some_fails_blockbag: '缺少方块: %s0'
|
|
||||||
|
|
||||||
web:
|
|
||||||
generating_link: '正在上传 %s,请稍后···'
|
|
||||||
generating_link_failed: '生成下载链接失败!'
|
|
||||||
download_link: '%s'
|
|
||||||
|
|
||||||
worldedit:
|
|
||||||
general:
|
|
||||||
mask_disabled: 已禁用全局蒙版
|
|
||||||
mask: 已设置全局蒙版
|
|
||||||
texture_disabled: 已重置纹理
|
|
||||||
texture_set: 已设置纹理为 %s1
|
|
||||||
source_mask_disabled: 已禁用全局源蒙版
|
|
||||||
source_mask: 已设置全局源蒙版
|
|
||||||
transform_disabled: 已禁用全局变形
|
|
||||||
transform: 已设置全局变形
|
|
||||||
fast_enabled: 已启用快速模式。历史及编辑将不受限制。
|
|
||||||
fast_disabled: 已禁用快速模式
|
|
||||||
place_enabled: '放置于位置 #1.'
|
|
||||||
place_disabled: 放置于您所站的方块。
|
|
||||||
|
|
||||||
copy:
|
|
||||||
command_copy: '已复制 %s0 个方块。'
|
|
||||||
cut:
|
|
||||||
command_cut_slow: '已剪切 %s0 个方块。'
|
|
||||||
command_cut_lazy: '%s0 个方块将在粘贴时被移除'
|
|
||||||
paste:
|
|
||||||
command_paste: 已粘贴剪贴板内容在 %s0
|
|
||||||
rotate:
|
|
||||||
command_rotate: 已旋转剪贴板内容
|
|
||||||
flip:
|
|
||||||
command_flipped: 已翻转剪贴板内容
|
|
||||||
regen:
|
|
||||||
command_regen_0: 已重新生成区域。
|
|
||||||
command_regen_1: 已重新生成区域。
|
|
||||||
command_regen_2: 已重新生成区域。
|
|
||||||
tree:
|
|
||||||
command_tree: '已生成 %s0 棵树木。'
|
|
||||||
command_pumpkin: '已生成 %s0 个南瓜。'
|
|
||||||
flora:
|
|
||||||
command_flora: '已生成 %s0 棵植物。'
|
|
||||||
history:
|
|
||||||
command_history_clear: 已清除历史记录
|
|
||||||
command_redo_error: 无可重做项。(请使用 `/inspect` 或 `/frb` 查看)
|
|
||||||
command_history_other_error: 无法找到 %s0 的会话。
|
|
||||||
command_redo_success: 重做成功%s0。
|
|
||||||
command_undo_error: 无可撤销项。(请使用 `/inspect` 或 `/frb` 查看)
|
|
||||||
command_undo_success: 撤消成功%s0。
|
|
||||||
operation:
|
|
||||||
operation: 操作已进入队列 (%s0)
|
|
||||||
selection:
|
|
||||||
selection_wand: '左击: 选择位置 #1;右击:选择位置 #2'
|
|
||||||
selection_wand_disable: 已禁用编辑手杖。
|
|
||||||
selection_wand_enable: 已启用编辑手杖。
|
|
||||||
selection_chunk: 已选中区块 (%s0)
|
|
||||||
selection_chunks: 已选中区块 (%s0) - (%s1)
|
|
||||||
selection_contract: 区域已缩小 %s0 个方块。
|
|
||||||
selection_count: 共计 %s0 块。
|
|
||||||
selection_distr: '# 方块总数: %s0'
|
|
||||||
selection_expand: 地区扩大%s0 块
|
|
||||||
selection_expand_vert: 区域已增大 %s0 个方块。(从上到下)
|
|
||||||
selection_inset: 已插入区域
|
|
||||||
selection_outset: 已移出区域
|
|
||||||
selection_shift: 已移动区域
|
|
||||||
selection_cleared: 已清除选择
|
|
||||||
navigation:
|
|
||||||
navigation_wand_error: '无可传递项'
|
|
||||||
anvil:
|
|
||||||
world_is_loaded: 执行操作时世界不能被占用。请先卸载世界,或使用 -f 标记覆盖(请先保存)
|
|
||||||
brush:
|
|
||||||
brush_reset: 重置您的画笔。(SHIFT + 单击)
|
|
||||||
brush_none: 您未拿画笔!
|
|
||||||
brush_scroll_action_set: 已设置滚动操作至 %s0
|
|
||||||
brush_scroll_action_unset: 已移除滚动操作
|
|
||||||
brush_visual_mode_set: 已设置可视模式为 %s0
|
|
||||||
brush_target_mode_set: 已设置目标模式为 %s0
|
|
||||||
brush_target_mask_set: 已设置目标蒙版为 %s0
|
|
||||||
brush_target_offset_set: 设置目的地偏移量 %s0
|
|
||||||
brush_equipped: 已装备画笔 %s0
|
|
||||||
brush_try_other: |-
|
|
||||||
还有其他画笔可用,如:
|
|
||||||
- //br height [半径=5] [#剪贴板|文件=null] [旋转=0] [纵坐标=1.00]
|
|
||||||
brush_copy: 左击要复制的对象,右击粘贴。您可增加画笔半径。
|
|
||||||
brush_height_invalid: 高度图文件无效 (%s0)
|
|
||||||
brush_smooth: '注:您可用混合刷使凸起与洞穴处变得平滑。'
|
|
||||||
brush_spline: 点击添加点,请点击相同点完成
|
|
||||||
brush_line_primary: 已添加点 %s0,请点击其他位置以创建线条
|
|
||||||
brush_catenary_direction: 已添加点 %s0,请点击要创建样条曲线的方向
|
|
||||||
brush_line_secondary: 已创建样条曲线
|
|
||||||
brush_spline_primary_2: 已添加位置,请点击相同点合并!
|
|
||||||
brush_spline_secondary_error: 位置集不足!
|
|
||||||
brush_spline_secondary: 已创建样条曲线
|
|
||||||
brush_size: 已设置画笔尺寸
|
|
||||||
brush_range: 已设置画笔尺寸
|
|
||||||
brush_mask_disabled: 已禁用画笔蒙版
|
|
||||||
brush_mask: 已设置画笔蒙版
|
|
||||||
brush_source_mask_disabled: 已禁用画笔源蒙版
|
|
||||||
brush_source_mask: 已设置画笔源蒙版
|
|
||||||
brush_transform_disabled: 已禁用画笔变形
|
|
||||||
brush_transform: 已设置画笔变形
|
|
||||||
brush_material: 已设置画笔材料
|
|
||||||
rollback:
|
|
||||||
rollback_element: 正在撤消 %s0
|
|
||||||
tool:
|
|
||||||
tool_inspect: 已绑定检查工具至 %s0。
|
|
||||||
tool_inspect_info: '%s0 在 %s3 前将 %s1 更改为 %s2'
|
|
||||||
tool_inspect_info_footer: '共计: %s0 处更改'
|
|
||||||
tool_none: 工具已从您的当前物品上解绑。
|
|
||||||
tool_info: 已绑定信息工具至 %s0。
|
|
||||||
tool_tree: 已绑定造树工具至 %s0。
|
|
||||||
tool_tree_error: 树型 %s0 未知。
|
|
||||||
tool_repl: 已绑定方块替换工具至 %s0。
|
|
||||||
tool_cycler: 已绑定方块数据循环工具至 %s0。
|
|
||||||
tool_flood_fill: 已绑定方块洪水填充工具至 %s0。
|
|
||||||
tool_range_error: '最大范围: %s0.'
|
|
||||||
tool_radius_error: '最大画笔半径: %s0.'
|
|
||||||
tool_deltree: 已绑定漂树移除工具至 %s0。
|
|
||||||
tool_farwand: 已绑定远程手杖至 %s0。
|
|
||||||
tool_lrbuild_bound: 已绑定远程建筑工具至 %s0。
|
|
||||||
tool_lrbuild_info: 已设置左击为 %s0; 已设置右击为 %s1。
|
|
||||||
superpickaxe_enabled: 已启用超级稿子。
|
|
||||||
superpickaxe_disabled: 已禁用超级稿子。
|
|
||||||
superpickaxe_area_enabled: 已更改模式。请使用稿子左击,使用 // 禁用此功能。
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: '已载入快照 %s0 ;正在恢复···'
|
|
||||||
snapshot_set: '已设置快照为: %s0'
|
|
||||||
snapshot_newest: 正使用最新版快照。
|
|
||||||
snapshot_list_header: '世界快照 (%s0):'
|
|
||||||
snapshot_list_footer: 请使用 /snap use [快照] 或 /snap use latest。
|
|
||||||
biome:
|
|
||||||
biome_list_header: '生态群系 (页 %s0/%s1):'
|
|
||||||
biome_changed: 已更改 %s0 列中的生态群系。
|
|
||||||
utility:
|
|
||||||
kill_success: '已击杀半径 %s0 内的 %s1 个实体。'
|
|
||||||
nothing_confirmed: 您没有待确认的操作。
|
|
||||||
page_footer: 请使用 %s0 前往下一页
|
|
||||||
schematic:
|
|
||||||
schematic_prompt_clear: '您可能需先使用 %s0 来清除剪贴板'
|
|
||||||
schematic_show: |-
|
|
||||||
正在显示来自 %s1 的 %s0 个原理图:
|
|
||||||
- 左击将结构复制到您的剪贴板
|
|
||||||
- 右击将结构添加到多重剪贴板
|
|
||||||
- 使用 %s2 回到原世界
|
|
||||||
schematic_format: '可用格式 (名称: 搜索名称)'
|
|
||||||
schematic_loaded: '已加载 %s0。请使用 //paste 粘贴'
|
|
||||||
schematic_saved: '已保存 %s0。'
|
|
||||||
schematic_page: 页数必须为 %s
|
|
||||||
schematic_none: 未找到文件。
|
|
||||||
schematic_list: '可用文件 (文件名: 格式) [%s0/%s1]:'
|
|
||||||
schematic_list_elem: ' - %s0 - %s1'
|
|
||||||
schematic_move_exists: '%s0 已存在'
|
|
||||||
schematic_move_success: '%s0 -> %s1'
|
|
||||||
schematic_move_failed: '%s0 未移动: %s1'
|
|
||||||
clipboard:
|
|
||||||
clipboard_cleared: 已清除剪贴板
|
|
||||||
clipboard_invalid_format: '未知剪贴板格式: %s0'
|
|
||||||
clipboard_uri_not_found: 您尚未加载 %s0
|
|
||||||
visitor:
|
|
||||||
visitor_block: '共影响 %s0 个方块'
|
|
||||||
visitor_entity: '共影响 %s0 个实体'
|
|
||||||
visitor_flat: '共影响 %s0 列'
|
|
||||||
selector:
|
|
||||||
selector_fuzzy_pos1: 已从 %s0 %s1 处设置并扩展区域。
|
|
||||||
selector_fuzzy_pos2: 已添加 %s0 %s1 的扩展区域。
|
|
||||||
selector_invalid_coordinates: 坐标 %s0 无效
|
|
||||||
selector_already_set: 已设置位置。
|
|
||||||
selector_set_default: 您的默认区域选择器已更改为 %s0。
|
|
||||||
selector_pos: '已设置位置 %s0 在 %s1 (%s2)。'
|
|
||||||
selector_center: 已设置中心为 %s0 (%s1)。
|
|
||||||
selector_radius: 已设置半径为 %s0 (%s1)。
|
|
||||||
selector_expanded: 已扩大区域至 %s0 (%s1)
|
|
||||||
timezone:
|
|
||||||
timezone_set: '已为此会话设置时区至: %s0'
|
|
||||||
timezone_display: '此时区的当前时间为: %s0'
|
|
||||||
command:
|
|
||||||
command_invalid_syntax: 命令使用有误 (无帮助可用)。
|
|
||||||
help:
|
|
||||||
command_clarifying_bracket: '已为 %s0 添加阐述括号'
|
|
||||||
help_suggest: '无法找到 %s0。试试 %s1 吗?'
|
|
||||||
help_header_categories: 命令类型
|
|
||||||
help_header_subcommands: 子命令
|
|
||||||
help_header_command: '%s0 帮助'
|
|
||||||
help_item_allowed: '%s0 - %s1'
|
|
||||||
help_item_denied: '%s0 - %s1'
|
|
||||||
help_header: '帮助: 页 %s0/%s1'
|
|
||||||
help_footer: '维基页面: https://git.io/vSKE5'
|
|
||||||
progress:
|
|
||||||
progress_message: '剩余 %s1/%s0 (%s2%) @%s3cps %s4s'
|
|
||||||
progress_finished: '[ 完成! ]'
|
|
||||||
cancel:
|
|
||||||
worldedit_cancel_count: '已取消 %s0 次编辑。'
|
|
||||||
worldedit_cancel_reason_confirm: '您的选择区域过大 (%s0 -> %s1,内有 %s3 个方块)。请使用 //confirm 继续执行 %s2'
|
|
||||||
worldedit_cancel_reason: '已取消您的创世操作: %s0.'
|
|
||||||
worldedit_cancel_reason_manual: 手动取消
|
|
||||||
worldedit_cancel_reason_low_memory: 内存不足
|
|
||||||
worldedit_cancel_reason_max_changes: 方块更改过多
|
|
||||||
worldedit_cancel_reason_max_checks: 方块检查过多
|
|
||||||
worldedit_cancel_reason_max_tiles: 方块状态过多
|
|
||||||
worldedit_cancel_reason_max_entities: 实体过多
|
|
||||||
worldedit_cancel_reason_max_iterations: 最大重复次数
|
|
||||||
worldedit_cancel_reason_no_region: 无允许区域 (请使用 /wea 绕过限制,或在 config.yml 中禁用 `region-restrictions`)
|
|
||||||
worldedit_failed_load_chunk: '已跳过区块载入: %s0;%s1。请尝试增加区块等待时长'
|
|
||||||
worldedit_cancel_reason_outside_level: 世界外
|
|
||||||
worldedit_cancel_reason_outside_region: 允许区域外 (请使用 /wea 绕过限制,或在 config.yml 中禁用 `region-restrictions`)
|
|
||||||
navigation:
|
|
||||||
ascend_fail: 您上方无空位。
|
|
||||||
ascended_plural: 已上升 %s0 格。
|
|
||||||
ascended_singular: 已向上移动一层。
|
|
||||||
unstuck: 起飞了!
|
|
||||||
descend_fail: 您下方无空位。
|
|
||||||
descend_plural: 已下降 %s0 格。
|
|
||||||
descend_singular: 已向下移动一层。
|
|
||||||
whoosh: 嗖!
|
|
||||||
poof: 啪!
|
|
||||||
thru_fail: 您前方无空位。
|
|
||||||
no_block: '视野内无方块!(或距离过远)'
|
|
||||||
up_fail: 您将碰到上方的物体。
|
|
||||||
selection:
|
|
||||||
sel_cuboid: '立方体: 左击点 1, 右击点 2'
|
|
||||||
sel_cuboid_extend: '立方体: 左击起始点, 右击扩大'
|
|
||||||
sel_2d_polygon: '2D 多边形选择器: 左/右点击添加点。'
|
|
||||||
sel_ellipsiod: '椭圆体选择器: 左击选定中心,右击扩大'
|
|
||||||
sel_sphere: '球体选择器: 左击选定中心,右击设置半径'
|
|
||||||
sel_cylindrical: '圆柱选择器: 左击选定中心,右击扩大'
|
|
||||||
sel_max: '可选择至多 %s0 个点。'
|
|
||||||
sel_fuzzy: '模糊选择器: 左击选择所有可能的方块,右击添加。要选择气腔,请使用 //pos1。'
|
|
||||||
sel_convex_polyhedral: '凸多面体选择器: 左击选择首个顶点,右击选择更多顶点。'
|
|
||||||
sel_list: '要查看选择类型列表,请使用: //sel list'
|
|
||||||
sel_modes: '请选择下列模式之一:'
|
|
||||||
tips:
|
|
||||||
tip_sel_list: '提示: 请使用 //sel list 查看不同的选择模式'
|
|
||||||
tip_select_connected: '提示: 请使用 //sel fuzzy 选择所有连接为一体的方块'
|
|
||||||
tip_set_pos1: '提示: 请使用 //set pos1 将点 1 作为样式'
|
|
||||||
tip_farwand: '提示: 请使用 //farwand 选择远方的点'
|
|
||||||
tip_lazycut: '提示: 使用 //lazycut 更为安全'
|
|
||||||
tip_fast: '提示: 请使用 //fast 在不撤销的情况下快速放置方块'
|
|
||||||
tip_cancel: '提示: 您可使用 //cancel 取消进行中的编辑'
|
|
||||||
tip_mask: '提示: 请使用 /gmask 设置全局终点蒙版'
|
|
||||||
tip_mask_angle: '提示: 请使用 //replace /[-20][-3] bedrock 替换 3-20 个方块的上坡'
|
|
||||||
tip_set_linear: '提示: 请使用 //set #l3d[wood,bedrock] 线性放置方块'
|
|
||||||
tip_surface_spread: '提示: 请使用 //set #surfacespread[5][0][5][#existing] 进行平面展开'
|
|
||||||
tip_set_hand: '提示: 请使用 //set hand 来使用您的手'
|
|
||||||
tip_replace_id: '提示: 请使用 //replace woodenstair #编号[石台阶] 来仅替换方块编号'
|
|
||||||
tip_replace_light: '提示: 请使用 //replace #brightness[1][15] 0 来移除光源'
|
|
||||||
tip_tab_complete: '提示: 替换命令支持 Tab 键补全功能'
|
|
||||||
tip_flip: '提示: 请使用 //flip 创建镜像'
|
|
||||||
tip_deform: '提示: 请使用 //deform 重新塑形'
|
|
||||||
tip_transform: '提示: 请使用 //gtransform 设置变形'
|
|
||||||
tip_copypaste: '提示: 请使用 //br copypaste 在点击时粘贴'
|
|
||||||
tip_source_mask: '提示: 请使用 /gsmask <蒙版> 来设置源蒙版'
|
|
||||||
tip_replace_marker: '提示: 请使用 //replace wool #fullcopy 使用剪切板完全替换方块'
|
|
||||||
tip_paste: '提示: 请使用 //paste 放置方块'
|
|
||||||
tip_lazycopy: '提示: lazycopy 的速度更为快捷'
|
|
||||||
tip_download: '提示: 来试试 //download'
|
|
||||||
tip_rotate: '提示: 请使用 //rotate 确定方位'
|
|
||||||
tip_copy_pattern: '提示: 请使用 #copy 来作为样式使用'
|
|
||||||
tip_regen_0: '提示: 使用 /regen [生态群系] 来重新生成生态群系'
|
|
||||||
tip_regen_1: '提示: 使用 /regen [生态群系] [种子] 来重新生成生态群系'
|
|
||||||
tip_biome_pattern: '提示: #biome[forest] 样式可用于任意命令中'
|
|
||||||
tip_biome_mask: '提示: 您可使用 `$jungle` 蒙版来限定生态群系'
|
|
@ -1,378 +0,0 @@
|
|||||||
# Updated by NotMyFault, 11.04.2019
|
|
||||||
info:
|
|
||||||
prefix: '(FAWE)'
|
|
||||||
schematic_pasting: 'Die Schematic wird eingefügt. Dies kann nicht rückgängig gemacht
|
|
||||||
werden.'
|
|
||||||
updated_lighting_selection: 'Das Licht wird in %s0 Chunks aktualisiert. (Es kann
|
|
||||||
einige Sekunden dauern, bis die Pakete gesendet werden.)'
|
|
||||||
set_region: 'Markierung wurde auf aktuelle WorldEdit Region übertragen.'
|
|
||||||
worldedit_command_limit: 'Bitte warte, bis deine momentane Aktion fertig gestellt
|
|
||||||
wurde.'
|
|
||||||
worldedit_delayed: 'Bitte warte, während deine aktuelle WorldEdit Aktion durchgeführt
|
|
||||||
wird..'
|
|
||||||
worldedit_run: 'Entschuldige die Verzögerung. Nun führen wir folgende Aktion von
|
|
||||||
dir aus: %s'
|
|
||||||
worldedit_complete: 'WorldEdit Aktion fertiggestellt..'
|
|
||||||
require_selection_in_mask: '%s deiner Auswahl ist nicht innerhalb deiner Maske.
|
|
||||||
Du darfst nur innerhalb erlaubter Regionen Veränderungen durchführen.'
|
|
||||||
worldedit_volume: 'Du kannst keine %current% verändern. Die maximale Anzahl an
|
|
||||||
Blöcken die du verändern darfst ist %max%.'
|
|
||||||
worldedit_iterations: 'Du kannst %current% nicht wiederholen. Die maximale Anzahl an erlaubten Wiederholungen ist %max%.'
|
|
||||||
worldedit_unsafe: 'Der Zugang zu diesem Befehl wurde verboten.'
|
|
||||||
worldedit_dangerous_worldedit: 'FAWE führt unsicher WorldEdit Aktionen aus! Position:
|
|
||||||
%s0 Spielername: %s1'
|
|
||||||
worldedit_bypassed: 'Beschränkungen werden nun ignoriert.'
|
|
||||||
worldedit_unmasked: 'Deine WorldEdit Beschränkungen sind nun aufgehoben.'
|
|
||||||
worldedit_restricted: 'Deine WorldEdit Beschränkungen sind nun aktiv.'
|
|
||||||
worldedit_oom_admin: |-
|
|
||||||
Mögliche Optionen:
|
|
||||||
- //fast
|
|
||||||
- Kleinere Aktionen ausführen
|
|
||||||
- Mehr Arbeitsspeicher zuweisen
|
|
||||||
- Diese Meldungen deaktivieren
|
|
||||||
compressed: WorldEdit Verlauf komprimiert. Um ~ %s0b reduziert (%s1x kleiner)
|
|
||||||
action_complete: Aktion fertiggestellt in %s0 Sekunden
|
|
||||||
lighting_propogate_selection: 'Licht wurde berechnet in %s0 Chunks. (Info: Um
|
|
||||||
Licht zu entfernen nutze //removelight)'
|
|
||||||
worldedit_toggle_tips_on: 'WorldEdit Tipps deaktiviert.'
|
|
||||||
worldedit_toggle_tips_off: 'WorldEdit Tipps aktiviert.'
|
|
||||||
file_deleted: '%s0 wurde gelöscht.'
|
|
||||||
error:
|
|
||||||
worldedit_extend: 'Deine WorldEdit Aktion überschreitet die erlaubte Region'
|
|
||||||
command_syntax: 'Benutzung: %s0'
|
|
||||||
no_perm: 'Dir fehlt die Berechtigung: %s0'
|
|
||||||
setting_disable: 'Fehlende Einstellung: %s0'
|
|
||||||
schematic_not_found: 'Schematic nicht gefunden: %s0'
|
|
||||||
no_region: 'Du hast keine aktive WorldEdit Markierung'
|
|
||||||
no_mask: 'Du hast keine Maske gesetzt'
|
|
||||||
not_player: 'Dieser Befehl kann nur von Spielern ausgeführt werden!'
|
|
||||||
player_not_found: 'Spieler nicht gefunden: %s0'
|
|
||||||
oom: |-
|
|
||||||
[Kritisch] Wenig Arbeitsspeicher frei (< 1%). FAWE wird folgendes machen:
|
|
||||||
- Alle Aktionen terminieren
|
|
||||||
- Vergangene Bearbeitungen vergessen
|
|
||||||
- Alle unwichtigen Chunks entladen
|
|
||||||
- Alle Entities töten
|
|
||||||
- Unnötig verwendeten Speicher freigeben.
|
|
||||||
Ignoriere diese Meldung, wenn du versuchst den Server zu crashen.
|
|
||||||
Note: Wenig freier Speicher kann unter Umständen wegen WE passiert sein.
|
|
||||||
worldedit_some_fails: '%s0 Blöcke wurden nicht platziert, da sie außerhalb der
|
|
||||||
erlaubten Region sind.'
|
|
||||||
worldedit_some_fails_blockbag: 'Fehlende Blöcke: %s0'
|
|
||||||
web_unauthorized: 'Es sind nur Links vom konfigurierten Webhost erlaubt: %s0'
|
|
||||||
brush_not_found: '&Verfügbare Brushes: %s0'
|
|
||||||
brush_incompatible: 'Brush ist nicht kompatibel mit dieser Version'
|
|
||||||
block_not_allowed: 'Du darfst diesen Block nicht benutzen:'
|
|
||||||
web:
|
|
||||||
generating_link: Lade %s hoch, bitte warten...
|
|
||||||
generating_link_failed: 'Erstellung eines Download-Links fehlgeschlagen!'
|
|
||||||
download_link: '%s'
|
|
||||||
worldedit:
|
|
||||||
general:
|
|
||||||
mask_disabled: Globale Maske deaktiviert
|
|
||||||
mask: Globale Maske gesetzt
|
|
||||||
transform_disabled: Globale Transformation deaktiviert
|
|
||||||
transform: Globale Transformation gesetzt
|
|
||||||
source_mask_disabled: Globale Quell-Maske deaktiviert
|
|
||||||
source_mask: Global Quell-Maske gesetzt
|
|
||||||
fast_enabled: Fast-Modus aktiviert. Verlauf und Beschränkungen werden ignoriert.
|
|
||||||
fast_disabled: Fast-Modus deaktiviert
|
|
||||||
place_enabled: 'Platziere nun an Pos. #1.'
|
|
||||||
place_disabled: Platziere nun an dem Block in dem du stehst.
|
|
||||||
texture_disabled: Texturen zurückgesetzt
|
|
||||||
texture_set: Textur auf %s1 gestellt
|
|
||||||
copy:
|
|
||||||
command_copy: '%s0 Blöcke kopiert'
|
|
||||||
cut:
|
|
||||||
command_cut_slow: |-
|
|
||||||
%s0 Blöcke wurden ausgeschnitten.
|
|
||||||
Tipp: Lazycut ist sicherer
|
|
||||||
command_cut_lazy: '%s0 Blöcke werden beim Einfügen entfernt'
|
|
||||||
paste:
|
|
||||||
command_paste: Zwischenablage wurde bei Position %s0 eingefügt
|
|
||||||
rotate:
|
|
||||||
command_rotate: Zwischenablage wurde gedreht
|
|
||||||
flip:
|
|
||||||
command_flipped: Zwischenablage wurde gespiegelt
|
|
||||||
regen:
|
|
||||||
command_regen_0: |-
|
|
||||||
Region regeneriert.
|
|
||||||
Tipp: Nutze dies für Biome mit /regen [biome]
|
|
||||||
command_regen_1: |-
|
|
||||||
Region regeneriert.
|
|
||||||
Tipp: Nutze einen Seed mit /regen [biome] [seed]
|
|
||||||
command_regen_2: Region regeneriert.
|
|
||||||
tree:
|
|
||||||
command_tree: '%s0 Bäume erstellt.'
|
|
||||||
command_pumpkin: '%s0 Kürbis-Haufen erstellt.'
|
|
||||||
flora:
|
|
||||||
command_flora: '%s0 Pflanzen erstellt.'
|
|
||||||
history:
|
|
||||||
command_history_clear: Verlauf gelöscht
|
|
||||||
command_redo_success: Redo erfolgreich.
|
|
||||||
command_undo_success: Undo erfolgreich.
|
|
||||||
command_redo_error: Es gibt nichts zum Wiederherstellen. (Siehe `/inspect` und
|
|
||||||
`/frb`)
|
|
||||||
command_undo_error: Es gibt nichts zum Rückgängigmachen. (Siehe `/inspect` und
|
|
||||||
`/frb`)
|
|
||||||
command_history_other_error: WorldEdit Verlauf für %s0 konnte nicht gefunden werden.
|
|
||||||
command_undo_disabled: 'Undo ist deaktiviert, benutze //fast'
|
|
||||||
operation:
|
|
||||||
operation: Operation wird durchgeführt (%s0)
|
|
||||||
selection:
|
|
||||||
selection_wand: 'Linksklick: Markiere Position #1; Rechtsklick: Markiere Position
|
|
||||||
#2'
|
|
||||||
selection_wand_disable: Bearbeitungs-Tool deaktiviert.
|
|
||||||
selection_wand_enable: Bearbeitungs-Tool aktiviert.
|
|
||||||
selection_chunk: Chunk ausgewählt (%s0)
|
|
||||||
selection_chunks: Chunks ausgewählt (%s0) - (%s1)
|
|
||||||
selection_contract: Markierung verkleinert um %s0 Blöcke.
|
|
||||||
selection_count: '%s0 Blöcke wurden gezählt.'
|
|
||||||
selection_distr: '# Gesamtanzahl Blöcke: %s0'
|
|
||||||
selection_expand: Markierung erweitert um %s0 Blöcke
|
|
||||||
selection_expand_vert: Markierung erweitert um %s0 Blöcke (Maximaler Baubereich)
|
|
||||||
selection_inset: Markierung verkleinert
|
|
||||||
selection_outset: Markierung vergößert
|
|
||||||
selection_shift: Region verschoben
|
|
||||||
selection_cleared: Auswahl gelöscht
|
|
||||||
brush:
|
|
||||||
brush_copy: Copy Brush ausgerüstet (%s0)
|
|
||||||
brush_height_invalid: Ungültige Höhenkarte (%s0)
|
|
||||||
brush_smooth: Glättungs-Brush ausgerüstet (%s0 x %s1 using %s2).
|
|
||||||
brush_spline: Linien Brush Format ausgerüstet (%s0). Rechstklicke ein Ende um
|
|
||||||
ein Format hinzuzufügen
|
|
||||||
brush_spline_secondary_error: Nicht genügend Positionen gesetzt!
|
|
||||||
brush_spline_secondary: Kurve erstellt
|
|
||||||
brush_size: Brush Größe gesetzt
|
|
||||||
brush_range: Brush Weite gesetzt
|
|
||||||
brush_mask_disabled: Brush Maske deaktiviert
|
|
||||||
brush_mask: Brush Maske gesetzt
|
|
||||||
brush_transform_disabled: Brush Transformation deaktiviert
|
|
||||||
brush_transform: Brush-Transformation gesetzt
|
|
||||||
brush_material: Brush-Material gesetzt
|
|
||||||
brush_try_other: |-
|
|
||||||
FAWE verfügt über andere, passendere Brushes. z.B.:
|
|
||||||
- //br height [radius=5] [#clipboard|file=null] [rotation=0] [yscale=1.00]
|
|
||||||
brush_none: Du hältst kein Tool in der Hand, das man als Brush verwenden kann!
|
|
||||||
brush_source_mask_disabled: Brush Quell-Maske deaktiviert
|
|
||||||
brush_source_mask: Brush Quell-Maske gesetzt
|
|
||||||
brush_reset: Brush zurückgesetzt.
|
|
||||||
brush_scroll_action_set: Scroll Aktion auf %s0 gesetzt
|
|
||||||
brush_scroll_action_unset: Scroll Aktion entfernt
|
|
||||||
brush_visual_mode_set: Visualiserungsmodus auf %s0 gesetzt
|
|
||||||
brush_target_mode_set: Zielmodus auf %s0 gesetzt
|
|
||||||
brush_target_mask_set: Zielmaske auf %s0 gesetzt
|
|
||||||
brush_target_offset_set: Zielausrichtung auf %s0 gesetzt
|
|
||||||
brush_equipped: Brush %s0 ausgerüstet
|
|
||||||
brush_line_primary: Punkt %s0 hinzugefügt. Klicke auf eine andere Position um
|
|
||||||
die Linie zu erstellen
|
|
||||||
brush_line_secondary: Spline erstellt
|
|
||||||
brush_spline_primary_2: Position hinzugefügt. Klicke auf die gleiche Position
|
|
||||||
um zu beginnen!
|
|
||||||
brush_catenary_direction: Punkt %s0 hinzugefügt. Klicke in die Richtung in der
|
|
||||||
du die spline generieren willst
|
|
||||||
rollback:
|
|
||||||
rollback_element: annulliere %s0
|
|
||||||
tool:
|
|
||||||
tool_inspect: Inpektions-Tool an %s0 gebunden.
|
|
||||||
tool_inspect_info: '%s0 änderte %s1 zu %s2 %s3 zuvor'
|
|
||||||
tool_inspect_info_footer: 'Total: %s0 Änderungen'
|
|
||||||
tool_none: Tool vom aktuellen Item entfernt.
|
|
||||||
tool_info: Info-Tool gebunden an %s0.
|
|
||||||
tool_tree: Tree-Tool gebunden an %s0.
|
|
||||||
tool_tree_error: Baum Typ %s0 ist unbekannt.
|
|
||||||
tool_repl: Block Replacer-Tool an %s0 gebunden.
|
|
||||||
tool_cycler: Block Data Cycler-Tool an %s0 gebunden
|
|
||||||
tool_flood_fill: Block Flood Fill-Tool an %s0 gebunden
|
|
||||||
tool_deltree: Floating Tree Remover-Tool an %s0 gebunden
|
|
||||||
tool_farwand: Far Wand-Tool gebunden an%s0.
|
|
||||||
tool_lrbuild_bound: Long-range Building-Tool gebunden an %s0.
|
|
||||||
tool_lrbuild_info: 'Linksklick: Setze Position %s0; Rechtsklick: Setze Position
|
|
||||||
%s1'
|
|
||||||
superpickaxe_enabled: Super-Spitzhacke aktiviert.
|
|
||||||
superpickaxe_disabled: Super-Spitzhacke deaktiviert.
|
|
||||||
tool_range_error: 'Maximale Reichweite: %s0.'
|
|
||||||
tool_radius_error: 'Maximal erlaubter Brush Radius: %s0.'
|
|
||||||
superpickaxe_area_enabled: Modus geändert. Linksklick mit einer Spitzhacke. Verwende '//' zum deaktivieren.
|
|
||||||
tool_tree_error_block: Du kannst hier keinen Baum wachsen lassen
|
|
||||||
tool_deltree_error: Das ist kein Baum
|
|
||||||
tool_deltree_floating_error: Das ist kein schwebender Baum
|
|
||||||
schematic:
|
|
||||||
schematic_format: 'Verfügbare Zwischenablage Formate (Name: Suche Namen)'
|
|
||||||
schematic_loaded: Schematic %s0 geladen. Platziere sie mit //paste
|
|
||||||
schematic_saved: Schematic %s0 gespeichert.
|
|
||||||
schematic_page: Seite muss %s sein.
|
|
||||||
schematic_none: Keine Schematics gefunden.
|
|
||||||
schematic_list: 'Verfügbare Schematics (Dateiname: Format) [%s0/%s1]:'
|
|
||||||
schematic_list_elem: ' - %s0 - %s1'
|
|
||||||
schematic_prompt_clear: 'Meintest du %s0 um deine Zwischenablage zu leeren?'
|
|
||||||
schematic_show: |-
|
|
||||||
Displaying %s0 Schematics von %s1:
|
|
||||||
- Linksklick a um der Zwischenablage hinzuzufügen
|
|
||||||
- Rechtsklick um etwas deiner Multi-Zwischenablage hinzuzufügen
|
|
||||||
- Benutze %s2 um zur richtigen Welt zurückzukehren
|
|
||||||
schematic_move_exists: '%s0 existiert bereits'
|
|
||||||
schematic_move_success: '%s0 -> %s1'
|
|
||||||
schematic_move_failed: '%s0 wurde nicht bewegt: %s1'
|
|
||||||
clipboard:
|
|
||||||
clipboard_cleared: Zwischenablage geleert
|
|
||||||
clipboard_invalid_format: 'Unbekanntes Zwischenablage Format: %s0'
|
|
||||||
clipboard_uri_not_found: Du hast %s0 nicht geladen.
|
|
||||||
visitor:
|
|
||||||
visitor_block: '%s0 Blöcke betroffen'
|
|
||||||
visitor_entity: '%s0 Entities betroffen'
|
|
||||||
visitor_flat: '%s0 Spalten betroffen'
|
|
||||||
selector:
|
|
||||||
selector_invalid_coordinates: Ungültige Koordinaten %s0
|
|
||||||
selector_already_set: Position bereits gesetzt.
|
|
||||||
selector_fuzzy_pos1: Region gesetzt und expandiert von %s0 %s1.
|
|
||||||
selector_fuzzy_pos2: Erweiterung um %s0 %s1 hinzugefügt.
|
|
||||||
selector_set_default: Dein Standard Auswahl-Tool ist nun %s0.
|
|
||||||
selector_pos: Position%s0 zu %s1 (%s2) gesetzt.
|
|
||||||
selector_center: Mittelpunkt zu %s0 (%s1) gesetzt.
|
|
||||||
selector_radius: Radius zu %s0 (%s1) gesetzt.
|
|
||||||
selector_expanded: Region expandiert auf %s0 (%s1).
|
|
||||||
command:
|
|
||||||
command_invalid_syntax: Der Befehl wurde nicht richtig benutzt. (Keine weitere
|
|
||||||
Hilfe verfügbar).
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: Snapshot '%s0' geladen; Wiederherstellung läuft...
|
|
||||||
snapshot_set: 'Snapshot gesetzt auf: %s0'
|
|
||||||
snapshot_newest: Neuester Snapshot wird jetzt benutzt.
|
|
||||||
snapshot_list_header: 'Snapshots für die Welt (%s0):'
|
|
||||||
snapshot_list_footer: Nutze /snap use [snapshot] oder /snap use latest.
|
|
||||||
snapshot_not_configured: Snapshot/backups sind nicht konfiguriert.
|
|
||||||
snapshot_not_available: Keine Snapshots verfügbar, überprüfe die Konsole
|
|
||||||
snapshot_not_found_world: No snapshots were found for this world.
|
|
||||||
snapshot_not_found: Keine Snapshots gefunden
|
|
||||||
snapshot_invalid_index: Ungültiger Index, der WErt muss gleich oder größer 1 sein
|
|
||||||
snapshot_error_date: Datum konnte nicht gefunden werden
|
|
||||||
snapshot_error_restore: Ein Fehler verhinderte das wiederherstellen von Blöcken
|
|
||||||
snapshot_error_restore_chunks: Chunks konnten nicht geladen werden
|
|
||||||
biome:
|
|
||||||
biome_list_header: 'Biome (Seite %s0/%s1):'
|
|
||||||
biome_changed: Biome wurden in %s0 Blöcken geändert.
|
|
||||||
utility:
|
|
||||||
kill_success: '%s0 Entities in einem Radius von %s1 getötet.'
|
|
||||||
nothing_confirmed: Du hast keine zur Autorisierung ausstehenden Aktionen.
|
|
||||||
page_footer: Benutze %s0 um zur nächsten Seite zu gehen
|
|
||||||
timezone:
|
|
||||||
timezone_set: 'Zeitzone für diese Sitzung gesetzt auf: %s0'
|
|
||||||
timezone_display: 'Aktuelle Zeit in dieser Zeitzone: %s0'
|
|
||||||
navigation:
|
|
||||||
navigation_wand_error: 'Nichts zu durchqueren'
|
|
||||||
anvil:
|
|
||||||
world_is_loaded: Die Welt sollte während er Ausführung nicht in Benutzung sein.
|
|
||||||
Entlade die Welt oder überschreibe diese mit -f (vorher speichern)
|
|
||||||
help:
|
|
||||||
command_clarifying_bracket: 'Klammer für%s0 wurde hinzugefügt'
|
|
||||||
help_suggest: '%s0 konnte nicht gefunden werden. Versuche %s1 '
|
|
||||||
help_header_categories: Befehlstypen
|
|
||||||
help_header_subcommands: Unterbefehle
|
|
||||||
help_header_command: 'Hilfe für: %s0'
|
|
||||||
help_item_allowed: '%s0 - %s1'
|
|
||||||
help_item_denied: '%s0 - %s1'
|
|
||||||
help_header: 'Hilfe: Seite %s0/%s1'
|
|
||||||
help_footer: 'Wiki: https://git.io/vSKE5'
|
|
||||||
cycler:
|
|
||||||
block_cycler_cannot_cycle: Dieser Block kann mit cycler nicht verändert werden
|
|
||||||
block_cycler_limit: Du hast dein maximales Block-Change Limit erreicht.
|
|
||||||
block_cycler_no_perm: 'Du hast keine Rechte diesen Block mit dem cycler zu bearbeiten'
|
|
||||||
scripting:
|
|
||||||
scripting_no_perm: 'Du hast keine Rechte dieses CraftScript auszuführen'
|
|
||||||
scripting_cs: Nutze /cs mit einen Script Namen
|
|
||||||
scripting_error: Ein Fehler trat auf beim Asuführen eines Scripts.
|
|
||||||
progress:
|
|
||||||
progress_message: '[ Zwischenspeicher: %s0 | Erledigt: %s1 ]'
|
|
||||||
progress_finished: '[ Fertiggestellt! ]'
|
|
||||||
cancel:
|
|
||||||
worldedit_cancel_count: '%s0 Veränderungen abgebrochen.'
|
|
||||||
worldedit_cancel_reason: 'Deine WorldEdit Aktion wurde abgebrochen: %s0.'
|
|
||||||
worldedit_cancel_reason_manual: Manueller Abbruch
|
|
||||||
worldedit_cancel_reason_low_memory: Zu wenig Speicher
|
|
||||||
worldedit_cancel_reason_max_changes: Zu viele Blöcke bearbeitet
|
|
||||||
worldedit_cancel_reason_max_checks: Zu viele Blöcke gecheckt
|
|
||||||
worldedit_cancel_reason_max_tiles: Zu viele Blockstatus
|
|
||||||
worldedit_cancel_reason_max_entities: Zu viele Entities
|
|
||||||
worldedit_cancel_reason_max_iterations: Maximale Wiederholungen
|
|
||||||
worldedit_cancel_reason_no_region: Keine erlaubte Region (Ignorieren mit /wea)
|
|
||||||
worldedit_failed_load_chunk: 'Überspringe das Laden von Chunk: %s0;%s1. Versuche
|
|
||||||
chunk-wait zu erhöhen.'
|
|
||||||
worldedit_cancel_reason_confirm: 'Deine Selektion ist zu groß (%s0 -> %s1). Benutze
|
|
||||||
//confirm um %s2 auszuführen'
|
|
||||||
worldedit_cancel_reason_outside_level: Außerhalb der Welt
|
|
||||||
worldedit_cancel_reason_outside_region: Außerhalb erlaubter Region (Umgehe es mit
|
|
||||||
/wea, oder deaktiviere `region-restrictions` in der config.yml)
|
|
||||||
history: {}
|
|
||||||
navigation:
|
|
||||||
ascend_fail: Über dir konnte kein freier Platz gefunden werden.
|
|
||||||
ascended_plural: '%s0 Schichten aufgestiegen.'
|
|
||||||
ascended_singular: Eine Schicht aufgestiegen.
|
|
||||||
unstuck: Sollte jetzt besser sein!
|
|
||||||
descend_fail: Unter dir konnte kein freier Platz gefunden werden.
|
|
||||||
descend_plural: '%s0 Schichten abgestiegen.'
|
|
||||||
descend_singular: Eine Schicht abgestiegen.
|
|
||||||
whoosh: Wusch!
|
|
||||||
poof: Puff!
|
|
||||||
thru_fail: Vor dir konnte kein freier Platz gefunden werden.
|
|
||||||
up_fail: Du würdest einen Block treffen!
|
|
||||||
no_block: Es ist kein Block in Sichweite! (oder zu weit entfernt)
|
|
||||||
selection:
|
|
||||||
sel_cuboid: 'Quader: Linksklick für Position1; Rechtsklick für Position2'
|
|
||||||
sel_cuboid_extend: 'Quader: Linksklick für einen Startpunkt; Rechtsklick zum erweitern'
|
|
||||||
sel_2d_polygon: '2D Polygon Auswahl: Links/Rechtsklick um eine Markierung hinzuzufügen.'
|
|
||||||
sel_ellipsiod: 'Ellipsen Auswahl: Linksklick=Mitte, Rechtsklick zum erweitern'
|
|
||||||
sel_sphere: 'Kugel Auswahl : Linksklick=Mitte, Rechtsklick um den Radius zu setzen'
|
|
||||||
sel_cylindrical: 'Zylinder Auswahl: Linksklick=Mitte, Rechtsklick zum erweitern'
|
|
||||||
sel_max: '%s0 Punkte maximal.'
|
|
||||||
sel_fuzzy: 'Fuzzy Auswahl: Linksklick um alle verbundenen Blöcke zu markieren; Rechtsklick
|
|
||||||
zum hinzufügen'
|
|
||||||
sel_convex_polyhedral: 'Convexe Polyeder Auswahl: Linksklick=Erster Vertex; Rechtsklick,
|
|
||||||
um mehr hinzuzufügen.'
|
|
||||||
sel_list: 'Für eine Liste der Selektoren nutze: //sel'
|
|
||||||
sel_modes: 'Wähle einen der unten aufgelisteten Modi:'
|
|
||||||
tips:
|
|
||||||
tip_cancel: 'Tipp: Du kannst eine Aktion mit `//cancel` abbrechen'
|
|
||||||
tip_download: 'Tipp: Du kannst deine Zwischenablage mit `//download` herunterladen'
|
|
||||||
tip_sel_list: 'Tipp: Liste die verschiedenen Selektoren auf mit //sel list'
|
|
||||||
tip_select_connected: 'Tipp: Wähle alle verbundenen Blöcke mit //sel fuzzy'
|
|
||||||
tip_set_pos1: 'Tipp: Nutze Position1 als Muster //set pos1'
|
|
||||||
tip_farwand: 'Tipp: Markiere entfernte Blöcke mit //farwand'
|
|
||||||
tip_fast: 'Tipp: Platziere schnell und ohne Undo-Historie //fast'
|
|
||||||
tip_mask: 'Tipp: Setze eine Globale Zielmaske mit /gmask'
|
|
||||||
tip_mask_angle: 'Tipp: Ersetze aufwärts Steigungen von 3-20 Blöcken mit //replace
|
|
||||||
/-20:-3 bedrock'
|
|
||||||
tip_set_linear: 'Tipp: Setze Blöcke linear mit //set #l3d:wood,bedrock'
|
|
||||||
tip_surface_spread: 'Tipp: Streue einen flachen Untergrund mit //set #surfacespread:5:0:5:#existing'
|
|
||||||
tip_set_hand: 'Tipp: Setze das Item in deiner Hand mit//set hand'
|
|
||||||
tip_replace_id: 'Tipp: Ersetze nur die Block-ID: //replace woodenstair #id:cobblestair'
|
|
||||||
tip_replace_light: 'Tipp: Entferne Licht-Quellen mit //replace #brightness:1:15
|
|
||||||
0'
|
|
||||||
tip_tab_complete: 'Tipp: Der Replace-Befehl unterstützt Tab-Vervollständigung'
|
|
||||||
tip_flip: 'Tipp: Du kannst mit //flip spiegeln'
|
|
||||||
tip_deform: 'Tipp: Forme um mit //deform'
|
|
||||||
tip_transform: 'Tipp: Platziere eine Umformung mit //gtransform'
|
|
||||||
tip_copypaste: 'Tipp: Füge durch Klick ein mit //br copypaste'
|
|
||||||
tip_source_mask: 'Tipp: Setze eine Quell-Maske /gsmask <mask>'
|
|
||||||
tip_replace_marker: 'Tipp: Ersetze einen Block mit deiner vollständigen Zwischenablage
|
|
||||||
mit //replace wool #fullcopy'
|
|
||||||
tip_paste: 'Tipp: Füge deine Zwischeneinlage mit //paste ein'
|
|
||||||
tip_lazycopy: 'Tipp: lazycopy ist schneller'
|
|
||||||
tip_rotate: 'Tipp: Ausrichten mit //rotate'
|
|
||||||
tip_copy_pattern: 'Tipp: Um ein Muster zu verwenden verwende #copy'
|
|
||||||
tip_lazycut: 'Tipp: Es ist sicherer den Befehl //lazycut zu verwenden.'
|
|
||||||
tip_regen_0: 'Tipp: Benutze ein Biom mit /regen [biome]'
|
|
||||||
tip_regen_1: 'Tipp: Benutzte einen Seed mit /regen [biome] [seed]'
|
|
||||||
tip_biome_pattern: 'Tipp: Das #biome[forest] Muster kann in jedem Befehl genutzt
|
|
||||||
werden'
|
|
||||||
tip_biome_mask: 'Tipp: Beschränke ein Biom mit der `$jungle` Maske'
|
|
||||||
tip_discord: Du benötigst Hilfe mit FAWE? https://discord.gg/KxkjDVg
|
|
||||||
tip_replace_regex: 'Tipp: Ersetze mit regex: //replace .*_log <pattern>'
|
|
||||||
tip_replace_regex_2: 'Tipp: Ersetze mit regex: //replace .*stairs[facing=(north|south)]
|
|
||||||
<pattern>'
|
|
||||||
tip_replace_regex_3: 'Tipp: Ersetze mit den folgenden Operatoren: //replace
|
|
||||||
water[level>2] sand'
|
|
||||||
tip_replace_regex_4: 'Tipp: Ersetze mit den folgenden Operatoren: //replace
|
|
||||||
true *[waterlogged=false]'
|
|
||||||
tip_replace_regex_5: 'Tipp: Ersetze mit den folgenden Operatoren: //replace
|
|
||||||
true *[level-=1]'
|
|
@ -1,341 +0,0 @@
|
|||||||
info:
|
|
||||||
prefix: '(FAWE)'
|
|
||||||
file_deleted: '%s0 ha sido eliminado.'
|
|
||||||
schematic_pasting: 'La schematic está peganda. Esto no se puede deshacer.'
|
|
||||||
lighting_propogate_selection: 'La iluminación se ha propagado en %s0 chunks. (Nota:
|
|
||||||
Para quitar el uso de la luz //removelight)'
|
|
||||||
updated_lighting_selection: 'La iluminación se ha actualizado en %s0 trozos. (Puede
|
|
||||||
tardar un segundo en enviar los paquetes)'
|
|
||||||
set_region: 'Selección ajustada a su región permitida actual'
|
|
||||||
worldedit_command_limit: 'Espere hasta que se complete la acción actual'
|
|
||||||
worldedit_delayed: 'Espere mientras procesamos su acción ...'
|
|
||||||
worldedit_run: 'Perdón por el retraso. Ahora ejecutando: %s0'
|
|
||||||
worldedit_complete: 'Editar completado.'
|
|
||||||
require_selection_in_mask: '%s de su selección no está dentro de su máscara. Tú
|
|
||||||
sólo puede realizar ediciones dentro de las regiones permitidas.'
|
|
||||||
worldedit_volume: 'No puede seleccionar un volumen de %current%. El volumen máximo
|
|
||||||
que puede modificar es %max%.'
|
|
||||||
worldedit_iterations: 'No se puede iterar %current% times. El número máximo de
|
|
||||||
iteraciones permitidas es %max%.'
|
|
||||||
worldedit_unsafe: 'Acceso a ese comando ha sido bloqueado'
|
|
||||||
worldedit_dangerous_worldedit: 'Proceso de edición insegura en %s0 por %s1'
|
|
||||||
worldedit_toggle_tips_on: 'Desabilitado FAWE tips.'
|
|
||||||
worldedit_toggle_tips_off: 'Habilitado FAWE tips.'
|
|
||||||
worldedit_bypassed: 'Consejos FAWE habilitados.'
|
|
||||||
worldedit_unmasked: 'Las ediciones de FAWE ya no están restringidas.'
|
|
||||||
worldedit_restricted: 'Vos ediciones de FAWE están restringidas ahora.'
|
|
||||||
worldedit_oom_admin: |-
|
|
||||||
Opciones Posibles:
|
|
||||||
- //fast
|
|
||||||
- Para ediciones más pequeñas
|
|
||||||
- Asignar más memoria
|
|
||||||
- Desabilitado `max-memory-percent`
|
|
||||||
compressed: Historial comprimido. Guardado ~ %s0b (%s1x menor)
|
|
||||||
action_complete: Acción completada en %s0 segundos
|
|
||||||
error:
|
|
||||||
worldedit_extend: 'Es posible que tu edición se haya extendido fuera de tu región
|
|
||||||
permitida.'
|
|
||||||
web_unauthorized: 'Solo se permiten enlaces desde el host web configurado: %s0'
|
|
||||||
command_syntax: 'Usage: %s0'
|
|
||||||
no_perm: 'Está faltando el nodo de permiso: %s0'
|
|
||||||
setting_disable: 'Pregunta de ajuste: %s0'
|
|
||||||
brush_not_found: 'Brushes disponibles: %s0'
|
|
||||||
brush_incompatible: 'Brush no compatible con esta versión'
|
|
||||||
schematic_not_found: 'Schematic no encontrada: %s0'
|
|
||||||
no_region: 'No tienes región actual permitida'
|
|
||||||
no_mask: 'No tienes ningún conjunto de máscara actual'
|
|
||||||
not_player: 'Usted debe ser un jugador para realizar esta acción!'
|
|
||||||
player_not_found: 'Jugador no encontrado: %s0'
|
|
||||||
oom: |-
|
|
||||||
'[Critical] Detected baja memoria i.e. < 1%. Tomaremos las siguientes acciones:'
|
|
||||||
- Terminate bloqueamos la colocación
|
|
||||||
- Borrar Historia de WE
|
|
||||||
- Unload shunk no esenciales
|
|
||||||
- Matar entidades
|
|
||||||
- La recogida de basura
|
|
||||||
Ignore esto si intenta bloquear el servidor.
|
|
||||||
Nota: Es probable que la memoria baja (pero no necesariamente) sea causada por WE
|
|
||||||
worldedit_some_fails: '%s0 bloques fueron''t pcolocado porque estaban fuera de
|
|
||||||
su región permitida.'
|
|
||||||
worldedit_some_fails_blockbag: 'Bloques perdidos: %s0'
|
|
||||||
web:
|
|
||||||
generating_link: Subiendo %s, por favor espere...
|
|
||||||
generating_link_failed: 'Fallo al generar el enlace de descarga!'
|
|
||||||
download_link: '%s'
|
|
||||||
worldedit:
|
|
||||||
general:
|
|
||||||
mask_disabled: Máscara global desactivada
|
|
||||||
mask: Seleccionar máscara global
|
|
||||||
source_mask_disabled: Máscara de fuente global desactivada
|
|
||||||
source_mask: Seleccionar máscaras de fuentes globales
|
|
||||||
transform_disabled: Transformación global deshabilitada
|
|
||||||
transform: Seleccionar transformación global
|
|
||||||
fast_enabled: Modo rápido activado. Las restricciones de edición se evitarán.
|
|
||||||
fast_disabled: Modo rápido inhabilitado.
|
|
||||||
place_enabled: 'Ahora colocando en pos #1.'
|
|
||||||
place_disabled: Ahora colocando en el bloque en el que estás.
|
|
||||||
texture_disabled: Reinicio de texturizado
|
|
||||||
texture_set: Establecer texturizado en %s1
|
|
||||||
copy:
|
|
||||||
command_copy: Se copiaron %s0 bloques.
|
|
||||||
cut:
|
|
||||||
command_cut_slow: '%s0 bloques fueron cortados.'
|
|
||||||
command_cut_lazy: '%s0 bloques se eliminarán al pegar/paste'
|
|
||||||
paste:
|
|
||||||
command_paste: El portapapeles se ha pegado en %s0
|
|
||||||
rotate:
|
|
||||||
command_rotate: Se ha roto el portapapeles
|
|
||||||
flip:
|
|
||||||
command_flipped: Se ha volcado el portapapeles
|
|
||||||
regen:
|
|
||||||
command_regen_0: Región regenerada.
|
|
||||||
command_regen_1: Región regenerada.
|
|
||||||
command_regen_2: Región regenerada.
|
|
||||||
tree:
|
|
||||||
command_tree: '%s0 árboles/trees creados.'
|
|
||||||
command_pumpkin: '%s0 parches de calabaza/pumpkin creados.'
|
|
||||||
flora:
|
|
||||||
command_flora: '%s0 flora creada.'
|
|
||||||
history:
|
|
||||||
command_history_clear: Historial eliminado
|
|
||||||
command_redo_error: No queda nada para rehacer. (Véase también `/inspect` y `/frb`)
|
|
||||||
command_history_other_error: No se puede encontrar la sesión para %s0.
|
|
||||||
command_redo_success: Rehacer correctamente.
|
|
||||||
command_undo_error: No queda nada para deshacer. (Véase también `/inspect` y `/frb`)
|
|
||||||
command_undo_success: Deshacer, completada correctamente.
|
|
||||||
operation:
|
|
||||||
operation: Operación en cola (%s0)
|
|
||||||
selection:
|
|
||||||
selection_wand: 'Click izquierdo: seleccione posicion #1; Haga click derecho:
|
|
||||||
seleccione posicion #2'
|
|
||||||
selection_wand_disable: Hacha de editar esactivada.
|
|
||||||
selection_wand_enable: Hacha de edición activada.
|
|
||||||
selection_chunk: Chunk seleccionado (%s0)
|
|
||||||
selection_chunks: Chunks seleccionados (%s0) - (%s1)
|
|
||||||
selection_contract: Región contratada %s0 bloques.
|
|
||||||
selection_count: Contado %s0 bloques.
|
|
||||||
selection_distr: '# Contado: %s0'
|
|
||||||
selection_expand: Región expandida %s0 bloques
|
|
||||||
selection_expand_vert: Región expandida %s0 bloques (de arriba hacia abajo)
|
|
||||||
selection_inset: Inserción de región
|
|
||||||
selection_outset: Comienzo de la región
|
|
||||||
selection_shift: Región desplazada
|
|
||||||
selection_cleared: Selección borrada
|
|
||||||
navigation:
|
|
||||||
navigation_wand_error: 'Nada por lo que pasar'
|
|
||||||
anvil:
|
|
||||||
world_is_loaded: El mundo no debe estar en uso durante la ejecución. Descargue
|
|
||||||
el mundo, o utilice el uso -f para anular (guardar primero)
|
|
||||||
brush:
|
|
||||||
brush_reset: Restablece el pincel.
|
|
||||||
brush_none: Usted no está sosteniendo un pincel!
|
|
||||||
brush_scroll_action_set: Establece la acción de desplazamiento en %s0
|
|
||||||
brush_scroll_action_unset: Acción de desplazamiento eliminada
|
|
||||||
brush_visual_mode_set: Establece el modo visual a %s0
|
|
||||||
brush_target_mode_set: Establece el modo de destino en %s0
|
|
||||||
brush_target_mask_set: Establece la máscara de destino en %s0
|
|
||||||
brush_target_offset_set: Establece el desplazamiento de destino en %s0
|
|
||||||
brush_equipped: Pincel Equipado %s0
|
|
||||||
brush_try_other: |-
|
|
||||||
Hay otros pinceles más adecuados e.g.
|
|
||||||
- //br height [radius=5] [#clipboard|file=null] [rotation=0] [yscale=1.00]
|
|
||||||
brush_copy: Haga clic con el botón izquierdo en la base de un objeto para copiar,
|
|
||||||
haga clic derecho para pegar. Incrementar el radio del pincel si es necesario.
|
|
||||||
brush_height_invalid: Archivo de mapa de altura no válido (%s0)
|
|
||||||
brush_smooth: 'Nota: Use el pincel de mezcla si desea suavizar salientes o cuevas.'
|
|
||||||
brush_spline: Haga clic para agregar un punto, haga clic en el mismo lugar para
|
|
||||||
terminar
|
|
||||||
brush_line_primary: Añadido punto %s0, haga clic en otra posición para crear la
|
|
||||||
línea
|
|
||||||
brush_line_secondary: Spline creada
|
|
||||||
brush_spline_primary_2: Añadido posición, haga clic en el mismo lugar para unirse!
|
|
||||||
brush_spline_secondary_error: No hay suficientes posiciones definidas!
|
|
||||||
brush_spline_secondary: Creado spline
|
|
||||||
brush_size: Juego de pinceles
|
|
||||||
brush_range: Conjunto de pinceles
|
|
||||||
brush_mask_disabled: Máscara de pincel desactivada
|
|
||||||
brush_mask: Juego de máscaras de pincel
|
|
||||||
brush_source_mask_disabled: Cepillado de la máscara de origen desactivada
|
|
||||||
brush_source_mask: Conjunto de máscaras de fuentes de pincel
|
|
||||||
brush_transform_disabled: Transformación de pincel desactivada
|
|
||||||
brush_transform: Conjunto de transformación de pincel
|
|
||||||
brush_material: Brush material set
|
|
||||||
brush_catenary_direction: Punto añadido %s0, Haga clic en la dirección que desee a la spline
|
|
||||||
rollback:
|
|
||||||
rollback_element: Deshacer %s0
|
|
||||||
tool:
|
|
||||||
tool_inspect: Inspecciona la herramienta enlazada a %s0.
|
|
||||||
tool_inspect_info: '%s0 cambiado %s1 a %s2 %s3 hace'
|
|
||||||
tool_inspect_info_footer: 'Total: %s0 changes'
|
|
||||||
tool_none: Herramienta desvinculada de su elemento actual.
|
|
||||||
tool_info: Herramienta de información vinculada a %s0.
|
|
||||||
tool_tree: Herramienta de árbol vinculada a %s0.
|
|
||||||
tool_tree_error: El tipo de árbol/tree %s0 es desconocido.
|
|
||||||
tool_repl: Herramienta de sustitución de bloques vinculada a %s0.
|
|
||||||
tool_cycler: Herramienta de bloqueo de ciclos de datos vinculada a %s0.
|
|
||||||
tool_flood_fill: bloquea la herramienta de relleno asociada a %s0.
|
|
||||||
tool_range_error: 'Rango máximo: %s0.'
|
|
||||||
tool_radius_error: 'Radio de pincel máximo permitido: %s0.'
|
|
||||||
tool_deltree: Herramienta de eliminación de árbol flotante vinculada a %s0.
|
|
||||||
tool_farwand: Herramienta de varillalejana/wand tool limitada/bound a %s0.
|
|
||||||
tool_lrbuild_bound: Herramienta de construcción de largo alcance vinculada a %s0.
|
|
||||||
tool_lrbuild_info: Haga clic con el botón izquierdo en %s0; haga clic con el botón
|
|
||||||
secundario en %s1.
|
|
||||||
superpickaxe_enabled: Super Pico habilitado.
|
|
||||||
superpickaxe_disabled: Super Pico deshabilitado.
|
|
||||||
superpickaxe_area_enabled: Modo cambiado. Clic izquierdo con un pico. // to disable.
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: Snapshot '%s0' cargado; ahora restaurando...
|
|
||||||
snapshot_set: 'Snapshot establecida en: %s0'
|
|
||||||
snapshot_newest: Ahora utiliza la más nueva snapshot.
|
|
||||||
snapshot_list_header: 'Snapshots para el mundo (%s0):'
|
|
||||||
snapshot_list_footer: Utilice /snap use [snapshot] o /snap use latest.
|
|
||||||
biome:
|
|
||||||
biome_list_header: 'Biomas (page %s0/%s1):'
|
|
||||||
biome_changed: Se modificaron los biomas en %s0 columnas.
|
|
||||||
utility:
|
|
||||||
kill_success: Matado %s0 entidades en un radio de %s1.
|
|
||||||
nothing_confirmed: No tiene ninguna acción pendiente de confirmación.
|
|
||||||
page_footer: Utilizar %s0 para ir a la página siguiente
|
|
||||||
schematic:
|
|
||||||
schematic_format: 'Formatos disponibles (Nombre: Buscar nombres)'
|
|
||||||
schematic_loaded: '%s0 cargado. Pegarlo con //paste'
|
|
||||||
schematic_saved: '%s0 guardado.'
|
|
||||||
schematic_page: La página debe ser %s
|
|
||||||
schematic_none: No se han encontrado archivos.
|
|
||||||
schematic_list: 'Archivos disponibles (Filename: Format) [%s0/%s1]:'
|
|
||||||
schematic_list_elem: ' - %s0 - %s1'
|
|
||||||
schematic_prompt_clear: 'Es posible que desee utilizar %s0 para borrar su actual primera'
|
|
||||||
schematic_show: |-
|
|
||||||
Mostrando %s0 esquemas de %s1:
|
|
||||||
- Click izquierdo Una estructura para configurar tu portapapeles
|
|
||||||
- Botón derecho del ratón para agregar una estructura a tu multipartículas
|
|
||||||
- Utilizar %s2 para volver al mundo
|
|
||||||
schematic_move_exists: '%s0 ya existe'
|
|
||||||
schematic_move_success: '%s0 -> %s1'
|
|
||||||
schematic_move_failed: '%s0 no movido: %s1'
|
|
||||||
clipboard:
|
|
||||||
clipboard_cleared: Portapapeles despejado
|
|
||||||
clipboard_invalid_format: 'Formato del portapapeles desconocido: %s0'
|
|
||||||
clipboard_uri_not_found: Usted no tiene %s0 cargado
|
|
||||||
visitor:
|
|
||||||
visitor_block: '%s0 bloques afectados'
|
|
||||||
visitor_entity: '%s0 entidades afectadas'
|
|
||||||
visitor_flat: '%s0 columnas afectadas'
|
|
||||||
selector:
|
|
||||||
selector_fuzzy_pos1: Región establecida y ampliada de %s0 %s1.
|
|
||||||
selector_fuzzy_pos2: Añadido expansión de %s0 %s1.
|
|
||||||
selector_invalid_coordinates: Coordenadas no válidas %s0
|
|
||||||
selector_already_set: Posición ya establecida.
|
|
||||||
selector_set_default: El selector de región predeterminado es ahora %s0.
|
|
||||||
selector_pos: Posicion [%s0] establecida en %s1 (%s2).
|
|
||||||
selector_center: Centro establecido en %s0 (%s1).
|
|
||||||
selector_radius: Radio configurado para %s0 (%s1).
|
|
||||||
selector_expanded: Región ampliada a &(%s0 (%s1)
|
|
||||||
timezone:
|
|
||||||
timezone_set: 'Zona horaria establecida para esta sesión: %s0'
|
|
||||||
timezone_display: 'La hora actual en esa zona horaria es: %s0'
|
|
||||||
command:
|
|
||||||
command_invalid_syntax: El comando no se usó correctamente (no hay más ayuda disponible).
|
|
||||||
help:
|
|
||||||
command_clarifying_bracket: 'Ajustador de clarificación añadido para %s0'
|
|
||||||
help_suggest: 'Podría no encontrar %s0. Tal vez pruebe con %s1 ?'
|
|
||||||
help_header_categories: Tipos de comando
|
|
||||||
help_header_subcommands: Subcomandos
|
|
||||||
help_header_command: 'Ayuda para: %s0'
|
|
||||||
help_item_allowed: '%s0 - %s1'
|
|
||||||
help_item_denied: '%s0 - %s1'
|
|
||||||
help_header: 'Ayuda: Pagina %s0/%s1'
|
|
||||||
help_footer: 'Wiki: https://git.io/vSKE5'
|
|
||||||
progress:
|
|
||||||
progress_message: '%s1/%s0 (%s2%) @%s3cps %s4s izquierda'
|
|
||||||
progress_finished: '[ Hecho! ]'
|
|
||||||
cancel:
|
|
||||||
worldedit_cancel_count: 'Cancelado %s0 ediciones.'
|
|
||||||
worldedit_cancel_reason_confirm: 'Vuestra selección es grande (%s0 -> %s1). Usar
|
|
||||||
//confirm para ejecutar %s2'
|
|
||||||
worldedit_cancel_reason: 'La acción de WorldEdit se canceló: %s0.'
|
|
||||||
worldedit_cancel_reason_manual: Cancelación manual
|
|
||||||
worldedit_cancel_reason_low_memory: Memoria baja
|
|
||||||
worldedit_cancel_reason_max_changes: Demasiados bloques cambiados
|
|
||||||
worldedit_cancel_reason_max_checks: Demasiados controles de bloqueo
|
|
||||||
worldedit_cancel_reason_max_tiles: Demasiados bloqueos
|
|
||||||
worldedit_cancel_reason_max_entities: Demasiadas entidades
|
|
||||||
worldedit_cancel_reason_max_iterations: Maximas iteraciones
|
|
||||||
worldedit_cancel_reason_no_region: No hay región permitida (bypass con /wea, o deshabilitar
|
|
||||||
`region-restrictions` en el archivo config.yml)
|
|
||||||
worldedit_failed_load_chunk: 'Cambio de chunk ignorado: %s0;%s1. Trate de
|
|
||||||
aumentar chunk-wait.'
|
|
||||||
worldedit_cancel_reason_outside_level: Mundo exterior
|
|
||||||
worldedit_cancel_reason_outside_region: Fuera de la región permitida (Ulilize /wea,
|
|
||||||
o deshabilitar `region-restrictions` en config.yml)
|
|
||||||
navigation:
|
|
||||||
ascend_fail: No hay lugar libre por encima de lo que encontró.
|
|
||||||
ascended_plural: Ascendido %s0 nivel(es).
|
|
||||||
ascended_singular: Ascendió un nivel.
|
|
||||||
unstuck: Ahí tienes!
|
|
||||||
descend_fail: No hay lugar libre por debajo de lo encontrado.
|
|
||||||
descend_plural: Descendido %s0 nivel(es).
|
|
||||||
descend_singular: Descendió un nivel.
|
|
||||||
whoosh: Whoosh!
|
|
||||||
poof: Poof!
|
|
||||||
thru_fail: No hay lugar libre por delante de usted encontró.
|
|
||||||
no_block: No hay bloque a la vista! (o demasiado lejos)
|
|
||||||
up_fail: Usted golpearía algo por encima de usted.
|
|
||||||
selection:
|
|
||||||
sel_cuboid: 'Cuboid: clic izquierdo en el punto 1, clic derecho en el punto 2'
|
|
||||||
sel_cuboid_extend: 'Cuboid: haga clic izquierdo para un punto de inicio, haga clic
|
|
||||||
derecho para ampliar'
|
|
||||||
sel_2d_polygon: 'Selector de polígonos 2D: Clic izquierdo/derecho para añadir un
|
|
||||||
punto.'
|
|
||||||
sel_ellipsiod: 'Selector de elipses: clic izquierdo=centro, clic derecho para ampliar'
|
|
||||||
sel_sphere: 'Selector de esfera: clic izquierdo=centro, haga clic derecho para establecer
|
|
||||||
el radio'
|
|
||||||
sel_cylindrical: 'Selector de cilíndrico: Clic izquierdo=centro, clic derecho para
|
|
||||||
ampliar.'
|
|
||||||
sel_max: '%s0 puntos máximos.'
|
|
||||||
sel_fuzzy: 'Selector difuso: haga clic con el botón izquierdo para seleccionar todos
|
|
||||||
los bloques contingentes, haga clic con el botón derecho to add. Para seleccionar
|
|
||||||
una cavidad de aire, utilice //pos1.'
|
|
||||||
sel_convex_polyhedral: 'Selector poliédrico convexo: clic izquierdo=primer vértice,
|
|
||||||
derecha haga clic para agregar más.'
|
|
||||||
sel_list: 'Para obtener una lista de tipos de selección, utilice: //sel list'
|
|
||||||
sel_modes: 'Seleccione uno de los siguientes modos:'
|
|
||||||
tips:
|
|
||||||
tip_sel_list: 'Sugerencia: Consulte los diferentes modos de selección con //sel
|
|
||||||
list'
|
|
||||||
tip_select_connected: 'Consejo: Seleccione todos los bloques conectados con //sel
|
|
||||||
fuzzy'
|
|
||||||
tip_set_pos1: 'Sugerencia: utilice pos1 como patrón con //set pos1'
|
|
||||||
tip_farwand: 'Sugerencia: Seleccione puntos distantes con //farwand'
|
|
||||||
tip_lazycut: 'Sugerencia: Es más seguro usar //lazycut'
|
|
||||||
tip_fast: 'Sugerencia: Ajuste rápido y sin deshacer usando //fast'
|
|
||||||
tip_cancel: 'Sugerencia: Usted puede //cancel un editar en curso'
|
|
||||||
tip_mask: 'Sugerencia: Establecer una máscara de destino global con /gmask'
|
|
||||||
tip_mask_angle: 'Sugerencia: Reemplace las pendientes ascendentes de 3-20 bloques
|
|
||||||
utilizando //replace /[-20][-3] bedrock'
|
|
||||||
tip_set_linear: 'Sugerencia: Establecer bloques linealmente con //set [ID/wood,ID/bedrock]'
|
|
||||||
tip_surface_spread: 'Sugerencia: Separe una superficie plana con //set #surfacespread[5][0][5][#existing]'
|
|
||||||
tip_set_hand: 'Sugerencia: Utiliza tu mano actual con //set hand'
|
|
||||||
tip_replace_id: 'Sugerencia: Reemplazar sólo la ID del bloque: //replace woodenstair
|
|
||||||
#id[cobblestair]'
|
|
||||||
tip_replace_light: 'Sugerencia: Retire las fuentes de luz //replace #brightness[1][15]
|
|
||||||
0'
|
|
||||||
tip_tab_complete: 'Sugerencia: El comando replace admite la finalización de la pestaña'
|
|
||||||
tip_flip: 'Sugerencia: Espejo con //flip'
|
|
||||||
tip_deform: 'Sugerencia: Reformar con //deform'
|
|
||||||
tip_transform: 'Sugerencia: Establecer una transformación con //gtransform'
|
|
||||||
tip_copypaste: 'Sugerencia: Pegar en clic con //br copypaste'
|
|
||||||
tip_source_mask: 'Sugerencia: Establezca una máscara de origen con /gsmask <mask>'
|
|
||||||
tip_replace_marker: 'Sugerencia: Reemplace un bloque con su portapapeles completo
|
|
||||||
usando //replace wool #fullcopy'
|
|
||||||
tip_paste: 'Sugerencia: Colocar con //paste'
|
|
||||||
tip_lazycopy: 'Sugerencia: lazycopy es más rápido'
|
|
||||||
tip_download: 'Sugerencia: Pruebe y //download'
|
|
||||||
tip_rotate: 'Sugerencia: Orientar con //rotate'
|
|
||||||
tip_copy_pattern: 'Sugerencia: Para usar como un patrón try #copiar'
|
|
||||||
tip_regen_0: 'Sugerencia: Utilice un bioma con /regen [biome]'
|
|
||||||
tip_regen_1: 'Sugerencia: Utilice una semilla con /regen [biome] [seed]'
|
|
||||||
tip_biome_pattern: 'Sugerencia: El #biome[forest] pattern se puede usar en cualquier
|
|
||||||
comando'
|
|
||||||
tip_biome_mask: 'Sugerencia: Restrinja a un bioma con la máscara `$jungle`'
|
|
@ -1,377 +0,0 @@
|
|||||||
# Updated by NShoot
|
|
||||||
info:
|
|
||||||
prefix: '(FAWE)'
|
|
||||||
file_deleted: '%s0 a été supprimé.'
|
|
||||||
schematic_pasting: 'La schematic est en train d''être collée. Cette action ne
|
|
||||||
peut pas être annulée.'
|
|
||||||
lighting_propogate_selection: 'L''éclairage a été propagé dans %s0 chunks. (Info
|
|
||||||
: Pour supprimer l''éclairage, faites //removelight)'
|
|
||||||
updated_lighting_selection: 'L''éclairage a été mis à jour dans %s0 chunks. (Cela
|
|
||||||
devraît prendre quelques secondes pour que ce soit à jour)'
|
|
||||||
set_region: 'La sélection a été mise pour votre région actuellement autorisée'
|
|
||||||
worldedit_command_limit: 'Veuillez patienter le temps que vos actions en cours
|
|
||||||
soient terminées'
|
|
||||||
worldedit_delayed: 'Veuillez patienter pendant que votre action soit terminée.'
|
|
||||||
worldedit_run: 'Désolé du délai. Exécution en cours: %s'
|
|
||||||
worldedit_complete: 'Modification terminée.'
|
|
||||||
require_selection_in_mask: '%s de vos sélections ne sont pas dans votre masque.
|
|
||||||
Vous ne pouvez effectuer des modifications que dans vos régions autorisées.'
|
|
||||||
worldedit_volume: 'Vous ne pouvez pas sélectionner un volume de %current% blocs.
|
|
||||||
Le volume maximal que vous pouvez éditer est de %max% blocs.'
|
|
||||||
worldedit_iterations: 'Vous ne pouvez pas faire %current% itérations. Votre nombre
|
|
||||||
maximal d''itérations est de %max%.'
|
|
||||||
worldedit_unsafe: 'L''accès à cette commande est restreint.'
|
|
||||||
worldedit_dangerous_worldedit: 'Modification non sécurisée complétée à %s0 par
|
|
||||||
%s1'
|
|
||||||
worldedit_toggle_tips_on: 'Conseils désactivés.'
|
|
||||||
worldedit_toggle_tips_off: 'Conseils activés.'
|
|
||||||
worldedit_bypassed: 'Bypass de la restriction du plugin.'
|
|
||||||
worldedit_unmasked: 'Vos éditions ne sont désormais plus restreintes.'
|
|
||||||
worldedit_restricted: 'Vos éditions sont désormais restreintes.'
|
|
||||||
worldedit_oom_admin: |-
|
|
||||||
Options possibles:
|
|
||||||
- //fast
|
|
||||||
- Faites de petites modifications
|
|
||||||
- Allouez plus de mémoire
|
|
||||||
- Désactivez `max-memory-percent`
|
|
||||||
compressed: Historique compressé. Sauvegardé ~ %s0b (%s1x plus petit)
|
|
||||||
action_complete: Action complétée en %s0 secondes.
|
|
||||||
error:
|
|
||||||
worldedit_extend: 'Votre modification a peut-être été étendue en dehors de votre
|
|
||||||
région autorisée.'
|
|
||||||
web_unauthorized: 'Seuls les liens suivants sont autorisés : %s0'
|
|
||||||
command_syntax: 'Utilisation : %s0'
|
|
||||||
no_perm: 'Il vous manque la permission %s0'
|
|
||||||
setting_disable: 'Option manquante : %s0'
|
|
||||||
brush_not_found: 'Brosses disponibles : %s0'
|
|
||||||
brush_incompatible: 'Brosse non compatible avec cette version'
|
|
||||||
schematic_not_found: 'Schematic non trouvée : %s0'
|
|
||||||
no_region: 'Vous n''avez pas de région actuellement autorisée'
|
|
||||||
no_mask: 'Vous n''avez pas de masque actuel'
|
|
||||||
not_player: 'Vous devez être un joueur pour effectuer cette action !'
|
|
||||||
player_not_found: 'Joueur non trouvé : %s0'
|
|
||||||
oom: |-
|
|
||||||
[Attention] Mémoire faible détectée (< 1%). Nous allons :
|
|
||||||
- Terminer le placement des blocs
|
|
||||||
- Supprimer les historiques de blocs
|
|
||||||
- Décharger les chunks non essentiels
|
|
||||||
- Tuer les entités
|
|
||||||
- Vider la mémoire
|
|
||||||
Ignorez ceci si vous essayez de faire crash le serveur.
|
|
||||||
Info : La mémoire faible est causé par WE (mais pas nécessairement)
|
|
||||||
worldedit_some_fails: '%s0 blocs ne peuvent pas être posés car ils sont en dehors
|
|
||||||
de votre région autorisée.'
|
|
||||||
worldedit_some_fails_blockbag: 'Blocs manquants : %s0'
|
|
||||||
block_not_allowed: Vous n’avez pas la permission d’utiliser
|
|
||||||
web:
|
|
||||||
generating_link: Téléversement de %s, veuillez patienter...
|
|
||||||
generating_link_failed: 'Impossible de générer le lien.'
|
|
||||||
download_link: '%s'
|
|
||||||
worldedit:
|
|
||||||
general:
|
|
||||||
mask_disabled: Masque global désactivé
|
|
||||||
mask: Masque global défini
|
|
||||||
texture_disabled: Remise à zéro de la texture
|
|
||||||
texture_set: Texture mise à %s1
|
|
||||||
source_mask_disabled: Masque source global désactivé
|
|
||||||
source_mask: Masque source global défini
|
|
||||||
transform_disabled: Transformation globale désactivée
|
|
||||||
transform: Transformation globale définie
|
|
||||||
fast_enabled: Mode rapide activé. Les modifications et les historiques vont être
|
|
||||||
bypass.
|
|
||||||
fast_disabled: Mode rapide désactivé.
|
|
||||||
place_enabled: 'Pose de blocs en #1.'
|
|
||||||
place_disabled: Pose de blocs à l'endroit où vous vous situez.
|
|
||||||
copy:
|
|
||||||
command_copy: '%s0 blocs copiés.'
|
|
||||||
cut:
|
|
||||||
command_cut_slow: '%s0 blocs supprimés.'
|
|
||||||
command_cut_lazy: '%s0 blocs vont être supprimés lors du collage.'
|
|
||||||
paste:
|
|
||||||
command_paste: Blocs dans le presse-papier collés à %s0
|
|
||||||
rotate:
|
|
||||||
command_rotate: Le presse-papier a subit une rotation
|
|
||||||
flip:
|
|
||||||
command_flipped: Le presse-papier a été retourné
|
|
||||||
regen:
|
|
||||||
command_regen_0: Région regénérée.
|
|
||||||
command_regen_1: Région regénérée.
|
|
||||||
command_regen_2: Région regénérée.
|
|
||||||
tree:
|
|
||||||
command_tree: '%s0 arbres créés.'
|
|
||||||
command_pumpkin: '%s0 patchs de citrouilles créés.'
|
|
||||||
flora:
|
|
||||||
command_flora: '%s0 végétations créés.'
|
|
||||||
history:
|
|
||||||
command_history_clear: Historique supprimé
|
|
||||||
command_redo_error: Rien à refaire. (Tapez `/inspect` et `/frb`)
|
|
||||||
command_history_other_error: Impossible de trouver une session pour %s0.
|
|
||||||
command_redo_success: Opération refaite.
|
|
||||||
command_undo_error: Rien à défaire. (Tapez `/inspect` et `/frb`)
|
|
||||||
command_undo_success: Annulation réussie.
|
|
||||||
command_undo_disabled: 'Undo désactivé, utilisez: //fast'
|
|
||||||
operation:
|
|
||||||
operation: Opération en attente (%s0)
|
|
||||||
selection:
|
|
||||||
selection_wand: 'Clic gauche: sélection position #1; Clic droit: sélection position
|
|
||||||
#2'
|
|
||||||
selection_wand_disable: Baguette d'édition désactivée.
|
|
||||||
selection_wand_enable: Baguette d'édition activée.
|
|
||||||
selection_chunk: Chunk sélectionné (%s0)
|
|
||||||
selection_chunks: Chunks sélectionnés (%s0) - (%s1)
|
|
||||||
selection_contract: blocs (%s0) contractés dans la région.
|
|
||||||
selection_count: blocs (%s0) dans le compte.
|
|
||||||
selection_distr: '# blocs au total : %s0'
|
|
||||||
selection_expand: Sélection étendue de %s0 blocs
|
|
||||||
selection_expand_vert: Sélection étendue de %s0 blocs (de bas en haut)
|
|
||||||
selection_inset: Région en médaillon
|
|
||||||
selection_outset: Début de la région
|
|
||||||
selection_shift: Région déplacée
|
|
||||||
selection_cleared: Sélection effacée
|
|
||||||
navigation:
|
|
||||||
navigation_wand_error: 'Il n''y a rien à traverser.'
|
|
||||||
anvil:
|
|
||||||
world_is_loaded: Le monde ne devrait pas être utilisé lors de l'exécution. Décharger
|
|
||||||
le monde, ou utilisez -f pour passer outre (sauvegarder d'abord)
|
|
||||||
brush:
|
|
||||||
brush_reset: Réinitialisez votre brosse. (SHIFT + Clic)
|
|
||||||
brush_none: Tu ne tiens pas une brosse !
|
|
||||||
brush_scroll_action_set: Régler l'action de défilement sur %s0
|
|
||||||
brush_scroll_action_unset: Suppression de l'action de défilement
|
|
||||||
brush_visual_mode_set: Mode visuel mis sur %s0
|
|
||||||
brush_target_mode_set: Mode cible mis sur %s0
|
|
||||||
brush_target_mask_set: Masque cible mis sur %s0
|
|
||||||
brush_target_offset_set: Définir le décalage de la cible à%s0
|
|
||||||
brush_equipped: Brosse équipée de %s0
|
|
||||||
brush_try_other: |-
|
|
||||||
Il existe d'autres brosses plus appropriées, par ex.
|
|
||||||
- //br height [radius=5] [#clipboard|file=null] [rotation=0] [yscale=1.00]
|
|
||||||
brush_copy: Clic gauche sur la base d'un objet à copier, clic droit pour coller.
|
|
||||||
Augmentez le rayon de la brosse si nécessaire.
|
|
||||||
brush_height_invalid: Hauteur de la carte invalide (%s0)
|
|
||||||
brush_smooth: 'Note : Utilisez la brosse de mélange si vous voulez lisser les
|
|
||||||
porte-à-faux ou les grottes.'
|
|
||||||
brush_spline: Cliquez pour ajouter un point, cliquez sur le même point pour terminer.
|
|
||||||
brush_line_primary: Ajout du point %s0, cliquez sur une autre position pour créer
|
|
||||||
la ligne.
|
|
||||||
brush_catenary_direction: Ajout du point %s0, cliquez à la direction que vous
|
|
||||||
souhaitez pour créer la languette.
|
|
||||||
brush_line_secondary: Languette créée
|
|
||||||
brush_spline_primary_2: Position ajoutée, cliquez sur le même point pour les rejoindre
|
|
||||||
!
|
|
||||||
brush_spline_secondary_error: Pas assez de positions insérées !
|
|
||||||
brush_spline_secondary: Languette créée
|
|
||||||
brush_size: Taille de brosse définie
|
|
||||||
brush_range: Taille de brosse dfinie
|
|
||||||
brush_mask_disabled: Masque de la brosse désactivé
|
|
||||||
brush_mask: Masque de la brosse défini
|
|
||||||
brush_source_mask_disabled: Masque source de la brosse désactivé
|
|
||||||
brush_source_mask: Masque de la brosse source défini
|
|
||||||
brush_transform_disabled: Transformation de brosse désactivée
|
|
||||||
brush_transform: Transformation de brosse défini
|
|
||||||
brush_material: Type de bloc de la brosse défini
|
|
||||||
rollback:
|
|
||||||
rollback_element: Rollback de %s0
|
|
||||||
tool:
|
|
||||||
tool_inspect: Outil d'inspection lié à %s0.
|
|
||||||
tool_inspect_info: '%s0 a changé %s1 à %s2 il y a %s3'
|
|
||||||
tool_inspect_info_footer: 'Total : %s0 modifications'
|
|
||||||
tool_none: L'outil plus reliée à l'élément courant.
|
|
||||||
tool_info: Outil d'information lié à %s0.
|
|
||||||
tool_tree: Outil d'arbres lié à %s0.
|
|
||||||
tool_tree_error: Type de l'arbre %s0 inconnu.
|
|
||||||
tool_repl: Outil de remplacement des blocs lié à %s0.
|
|
||||||
tool_cycler: Outil de type de cycleur de bloc lié à %s0.
|
|
||||||
tool_flood_fill: Outil de remplissage des blocs lié à %s0.
|
|
||||||
tool_range_error: 'Portée maximale : %s0.'
|
|
||||||
tool_radius_error: 'Rayon de brosse maximum autorisé : %s0.'
|
|
||||||
tool_deltree: Outil flottant d'abattage d'arbres lié à %s0.
|
|
||||||
tool_farwand: Outil de baguette lointain lié à%s0.
|
|
||||||
tool_lrbuild_bound: Outil de construction à longue portée lié à %s0.
|
|
||||||
tool_lrbuild_info: Clic gauche défini sur %s0; Clic droit défini sur %s1.
|
|
||||||
superpickaxe_enabled: Super pioche activée.
|
|
||||||
superpickaxe_disabled: Super pioche désactivée.
|
|
||||||
superpickaxe_area_enabled: Mode modifié. Clique gauche avec la pioche. // pour
|
|
||||||
désactiver.
|
|
||||||
tool_tree_error_block: Un arbre ne peux pas pousser ici
|
|
||||||
tool_deltree_error: Ce n’est pas un arbre
|
|
||||||
tool_deltree_floating_error: Ce n’est pas un arbre flottant
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: Instantané '%s0' chargé; restauration en cours...
|
|
||||||
snapshot_set: 'Instantané mis sur : %s0'
|
|
||||||
snapshot_newest: Utilisation du dernier instantané désormais.
|
|
||||||
snapshot_list_header: 'Instantanés du monde (%s0):'
|
|
||||||
snapshot_list_footer: Utilisez /snap use [instantané] our /snap use latest.
|
|
||||||
snapshot_not_configured: La restauration de snapshot/backup n’a pas été configurée.
|
|
||||||
snapshot_not_available: Aucune snapshot n’est disponible. Regardez la console pour plus de détails.
|
|
||||||
snapshot_not_found_world: Aucune snapshot n’ont été trouvée pour ce monde.
|
|
||||||
snapshot_not_found: Aucune snapshot n’a été trouvée.
|
|
||||||
snapshot_invalid_index: Index invalide, il doit être égal ou supérieur à 1.
|
|
||||||
snapshot_error_date: La date entrée n’a pas pû être détectée.
|
|
||||||
snapshot_error_restore: Les erreurs ont empêché la restauration des blocs.
|
|
||||||
snapshot_error_restore_chunks: Aucun chunks n’a pû être chargé. (Mauvaise archive?)
|
|
||||||
biome:
|
|
||||||
biome_list_header: 'Biomes (page %s0/%s1):'
|
|
||||||
biome_changed: Les biomes ont été modifiés dans %s0 colonnes.
|
|
||||||
utility:
|
|
||||||
kill_success: entitées (%s0) tuées dans une portée de %s1 blocs.
|
|
||||||
nothing_confirmed: Vous n'avez aucune action en attente de confirmation.
|
|
||||||
page_footer: Utilisez %s0 pour aller à la page suivante.
|
|
||||||
schematic:
|
|
||||||
schematic_prompt_clear: 'Vous voudriez peut-être utiliser %s0 pour effacer
|
|
||||||
votre actuel presse-papier'
|
|
||||||
schematic_show: |-
|
|
||||||
Affichage de %s0 schématiques depuis %s1:
|
|
||||||
- Clic gauche > une structure à mettre dans le presse-papier
|
|
||||||
- Clic droit > pour mettre une structure dans le presse-papier multiple
|
|
||||||
- Utilisez %s2 pour revenir au monde
|
|
||||||
schematic_format: 'Formats disponibles (nom: Noms de recherche)'
|
|
||||||
schematic_move_exists: '%s0 existe déjà'
|
|
||||||
schematic_move_success: '%s0 -> %s1'
|
|
||||||
schematic_move_failed: '%s0 non déplacé : %s1'
|
|
||||||
schematic_loaded: '%s0 chargé. Collez-le avec //paste'
|
|
||||||
schematic_saved: '%s0 sauvegardé.'
|
|
||||||
schematic_page: La page doit-être %s
|
|
||||||
schematic_none: Aucun fichier trouvé.
|
|
||||||
schematic_list: 'Fichiers disponibles (nom du fichier: Format) [%s0/%s1]:'
|
|
||||||
schematic_list_elem: ' - %s0 - %s1'
|
|
||||||
clipboard:
|
|
||||||
clipboard_uri_not_found: Vous n'avez pas %s0 chargé.
|
|
||||||
clipboard_cleared: Presse-papier effacé
|
|
||||||
clipboard_invalid_format: 'Format de presse-papier inconnu : %s0'
|
|
||||||
visitor:
|
|
||||||
visitor_block: '%s0 blocs affectés'
|
|
||||||
visitor_entity: '%s0 entitées affectés'
|
|
||||||
visitor_flat: '%s0 colonnes affectées'
|
|
||||||
selector:
|
|
||||||
selector_fuzzy_pos1: Région définie et étendue depuis %s0 %s1.
|
|
||||||
selector_fuzzy_pos2: Ajout de l'étendue de %s0 %s1.
|
|
||||||
selector_pos: position %s0 définie sur %s1 (%s2).
|
|
||||||
selector_center: Milieu définie sur %s0 (%s1).
|
|
||||||
selector_radius: Rayon défini sur %s0 (%s1).
|
|
||||||
selector_expanded: Région étendue sur %s0 (%s1)
|
|
||||||
selector_invalid_coordinates: Cordonnées invalides !
|
|
||||||
selector_already_set: Position déjà définie.
|
|
||||||
selector_set_default: Votre sélecteur de région par défaut est désormais %s0.
|
|
||||||
timezone:
|
|
||||||
timezone_set: Fuseau horaire fixé pour cette session sur %s0
|
|
||||||
timezone_display: 'Le temps actuel pour ce fuseau horaire est : %s0'
|
|
||||||
command:
|
|
||||||
command_invalid_syntax: La commande n'a pas été utilisée correctement. (aucune
|
|
||||||
aide disponible).
|
|
||||||
help:
|
|
||||||
command_clarifying_bracket: 'Ajout d''un crochet de clarification pour %s0'
|
|
||||||
help_suggest: 'Impossible de trouver %s0. Essayez une des %s1 ?'
|
|
||||||
help_header_categories: Types de commandes
|
|
||||||
help_header_subcommands: Sous commandes
|
|
||||||
help_header_command: 'Aide pour : %s0'
|
|
||||||
help_item_allowed: '%s0 - %s1'
|
|
||||||
help_item_denied: '%s0 - %s1'
|
|
||||||
help_header: 'Aide : page %s0/%s1'
|
|
||||||
help_footer: 'Wiki anglais : https://git.io/vSKE5'
|
|
||||||
cycler:
|
|
||||||
block_cycler_cannot_cycle: Le data de ce bloc ne peut pas être cyclé!
|
|
||||||
block_cycler_limit: Limite du nombre maximal de blocs changeable atteinte.
|
|
||||||
block_cycler_no_perm: 'Vous n’êtes pas autorisé à cycler la valeur du data de ce bloc.'
|
|
||||||
scripting:
|
|
||||||
scripting_no_perm: 'Vous n’avez pas la permission d’exécuter ce script de fabrication'
|
|
||||||
scripting_cs: Utilisez /cs avec un nom de script avant.
|
|
||||||
scripting_error: Une erreur s’est produite lors de l’exécution d’un script de fabrication.
|
|
||||||
progress:
|
|
||||||
progress_message: '%s1/%s0 (%s2%) @%s3bps %s4s restants'
|
|
||||||
progress_finished: '[ Terminé ! ]'
|
|
||||||
cancel:
|
|
||||||
worldedit_cancel_count: 'Modifications %s0 annulées.'
|
|
||||||
worldedit_cancel_reason_confirm: 'Votre sélection est large (%s0 -> %s1,
|
|
||||||
contenant %s3 blocs). Faites //confirm pour exécuter %s2'
|
|
||||||
worldedit_cancel_reason: 'Votre action a été annulée : %s0.'
|
|
||||||
worldedit_cancel_reason_manual: Annulation humaine
|
|
||||||
worldedit_cancel_reason_low_memory: Mémoire trop faible
|
|
||||||
worldedit_cancel_reason_max_changes: Trop de blocs modifiés
|
|
||||||
worldedit_cancel_reason_max_checks: Trop de vérifications
|
|
||||||
worldedit_cancel_reason_max_tiles: Trop de types de blocs
|
|
||||||
worldedit_cancel_reason_max_entities: Entités trop élevées
|
|
||||||
worldedit_cancel_reason_max_iterations: Itérations trop élevées
|
|
||||||
worldedit_cancel_reason_outside_level: En dehors du monde
|
|
||||||
worldedit_cancel_reason_outside_region: En dehors de la région autorisée (bypass
|
|
||||||
avec /wea, ou désactivez `region-restrictions` dans la configuration)
|
|
||||||
worldedit_cancel_reason_no_region: Région non autorisée (bypass avec /wea, ou désactivez
|
|
||||||
`region-restrictions` dans la configuration)
|
|
||||||
worldedit_failed_load_chunk: 'Chargement du chunk ignoré : %s0;%s1. Essayez
|
|
||||||
d''augmenter chunk-wait.'
|
|
||||||
navigation:
|
|
||||||
ascend_fail: Aucune place libre au-dessus de vous n'a été trouvée
|
|
||||||
ascended_plural: Montée de %s0 couche.
|
|
||||||
ascended_singular: Montée de 1 couche.
|
|
||||||
unstuck: Et voilà !
|
|
||||||
descend_fail: Aucune place libre en dessous de vous n'a été trouvée.
|
|
||||||
descend_plural: Descendu de %s0 couches.
|
|
||||||
descend_singular: Descendu de 1 couche.
|
|
||||||
whoosh: Waouh !
|
|
||||||
poof: Pouf !
|
|
||||||
thru_fail: Aucune place libre devant vous n'a été trouvée.
|
|
||||||
no_block: Pas de bloc en vue ! (ou trop loin)
|
|
||||||
up_fail: ' Tu frapperais quelque chose au-dessus de toi.'
|
|
||||||
selection:
|
|
||||||
sel_cuboid: 'Cuboïde : clic gauche pour point 1, clic droit pour point 2'
|
|
||||||
sel_cuboid_extend: 'Cuboïde : clic gauche pour le point de départ, clic droit pour
|
|
||||||
étendre'
|
|
||||||
sel_2d_polygon: 'Sélecteur de polygone 2D : Clic gauche/droit pour ajouter un point.'
|
|
||||||
sel_ellipsiod: 'Sélecteur ellipsoïde : clic gauche=centre, clic droit pour agrandir.'
|
|
||||||
sel_sphere: 'Sélecteur de sphère : clic gauche=centre, clic droit pour définir le
|
|
||||||
rayon.'
|
|
||||||
sel_cylindrical: 'Sélecteur cylindrique : Clic gauche=centre, clic droit pour étendre.'
|
|
||||||
sel_max: '%s0 points maximum.'
|
|
||||||
sel_fuzzy: 'Sélecteur flou : Clic gauche pour sélectionner tous les blocs contingents,
|
|
||||||
clic droit. à ajouter. Pour sélectionner une cavité d''air, utilisez //pos1.'
|
|
||||||
sel_convex_polyhedral: 'Sélecteur polyédrique convexe : Clic gauche=Premier sommet,
|
|
||||||
droite, droite cliquez pour en ajouter d''autres.'
|
|
||||||
sel_list: Pour une liste de types de sélection, faites //sel list
|
|
||||||
sel_modes: 'Sélectionnez un des modes en dessous :'
|
|
||||||
tips:
|
|
||||||
tip_sel_list: 'Astuce : Voir les différents modes de sélection avec //sel list'
|
|
||||||
tip_select_connected: Astuce, Sélectionner tous les blocs connectés avec //sel fuzzy'
|
|
||||||
tip_set_pos1: Astuce, Utilisez pos1 comme motif avec //set pos1
|
|
||||||
tip_farwand: Astuce, Sélectionnez les points distants avec //farwand.'
|
|
||||||
tip_discord: 'Besoin d''aide ? Aide en anglais disponible : https://discord.gg/KxkjDVg'
|
|
||||||
tip_lazycut: 'Conseil, Il est plus sûr d''utiliser //lazycut'
|
|
||||||
tip_fast: 'Astuce, Définir rapidement et sans défaire en utilisant //fas'
|
|
||||||
tip_cancel: 'Astuce, Vous pouvez //cancel et éditer en cours de traitement.'
|
|
||||||
tip_mask: 'Astuce, Définir un masque de destination globale avec /gmask'
|
|
||||||
tip_mask_angle: 'Astuce, Remplacer les pentes ascendantes de 3-20 blocs en faisant
|
|
||||||
//replace /[-20][-3] bedrock'
|
|
||||||
tip_set_linear: 'Conseil, Définissez les blocs de manière linéaire avec //set
|
|
||||||
#l3d[wood,bedrock]'
|
|
||||||
tip_surface_spread: 'Conseil, Étendez une surface plane à l''aide de //set #surfacespread[5][0][5][#existing]'
|
|
||||||
tip_set_hand: 'Astuce, Utilisez votre main actuelle avec //set hand'
|
|
||||||
tip_replace_regex: 'Tip, Remplacer à l''aide de regex : //replace .*_log <pattern>'
|
|
||||||
tip_replace_regex_2: 'Tip, Remplacer à l''aide de regex : //replace .*stairs[facing=(north|south)]
|
|
||||||
<pattern>'
|
|
||||||
tip_replace_regex_3: 'Tip, Remplacer à l''aide des opérateurs : //replace water[level>2]
|
|
||||||
sand'
|
|
||||||
tip_replace_regex_4: 'Tip, Remplacer à l''aide des opérateurs : //replace true
|
|
||||||
*[waterlogged=false]'
|
|
||||||
tip_replace_regex_5: 'Tip, Remplacer à l''aide des opérateurs : //replace true
|
|
||||||
*[level-=1]'
|
|
||||||
tip_replace_id: 'Tip, Remplacez seulement l''ID du bloc : //replace woodenstair
|
|
||||||
#id[cobblestair]'
|
|
||||||
tip_replace_light: 'Tip, Remplacez seulement les sources de lumière : //replace
|
|
||||||
#brightness[1][15] 0'
|
|
||||||
tip_tab_complete: Tip, La commande de remplacement prend en charge la complétion
|
|
||||||
du tab.
|
|
||||||
tip_flip: Tip, Flip avec //flip
|
|
||||||
tip_deform: Tip, Remodeler avec //deform
|
|
||||||
tip_transform: Tip, Sélectionnez une transformation avec //gtransform
|
|
||||||
tip_copypaste: Tip, Collez en cliquant avec //br copypaste
|
|
||||||
tip_source_mask: Tip, Sélectionnez un masque source avec /gsmask <mask>
|
|
||||||
tip_replace_marker: 'Tip, Remplacez un bloc avec votre presse-papier entier avec
|
|
||||||
//replace wool #fullcopy'
|
|
||||||
tip_paste: Tip, Collez avec //paste
|
|
||||||
tip_lazycopy: Tip, LazyCopy est plus rapide
|
|
||||||
tip_download: Tip, Essayez //download
|
|
||||||
tip_rotate: Tip, Orientez vos sélections avec //rotate
|
|
||||||
tip_copy_pattern: 'Tip, Utilisez un type de pattern avec #copy'
|
|
||||||
tip_regen_0: Tip, Utilisez un biome avec /regen [biome]
|
|
||||||
tip_regen_1: Tip, Utilisez un seed avec /regen [biome] [seed]
|
|
||||||
tip_biome_pattern: Tip, Le pattern '#biome[forest] peut être utilisé dans une quelconque commande'
|
|
||||||
tip_biome_mask: Tip, Mettez une restriction de biome en utilisant le masque `$jungle`
|
|
@ -1,298 +0,0 @@
|
|||||||
info:
|
|
||||||
prefix: '(FAWE)'
|
|
||||||
file_deleted: '%s0 è stato eliminato.'
|
|
||||||
schematic_pasting: 'La schematica si sta incollando. Questo non può essere annullato.'
|
|
||||||
lighting_propogate_selection: 'L''illuminazione è stata propagata in %s0 chunk. (Nota: Per rimuovere la luce usa //removelight)'
|
|
||||||
updated_lighting_selection: 'L''illuminazione è stata aggiornata in %s0 chunk. (Può richiedere un secondo per i pacchetti da inviare)'
|
|
||||||
set_region: 'Selezione impostata alla tua regione attuale consentita'
|
|
||||||
worldedit_command_limit: 'Attendi fino al completamento della tua azione corrente'
|
|
||||||
worldedit_delayed: 'Attendi durante l''elaborazione della tua azione di FAWE...'
|
|
||||||
worldedit_run: 'Scuse per il ritardo. Ora in esecuzione: %s'
|
|
||||||
worldedit_complete: 'Modifica completata.'
|
|
||||||
require_selection_in_mask: '%s della tua selezione non è nella tua maschera. Puoi solo fare modifiche all''interno delle regioni consentite.'
|
|
||||||
worldedit_volume: 'Non puoi selezionare un volume di %current%. Il volume massimo che puoi modificare è %max%.'
|
|
||||||
worldedit_iterations: 'Non puoi iterare %current% volte. Il numero massimo di interazioni consentite è %max%.'
|
|
||||||
worldedit_unsafe: 'L''accesso a quel comando è stato bloccato'
|
|
||||||
worldedit_dangerous_worldedit: 'Modifica non sicura elaborata a %s0 da %s1'
|
|
||||||
worldedit_bypass: 'Per bypassare le tue restrizioni usa /wea'
|
|
||||||
worldedit_toggle_tips_on: 'Suggerimenti di FAWE disabilitati.'
|
|
||||||
worldedit_toggle_tips_off: 'Suggerimenti di FAWE abilitati.'
|
|
||||||
worldedit_bypassed: 'Attualmente bypassando la restrizione di FAWE.'
|
|
||||||
worldedit_unmasked: 'Le tue modifiche di FAWE non sono più soggette a restrizioni.'
|
|
||||||
worldedit_restricted: 'Le tue modifiche di FAWE sono ora soggette a restrizioni.'
|
|
||||||
worldedit_oom_admin: |-
|
|
||||||
Opzioni possibili:
|
|
||||||
- //fast
|
|
||||||
- Fai modifiche più piccole
|
|
||||||
- Alloca più memoria
|
|
||||||
- Disabilita `max-memory-percent`
|
|
||||||
compressed: Cronologia compressa. Risparmiati ~ %s0b (%s1x più piccola)
|
|
||||||
action_complete: Azione completata in %s0 secondi
|
|
||||||
error:
|
|
||||||
worldedit_extend: 'La tua modifica potrebbe essere stata estesa al di fuori della tua area consentita.'
|
|
||||||
web_unauthorized: 'Sono consentiti solo i link dall''host web configurato: %s0'
|
|
||||||
command_syntax: 'Uso: %s0'
|
|
||||||
no_perm: 'Ti manca il permesso: %s0'
|
|
||||||
setting_disable: 'Impostazione mancante: %s0'
|
|
||||||
brush_not_found: 'Pennelli disponibili: %s0'
|
|
||||||
brush_incompatible: 'Pennello non compatibile con questa versione'
|
|
||||||
schematic_not_found: 'Schematica non trovata: %s0'
|
|
||||||
no_region: 'Attualmente non hai una regione consentita'
|
|
||||||
no_mask: 'Attualmente non hai una maschera impostata'
|
|
||||||
not_player: 'Devi essere un giocatore per eseguire questa azione!'
|
|
||||||
player_not_found: 'Giocatore non trovato: %s0'
|
|
||||||
oom: |-
|
|
||||||
[Critico] Rilevata poca memoria cioè < 1%. Prenderemo le seguenti azioni:
|
|
||||||
- Terminare il posizionamento di WE dei blocchi
|
|
||||||
- Cancellare la cronologia di WE
|
|
||||||
- Scaricare i chunk non essenziali
|
|
||||||
- Uccidere le entità
|
|
||||||
- Eseguire un garbage collector
|
|
||||||
Ignora questo se stai cercando di far crashare il server.
|
|
||||||
Nota: La carenza di memoria è probabilmente (ma non necessariamente) causata da WE
|
|
||||||
worldedit_some_fails: '%s0 blocchi non sono stati piazzati perché erano fuori dalla tua regione consentita.'
|
|
||||||
worldedit_some_fails_blockbag: 'Blocchi mancanti: %s0'
|
|
||||||
web:
|
|
||||||
generating_link: Caricando %s, si prega di attendere...
|
|
||||||
generating_link_failed: 'Fallita la generazione del link di download!'
|
|
||||||
download_link: '%s'
|
|
||||||
worldedit:
|
|
||||||
general:
|
|
||||||
mask_disabled: Maschera globale disabilitata
|
|
||||||
mask: Maschera globale impostata
|
|
||||||
source_mask_disabled: Maschera sorgente globale disabilitata
|
|
||||||
source_mask: Maschera sorgente globale impostata
|
|
||||||
transform_disabled: Trasformazione globale disabilitata
|
|
||||||
transform: Trasformazione globale impostata
|
|
||||||
fast_enabled: Modalità veloce abilitata. La cronologia e le restrizioni di modifica saranno ignorate.
|
|
||||||
fast_disabled: Modalità veloce disabilitata
|
|
||||||
place_enabled: 'Ora piazzando a pos #1.'
|
|
||||||
place_disabled: Ora piazzando al blocco in cui ti trovi.
|
|
||||||
copy:
|
|
||||||
command_copy: '%s0 blocchi sono stati copiati.'
|
|
||||||
cut:
|
|
||||||
command_cut_slow: '%s0 blocchi sono stati tagliati.'
|
|
||||||
command_cut_lazy: '%s0 blocchi saranno rimossi al momento dell''incollaggio'
|
|
||||||
paste:
|
|
||||||
command_paste: Gli appunti sono stati incollati a %s0
|
|
||||||
rotate:
|
|
||||||
command_rotate: Gli appunti sono stati ruotati
|
|
||||||
flip:
|
|
||||||
command_flipped: Gli appunti sono stati capovolti
|
|
||||||
regen:
|
|
||||||
command_regen_0: Regione rigenerata.
|
|
||||||
command_regen_1: Regione rigenerata.
|
|
||||||
command_regen_2: Regione rigenerata.
|
|
||||||
tree:
|
|
||||||
command_tree: '%s0 alberi creati.'
|
|
||||||
command_pumpkin: '%s0 gruppi di zucche create.'
|
|
||||||
flora:
|
|
||||||
command_flora: '%s0 flora creata.'
|
|
||||||
history:
|
|
||||||
command_history_clear: Cronologia cancellata
|
|
||||||
command_redo_error: Niente da rifare. (Vedi anche `/inspect` e `/frb`)
|
|
||||||
command_history_other_error: Impossibile trovare la sessione per %s0.
|
|
||||||
command_redo_success: Rifatto con successo.
|
|
||||||
command_undo_error: Niente da annullare. (Vedi anche `/inspect` e `/frb`)
|
|
||||||
command_undo_success: Annullato con successo.
|
|
||||||
operation:
|
|
||||||
operation: Operazione messa in coda (%s0)
|
|
||||||
selection:
|
|
||||||
selection_wand: 'Click sinistro: seleziona pos #1; Click destro: seleziona pos #2'
|
|
||||||
selection_wand_disable: Bacchetta modifica disabilitata.
|
|
||||||
selection_wand_enable: Bacchetta modifica abilitata.
|
|
||||||
selection_chunk: Chunk selezionato (%s0)
|
|
||||||
selection_chunks: Chunk selezionati (%s0) - (%s1)
|
|
||||||
selection_contract: Regione contratta di %s0 blocchi.
|
|
||||||
selection_count: Contati %s0 blocchi.
|
|
||||||
selection_distr: '# blocchi totali: %s0'
|
|
||||||
selection_expand: Regione espansa di %s0 blocchi
|
|
||||||
selection_expand_vert: Regione espansa di %s0 blocchi (dall'alto al basso)
|
|
||||||
selection_inset: Regione contratta in tutte le direzioni
|
|
||||||
selection_outset: Regione espansa in tutte le direzioni
|
|
||||||
selection_shift: Regione spostata
|
|
||||||
selection_cleared: Selezione cancellata
|
|
||||||
navigation:
|
|
||||||
navigation_wand_error: 'Niente da attraversare'
|
|
||||||
anvil:
|
|
||||||
world_is_loaded: Il mondo non dovrebbe essere in uso durante l''esecuzione. Scarica il mondo, o usa -f per sovrascriverlo (salvalo prima)
|
|
||||||
brush:
|
|
||||||
brush_reset: Ripristina il tuo pennello.
|
|
||||||
brush_none: Non stai tenendo un pennello!
|
|
||||||
brush_scroll_action_set: Azione di scorrimento impostata a %s0
|
|
||||||
brush_scroll_action_unset: Azione di scorrimento rimossa
|
|
||||||
brush_visual_mode_set: Modalità visuale impostata a %s0
|
|
||||||
brush_target_mode_set: Modalità obbiettivo impostata a %s0
|
|
||||||
brush_target_mask_set: Impostata la maschera di destinazione a %s0
|
|
||||||
brush_target_offset_set: Impostato l'offset di destinazione a %s0
|
|
||||||
brush_equipped: Equipaggiato il pennello %s0
|
|
||||||
brush_try_other: |-
|
|
||||||
Ci sono altri pennelli più adatti es.
|
|
||||||
- //br height [radius=5] [#clipboard|file=null] [rotation=0] [yscale=1.00]
|
|
||||||
brush_copy: Click sinistro sulla base di un oggetto da copiare, click destro per incollare. Aumenta il raggio del pennello se necessario.
|
|
||||||
brush_height_invalid: File della height map non valido (%s0)
|
|
||||||
brush_smooth: 'Nota: Usa il pennello sfumato per levigare sporgenze o grotte.'
|
|
||||||
brush_spline: Clicca per aggiungere un punto, clicca nello stesso punto per finire
|
|
||||||
brush_line_primary: Aggiunto il punto %s0, clicca su un'altra posizione per creare la linea
|
|
||||||
brush_line_secondary: Creata una scanalatura
|
|
||||||
brush_spline_primary_2: Posizione aggiunta, Clicca sullo stesso punto per unirla!
|
|
||||||
brush_spline_secondary_error: Non sono state impostate abbastanza posizioni!
|
|
||||||
brush_spline_secondary: Creata una scanalatura
|
|
||||||
brush_size: Dimensione pennello impostata
|
|
||||||
brush_range: Dimensione pennello impostata
|
|
||||||
brush_mask_disabled: Maschera pennello disabilitata
|
|
||||||
brush_mask: Maschera pennello impostata
|
|
||||||
brush_source_mask_disabled: Maschera sorgente del pennello disabilitata
|
|
||||||
brush_source_mask: Maschera sorgente del pennello impostata
|
|
||||||
brush_transform_disabled: Trasformazione pennello disabilitata
|
|
||||||
brush_transform: Trasformazione pennello impostata
|
|
||||||
brush_material: Materiale pennello impostato
|
|
||||||
rollback:
|
|
||||||
rollback_element: Annullando %s0
|
|
||||||
tool:
|
|
||||||
tool_inspect: Strumento di ispezione associato a %s0.
|
|
||||||
tool_inspect_info: '%s0 ha modificato %s1 a %s2 %s3 fa'
|
|
||||||
tool_inspect_info_footer: 'Totale: %s0 modifiche'
|
|
||||||
tool_none: Strumento disassociato dal tuo oggetto corrente.
|
|
||||||
tool_info: Strumento di informazioni associato a %s0.
|
|
||||||
tool_tree: Strumento di generazione di alberi associato a %s0.
|
|
||||||
tool_tree_error: Il tipo di albero %s0 è sconosciuto.
|
|
||||||
tool_repl: Strumento di sostituzione blocchi associato a %s0.
|
|
||||||
tool_cycler: Strumento per ciclare i dati dei blocchi associato a %s0.
|
|
||||||
tool_flood_fill: Strumento per riempire di blocchi associato a %s0.
|
|
||||||
tool_range_error: 'Raggio massimo: %s0.'
|
|
||||||
tool_radius_error: 'Massimo raggio del pennello consentito: %s0.'
|
|
||||||
tool_deltree: Strumento di rimozione alberi volanti associato a %s0.
|
|
||||||
tool_farwand: Strumento bacchetta a distanza associato a %s0.
|
|
||||||
tool_lrbuild_bound: Strumento di costruzione a lungo raggio associato a %s0.
|
|
||||||
tool_lrbuild_info: Click-sinistro per impostare a %s0; click-destro per impostare a %s1.
|
|
||||||
superpickaxe_enabled: Super Piccone abilitato.
|
|
||||||
superpickaxe_disabled: Super Piccone disabilitato.
|
|
||||||
superpickaxe_area_enabled: Modalità cambiata. Click sinistro con un piccone. // per disabilitare.
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: Snapshot '%s0' caricato; ora ripristinando...
|
|
||||||
snapshot_set: 'Snapshot impostato a: %s0'
|
|
||||||
snapshot_newest: Ora usando lo snapshot più recente.
|
|
||||||
snapshot_list_header: 'Snapshot per il mondo (%s0):'
|
|
||||||
snapshot_list_footer: Usa /snap use [snapshot] o /snap use latest.
|
|
||||||
biome:
|
|
||||||
biome_list_header: 'Biomi (pagina %s0/%s1):'
|
|
||||||
biome_changed: I biomi sono stati cambiati in %s0 colonne.
|
|
||||||
utility:
|
|
||||||
kill_success: Uccise %s0 entità in un raggio di %s1.
|
|
||||||
nothing_confirmed: Non hai azioni in attesa di conferma.
|
|
||||||
page_footer: Usa %s0 per andare alla pagina successiva
|
|
||||||
schematic:
|
|
||||||
schematic_format: 'Formati disponibili (Nome: Nomi di ricerca)'
|
|
||||||
schematic_loaded: '%s0 caricato. Incollalo con //paste'
|
|
||||||
schematic_saved: '%s0 salvato.'
|
|
||||||
schematic_page: La pagina deve essere %s
|
|
||||||
schematic_none: Nessun file trovato.
|
|
||||||
schematic_list: 'File disponibili (Nome file: Formato) [%s0/%s1]:'
|
|
||||||
schematic_list_elem: ' - %s0 - %s1'
|
|
||||||
clipboard:
|
|
||||||
clipboard_uri_not_found: Non hai %s0 caricato
|
|
||||||
clipboard_cleared: Appunti cancellati
|
|
||||||
clipboard_invalid_format: 'Formato di appunti sconosciuto: %s0'
|
|
||||||
visitor:
|
|
||||||
visitor_block: '%s0 blocchi interessati'
|
|
||||||
visitor_entity: '%s0 entità interessate'
|
|
||||||
visitor_flat: '%s0 colonne interessate'
|
|
||||||
selector:
|
|
||||||
selector_fuzzy_pos1: Regione impostata ed espansa da %s0 %s1.
|
|
||||||
selector_fuzzy_pos2: Aggiunta espansione di %s0 %s1.
|
|
||||||
selector_pos: pos%s0 impostata a %s1 (%s2).
|
|
||||||
selector_center: Centro impostato a %s0 (%s1).
|
|
||||||
selector_radius: Raggio impostato a %s0 (%s1).
|
|
||||||
selector_expanded: Regione espansa a %s0 (%s1)
|
|
||||||
selector_invalid_coordinates: Coordinate %s0 non valide
|
|
||||||
selector_already_set: Posizione già impostata.
|
|
||||||
selector_set_default: Il tuo selettore di regioni predefinito è ora %s0.
|
|
||||||
timezone:
|
|
||||||
timezone_set: 'Fuso orario impostato per questa sessione a: %s0'
|
|
||||||
timezone_display: 'L''ora corrente in quel fuso orario è: %s0'
|
|
||||||
command:
|
|
||||||
command_invalid_syntax: Il comando non è stato usato correttamente (nessun altro aiuto disponibile).
|
|
||||||
help:
|
|
||||||
command_clarifying_bracket: 'Aggiunta una parentesi di chiarimento per %s0'
|
|
||||||
help_suggest: 'Non è stato possibile trovare %s0. Forse provane uno di %s1 ?'
|
|
||||||
help_header_categories: Tipi di Comando
|
|
||||||
help_header_subcommands: Sottocomandi
|
|
||||||
help_header_command: 'Aiuto per: %s0'
|
|
||||||
help_item_allowed: '%s0 - %s1'
|
|
||||||
help_item_denied: '%s0 - %s1'
|
|
||||||
help_header: 'Aiuto: pagina %s0/%s1'
|
|
||||||
help_footer: 'Wiki: https://git.io/vSKE5'
|
|
||||||
progress:
|
|
||||||
progress_message: '%s1/%s0 (%s2%) @%s3cps %s4s rimanenti'
|
|
||||||
progress_finished: '[ Fatto! ]'
|
|
||||||
cancel:
|
|
||||||
worldedit_cancel_count: 'Cancellate %s0 modifiche.'
|
|
||||||
worldedit_cancel_reason_confirm: 'La tua selezione è grande (%s0 -> %s1). Usa //confirm per eseguire %s2'
|
|
||||||
worldedit_cancel_reason: 'La tua azione WorldEdit è stata cancellata: %s0.'
|
|
||||||
worldedit_cancel_reason_manual: Cancellazione manuale
|
|
||||||
worldedit_cancel_reason_low_memory: Poca memoria
|
|
||||||
worldedit_cancel_reason_max_changes: Troppi blocchi cambiati
|
|
||||||
worldedit_cancel_reason_max_checks: Troppi controlli di blocchi
|
|
||||||
worldedit_cancel_reason_max_tiles: Troppi stati di blocchi
|
|
||||||
worldedit_cancel_reason_max_entities: Troppe entità
|
|
||||||
worldedit_cancel_reason_max_iterations: Iterazioni massime
|
|
||||||
worldedit_cancel_reason_max_fails: Fuori dalla regione consentita (bypassa con /wea, o disabilita `region-restrictions` in config.yml)
|
|
||||||
worldedit_cancel_reason_no_region: Nessuna regione consentita (bypassa con /wea, o disabilita `region-restrictions` in config.yml)
|
|
||||||
worldedit_failed_load_chunk: 'Saltato il caricamento del chunk: %s0;%s1. Prova aumentando chunk-wait.'
|
|
||||||
navigation:
|
|
||||||
ascend_fail: Nessun posto libero trovato sopra di te.
|
|
||||||
ascended_plural: Asceso di %s0 livelli.
|
|
||||||
ascended_singular: Asceso di un livello.
|
|
||||||
unstuck: Ci si va!
|
|
||||||
descend_fail: Nessun posto libero trovato sotto di te.
|
|
||||||
descend_plural: Disceso di %s0 livelli.
|
|
||||||
descend_singular: Disceso di un livello.
|
|
||||||
whoosh: Whoosh!
|
|
||||||
poof: Poof!
|
|
||||||
thru_fail: Nessun punto libero trovato davanti a te.
|
|
||||||
no_block: Nessun blocco in vista! (o troppo lontano)
|
|
||||||
up_fail: Colpiresti qualcosa sopra di te.
|
|
||||||
selection:
|
|
||||||
sel_cuboid: 'Cuboide: click sinistro per il punto 1, click destro per il punto 2'
|
|
||||||
sel_cuboid_extend: 'Cuboide: click sinistro per un punto di partenza, click destro per estendere'
|
|
||||||
sel_2d_polygon: 'Selettore poligono 2D: Click sinistro/destro per aggiungere un punto.'
|
|
||||||
sel_ellipsiod: 'Selettore ellissoide: Click sinistro=centro, click destro per estendere'
|
|
||||||
sel_sphere: 'Selettore sfere: Click sinistro=centro, click destro per impostare il raggio'
|
|
||||||
sel_cylindrical: 'Selettore cilindrico: Click sinistro=centro, click destro per estendere.'
|
|
||||||
sel_max: '%s0 punti al massimo.'
|
|
||||||
sel_fuzzy: 'Selettore sfocato: Click sinistro per selezionare tutti i blocchi contingenti, click destro per aggiungere. Per selezionare una cavità d''aria, usa //pos1.'
|
|
||||||
sel_convex_polyhedral: 'Selettore poliedrico convesso: Click sinistro=Primo vertice, click destro per aggiungerne altri.'
|
|
||||||
sel_list: 'Per una lista di tipi di selezione usa: //sel list'
|
|
||||||
sel_modes: 'Seleziona una delle modalità qui sotto:'
|
|
||||||
tips:
|
|
||||||
tip_sel_list: 'Consiglio: Vedi le diverse modalità di selezione con //sel list'
|
|
||||||
tip_select_connected: 'Consiglio: Seleziona tutti i blocchi collegati con //sel fuzzy'
|
|
||||||
tip_set_pos1: 'Consiglio: Usa pos1 come un pattern con //set pos1'
|
|
||||||
tip_farwand: 'Consiglio: Seleziona i punti distanti con //farwand'
|
|
||||||
tip_lazycut: 'Consiglio: È più sicuro usare //lazycut'
|
|
||||||
tip_fast: 'Consiglio: Imposta velocemente e senza l''annullamento usando //fast'
|
|
||||||
tip_cancel: 'Consiglio: Puoi cancellare con //cancel una modifica in corso'
|
|
||||||
tip_mask: 'Consiglio: Imposta una maschera di destinazione globale con /gmask'
|
|
||||||
tip_mask_angle: 'Consiglio: Sostituire le pendenze verso l''alto di 3-20 blocchi usando //replace /[-20][-3] bedrock'
|
|
||||||
tip_set_linear: 'Consiglio: Imposta i blocchi linearmente con //set #l3d[wood,bedrock]'
|
|
||||||
tip_surface_spread: 'Consiglio: Propaga una superficie piana con //set #surfacespread[5][0][5][#existing]'
|
|
||||||
tip_set_hand: 'Consiglio: Usa la tua mano attuale con //set hand'
|
|
||||||
tip_replace_id: 'Consiglio: Sostituisci solo l''id del blocco: //replace woodenstair #id[cobblestair]'
|
|
||||||
tip_replace_light: 'Consiglio: Rimuovi le sorgenti di luce con //replace #brightness[1][15] 0'
|
|
||||||
tip_tab_complete: 'Consiglio: Il comando replace supporta il completamento del tabulatore'
|
|
||||||
tip_flip: 'Consiglio: Specchia con //flip'
|
|
||||||
tip_deform: 'Consiglio: Rimodella con //deform'
|
|
||||||
tip_transform: 'Consiglio: Imposta una trasformazione con //gtransform'
|
|
||||||
tip_copypaste: 'Consiglio: Incolla al click con //br copypaste'
|
|
||||||
tip_source_mask: 'Consiglio: Imposta una maschera sorgente con /gsmask <maschera>'
|
|
||||||
tip_replace_marker: 'Consiglio: Sostituisci un blocco con i tuoi appunti completi usando //replace wool #fullcopy'
|
|
||||||
tip_paste: 'Consiglio: Colloca con //paste'
|
|
||||||
tip_lazycopy: 'Consiglio: lazycopy è più veloce'
|
|
||||||
tip_download: 'Consiglio: Prova //download'
|
|
||||||
tip_rotate: 'Consiglio: Orienta con //rotate'
|
|
||||||
tip_copy_pattern: 'Consiglio: Per usarlo come un pattern prova #copy'
|
|
||||||
tip_regen_0: 'Consiglio: Usa un bioma con /regen [biome]'
|
|
||||||
tip_regen_1: 'Consiglio: Usa un seme con /regen [biome] [seed]'
|
|
||||||
tip_biome_pattern: 'Consiglio: Il pattern #biome[forest] può essere usato in qualsiasi comando'
|
|
||||||
tip_biome_mask: 'Consiglio: Limita a un bioma con la maschera `$jungle`'
|
|
@ -1,366 +0,0 @@
|
|||||||
# Translated and updated by RainbowGodDouwe
|
|
||||||
info:
|
|
||||||
prefix: '(FAWE)'
|
|
||||||
file_deleted: '%s0 Is verwijderd.'
|
|
||||||
schematic_pasting: 'Het schematic wordt geplaatst. dit kan niet veranderd worden.'
|
|
||||||
lighting_propogate_selection: 'Het licht heeft zich verspreid in %s0 chunks. (Note:
|
|
||||||
om het licht te verwijderen, doe //removelight)'
|
|
||||||
updated_lighting_selection: 'Lighting is geüpdatet in %s0 chunks. (het kan even
|
|
||||||
duren voordat de packets worden verstuurd)'
|
|
||||||
set_region: 'Toegestaande regio geselecteerd'
|
|
||||||
worldedit_command_limit: 'U kunt weer verder gaan wanneer uw vorige actie voltooid
|
|
||||||
is'
|
|
||||||
worldedit_delayed: 'U kunt weer verder gaan wanneer wij uw FAWE action voltooien...'
|
|
||||||
worldedit_run: 'Sorry voor het ongemak. huidige uitvoerende actie: %s'
|
|
||||||
worldedit_complete: 'Verandering voldaan.'
|
|
||||||
require_selection_in_mask: '%s Van je selectie is niet binnen je mask. Je kan
|
|
||||||
alleen veranderingen uitvoeren in de toegestaande regio.'
|
|
||||||
worldedit_volume: 'Je kan niet een volume van %current% toepassen. Het maximum
|
|
||||||
volume dat je kan toepassen is %max%.'
|
|
||||||
worldedit_iterations: 'Je kan %current% niet zoveel keer herhalen. het maximale
|
|
||||||
wat toegestaan is, is %max%.'
|
|
||||||
worldedit_unsafe: 'Toegang tot deze command is geblokkeerd'
|
|
||||||
worldedit_dangerous_worldedit: 'Nnveilige edits zijn verwerkt op %s0 by %s1'
|
|
||||||
worldedit_toggle_tips_on: 'Disabled FAWE tips.'
|
|
||||||
worldedit_toggle_tips_off: 'De FAWE tips staan nu aan.'
|
|
||||||
worldedit_bypassed: 'De restrictie of FAWE wordt nu overscheiden.'
|
|
||||||
worldedit_unmasked: 'Je FAWE edits hebben nu geen restrictie meer.'
|
|
||||||
worldedit_restricted: 'Je FAWE edits hebben nu een restrictie.'
|
|
||||||
worldedit_oom_admin: |-
|
|
||||||
Mogelijke opties:
|
|
||||||
- //fast
|
|
||||||
- Voer kleinere bewerkingen uit
|
|
||||||
- Wijs meer geheugen toe
|
|
||||||
- Disable `max-memory-percent`
|
|
||||||
compressed: Geschiedenis gecomprimeerd. Saved ~ %s0b (%s1x kleiner)
|
|
||||||
action_complete: Uitvoering is over %s0 voltooid.
|
|
||||||
error:
|
|
||||||
worldedit_extend: 'je edit is waarschijnlijk buiten het toegestaande gebied gekomen.'
|
|
||||||
web_unauthorized: 'alleen links van de configureerde webhost zijn toegestaan: %s0'
|
|
||||||
command_syntax: 'Gebruik: %s0'
|
|
||||||
no_perm: 'je hebt hier geen permission node voor: %s0'
|
|
||||||
setting_disable: 'Setting ontbreekt: %s0'
|
|
||||||
brush_not_found: 'Bruikbare brushes: %s0'
|
|
||||||
brush_incompatible: 'Deze brush kan niet in deze versie gebruikt worden'
|
|
||||||
schematic_not_found: 'Schematic niet gevonden: %s0'
|
|
||||||
no_region: 'Je hebt momenteel geen toegestaand gebied'
|
|
||||||
no_mask: 'Je hebt momenteel geen brush geselecteerd'
|
|
||||||
not_player: 'Je moet een speler zijn om dit te doen!'
|
|
||||||
player_not_found: 'Speler niet gevonden: %s0'
|
|
||||||
oom: |-
|
|
||||||
[Critical] Gedetecteerd laag geheugen i.e. < 1%. We zullen de volgende acties ondernemen:
|
|
||||||
- Verwijder de huidige WE blok plaatsing
|
|
||||||
- Clear WE history
|
|
||||||
- Unload non essential chunks
|
|
||||||
- Dood de entities
|
|
||||||
- Onnodige data collecteren
|
|
||||||
Negeer dit als je de server wilt laten crashen.
|
|
||||||
Note: Een laag opslagvermogen kan door WE veroorzaakt worden (dit hoeft niet)
|
|
||||||
worldedit_some_fails: '%s0 Blokken zijn niet geplaats omdat ze uit je toegestaande
|
|
||||||
gebied werden geplaatst.'
|
|
||||||
worldedit_some_fails_blockbag: 'oOntbrekende blokken: %s0'
|
|
||||||
block_not_allowed: Het is niet toegestaan om dit te gebruiken
|
|
||||||
web:
|
|
||||||
generating_link: Uploading %s, even geduld A.U.B...
|
|
||||||
generating_link_failed: 'De donwload link kon niet worden gemaakt!'
|
|
||||||
download_link: '%s'
|
|
||||||
worldedit:
|
|
||||||
general:
|
|
||||||
mask_disabled: Global mask uitgeschakeld
|
|
||||||
mask: Global mask is gezet
|
|
||||||
texture_disabled: Texturing reset
|
|
||||||
texture_set: Texturing tot %s1 gezet
|
|
||||||
source_mask_disabled: Global source mask uitgeschakeld
|
|
||||||
source_mask: Global source mask geszet
|
|
||||||
transform_disabled: Global transform uitgeschakeld
|
|
||||||
transform: Global transform gezet
|
|
||||||
fast_enabled: Fast mode aangezet. History en edit restrictions zullen worden negeerd.
|
|
||||||
fast_disabled: Fast mode uitgeschakeld
|
|
||||||
place_enabled: 'Wordt nu geplaats op locatie #1.'
|
|
||||||
place_disabled: Het wordt nu geplaatst op het blok waar je op staat.
|
|
||||||
copy:
|
|
||||||
command_copy: '%s0 blokken zijn gekopieerd.'
|
|
||||||
cut:
|
|
||||||
command_cut_slow: '%s0 Blocks were cut.'
|
|
||||||
command_cut_lazy: '%s0 Blokken zullen verwijderd worden bij plaatsing'
|
|
||||||
paste:
|
|
||||||
command_paste: Het klipbord is geplaatst op %s0
|
|
||||||
rotate:
|
|
||||||
command_rotate: Het klipbord is omgedraaid
|
|
||||||
flip:
|
|
||||||
command_flipped: Het klipbord is omgedraaid
|
|
||||||
regen:
|
|
||||||
command_regen_0: Regio gegenereerd.
|
|
||||||
command_regen_1: Regio gegenereerd.
|
|
||||||
command_regen_2: Regio gegenereerd.
|
|
||||||
tree:
|
|
||||||
command_tree: '%s0 Bomen gecreëerd.'
|
|
||||||
command_pumpkin: '%s0 Pompoenen gecreëerd.'
|
|
||||||
flora:
|
|
||||||
command_flora: '%s0 Flora gecreëerd.'
|
|
||||||
history:
|
|
||||||
command_history_clear: Geschiedenis verwijderd
|
|
||||||
command_redo_error: Er is niks om te ontdaan. (See also `/inspect` and `/frb`)
|
|
||||||
command_history_other_error: We kunnen geen sessie voor %s0 vinden.
|
|
||||||
command_redo_success: Herdaan succesvol.
|
|
||||||
command_undo_error: Er is niet om te ontdaan. (See also `/inspect` and `/frb`)
|
|
||||||
command_undo_success: Herdaan succesvol.
|
|
||||||
command_undo_disabled: 'Undo disabled, use: //fast'
|
|
||||||
operation:
|
|
||||||
operation: Operaties die in de wacht staan (%s0)
|
|
||||||
selection:
|
|
||||||
selection_wand: 'Links klikken: selecteer pos #1; Rechts klikken: selecteer pos
|
|
||||||
#2'
|
|
||||||
selection_wand_disable: Edit wand uitgeschakeld.
|
|
||||||
selection_wand_enable: Edit wand ingeschakeld.
|
|
||||||
selection_chunk: Chunk geselecteerd (%s0)
|
|
||||||
selection_chunks: Chunks geselecteerd (%s0) - (%s1)
|
|
||||||
selection_contract: Region contracted %s0 blokken.
|
|
||||||
selection_count: '%s0 Blokken geteld.'
|
|
||||||
selection_distr: '# Totaal aantal blokken: %s0'
|
|
||||||
selection_expand: Regio vergroot met %s0 blokken.
|
|
||||||
selection_expand_vert: Regio vergroot met %s0 blokken (van boven naar beneden)
|
|
||||||
selection_inset: Region inset
|
|
||||||
selection_outset: Region outset
|
|
||||||
selection_shift: Region verzet
|
|
||||||
selection_cleared: Selectie verwijderd
|
|
||||||
navigation:
|
|
||||||
navigation_wand_error: 'Nergens om door heen te gaan'
|
|
||||||
anvil:
|
|
||||||
world_is_loaded: de wereld zou niet in gebruik moeten zijn wanneer er een uitvoering
|
|
||||||
wordt gedaan. onlaad de wereld, of gebruik -f om het te overschrijden (save
|
|
||||||
first)
|
|
||||||
brush:
|
|
||||||
brush_reset: Reset je brush. (SHIFT + Click)
|
|
||||||
brush_none: Je houdt hebt geen brush vast!
|
|
||||||
brush_scroll_action_set: Scroll action gezet naar %s0
|
|
||||||
brush_scroll_action_unset: Scroll action uitgeschakeld.
|
|
||||||
brush_visual_mode_set: Visuele mode gezet naar %s0
|
|
||||||
brush_target_mode_set: Target mode gezet naar %s0
|
|
||||||
brush_target_mask_set: Target mode gezet naar %s0
|
|
||||||
brush_target_offset_set: Uitschietting van de target gezet tot %s0
|
|
||||||
brush_equipped: Brush in gebruik %s0
|
|
||||||
brush_try_other: |-
|
|
||||||
Er zijn betere brushes hier voor te gebruiken e.g.
|
|
||||||
- //br height [radius=5] [#clipboard|file=null] [rotation=0] [yscale=1.00]
|
|
||||||
brush_copy: Links klik de fundering van de constructie om te kopieëren, rechts
|
|
||||||
klik om te plakken. Verhoog de brush Settings als dat mogelijk is.
|
|
||||||
brush_height_invalid: Onvalide hoogte map file (%s0)
|
|
||||||
brush_smooth: Gebruik de blend brush om caves en hangende dingen glad te krijgen.'
|
|
||||||
brush_spline: Klik Om een bevestigingspunt te zetten, klik hetzelfde punt om het
|
|
||||||
af te ronden.
|
|
||||||
brush_line_primary: Punt %s0 toegevoegt, klik op een andere locatie om de lijn
|
|
||||||
te creëeren.
|
|
||||||
brush_catenary_direction: Punt %s0 toegevoegt, klik naar de directie waar je krommen
|
|
||||||
wilt.
|
|
||||||
brush_line_secondary: Kromme lijn gecreëerd
|
|
||||||
brush_spline_primary_2: Positie toegevoegt, klik hetzelfde punt om mee te doen!
|
|
||||||
brush_spline_secondary_error: Niet genoeg posities gezet!
|
|
||||||
brush_spline_secondary: Kromme lijn gecreërd
|
|
||||||
brush_size: Brush grootte gezet
|
|
||||||
brush_range: Brush bereik gezet
|
|
||||||
brush_mask_disabled: Brush mask disabled
|
|
||||||
brush_mask: Brush mask gezet
|
|
||||||
brush_source_mask_disabled: Brush source mask uitgeschakeld
|
|
||||||
brush_source_mask: Brush source mask gezet
|
|
||||||
brush_transform_disabled: Brush transform uitgeschakeld
|
|
||||||
brush_transform: Brush transform gezet
|
|
||||||
brush_material: Brush material gezet
|
|
||||||
rollback:
|
|
||||||
rollback_element: Aan %s0 het ontdaan maken.
|
|
||||||
tool:
|
|
||||||
tool_inspect: Inspect tool gebonden aan %s0.
|
|
||||||
tool_inspect_info: '%s0 veranderd %s1 to %s2 %s3 geleden'
|
|
||||||
tool_inspect_info_footer: 'Totaal: %s0 veranderingen'
|
|
||||||
tool_none: De tool is niet meer gebonden aan je item.
|
|
||||||
tool_info: Info tool gebonden aan %s0.
|
|
||||||
tool_tree: Tree tool gebonden aan %s0.
|
|
||||||
tool_tree_error: Tree type %s0 is niet gevonden.
|
|
||||||
tool_repl: Block replacer tool gebonden aan %s0.
|
|
||||||
tool_cycler: Block data cycler tool gebonden aan %s0.
|
|
||||||
tool_flood_fill: Block flood fill tool gebonden aan %s0.
|
|
||||||
tool_range_error: 'Maximale bereik: %s0.'
|
|
||||||
tool_radius_error: 'Maximum toegestaande brush radius: %s0.'
|
|
||||||
tool_deltree: Floating tree remover tool gebonden aan %s0.
|
|
||||||
tool_farwand: Far wand tool gebonden aan %s0.
|
|
||||||
tool_lrbuild_bound: Long-range building tool gebonden aan %s0.
|
|
||||||
tool_lrbuild_info: links-klik gebonden aan %s0; rechts-klik gebonden aan %s1.
|
|
||||||
superpickaxe_enabled: Super Pickaxe ingeschakeld.
|
|
||||||
superpickaxe_disabled: Super Pickaxe uitgeschakeld.
|
|
||||||
superpickaxe_area_enabled: Mode veranderd. Links klik met een pickaxe. // om uit
|
|
||||||
te schakelen.
|
|
||||||
tool_tree_error_block: Daar kan je geen boom plaatsen.
|
|
||||||
tool_deltree_error: Dat is geen boom.
|
|
||||||
tool_deltree_floating_error: Dat is niet een vliegende boom.
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: Snapshot '%s0' geladen; nu aan het herstellen...
|
|
||||||
snapshot_set: 'Snapshot gezet tot: %s0'
|
|
||||||
snapshot_newest: Je gebruikt de nieuwste snapshot.
|
|
||||||
snapshot_list_header: 'Snapshots voor wereld (%s0):'
|
|
||||||
snapshot_list_footer: Gebruik /snap use [snapshot] of /snap use latest.
|
|
||||||
snapshot_not_configured: Snapshot/backup restoratie is niet geconfigureerd.
|
|
||||||
snapshot_not_available: Er zijn geen snapshots gevonden, zie de console voor meer informatie.
|
|
||||||
snapshot_not_found_world: Er zijn geen snapshots gevonden van deze wereld.
|
|
||||||
snapshot_not_found: Er zijn geen snapshots gevonden.
|
|
||||||
snapshot_invalid_index: Geen geldende context, deze moest hoger of gelijk aan 1 zijn.
|
|
||||||
snapshot_error_date: Kon de data input niet vinden.
|
|
||||||
snapshot_error_restore: Storingen zorgden ervoor dat de blokken niet konden worden teruggeplaatst.
|
|
||||||
snapshot_error_restore_chunks: Er konden geen chunks geladen worden.
|
|
||||||
biome:
|
|
||||||
biome_list_header: 'Biomes (page %s0/%s1):'
|
|
||||||
biome_changed: Biotopen zijn veranderd in %s0 columns.
|
|
||||||
utility:
|
|
||||||
kill_success: entities %s0 zijn vermoord in een radius van %s1.
|
|
||||||
nothing_confirmed: Je hebt geen acties die bevestigt moeten worden.
|
|
||||||
page_footer: Gebruik %s0 om naar de volgende pagina te gaan
|
|
||||||
schematic:
|
|
||||||
schematic_prompt_clear: 'we raden je aan %s0 te gebruiken om je klipbord
|
|
||||||
te verwijderen first'
|
|
||||||
schematic_show: |-
|
|
||||||
scematics %s0 aan het wergeven %s1:
|
|
||||||
- Links klik a het gebouw om er een klipbord van de maken
|
|
||||||
- Rechts klik a om een gebouw toe te voegen aan je multi-klipbord
|
|
||||||
- Gebruik %s2 om terug naar de wereld te gaan
|
|
||||||
schematic_format: 'Beschikbare formats (Name: Lookup names)'
|
|
||||||
schematic_move_exists: '%s0 bestaat al'
|
|
||||||
schematic_move_success: '%s0 -> %s1'
|
|
||||||
schematic_move_failed: '%s0 aantal verplaatst: %s1'
|
|
||||||
schematic_loaded: '%s0 gelanden. plak met //paste'
|
|
||||||
schematic_saved: '%s0 opgeslagen.'
|
|
||||||
schematic_page: Pagina moet %s zijn
|
|
||||||
schematic_none: Niks gevonden.
|
|
||||||
schematic_list: 'Beschikbare files (Filename: Format) [%s0/%s1]:'
|
|
||||||
schematic_list_elem: ' - %s0 - %s1'
|
|
||||||
clipboard:
|
|
||||||
clipboard_uri_not_found: Je hebt %s0 niet geladen
|
|
||||||
clipboard_cleared: Jlikbord verwijderd
|
|
||||||
clipboard_invalid_format: 'Niet bestaand clipboard format: %s0'
|
|
||||||
visitor:
|
|
||||||
visitor_block: '%s0 blocks aangetast'
|
|
||||||
visitor_entity: '%s0 entities aangetast'
|
|
||||||
visitor_flat: '%s0 columns aangetast'
|
|
||||||
selector:
|
|
||||||
selector_fuzzy_pos1: Regio gezet en verwijd van/naar %s0 %s1.
|
|
||||||
selector_fuzzy_pos2: Verwijding van %s0 %s1 toegevoegt.
|
|
||||||
selector_pos: pos%s0 gezet naar %s1 (%s2).
|
|
||||||
selector_center: Center gezet naar %s0 (%s1).
|
|
||||||
selector_radius: Radius gezet naar %s0 (%s1).
|
|
||||||
selector_expanded: Regio uitgebreid naar %s0 (%s1)
|
|
||||||
selector_invalid_coordinates: non-valid coördinaten %s0
|
|
||||||
selector_already_set: Positie al gezet.
|
|
||||||
selector_set_default: Your normale regio selector is nu %s0.
|
|
||||||
timezone:
|
|
||||||
timezone_set: 'Timezone gezet voor deze sessie naar: %s0'
|
|
||||||
timezone_display: 'De actuele tijd in die tijdzone is: %s0'
|
|
||||||
command:
|
|
||||||
command_invalid_syntax: De command was niet goed gebruikt (no more help available).
|
|
||||||
help:
|
|
||||||
command_clarifying_bracket: ' clarifying bracket toegevoegt aan %s0'
|
|
||||||
help_suggest: 'kon %s0 niet binden. misschien één van deze proberen %s1 ?'
|
|
||||||
help_header_categories: Command Types
|
|
||||||
help_header_subcommands: Subcommands
|
|
||||||
help_header_command: 'Help voor: %s0'
|
|
||||||
help_item_allowed: '%s0 - %s1'
|
|
||||||
help_item_denied: '%s0 - %s1'
|
|
||||||
help_header: 'Help: pagina %s0/%s1'
|
|
||||||
help_footer: 'Wiki: https://git.io/vSKE5'
|
|
||||||
cycler:
|
|
||||||
block_cycler_cannot_cycle: De blok data kan niet worden veranderd.
|
|
||||||
block_cycler_limit: Maximale veranderingen in blokken bereikt.
|
|
||||||
block_cycler_no_perm: 'Het is niet toegestaan om deze blok data te veranderen.'
|
|
||||||
scripting:
|
|
||||||
scripting_no_perm: 'Je hebt onvoldoende rechten om deze craft scriptie uit te voeren. '
|
|
||||||
scripting_cs: Gebruik eerst /cs met een scriptie naam.
|
|
||||||
scripting_error: Er waren problemen onstaan bij het uitvoeren van de craft scriptie.
|
|
||||||
progress:
|
|
||||||
progress_message: '%s1/%s0 (%s2%) @%s3cps %s4s left'
|
|
||||||
progress_finished: '[ Klaar! ]'
|
|
||||||
cancel:
|
|
||||||
worldedit_cancel_count: 'zoveel edits: %s0 ontdaan.'
|
|
||||||
worldedit_cancel_reason_confirm: 'Het geselecteerde gebied is groot (%s0 ->
|
|
||||||
%s1, containing %s3 blocks). Gebruik //confirm om te bevestigen %s2'
|
|
||||||
worldedit_cancel_reason: 'Your WorldEdit actie was opgeheven: %s0.'
|
|
||||||
worldedit_cancel_reason_manual: manuele opheffing
|
|
||||||
worldedit_cancel_reason_low_memory: Lage memory
|
|
||||||
worldedit_cancel_reason_max_changes: Teveel blokken verandered
|
|
||||||
worldedit_cancel_reason_max_checks: Teveel block checks
|
|
||||||
worldedit_cancel_reason_max_tiles: Teveel blockstates
|
|
||||||
worldedit_cancel_reason_max_entities: Teveel entities
|
|
||||||
worldedit_cancel_reason_max_iterations: Maximum herhaling
|
|
||||||
worldedit_cancel_reason_outside_level: Buiten de bebouwde kom
|
|
||||||
worldedit_cancel_reason_outside_region: Buiten het toegestaande gebied (bypass with
|
|
||||||
/wea, or disable `region-restrictions` in config.yml)
|
|
||||||
worldedit_cancel_reason_no_region: geen toegestaand gebied (bypass with /wea, or
|
|
||||||
disable `region-restrictions` in config.yml)
|
|
||||||
worldedit_failed_load_chunk: 'Chunks laden overgeslaan: %s0;%s1. probeer het
|
|
||||||
chunk-wait op te krikken.'
|
|
||||||
navigation:
|
|
||||||
ascend_fail: Geen vrije plekken boven je gesignaleerd.
|
|
||||||
ascended_plural: levels %s0 verlaagt.
|
|
||||||
ascended_singular: Ascended a level.
|
|
||||||
unstuck: There you go!
|
|
||||||
descend_fail: geen vrije plekken onder je gesignaleerd.
|
|
||||||
descend_plural: levels %s0 gedaald.
|
|
||||||
descend_singular: Een level gedaald.
|
|
||||||
whoosh: Whoosh!
|
|
||||||
poof: Poof!
|
|
||||||
thru_fail: Geen vrije plekken voor je.
|
|
||||||
no_block: Geen blokken in zicht! (of te ver)
|
|
||||||
up_fail: Er hangt helaas iets boven je.
|
|
||||||
selection:
|
|
||||||
sel_cuboid: 'Cuboid: links klik voor punt 1, rechts klik voor punt 2'
|
|
||||||
sel_cuboid_extend: 'Cuboid: links klik voor een begin punt, rechts klik om te verbreden'
|
|
||||||
sel_2d_polygon: '2D polygon selector: links/rechts klik om een punt toe te voegen.'
|
|
||||||
sel_ellipsiod: 'Ellipsoid selector: links klik=center, rechts klik om te verbreden'
|
|
||||||
sel_sphere: 'Sphere selector: Links klik=center, rechts klik om de radius te zetten'
|
|
||||||
sel_cylindrical: 'Cylindrical selector: links klik+center, right click to extend.'
|
|
||||||
sel_max: '%s0 points maximum.'
|
|
||||||
sel_fuzzy: 'Fuzzy selector: links klik om alle bestaande blokken te plaatsen, rechts
|
|
||||||
klik om toe te voegen. om een lucht holte te selecteren, doe //pos1.'
|
|
||||||
sel_convex_polyhedral: 'Convex polyhedral selector: Links klik=First vertex, rechts
|
|
||||||
klik om meer toe te voegen.'
|
|
||||||
sel_list: 'Voor een lijst met selecties doe: //sel list'
|
|
||||||
sel_modes: 'Selecteer één van de modes hier:'
|
|
||||||
tips:
|
|
||||||
tip_sel_list: 'Tip: Zie de verschillende selectie modes met //sel list'
|
|
||||||
tip_select_connected: 'Tip: Selecteer alle verbonden blokken met //sel fuzzy'
|
|
||||||
tip_set_pos1: 'Tip: Gebruik pos1 als een punt met //set pos1'
|
|
||||||
tip_farwand: 'Tip: Selecteer punten van ver weg met //farwand'
|
|
||||||
tip_lazycut: 'Tip: Het is veiliger om //lazycut te gebruiken'
|
|
||||||
tip_fast: 'Tip: Set fast and without undo using //fast'
|
|
||||||
tip_cancel: 'Tip: gebruik //cancel om een edit stop te zetten'
|
|
||||||
tip_mask: 'Tip: Zet een globale bestemmings mask met /gmask'
|
|
||||||
tip_mask_angle: 'Tip: Vervang opwaartse hellingen van 3-20 blocks met //replace
|
|
||||||
/[-20][-3] bedrock'
|
|
||||||
tip_set_linear: 'Tip: Zet een blok lineaire met //set #l3d[wood,bedrock]'
|
|
||||||
tip_surface_spread: 'Tip: Verpsreid een oppervlakte met //set #surfacespread[5][0][5][#existing]'
|
|
||||||
tip_set_hand: 'Tip: Gebruik je huide hand met //set hand'
|
|
||||||
tip_replace_regex: 'Tip: Vervang door regex: //replace .*_log <pattern>'
|
|
||||||
tip_replace_regex_2: 'Tip: Vervang door regex: //replace .*stairs[facing=(north|south)]
|
|
||||||
<pattern>'
|
|
||||||
tip_replace_regex_3: 'Tip: Vervang door operators: //replace water[level>2]
|
|
||||||
sand'
|
|
||||||
tip_replace_regex_4: 'Tip: Vervang door operators: //replace true *[waterlogged=false]'
|
|
||||||
tip_replace_regex_5: 'Tip: Vervang door operators: //replace true *[level-=1]'
|
|
||||||
tip_replace_id: 'Tip: Vervang alleen het blok id://replace woodenstair #id[cobblestair]'
|
|
||||||
tip_replace_light: 'Tip: Verwijder licht met with//replace #brightness[1][15]'
|
|
||||||
tip_tab_complete: 'Tip: The replace command supports tab completion'
|
|
||||||
tip_flip: 'Tip: Mirror met //flip'
|
|
||||||
tip_deform: 'Tip: Verander het van vorm met //deform'
|
|
||||||
tip_transform: 'Tip: Zet een transform met //gtransform'
|
|
||||||
tip_copypaste: 'Tip: Plaats bij klikken met //br copypaste'
|
|
||||||
tip_source_mask: 'Tip: Zet een source mask met /gsmask <mask>'
|
|
||||||
tip_replace_marker: 'Tip: verander een blok in je volle klipbord met //replace
|
|
||||||
wool #fullcopy'
|
|
||||||
tip_paste: 'Tip: Plaats met //paste'
|
|
||||||
tip_lazycopy: 'Tip: Lazycopy is sneller'
|
|
||||||
tip_download: 'Tip: Probeer //download'
|
|
||||||
tip_rotate: 'Tip: Orïenteer met //rotate'
|
|
||||||
tip_copy_pattern: 'Tip: Om een pattern te gebruiken, probeer #copy'
|
|
||||||
tip_regen_0: 'Tip: Gebruik een biome met /regen [biome]'
|
|
||||||
tip_regen_1: 'Tip: Gebruik een seed met /regen [biome] [seed]'
|
|
||||||
tip_biome_pattern: 'Tip: Dee #biome[forest] pattern kan ik elke opdracht gebruikt
|
|
||||||
worden'
|
|
||||||
tip_biome_mask: 'Tip: Er wordt een restrictie geplaatst op de biome met `$jungle`
|
|
||||||
mask'
|
|
||||||
tip_discord: Heb je hulp nodig bij FAWE? https://discord.gg/KxkjDVg
|
|
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@ -1,329 +0,0 @@
|
|||||||
info:
|
|
||||||
prefix: '(FAWE)'
|
|
||||||
file_deleted: '%s0 был удален.'
|
|
||||||
schematic_pasting: 'Вставка схематического файла. Это не может быть отменено.'
|
|
||||||
lighting_propogate_selection: 'Освещение было распространено в %s0 чанках. (Примечание:
|
|
||||||
Для удаления освещения используйте //removelight)'
|
|
||||||
updated_lighting_selection: 'Освещение было обновлено в %s0 чанках. (Это может
|
|
||||||
занять секунду для отправки пакетов)'
|
|
||||||
set_region: 'Выделение установлено в вашем текущем регионе WorldEdit'
|
|
||||||
worldedit_command_limit: 'Пожалуйста, подождите, пока ваше текущее действие завершится'
|
|
||||||
worldedit_delayed: 'Пожалуйста, подождите, пока мы обрабатываем ваши действия
|
|
||||||
WorldEdit...'
|
|
||||||
worldedit_run: 'Простите за задержку. Выполнение: %s'
|
|
||||||
worldedit_complete: 'Действие WorldEdit выполнено.'
|
|
||||||
require_selection_in_mask: '%s вашего выделения не находится в пределах вашей
|
|
||||||
маски. Вы можете только вносить изменения в пределах разрешенных регионов.'
|
|
||||||
worldedit_volume: 'Вы не можете выбрать значение %current%. Максимальное значение,
|
|
||||||
которое вы можете изменить - %max%.'
|
|
||||||
worldedit_iterations: 'Вы не можете выполнить интерацию %current% раз. Максимальное
|
|
||||||
число допустимых итераций - %max%.'
|
|
||||||
worldedit_unsafe: 'Доступ к этой команде был заблокирован!'
|
|
||||||
worldedit_dangerous_worldedit: 'FAWE обрабатывает небезопасный WorldEdit в %s0
|
|
||||||
на %s1'
|
|
||||||
worldedit_toggle_tips_on: 'Советы WorldEdit включены.'
|
|
||||||
worldedit_toggle_tips_off: 'Советы WorldEdit включены.'
|
|
||||||
worldedit_bypassed: 'Обход ограничений WorldEdit включен.'
|
|
||||||
worldedit_unmasked: 'Ваш WorldEdit теперь неограниченный.'
|
|
||||||
worldedit_restricted: 'Обход ограничений WorldEdit выключен.'
|
|
||||||
worldedit_oom_admin: |-
|
|
||||||
Возможные варианты:
|
|
||||||
- //fast
|
|
||||||
- Сделать небольшие изменения
|
|
||||||
- Выделить больше памяти
|
|
||||||
- Отключить `max-memory-percent`
|
|
||||||
compressed: История сжата. Сохранено ~ %s0b (%s1x меньше)
|
|
||||||
action_complete: Действие выполенено за %s0 секунд
|
|
||||||
error:
|
|
||||||
worldedit_extend: 'Ваше выделение WorldEdit может быть расширено за пределами
|
|
||||||
разрешенного региона.'
|
|
||||||
command_syntax: 'Использование: %s0'
|
|
||||||
no_perm: 'У вас нет разрешения: %s0'
|
|
||||||
setting_disable: 'Отсутствует параметр: %s0'
|
|
||||||
schematic_not_found: 'Схематический файл не найден: %s0'
|
|
||||||
no_region: 'У вас нет текущего региона WorldEdit'
|
|
||||||
no_mask: 'У вас нет текущей установленой маски'
|
|
||||||
not_player: 'Вы должны быть игроком, чтобы выполнить это действие!'
|
|
||||||
player_not_found: 'Игрок не найден: %s0'
|
|
||||||
oom: |-
|
|
||||||
[Опасно] Обнаружено мало память, т.е. < 1%. FAWE предпримет следующие действия:
|
|
||||||
- Прекратить размещение блоков WE
|
|
||||||
- Очистить историю WE
|
|
||||||
- Выгрузить не необходимые чанки
|
|
||||||
- Убить энтити
|
|
||||||
- Собрать мусор
|
|
||||||
Игнорирование этого может призвести к крашу сервера.
|
|
||||||
Примечание: Нехватка памяти скорее всего (но не обязательно) вызванно WE
|
|
||||||
worldedit_some_fails: '%s0 блок(ов) не были размещены, потому что они были за
|
|
||||||
пределами вашего региона.'
|
|
||||||
worldedit_some_fails_blockbag: 'Недостающие блоки: %s0'
|
|
||||||
web_unauthorized: 'Разрешены только ссылки с настроенного веб-хостинга: %s0'
|
|
||||||
brush_not_found: 'Доступные кисти: %s0'
|
|
||||||
brush_incompatible: 'Кисть не совместима с этой версией'
|
|
||||||
web:
|
|
||||||
generating_link: Загрузка %s, пожалуйста подождите...
|
|
||||||
generating_link_failed: 'Не удалось создать ссылку!'
|
|
||||||
download_link: '%s'
|
|
||||||
worldedit:
|
|
||||||
general:
|
|
||||||
mask_disabled: Глобальная маска отключена
|
|
||||||
mask: Глобальная маска установлена
|
|
||||||
source_mask_disabled: Глобальный источник маски отключен
|
|
||||||
source_mask: Глобальный источник маски установлен
|
|
||||||
transform_disabled: Глобальное преобразование отключено
|
|
||||||
transform: Глобальное преобразование установлено
|
|
||||||
fast_enabled: Быстрый режим включен. История и редактирование ограничений будут обойдены.
|
|
||||||
fast_disabled: Быстрый режим отключен
|
|
||||||
place_enabled: 'Теперь размещение в позиции #1.'
|
|
||||||
place_disabled: Теперь размещение в блоке, на котором вы стоите.
|
|
||||||
texture_disabled: Сброс текстуры
|
|
||||||
texture_set: Установите текстурирование на %s1
|
|
||||||
copy:
|
|
||||||
command_copy: '%s0 блок(ов) скопировано.'
|
|
||||||
cut:
|
|
||||||
command_cut_slow: |-
|
|
||||||
%s0 блок(ов) вырезано.
|
|
||||||
Совет: lazycut безопаснее
|
|
||||||
command_cut_lazy: '%s0 блок(ов) будут удалены при вставке'
|
|
||||||
paste:
|
|
||||||
command_paste: |-
|
|
||||||
Буфер обмена был вставлен в %s0
|
|
||||||
Совет: Вставка по клику - //br copypaste
|
|
||||||
rotate:
|
|
||||||
command_rotate: Буфер обмена был повернут
|
|
||||||
flip:
|
|
||||||
command_flipped: Буфер обмена было перевернут
|
|
||||||
regen:
|
|
||||||
command_regen_0: |-
|
|
||||||
Регион регенерирован.
|
|
||||||
Tip: Используйте биом - /regen [biome]
|
|
||||||
command_regen_1: |-
|
|
||||||
Регион регенерирован.
|
|
||||||
Совет: Используйте сид - /regen [biome] [seed]
|
|
||||||
command_regen_2: Регион регенерирован.
|
|
||||||
tree:
|
|
||||||
command_tree: '%s0 деревьев создано.'
|
|
||||||
command_pumpkin: '%s0 тыкв создано.'
|
|
||||||
flora:
|
|
||||||
command_flora: '%s0 флор создано.'
|
|
||||||
history:
|
|
||||||
command_history_clear: История очищена
|
|
||||||
command_redo_error: Ничего не осталось для возврата. (Смотрите также `/inspect` и `/frb`)
|
|
||||||
command_redo_success: Успешно возвращено.
|
|
||||||
command_undo_error: Ничего не осталось для отмены. (Смотрите также `/inspect` и `/frb`)
|
|
||||||
command_undo_success: Успешно отменено.
|
|
||||||
command_history_other_error: Не удалось найти сессию %s0.
|
|
||||||
operation:
|
|
||||||
operation: Операция в очереди (%s0)
|
|
||||||
selection:
|
|
||||||
selection_wand: 'ЛКМ: установить точку #1; ПКМ: установить точку #2'
|
|
||||||
selection_wand_disable: Палочка редактирования выключена.
|
|
||||||
selection_wand_enable: Палочка редактирования включена.
|
|
||||||
selection_chunk: Чанк выбран (%s0)
|
|
||||||
selection_chunks: Чанков выбрано (%s0) - (%s1)
|
|
||||||
selection_contract: Регион сокращен на %s0 блоков.
|
|
||||||
selection_count: Подсчитано %s0 блоков.
|
|
||||||
selection_distr: '# всего блоков: %s0'
|
|
||||||
selection_expand: Регион расширен на %s0 блоков
|
|
||||||
selection_expand_vert: Регион расширен на %s0 блоков (сверху вниз)
|
|
||||||
selection_inset: Region inset
|
|
||||||
selection_outset: Region outset
|
|
||||||
selection_shift: Регион сдвинут
|
|
||||||
selection_cleared: Выделение очищено
|
|
||||||
brush:
|
|
||||||
brush_none: Вы не держите кисть!
|
|
||||||
brush_try_other: |-
|
|
||||||
FAWE добавляет другие, более подходящие кисти, например,
|
|
||||||
- //br height [radius=5] [#clipboard|file=null] [rotation=0] [yscale=1.00]
|
|
||||||
brush_copy: Кисть копирования сформирована (%s0). ПКМ по обьекту для копирования,
|
|
||||||
ПКМ для вставки. При необходимости увеличьте радиус кисти.
|
|
||||||
brush_height_invalid: Неверная высота файла карты (%s0)
|
|
||||||
brush_smooth: Кисть сглаживания сформирована (%s0 x %s1 используя %s2).
|
|
||||||
brush_spline: Форма кисти линий сформирована (%s0). ПКМ по концу, чтобы добавить форму
|
|
||||||
brush_spline_secondary_error: Не хватает установленных позиций!
|
|
||||||
brush_spline_secondary: Склеивание создано
|
|
||||||
brush_size: Размер кисти установлен
|
|
||||||
brush_range: Размер кисти установлен
|
|
||||||
brush_mask_disabled: Маска кисти отключена
|
|
||||||
brush_mask: Маска кисти сформирована
|
|
||||||
brush_source_mask_disabled: Кисть источника маски отключена
|
|
||||||
brush_source_mask: Кисть источника маски сформирована
|
|
||||||
brush_transform_disabled: Кисть преобразвания сформирована
|
|
||||||
brush_transform: Кисть преобразования сформирована
|
|
||||||
brush_material: Материал кисти установлен
|
|
||||||
brush_scroll_action_set: Установлено действие прокрутки %s0
|
|
||||||
brush_visual_mode_set: Установлен визуальный режим для %s0
|
|
||||||
brush_target_mode_set: Установлен целевой режим для %s0
|
|
||||||
brush_spline_primary_2: Добавлена позиция, Нажмите на том же месте, чтобы присоединиться!
|
|
||||||
brush_reset: Сбросьте кисть. (SHIFT + Click)
|
|
||||||
brush_scroll_action_unset: Удалено действие прокрутки
|
|
||||||
brush_target_mask_set: Установите целевую маску на %s0
|
|
||||||
brush_target_offset_set: Установите смещение цели на %s0
|
|
||||||
brush_equipped: Оборудованная кисть %s0
|
|
||||||
brush_line_primary: Добавленная точка %s0, нажмите другую позицию, чтобы создать линию
|
|
||||||
brush_catenary_direction: Добавленная точка %s0, нажмите другую позицию, чтобы создать сплайн
|
|
||||||
brush_line_secondary: Созданный сплайн
|
|
||||||
rollback:
|
|
||||||
rollback_element: Отмена %s0
|
|
||||||
tool:
|
|
||||||
tool_inspect: Инструмент проверки связан с %s0.
|
|
||||||
tool_inspect_info: '%s0 изменено %s1 на %s2 %s3 назад'
|
|
||||||
tool_inspect_info_footer: 'Всего: %s0 изменений'
|
|
||||||
tool_none: Инструмент больше не связан с вашим предметом.
|
|
||||||
tool_info: Информационный инструмент связан с %s0.
|
|
||||||
tool_tree: Инструмент Девера связан с %s0.
|
|
||||||
tool_tree_error: Неизвестный тип дерева %s0.
|
|
||||||
tool_repl: Инструмент замены блока связан к %s0.
|
|
||||||
tool_cycler: Block data cycler tool bound to %s0.
|
|
||||||
tool_flood_fill: Инструмент Заливки блоков связан с %s0.
|
|
||||||
tool_deltree: Инструмент для удаления летающих деревьев связан с %s0.
|
|
||||||
tool_farwand: Инструмент дальной полочки связан с %s0.
|
|
||||||
tool_lrbuild_bound: Строительный инструмент дальнего действия связан с %s0.
|
|
||||||
tool_lrbuild_info: ЛКМ для установки %s0; ПКМ для установки %s1.
|
|
||||||
superpickaxe_enabled: Супер Кирка включена.
|
|
||||||
superpickaxe_disabled: Супер Кирка выключена.
|
|
||||||
tool_range_error: 'Максимальный диапазон: %s0.'
|
|
||||||
tool_radius_error: 'Максимально допустимый радиус кисти: %s0.'
|
|
||||||
superpickaxe_area_enabled: Режим изменен. Щелкните левой кнопкой мыши с киркой. // для отключения.
|
|
||||||
schematic:
|
|
||||||
schematic_format: 'Доступные форматы буфера обмена (Имя: Имена поиска)'
|
|
||||||
schematic_loaded: '%s0 загружен. Вставить его //paste'
|
|
||||||
schematic_saved: '%s0 сохранен.'
|
|
||||||
schematic_page: Страница должна быть %s
|
|
||||||
schematic_none: Схематических фалов не найдено.
|
|
||||||
schematic_list: 'Доступные схематические файлы (Имя файла: Формат) [%s0/%s1]:'
|
|
||||||
schematic_prompt_clear: 'Вы можете использовать %s0 очистить свой первый'
|
|
||||||
schematic_show: |-
|
|
||||||
Отображение %s0 схемы из %s1:
|
|
||||||
- Щелчок левой кнопкой мыши структура для настройки вашего буфера обмена
|
|
||||||
- Щелкните правойt кнопкой мыши добавить структуру в ваш мультибуфер
|
|
||||||
- использование %s2 вернуться в мир
|
|
||||||
schematic_move_exists: '%s0 уже существует'
|
|
||||||
schematic_move_success: '%s0 -> %s1'
|
|
||||||
schematic_move_failed: '%s0 нет перемещенных: %s1'
|
|
||||||
schematic_list_elem: ' - %s0 - %s1'
|
|
||||||
clipboard:
|
|
||||||
clipboard_cleared: Буфер обмена очищен
|
|
||||||
clipboard_invalid_format: 'Неизвестный формат буфера обмена: %s0'
|
|
||||||
clipboard_uri_not_found: У тебя нет %s0 нагруженный
|
|
||||||
visitor:
|
|
||||||
visitor_block: '%s0 блок(ов) затронуто'
|
|
||||||
visitor_entity: '%s0 энтити затронуто'
|
|
||||||
visitor_flat: '%s0 колонн затронуто'
|
|
||||||
selector:
|
|
||||||
selector_fuzzy_pos1: Регион установлен и расширен %s0 %s1.
|
|
||||||
selector_fuzzy_pos2: Добавлено расширение %s0 %s1.
|
|
||||||
selector_invalid_coordinates: Неверные координаты %s0
|
|
||||||
selector_already_set: Позиция уже установлена.
|
|
||||||
selector_set_default: Ваш выбранный регион по умолчанию теперь %s0.
|
|
||||||
selector_pos: pos%s0 установлен в %s1 (%s2).
|
|
||||||
selector_center: Центр установлен на %s0 (%s1).
|
|
||||||
selector_radius: Радиус, установленный для %s0 (%s1).
|
|
||||||
selector_expanded: Расширенная область для %s0 (%s1)
|
|
||||||
command:
|
|
||||||
command_invalid_syntax: Команда не используется должным образом (нет больше помощи).
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: Снимок '%s0' загружен; Восстановление...
|
|
||||||
snapshot_set: 'Снимок установлен: %s0'
|
|
||||||
snapshot_newest: Теперь с использованием новейших снимков.
|
|
||||||
snapshot_list_header: 'Снимки для мира (%s0):'
|
|
||||||
snapshot_list_footer: Используйте /snap use [snapshot] или /snap use latest.
|
|
||||||
biome:
|
|
||||||
biome_list_header: 'Биомы (стр. %s0/%s1):'
|
|
||||||
biome_changed: Биом был изменен в %s0 колонн.
|
|
||||||
utility:
|
|
||||||
kill_success: Убито %s0 энтити в радиусе %s1.
|
|
||||||
nothing_confirmed: У вас нет действий в ожидании подтверждения.
|
|
||||||
page_footer: использование %s0 to go to the next page
|
|
||||||
timezone:
|
|
||||||
timezone_set: 'Часовой пояс для этой сессии: %s0'
|
|
||||||
timezone_display: 'Текущее время в этом часовом поясе: %s0'
|
|
||||||
navigation:
|
|
||||||
navigation_wand_error: 'Ничто не может пройти'
|
|
||||||
anvil:
|
|
||||||
world_is_loaded: Мир не должен использоваться во время исполнения. Выгрузить или использовать -f переопределить (сохранить сначала)
|
|
||||||
help:
|
|
||||||
command_clarifying_bracket: 'Added clarifying bracket for %s0'
|
|
||||||
help_suggest: 'не мог найти %s0. Возможно, попробуйте один из %s1 ?'
|
|
||||||
help_header_categories: Типы команд
|
|
||||||
help_header_subcommands: Подкоманды
|
|
||||||
help_header_command: 'Помогите за: %s0'
|
|
||||||
help_item_allowed: '%s0 - %s1'
|
|
||||||
help_item_denied: '%s0 - %s1'
|
|
||||||
help_header: 'Помогите: страница %s0/%s1'
|
|
||||||
help_footer: 'Wiki: https://git.io/vSKE5'
|
|
||||||
progress:
|
|
||||||
progress_message: '[ Очередь: %s0 | Отправляется: %s1 ]'
|
|
||||||
progress_finished: '[ Готово! ]'
|
|
||||||
cancel:
|
|
||||||
worldedit_cancel_count: 'Отменено %s0 изменений.'
|
|
||||||
worldedit_cancel_reason: 'Ваше действие WorldEdit было отменено: %s0.'
|
|
||||||
worldedit_cancel_reason_manual: Ручная отмена
|
|
||||||
worldedit_cancel_reason_low_memory: Мало памяти
|
|
||||||
worldedit_cancel_reason_max_changes: Слишком много блоков изменено
|
|
||||||
worldedit_cancel_reason_max_checks: Слишком много проверок блоков
|
|
||||||
worldedit_cancel_reason_max_tiles: Слишком много blockstates
|
|
||||||
worldedit_cancel_reason_max_entities: Слишком много энтити
|
|
||||||
worldedit_cancel_reason_max_iterations: Максимальное количество итераций
|
|
||||||
worldedit_cancel_reason_no_region: Нет разрешенного региона (обход, используя /wea, или выключите `region-restrictions` в config.yml)
|
|
||||||
worldedit_failed_load_chunk: 'Пропущенные загруженные чанки: %s0;%s1. Попробуйте увеличить ожидание чанка.'
|
|
||||||
worldedit_cancel_reason_confirm: 'Ваш выбор большой (%s0 -> %s1, содержащий %s3 блоки). использование //confirm выполнить %s2'
|
|
||||||
worldedit_cancel_reason_outside_level: внешний мир
|
|
||||||
worldedit_cancel_reason_outside_region: Вне допустимой области (обход с /wea, или отключить `region-restrictions` в config.yml)
|
|
||||||
history: {}
|
|
||||||
navigation:
|
|
||||||
ascend_fail: Свободного места над вами не найдено.
|
|
||||||
ascended_plural: Вы поднялись на %s0 уровень(ней).
|
|
||||||
ascended_singular: Подняться на уровень.
|
|
||||||
unstuck: Уииии!
|
|
||||||
descend_fail: Свободного места под вами не найдено.
|
|
||||||
descend_plural: Вы спустились на %s0 уровень(ней).
|
|
||||||
descend_singular: Спуститься на уровень.
|
|
||||||
whoosh: Уииии!
|
|
||||||
poof: Бум!
|
|
||||||
thru_fail: Свободного места впереди вас не найдено.
|
|
||||||
up_fail: Вы бы ударились об что-то над вами.
|
|
||||||
no_block: Нету блоков в поле зрения! (или слишком далеко)
|
|
||||||
selection:
|
|
||||||
sel_cuboid: 'Кубоид: ЛКМ для точки 1, ПКМ для точки 2'
|
|
||||||
sel_cuboid_extend: 'Кубоид: ЛКМ для начальной точки, ПКМ для расширения'
|
|
||||||
sel_2d_polygon: 'Полигональное 2D выделение: ЛКМ/ПКМ для добавления точек.'
|
|
||||||
sel_ellipsiod: 'Эллипсоидное выделение: ЛКМ - центр, ПКМ для расширения'
|
|
||||||
sel_sphere: 'Сферическое выделение: ЛКМ - центр, ПКМ для установки радиуса'
|
|
||||||
sel_cylindrical: 'Цилиндрическое выделение: ЛКМ - центр, ПКМ для расширения'
|
|
||||||
sel_max: '%s0 максимум точек.'
|
|
||||||
sel_fuzzy: 'Нечеткое выделение: ЛКМ, чтобы выбрать все условные блоки, ПКМ, чтобы добавить'
|
|
||||||
sel_convex_polyhedral: 'Выпуклое многогранное выделение: ЛКМ - первая вершина, ПКМ для добавления больше.'
|
|
||||||
sel_list: Для получения списка типов выделения используйте: //sel list
|
|
||||||
sel_modes: 'Выберите один из перечисленных режимов ниже:'
|
|
||||||
tips:
|
|
||||||
tip_sel_list: 'Совет: Смотрите различные режимы выделения - //sel list'
|
|
||||||
tip_select_connected: 'Совет: Выберите все подключенные блоки - //sel fuzzy'
|
|
||||||
tip_set_pos1: 'Совет: Используйте Pos1 как шаблон - //set pos1'
|
|
||||||
tip_farwand: 'Совет: Выберите удаленные точки - //farwand'
|
|
||||||
tip_fast: 'Совет: Установить быстро и без отмены, используя //fast'
|
|
||||||
tip_cancel: 'Совет: Вы можете //cancel от изменений в процессе'
|
|
||||||
tip_mask: 'Совет: Задайте маску глобального назначения - /gmask'
|
|
||||||
tip_mask_angle: 'Совет: Заменить верхний слой 3-20 блоков - //replace /-20:-3 bedrock'
|
|
||||||
tip_set_linear: 'Совет: Установка блоков - //set #l3d:wood,bedrock'
|
|
||||||
tip_surface_spread: 'Совет: Распространение плоской поверхности - //set #surfacespread:5:0:5:#existing'
|
|
||||||
tip_set_hand: 'Совет: Используйте свою текущую руку - //set hand'
|
|
||||||
tip_replace_id: 'Совет: Заменить только ID блока - //replace woodenstair #id:cobblestair'
|
|
||||||
tip_replace_light: 'Совет: Удалить источники света - //replace #brightness:1:15 0'
|
|
||||||
tip_tab_complete: 'Совет: Команда replace поддерживает автозаполение'
|
|
||||||
tip_flip: 'Совет: Отобразить - //flip'
|
|
||||||
tip_deform: 'Совет: Изменить - //deform'
|
|
||||||
tip_transform: 'Совет: Установка преобразования - //gtransform'
|
|
||||||
tip_copypaste: 'Совет: Вставка по клику - //br copypaste'
|
|
||||||
tip_source_mask: 'Совет: Установить маску источника - /gsmask <mask>'
|
|
||||||
tip_replace_marker: 'Совет: Замените блок с помощью полного буфера обмена - //replace wool #fullcopy'
|
|
||||||
tip_paste: 'Совет: Вставить - //paste'
|
|
||||||
tip_lazycopy: 'Совет: lazycopy быстрее'
|
|
||||||
tip_download: 'Совет: Попробовать - //download'
|
|
||||||
tip_rotate: 'Совет: Ориентация - //rotate'
|
|
||||||
tip_copy_pattern: 'Совет: Для использования шаблона используйте #copy'
|
|
||||||
tip_lazycut: 'Совет: Это безопаснее использовать //lazycut'
|
|
||||||
tip_regen_0: 'Совет: Используйте биом - /regen [biome]'
|
|
||||||
tip_regen_1: 'Совет: Используйте сид - /regen [biome] [seed]'
|
|
||||||
tip_biome_pattern: 'Tip: The #biome[forest] pattern can be used in any command'
|
|
||||||
tip_biome_mask: 'Tip: Restrict to a biome with the `$jungle` mask'
|
|
@ -1,298 +0,0 @@
|
|||||||
ınfo:
|
|
||||||
prefıx: "&lS&lO >"
|
|
||||||
fıle_deleted: "%s0 Başarıyla Silindi."
|
|
||||||
schematıc_pastıng: "Schematic Yapıştırılıyor. Geri Alınamaz."
|
|
||||||
lıghtıng_propogate_selectıon: "Aydınlatma %s0 Parçaya Ayrılmıştır. (Not: Aydınlatmayı Kaldırmak İçin: //removelight)"
|
|
||||||
updated_lıghtıng_selectıon: "Aydınlatma %s0 Chunk Olarak Güncellendi. (Paketlerin Gönderilmesi Zaman Alabilir)"
|
|
||||||
set_regıon: "Seçim, İzin Verilen Bölgenize Ayarlandı"
|
|
||||||
worldedıt_command_limit: "Lütfen Mevcut İşleminiz Tamamlanıncaya Kadar Bekleyin"
|
|
||||||
worldedıt_delayed: "FAWE İşleminizi Gerçekleştirirken Lütfen Bekleyin..."
|
|
||||||
worldedıt_run: "Şuan Yürütülüyor: %s"
|
|
||||||
worldedıt_complete: "Düzenleme Tamamlandı."
|
|
||||||
requıre_selectıon_ın_mask: "Seçiminizden %s Tanesi Maskenizin İçinde Değil. Yalnızca İzin Verilen Bölgelerde Düzenlemeler Yapabilirsiniz."
|
|
||||||
worldedıt_volume: "Hacim %current% Olamaz. Maksimum Hacim: %max%."
|
|
||||||
worldedıt_ıteratıons: "%current% Kere Tekrar Edemezsin. Maksimum %max% Defa Tekrar Edebilirsin."
|
|
||||||
worldedıt_unsafe: "Bu Komuta Erişim Engellendi"
|
|
||||||
worldedıt_dangerous_worldedıt: "İşlenmiş Güvensiz Düzenleme: %s0 %s1 Tarafından"
|
|
||||||
worldedıt_toggle_tıps_on: "FAWE İpuçları Devre Dışı Bırakıldı."
|
|
||||||
worldedıt_toggle_tıps_off: "FAWE İpuçları Aktif Edildi."
|
|
||||||
worldedıt_bypassed: "Şuanda FAWE Kısıtlamasını Atlıyor."
|
|
||||||
worldedıt_unmasked: "FAWE Düzenlemeleriniz Artık Sınırsız."
|
|
||||||
worldedıt_restrıcted: "FAWE Düzenlemeleriniz Artık Sınırlandırıldı."
|
|
||||||
worldedıt_oom_admın: |-
|
|
||||||
Mümkün Ayarlar:
|
|
||||||
- //fast
|
|
||||||
- Daha Küçük Düzenlemeler Yapın
|
|
||||||
- Daha Fazla Bellek Ayırın
|
|
||||||
- `max-memory-percent` Ayarını Kapatın
|
|
||||||
compressed: "Geçmiş Sıkıştırldı. %s0b Kaydedildi. (%s1x Daha Küçük)"
|
|
||||||
actıon_complete: "İşlem %s0 Saniyede Tamamlandı"
|
|
||||||
error:
|
|
||||||
worldedıt_extend: "Düzenlemeniz İzin Verilen Bölgenizin Dışına Çıkmış Olabilir."
|
|
||||||
web_unauthorızed: "Sadece Yapılandırılmış Siteden Gelen Bağlantılara İzin Verilir: %s0"
|
|
||||||
command_syntax: "Kullanımı: %s0"
|
|
||||||
no_perm: "Bunun İçin Yetkin YOK: %s0"
|
|
||||||
settıng_dısable: "Eksik Ayar: %s0"
|
|
||||||
brush_not_found: "Kullanılabilir Fırçalar: %s0"
|
|
||||||
brush_ıncompatıble: "Fırçalar Bu Sürüm İle Uyumlu Değil"
|
|
||||||
schematıc_not_found: "Schematic Bulunamadı: %s0"
|
|
||||||
no_regıon: "İzin Verilen Bölge YOK"
|
|
||||||
no_mask: "Henüz Maske Ayarlamamışsın"
|
|
||||||
not_player: "Dostum Bunun Icin Oyuncu Olmalisin!"
|
|
||||||
player_not_found: "Oyuncu Bulunamadı: %s0"
|
|
||||||
oom: |-
|
|
||||||
[Kritik] Düşük Bellek Algılandı < 1%. Aşağıdaki İşlemleri Yapmalısınız:
|
|
||||||
- WorldEdit Blok Yerleştirmesini Sonlandır
|
|
||||||
- WorldEdit Geçmişini Temizle
|
|
||||||
- Gereksiz Chunkları Sil
|
|
||||||
- Yaratıkları Öldür
|
|
||||||
- Çöpleri Topla
|
|
||||||
Not: Düşük Belleğin Sebebi WorldEdit Olabilir !!
|
|
||||||
worldedıt_some_faıls: "İzin Verilen Bölgenizin Dışında Olduğu İçin %s0 Blok Yerleştirilemedi."
|
|
||||||
worldedıt_some_faıls_blockbag: "Eksik Bloklar: %s0"
|
|
||||||
web:
|
|
||||||
generatıng_lınk: "Yükleniyor: %s, Lütfen Bekleyin..."
|
|
||||||
generatıng_lınk_faıled: "İndirme Linki Oluşturulurken Hata Oldu!"
|
|
||||||
download_lınk: "%s"
|
|
||||||
worldedıt:
|
|
||||||
general:
|
|
||||||
mask_dısabled: "Genel Maske Devre Dışı Bırakıldı"
|
|
||||||
mask: "Genel Maske Ayarlandı"
|
|
||||||
source_mask_dısabled: "Genel Kaynak Maskesi Devre Dışı Bırakıldı"
|
|
||||||
source_mask: "Genel Kaynak Maskesi Ayarlandı"
|
|
||||||
transform_dısabled: "Genel Dönüştürücü Devre Dışı Bırakıldı"
|
|
||||||
transform: "Genel Dönüştürücü Ayarlandı"
|
|
||||||
fast_enabled: "Hızlı Mod Aktifleştirildi. Geçmiş ve Düzenleme Kısıtlamaları Atlanacak."
|
|
||||||
fast_dısabled: "Hızlı Mod Devre Dışı Bırakıldı"
|
|
||||||
place_enabled: "Pozisyon 1'e YerleÅŸtirildi."
|
|
||||||
place_dısabled: "Durduğun Bloğa Yerleştiriliyor."
|
|
||||||
copy:
|
|
||||||
command_copy: "%s0 Blok Kopyalandı."
|
|
||||||
cut:
|
|
||||||
command_cut_slow: "%s0 Blok Kesildi."
|
|
||||||
command_cut_lazy: "Yapıştırılandan %s0 Blok Kaldırılacak"
|
|
||||||
paste:
|
|
||||||
command_paste: "Pano Yapıştırıldı: %s0"
|
|
||||||
rotate:
|
|
||||||
command_rotate: "Pano Döndürüldü"
|
|
||||||
flip:
|
|
||||||
command_flıpped: "Pano Çevirildi."
|
|
||||||
regen:
|
|
||||||
command_regen_0: "Bölge Yeniden Oluşturuldu."
|
|
||||||
command_regen_1: "Bölge Yeniden Oluşturuldu."
|
|
||||||
command_regen_2: "Bölge Yeniden Oluşturuldu."
|
|
||||||
tree:
|
|
||||||
command_tree: "%s0 Ağacı Oluşturuldu."
|
|
||||||
command_pumpkın: "%s0 Kabak Yamaları Oluşturuldu."
|
|
||||||
flora:
|
|
||||||
command_flora: "%s0 Bitki Örtüsü Oluşturuldu."
|
|
||||||
history:
|
|
||||||
command_hıstory_clear: "Geçiş Temizlendi"
|
|
||||||
command_redo_error: "Geriye Alma Eylemi Bulunamadı."
|
|
||||||
command_hıstory_other_error: "%s0 Oturumu Bulunamadı."
|
|
||||||
command_redo_success: "Geri Almayı Geri Alma Başarılı."
|
|
||||||
command_undo_error: "Geri Alınacak Bir İşlem Bulunamadı."
|
|
||||||
command_undo_success: "Geri Alma Başarılı."
|
|
||||||
operation:
|
|
||||||
operatıon: "İşlem Sıraya Alındı: (%s0)"
|
|
||||||
selection:
|
|
||||||
selectıon_wand: "Sol_Tıklama: 1. Pozisyonu Ayarlar; Sağ_Tıklama: 2. Pozisyonu Ayarlar"
|
|
||||||
selectıon_wand_dısable: "Wand Devre Dışı Bırakıldı."
|
|
||||||
selectıon_wand_enable: "Wand Aktifleştirildi."
|
|
||||||
selectıon_chunk: "Chunk Seçildi: (%s0)"
|
|
||||||
selectıon_chunks: "Chunk Seçildi: (%s0) - (%s1)"
|
|
||||||
selectıon_contract: "Bölge %s0 Blok Taahhüt Edildi."
|
|
||||||
selectıon_count: "%s0 Blok Sayıldı."
|
|
||||||
selectıon_dıstr: "Toplam Blok: %s0"
|
|
||||||
selectıon_expand: "Bölge %s0 Blok Genişletildi"
|
|
||||||
selectıon_expand_vert: "Bölge %s0 Blok Genişletildi (Yukarıdan Aşağıya)"
|
|
||||||
selectıon_ınset: "Bölge Girişi"
|
|
||||||
selectıon_outset: "Bölge Başlangıcı"
|
|
||||||
selectıon_shıft: "Bölge Kaydırıldı"
|
|
||||||
selectıon_cleared: "Seçimler Temizlendi"
|
|
||||||
navigation:
|
|
||||||
navıgatıon_wand_error: "Dostum Gidecek Bir Yer YOK"
|
|
||||||
anvil:
|
|
||||||
world_ıs_loaded: "Dünya Yürütülürken Kullanılmamlıdır. Dünya Kaydını Sil, ya da Geçersiz Kılmak İçin -f Kullanın (Önce Kaydedin)"
|
|
||||||
brush:
|
|
||||||
brush_reset: "Fırçanı Sıfırla."
|
|
||||||
brush_none: "Dostum Fırça Tutmuyorsun!"
|
|
||||||
brush_scroll_action_set: "Kaydırma Eylemini %s0 Olarak Ayarla"
|
|
||||||
brush_scroll_action_unset: "Kaydırma Eylemini Kaldır"
|
|
||||||
brush_vısual_mode_set: "Görsel Modu %s0 Olarak Ayarla"
|
|
||||||
brush_target_mode_set: "Hedef Modu %s0 Olarak Ayarla"
|
|
||||||
brush_target_mask_set: "Hedef Maskesini %s0 Olarak Ayarla"
|
|
||||||
brush_target_offset_set: "Hedef Ofsetini %s0 Olarak Ayarla"
|
|
||||||
brush_equıpped: "Donatılmış Fırça: %s0"
|
|
||||||
brush_try_other: |-
|
|
||||||
Belki Daha Uygun Başka Fırçalar Vardır:
|
|
||||||
- //br height [radius=5] [#clipboard|file=null] [rotation=0] [yscale=1.00]
|
|
||||||
brush_copy: "Kopyalamak İçin Bir Nesnenin Tabanına Sol_Tıklayın, Yapıştırmak İçin Sağ_Tıklayın. Gerekirse Fırça Yarıçapını Arttırın."
|
|
||||||
brush_heıght_ınvalıd: "Geçersiz Yükseklik Haritası Dosyası: (%s0)"
|
|
||||||
brush_smooth: "Not: Çıkıntıları veya Mağaraları Yumuşatmak İstiyorsanız Harman Fırçasını Kullanın."
|
|
||||||
brush_splıne: "Nokta Eklemek İçin Tıklayın, Bitirmek İçin Aynı Noktaya Tıklayın"
|
|
||||||
brush_lıne_prımary: "%s0 Noktası Eklendi, Satırı Oluşturmak İçin Başka Bir Konuma Tıklayın"
|
|
||||||
brush_lıne_secondary: "Delik Oluşturuldu"
|
|
||||||
brush_splıne_prımary_2: "Pozisyon Eklendi, Katılmak İçin Aynı Noktaya Tıklayın!"
|
|
||||||
brush_splıne_secondary_error: "Yeterince Pozisyon Ayarlanmadı!"
|
|
||||||
brush_splıne_secondary: "Delik Oluşturuldu"
|
|
||||||
brush_sıze: "Fırça Boyutu Ayarlandı"
|
|
||||||
brush_range: "Fırça Menzili Ayarlandı"
|
|
||||||
brush_mask_dısabled: "Fırça Maskesi Devre Dışı Bırakıldı"
|
|
||||||
brush_mask: "Fırça Maskesi Ayarlandı"
|
|
||||||
brush_source_mask_dısabled: "Fırça Kaynak Maskesi Devre Dışı Bırakıldı"
|
|
||||||
brush_source_mask: "Fırça Kaynak Maskesi Ayarlandı"
|
|
||||||
brush_transform_dısabled: "Fırça Dönüştürücü Devre Dışı Bırakıldı"
|
|
||||||
brush_transform: "Fırça Dönüştürücü Ayarlandı"
|
|
||||||
brush_materıal: "Fırça Malzemesi Ayarlandı"
|
|
||||||
rollback:
|
|
||||||
rollback_element: "Tamamlanmadı: %s0"
|
|
||||||
tool:
|
|
||||||
tool_ınspect: "%s0 Bağlı Aleti Kontrol Edin."
|
|
||||||
tool_ınspect_ınfo: "%s0 Değiştirildi: %s1'den %s2 %s3 Önce"
|
|
||||||
tool_ınspect_ınfo_footer: "Toplam: %s0 Değiştirildi."
|
|
||||||
tool_none: "Elindeki Eşyaya Hiçbir Özellik Bağlı Değil."
|
|
||||||
tool_ınfo: "Bilgi Aracı Bağlı: %s0."
|
|
||||||
tool_tree: "Ağaç Aracı Bağlı: %s0."
|
|
||||||
tool_tree_error: "%s0 Tipinde Ağaç Bulunamadı."
|
|
||||||
tool_repl: "Blok Değiştirici Bağlı: %s0."
|
|
||||||
tool_cycler: "Blok Verisi Değiştirici Bağlı: %s0."
|
|
||||||
tool_flood_fıll: "Blok Dolgu Aleti Bağlı: %s0."
|
|
||||||
tool_range_error: "Maksimum Mesafe: %s0."
|
|
||||||
tool_radıus_error: "İzin Verilen Maksimum Mesafe: %s0."
|
|
||||||
tool_deltree: "Ağaç Kaldırıcı Bağlı: %s0."
|
|
||||||
tool_farwand: "FarWant Bağlı: %s0."
|
|
||||||
tool_lrbuıld_bound: "Uzun Menzilli Yapı Aracı %s0 Bağlı."
|
|
||||||
tool_lrbuıld_ınfo: "%s0 Ayarlamak İçin Sol_Tıklayın; %s1 Ayarlamak İçin Sağ_Tıklayın."
|
|
||||||
superpıckaxe_enabled: "Süper Kazma Açıldı."
|
|
||||||
superpıckaxe_dısabled: "Süper Kazma Kapatıldı."
|
|
||||||
superpıckaxe_area_enabled: "Mod Değiştirildi. Bir Kazmaya Sol_Tıklayın. Kapatmak İçin: //"
|
|
||||||
snapshot:
|
|
||||||
snapshot_loaded: "%s0 Bellek Kopyası Yüklendi; Şuan Kuruluyor..."
|
|
||||||
snapshot_set: "Bellek Kopyası Ayarlandı: %s0"
|
|
||||||
snapshot_newest: "En Son Yayınlanan Bellek Kopyasını Kullanıyorsunuz."
|
|
||||||
snapshot_lıst_header: "(%s0) Dünyası İçin Bellek Kopyaları:"
|
|
||||||
snapshot_lıst_footer: "/snap use <SnapShot> ya da /snap use latest Komutlarını Kullanarak Bellek Kopyasını Değiştirebilirsin."
|
|
||||||
biome:
|
|
||||||
bıome_lıst_header: "Biyomlar (Sayfa: %s0/%s1):"
|
|
||||||
bıome_changed: "Biyomlar %s0 Sütunda Değiştirildi."
|
|
||||||
utility:
|
|
||||||
kıll_success: "%s1 Yarıçapında %s0 Yaratık Öldürüldü."
|
|
||||||
nothıng_confırmed: "Onay Bekleyen Hiçbir İşlemin YOK."
|
|
||||||
page_footer: "Bir Sonraki Sayfa İçin: %s0"
|
|
||||||
schematic:
|
|
||||||
schematıc_format: "Kullanılabilir Formatlar: (İsim: Arama_İsmi)"
|
|
||||||
schematıc_loaded: "%s0 Başarıyla Yüklendi. Yapıştırmak İçin: //paste"
|
|
||||||
schematıc_saved: "%s0 Başarıyla Kaydedildi."
|
|
||||||
schematıc_page: "Sayfa %s Olmak Zorunda"
|
|
||||||
schematıc_none: "Böyle Bir Schematic Bulunamadı."
|
|
||||||
schematıc_lıst: "Kullanılabilir Dosyalar (Dosya_Adı: Format) [%s0/%s1]:"
|
|
||||||
schematıc_lıst_elem: " - %s0 - %s1"
|
|
||||||
clipboard:
|
|
||||||
clıpboard_urı_not_found: "%s0 Yüklü Değilsin"
|
|
||||||
clıpboard_cleared: "Pano Temizlendi"
|
|
||||||
clıpboard_ınvalıd_format: "Belirsiz Pano Formatı: %s0"
|
|
||||||
visitor:
|
|
||||||
vısıtor_block: "%s0 Blok Etkilendi"
|
|
||||||
vısıtor_entıty: "%s0 Yaratık Etkilendi"
|
|
||||||
vısıtor_flat: "%s0 Sütun Etkilendi"
|
|
||||||
selector:
|
|
||||||
selector_fuzzy_pos1: "Bölge Belirlendi ve Genişletildi: %s0 %s1"
|
|
||||||
selector_fuzzy_pos2: "GeniÅŸletme Eklendi: %s0 %s1"
|
|
||||||
selector_pos: "%s0 Konumu Artık: %s1 (%s2)"
|
|
||||||
selector_center: "Merkez Ayarlandı: %s0 (%s1)"
|
|
||||||
selector_radıus: "Yarıçap Ayarlandı: %s0 (%s1)"
|
|
||||||
selector_expanded: "Bölge Genişletildi: %s0 (%s1)"
|
|
||||||
selector_ınvalıd_coordınates: "Bilinmeyen Koordinatlar: %s0"
|
|
||||||
selector_already_set: "Pozisyon Zaten Ayarlandı."
|
|
||||||
selector_set_default: "Varsayılan Bölge Seçiciniz: %s0"
|
|
||||||
timezone:
|
|
||||||
tımezone_set: "Bu Oturum İçin Belirlenen Saat Dilimi: %s0"
|
|
||||||
tımezone_dısplay: "Bu Saat Dilimindeki Geçerli Saat: %s0"
|
|
||||||
command:
|
|
||||||
command_ınvalıd_syntax: "Komut Düzgün Kullanılmadı."
|
|
||||||
help:
|
|
||||||
command_clarıfyıng_bracket: "%s0 İçin Açıklama Ekini Belirlendi"
|
|
||||||
help_suggest: "%s0 Bulunamadı. Belki Bunlardan Biri İşe Yarar: %s1 ?"
|
|
||||||
help_header_categorıes: "Komut Türleri"
|
|
||||||
help_header_subcommands: "Alt Komutlar"
|
|
||||||
help_header_command: "Yardım: %s0"
|
|
||||||
help_ıtem_allowed: "%s0 - %s1"
|
|
||||||
help_ıtem_denıed: "%s0 - %s1"
|
|
||||||
help_header: "Yardım: Sayfa %s0/%s1"
|
|
||||||
help_footer: "Wiki: https://git.io/vSKE5"
|
|
||||||
progress:
|
|
||||||
progress_message: "%s1/%s0 (%s2%) @%s3cps %s4s Kaldı"
|
|
||||||
progress_fınıshed: "[ TAMAMLANDI! ]"
|
|
||||||
cancel:
|
|
||||||
worldedıt_cancel_count: "%s0 Düzenleme İptal Edildi."
|
|
||||||
worldedıt_cancel_reason_confırm: "Seçiminiz Çok Büyük (%s0 -> %s1). //confirm Kullanarak %s2 İşlemini Onaylayabilirsiniz"
|
|
||||||
worldedıt_cancel_reason: "WorldEdit İşleminiz İptal Edildi: %s0."
|
|
||||||
worldedıt_cancel_reason_manual: "Elle İptal Edildi"
|
|
||||||
worldedıt_cancel_reason_low_memory: "Düşük Bellek"
|
|
||||||
worldedıt_cancel_reason_max_changes: "Çok Fazla Blok Değiştirildi"
|
|
||||||
worldedıt_cancel_reason_max_checks: "Çok Fazla Blok Denemesi Var"
|
|
||||||
worldedıt_cancel_reason_max_tıles: "Çok Fazla Blok Durumu Var"
|
|
||||||
worldedıt_cancel_reason_max_entıtıes: "Çok Fazla Yaratık Var"
|
|
||||||
worldedıt_cancel_reason_max_ıteratıons: "Maksimum Yenileme"
|
|
||||||
worldedıt_cancel_reason_outsıde_regıon: "İzin Verilen Bölge Dışında. (Esgeçmek İçin: /wea, ya da `region-restrictions` Bölümünü config.yml'den Kapatın)"
|
|
||||||
worldedıt_cancel_reason_no_regıon: "İzin Verilen Bölge YOK. (Esgeçmek İçin: /wea, ya da `region-restrictions` Bölümünü config.yml'den Kapatın)"
|
|
||||||
worldedıt_faıled_load_chunk: "Bazı Chunkların Yüklemesi Atlandı: %s0;%s1 chunk-wait Süresini Arttırmayı Deneyin."
|
|
||||||
outside world:
|
|
||||||
worldedıt_cancel_reason_outsıde_world: Cancel
|
|
||||||
navigation:
|
|
||||||
ascend_faıl: "Yukarıda Boş Nokta YOK."
|
|
||||||
ascended_plural: "Yükseltilen Seviye: %s0"
|
|
||||||
ascended_sıngular: "Bir Seviyeye Yükseltildi."
|
|
||||||
unstuck: "HOP Buradayım!"
|
|
||||||
descend_faıl: "Altında Serbest Nokta YOK."
|
|
||||||
descend_plural: "Ä°ndirilen Seviye: %s0"
|
|
||||||
descend_sıngular: "Bir Seviyeye İndirildi."
|
|
||||||
whoosh: "Amaniiinnn!"
|
|
||||||
poof: "Amaniiinnn!"
|
|
||||||
thru_faıl: "Dostum Önünde Serbest Nokta YOK."
|
|
||||||
no_block: "Görünürde ya da Uzaklarda Blok Yok!"
|
|
||||||
up_faıl: "Dostum Galiba Tepende Bir Blok Var."
|
|
||||||
selection:
|
|
||||||
sel_cuboıd: "Küboid: 1. Nokta İçin Sol_Tıklayın, 2. Nokta İçin Sağ_Tıklayın"
|
|
||||||
sel_cuboıd_extend: "Küboid: Başlangıç Noktası İçin Sol_Tıklayın, Uzatmak İçin Sağ_Tıklayın"
|
|
||||||
sel_2d_polygon: "2D Çokgen Seçici: Nokta Eklemek İçin Sağ ya da Sol_Tıklayın."
|
|
||||||
sel_ellıpsıod: "Elipsoit Seçici: Sol_Tıklama=Merkez, Uzatmak İçin Sağ_Tıklayın"
|
|
||||||
sel_sphere: "Küre Seçici: Sol_Tıklama=Merkez&/, Yarıçapı Ayarlamak İçin Sağ_Tıklayın"
|
|
||||||
sel_cylındrıcal: "Silindirik Seçici: Sol_Tıklama=Merkez, Uzatmak İçin Sağ Tıklayın."
|
|
||||||
sel_max: "Maksimum Puan: %s0."
|
|
||||||
sel_fuzzy: "Bulanık Seçici: Şarta Bağlı Tüm Blokları Seçmek İçin Sol_Tıklayın, Eklemek İçin Sağ_Tıklayın. Hava Boşluğunu Seçmek İçin: //pos1."
|
|
||||||
sel_convex_polyhedral: "Konveks Çokyüzlü Seçici: Sok_Tıklama=İlk_Vertex, Daha Fazlası İçin Sağ Tıklayın."
|
|
||||||
sel_lıst: "Seçim Türlerinin Listesi İçin: //sel list"
|
|
||||||
sel_modes: "Aşağıdaki Modlardan Birini Seçin:"
|
|
||||||
tips:
|
|
||||||
tıp_sel_lıst: "Hatırlatma: Farklı Seçim Modlarını Görmek İçin: //sel list"
|
|
||||||
tıp_select_connected: "Hatırlatma: Bağlı Tüm Blokları Seçmek İçin: //sel fuzzy"
|
|
||||||
tıp_set_pos1: "Hatırlatma: 1. Pozisyonu Desen Olarak Ayarlamak İçin: //set pos1"
|
|
||||||
tıp_farwand: "Hatırlatma: Uzak Noktaları Seçmek İçin: //farwand"
|
|
||||||
tıp_lazycut: "Hatırlatma: Bu Komutu Kullanmak Daha Güvenli: //lazycut"
|
|
||||||
tıp_fast: "Hatırlatma: Hızlıca Geri Almak İçin: //fast"
|
|
||||||
tıp_cancel: "Hatırlatma: Devam Eden Düzenlemeyi İptal Etmek İçin: //cancel"
|
|
||||||
tıp_mask: "Hatırlatma: Genel Hedef Maskesi Ayarlamak İçin: /gmask"
|
|
||||||
tıp_mask_angle: "Hatırlatma: 3-20 Bloktan Yukarısını Değiştirmek İçin: //replace /[-20][-3] bedrock"
|
|
||||||
tıp_set_lınear: "Hatırlatma: Blokları Doğrusal Olarak Ayarlamak İçin: //set #l3d[wood,bedrock]"
|
|
||||||
tıp_surface_spread: "Hatırlatma: Düz Yüzeye Yaymak İçin: //set #surfacespread[5][0][5][#existing]"
|
|
||||||
tıp_set_hand: "Hatırlatma: Şuanki Elini Kullanmak İçin: //set hand"
|
|
||||||
tıp_replace_ıd: "Hatırlatma: Blok ID'sini Değiştirmek İçin: //replace woodenstair #id[cobblestair]"
|
|
||||||
tıp_replace_lıght: "Hatırlatma: Işık Kaynaklarını Kaldırmak İçin: //replace #brightness[1][15] 0"
|
|
||||||
tıp_tab_complete: "Hatırlatma: Replace Komutu Sekme Tamamlamayı Destekler"
|
|
||||||
tıp_flıp: "Hatırlatma: Ayna İçin: //flip"
|
|
||||||
tıp_deform: "Hatırlatma: Yeniden Şekillendirmek İçin: //deform"
|
|
||||||
tıp_transform: "Hatırlatma: Dönüşüm Yapmak İçin: //gtransform"
|
|
||||||
tıp_copypaste: "Hatırlatma: Tıklayarak Yapıştırmak İçin: //br copypaste"
|
|
||||||
tıp_source_mask: "Hatırlatma: Kaynak Maskesi Ayarlamak İçin: /gsmask <mask>"
|
|
||||||
tıp_replace_marker: "Hatırlatma: Tamamen Yerleştirmek İçin: //replace wool #fullcopy"
|
|
||||||
tıp_paste: "Hatırlatma: Yapıştırmak İçin: //paste"
|
|
||||||
tıp_lazycopy: "Hatırlatma: &lLazyCopy Daha Hızlıdır"
|
|
||||||
tıp_download: "Hatırlatma: İndirmek İçin: //download"
|
|
||||||
tıp_rotate: "Hatırlatma: Yönlendirmek İçin: //rotate"
|
|
||||||
tıp_copy_pattern: "Hatırlatma: Desen Olarak Kullanmak İçin: #copy"
|
|
||||||
tıp_regen_0: "Hatırlatma: Biyomları Kullanmak İçin: /regen <Biyom>"
|
|
||||||
tıp_regen_1: "Hatırlatma: Biyom Değeri İçin: /regen <Biyom> <Değer>"
|
|
||||||
tıp_bıome_pattern: "Hatırlatma: #biome[forest] Deseni Herhangi Bir Komutta Kullanılabilir"
|
|
||||||
tıp_bıome_mask: "Hatırlatma: `$jungle` Maskesini Bir Biyoma Kısıtla"
|
|
@ -5,6 +5,7 @@ applyPlatformAndCoreConfiguration()
|
|||||||
applyShadowConfiguration()
|
applyShadowConfiguration()
|
||||||
|
|
||||||
apply(plugin = "fabric-loom")
|
apply(plugin = "fabric-loom")
|
||||||
|
apply(plugin = "java-library")
|
||||||
|
|
||||||
val minecraftVersion = "1.15.2"
|
val minecraftVersion = "1.15.2"
|
||||||
val yarnMappings = "1.15.2+build.14:v2"
|
val yarnMappings = "1.15.2+build.14:v2"
|
||||||
|
@ -1,19 +1,23 @@
|
|||||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
import net.minecraftforge.gradle.common.util.RunConfig
|
import net.minecraftforge.gradle.common.util.RunConfig
|
||||||
import net.minecraftforge.gradle.userdev.UserDevExtension
|
|
||||||
import net.minecraftforge.gradle.mcp.task.GenerateSRG
|
import net.minecraftforge.gradle.mcp.task.GenerateSRG
|
||||||
|
import net.minecraftforge.gradle.userdev.UserDevExtension
|
||||||
import net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace
|
import net.minecraftforge.gradle.userdev.tasks.RenameJarInPlace
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("net.minecraftforge.gradle")
|
id("net.minecraftforge.gradle")
|
||||||
|
`java-library`
|
||||||
}
|
}
|
||||||
|
|
||||||
applyPlatformAndCoreConfiguration()
|
applyPlatformAndCoreConfiguration()
|
||||||
applyShadowConfiguration()
|
applyShadowConfiguration()
|
||||||
|
|
||||||
val minecraftVersion = "1.14.4"
|
val minecraftVersion = "1.16.1"
|
||||||
val mappingsMinecraftVersion = "1.14.3"
|
val nextMajorMinecraftVersion: String = minecraftVersion.split('.').let { (useless, major) ->
|
||||||
val forgeVersion = "28.1.0"
|
"$useless.${major.toInt() + 1}"
|
||||||
|
}
|
||||||
|
val mappingsMinecraftVersion = "1.16"
|
||||||
|
val forgeVersion = "32.0.92"
|
||||||
|
|
||||||
configurations.all {
|
configurations.all {
|
||||||
resolutionStrategy {
|
resolutionStrategy {
|
||||||
@ -22,8 +26,8 @@ configurations.all {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"compile"(project(":worldedit-core"))
|
"api"(project(":worldedit-core"))
|
||||||
"compile"("org.apache.logging.log4j:log4j-slf4j-impl:2.11.2")
|
"implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.11.2")
|
||||||
|
|
||||||
"minecraft"("net.minecraftforge:forge:$minecraftVersion-$forgeVersion")
|
"minecraft"("net.minecraftforge:forge:$minecraftVersion-$forgeVersion")
|
||||||
}
|
}
|
||||||
@ -31,7 +35,7 @@ dependencies {
|
|||||||
configure<UserDevExtension> {
|
configure<UserDevExtension> {
|
||||||
mappings(mapOf(
|
mappings(mapOf(
|
||||||
"channel" to "snapshot",
|
"channel" to "snapshot",
|
||||||
"version" to "20190913-$mappingsMinecraftVersion"
|
"version" to "20200514-$mappingsMinecraftVersion"
|
||||||
))
|
))
|
||||||
|
|
||||||
accessTransformer(file("src/main/resources/META-INF/accesstransformer.cfg"))
|
accessTransformer(file("src/main/resources/META-INF/accesstransformer.cfg"))
|
||||||
@ -57,40 +61,44 @@ configure<BasePluginConvention> {
|
|||||||
|
|
||||||
tasks.named<Copy>("processResources") {
|
tasks.named<Copy>("processResources") {
|
||||||
// this will ensure that this task is redone when the versions change.
|
// this will ensure that this task is redone when the versions change.
|
||||||
inputs.property("version", project.ext["internalVersion"])
|
val properties = mapOf(
|
||||||
inputs.property("forgeVersion", forgeVersion)
|
"version" to project.ext["internalVersion"],
|
||||||
|
"forgeVersion" to forgeVersion,
|
||||||
|
"minecraftVersion" to minecraftVersion,
|
||||||
|
"nextMajorMinecraftVersion" to nextMajorMinecraftVersion
|
||||||
|
)
|
||||||
|
properties.forEach { (key, value) ->
|
||||||
|
inputs.property(key, value)
|
||||||
|
}
|
||||||
|
|
||||||
// replace stuff in mcmod.info, nothing else
|
// replace stuff in mcmod.info, nothing else
|
||||||
from(sourceSets["main"].resources.srcDirs) {
|
from(sourceSets["main"].resources.srcDirs) {
|
||||||
include("META-INF/mods.toml")
|
include("META-INF/mods.toml")
|
||||||
|
|
||||||
// replace version and mcversion
|
// replace version and mcversion
|
||||||
expand(
|
expand(properties)
|
||||||
"version" to project.ext["internalVersion"],
|
|
||||||
"forgeVersion" to forgeVersion
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// copy everything else except the mcmod.info
|
// copy everything else except the mcmod.info
|
||||||
from(sourceSets["main"].resources.srcDirs) {
|
from(sourceSets["main"].resources.srcDirs) {
|
||||||
exclude("META-INF/mods.toml")
|
exclude("META-INF/mods.toml")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// copy from -core resources as well
|
||||||
|
from(project(":worldedit-core").tasks.named("processResources"))
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named<Jar>("jar") {
|
addJarManifest(includeClasspath = false)
|
||||||
manifest {
|
|
||||||
attributes("Class-Path" to CLASSPATH,
|
|
||||||
"WorldEdit-Version" to project.version)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named<ShadowJar>("shadowJar") {
|
tasks.named<ShadowJar>("shadowJar") {
|
||||||
dependencies {
|
dependencies {
|
||||||
relocate("org.slf4j", "com.sk89q.worldedit.slf4j")
|
relocate("org.slf4j", "com.sk89q.worldedit.slf4j")
|
||||||
relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.log4jbridge")
|
relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.log4jbridge")
|
||||||
|
relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4")
|
||||||
|
|
||||||
include(dependency("org.slf4j:slf4j-api"))
|
include(dependency("org.slf4j:slf4j-api"))
|
||||||
include(dependency("org.apache.logging.log4j:log4j-slf4j-impl"))
|
include(dependency("org.apache.logging.log4j:log4j-slf4j-impl"))
|
||||||
|
include(dependency("org.antlr:antlr4-runtime"))
|
||||||
include(dependency("de.schlichtherle:truezip"))
|
include(dependency("de.schlichtherle:truezip"))
|
||||||
include(dependency("net.java.truevfs:truevfs-profile-default_2.13"))
|
include(dependency("net.java.truevfs:truevfs-profile-default_2.13"))
|
||||||
include(dependency("org.mozilla:rhino-runtime"))
|
include(dependency("org.mozilla:rhino-runtime"))
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
applyLibrariesConfiguration()
|
applyLibrariesConfiguration()
|
||||||
|
constrainDependenciesToLibsCore()
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven {
|
maven {
|
||||||
@ -6,6 +7,7 @@ repositories {
|
|||||||
url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
url = uri("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
"shade"("net.kyori:text-adapter-bukkit:${Versions.TEXT_EXTRAS}")
|
"shade"("net.kyori:text-adapter-bukkit:${Versions.TEXT_EXTRAS}")
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
applyLibrariesConfiguration()
|
applyLibrariesConfiguration()
|
||||||
|
constrainDependenciesToLibsCore()
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven {
|
maven {
|
||||||
@ -8,4 +9,4 @@ repositories {
|
|||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
"shade"("net.kyori:text-adapter-spongeapi:${Versions.TEXT_EXTRAS}")
|
"shade"("net.kyori:text-adapter-spongeapi:${Versions.TEXT_EXTRAS}")
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren