Merge remote-tracking branch 'local/forge-1.14' into forge-1.15
# Conflicts: # build.gradle.kts # gradle.properties # src/main/kotlin/mods/betterfoliage/BetterFoliageMod.kt # src/main/kotlin/mods/betterfoliage/client/Client.kt # src/main/kotlin/mods/betterfoliage/client/integration/ForestryIntegration.kt # src/main/kotlin/mods/betterfoliage/client/integration/RubberIntegration.kt # src/main/kotlin/mods/betterfoliage/client/render/EntityRisingSoulFX.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderCactus.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderGrass.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderLeaves.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderLilypad.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderLog.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderMycelium.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderNetherrack.kt # src/main/kotlin/mods/betterfoliage/client/render/RenderReeds.kt # src/main/kotlin/mods/betterfoliage/client/texture/GrassRegistry.kt # src/main/kotlin/mods/betterfoliage/client/texture/LeafParticleRegistry.kt # src/main/kotlin/mods/betterfoliage/client/texture/LeafRegistry.kt # src/main/kotlin/mods/betterfoliage/client/texture/Utils.kt # src/main/kotlin/mods/betterfoliage/config/Config.kt # src/main/kotlin/mods/betterfoliage/config/DelegatingConfig.kt # src/main/kotlin/mods/betterfoliage/config/MainConfig.kt # src/main/kotlin/mods/betterfoliage/resource/discovery/Delegate.kt # src/main/kotlin/mods/betterfoliage/resource/generated/CenteringTextureGenerator.kt # src/main/kotlin/mods/betterfoliage/resource/generated/GeneratedGrass.kt # src/main/kotlin/mods/octarinecore/client/resource/AsyncSpriteProviderManager.kt # src/main/kotlin/mods/octarinecore/client/resource/ModelDiscovery.kt # src/main/kotlin/mods/octarinecore/client/resource/ResourceGeneration.kt # src/main/kotlin/mods/octarinecore/client/resource/ResourceHandler.kt
This commit is contained in:
@@ -6,10 +6,9 @@ plugins {
|
||||
apply(plugin = "org.spongepowered.mixin")
|
||||
|
||||
repositories {
|
||||
maven("http://files.minecraftforge.net/maven")
|
||||
maven("https://files.minecraftforge.net/maven")
|
||||
maven("https://repo.spongepowered.org/maven")
|
||||
maven("https://minecraft.curseforge.com/api/maven")
|
||||
maven("https://maven.shedaniel.me/")
|
||||
maven("https://www.cursemaven.com")
|
||||
}
|
||||
|
||||
@@ -51,7 +50,6 @@ kotlin {
|
||||
target.compilations.configureEach {
|
||||
kotlinOptions.jvmTarget = "1.8"
|
||||
kotlinOptions.freeCompilerArgs += listOf("-Xno-param-assertions", "-Xno-call-assertions")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ org.gradle.daemon=false
|
||||
group = com.github.octarine-noise
|
||||
jarName = BetterFoliage-Forge
|
||||
|
||||
version = 2.6.3
|
||||
version = 2.6.4
|
||||
|
||||
mcVersion = 1.15.2
|
||||
forgeVersion = 31.2.44
|
||||
|
||||
@@ -1,12 +1,20 @@
|
||||
package mods.betterfoliage
|
||||
|
||||
import mods.betterfoliage.config.BlockConfig
|
||||
import mods.betterfoliage.config.Config
|
||||
import mods.betterfoliage.config.MainConfig
|
||||
import mods.betterfoliage.util.tryDefault
|
||||
import mods.octarinecore.common.config.clothGuiRoot
|
||||
import mods.octarinecore.common.config.forgeSpecRoot
|
||||
import net.alexwells.kottle.FMLKotlinModLoadingContext
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.screen.Screen
|
||||
import net.minecraft.util.ResourceLocation
|
||||
import net.minecraftforge.fml.ExtensionPoint.CONFIGGUIFACTORY
|
||||
import net.minecraftforge.fml.ExtensionPoint.DISPLAYTEST
|
||||
import net.minecraftforge.fml.ModLoadingContext
|
||||
import net.minecraftforge.fml.common.Mod
|
||||
import net.minecraftforge.fml.config.ModConfig
|
||||
import org.apache.commons.lang3.tuple.Pair
|
||||
import org.apache.logging.log4j.Level
|
||||
import org.apache.logging.log4j.LogManager
|
||||
import org.apache.logging.log4j.simple.SimpleLogger
|
||||
@@ -14,12 +22,16 @@ import org.apache.logging.log4j.util.PropertiesUtil
|
||||
import java.io.File
|
||||
import java.io.PrintStream
|
||||
import java.util.Properties
|
||||
import java.util.function.BiFunction
|
||||
import java.util.function.BiPredicate
|
||||
import java.util.function.Supplier
|
||||
|
||||
@Mod(BetterFoliageMod.MOD_ID)
|
||||
object BetterFoliageMod {
|
||||
const val MOD_ID = "betterfoliage"
|
||||
|
||||
val bus = FMLKotlinModLoadingContext.get().modEventBus
|
||||
val config = MainConfig()
|
||||
|
||||
val detailLogStream = PrintStream(File("logs/betterfoliage.log").apply {
|
||||
parentFile.mkdirs()
|
||||
@@ -32,7 +44,30 @@ object BetterFoliageMod {
|
||||
)
|
||||
|
||||
init {
|
||||
ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, Config.build())
|
||||
val ctx = ModLoadingContext.get()
|
||||
|
||||
val configSpec = config.forgeSpecRoot()
|
||||
ctx.registerConfig(ModConfig.Type.CLIENT, configSpec)
|
||||
|
||||
// Add config GUI extension if Cloth Config is available
|
||||
val clothLoaded = tryDefault(false) { Class.forName("me.shedaniel.forge.clothconfig2.api.ConfigBuilder"); true }
|
||||
if (clothLoaded) ctx.registerExtensionPoint(CONFIGGUIFACTORY) { BiFunction<Minecraft, Screen, Screen> { client, parent ->
|
||||
config.clothGuiRoot(
|
||||
parentScreen = parent,
|
||||
prefix = listOf(MOD_ID),
|
||||
background = ResourceLocation("minecraft:textures/block/spruce_log.png"),
|
||||
saveAction = { configSpec.save() }
|
||||
)
|
||||
} }
|
||||
|
||||
// Accept-all version tester (we are client-only)
|
||||
ctx.registerExtensionPoint(DISPLAYTEST) {
|
||||
Pair.of(
|
||||
Supplier { "Honk if you see this!" },
|
||||
BiPredicate<String, Boolean> { _, _ -> true }
|
||||
)
|
||||
}
|
||||
|
||||
Minecraft.getInstance().resourcePackList.addPackFinder(BetterFoliage.generatedPack.finder)
|
||||
bus.register(BlockConfig)
|
||||
BetterFoliage.init()
|
||||
|
||||
@@ -23,6 +23,8 @@ import net.minecraftforge.client.model.pipeline.BlockInfo
|
||||
import net.minecraftforge.client.model.pipeline.VertexLighterFlat
|
||||
import java.util.*
|
||||
|
||||
typealias Sprite = TextureAtlasSprite
|
||||
|
||||
// Java
|
||||
val String = ClassRef<String>("java.lang.String")
|
||||
val List = ClassRef<List<*>>("java.util.List")
|
||||
|
||||
@@ -8,149 +8,6 @@ import net.minecraftforge.eventbus.api.SubscribeEvent
|
||||
import net.minecraftforge.fml.config.ModConfig
|
||||
import java.util.Random
|
||||
|
||||
private fun featureEnable() = boolean(true).lang("enabled")
|
||||
|
||||
abstract class PopulationConfigCategory() : ConfigCategory() {
|
||||
abstract val enabled: Boolean
|
||||
abstract val population: Int
|
||||
|
||||
fun enabled(random: Random) = random.nextInt(64) < population && enabled
|
||||
}
|
||||
|
||||
// Config singleton
|
||||
object Config : DelegatingConfig(BetterFoliageMod.MOD_ID, BetterFoliageMod.MOD_ID) {
|
||||
|
||||
val enabled by boolean(true)
|
||||
val nVidia by boolean(false)
|
||||
|
||||
object leaves : ConfigCategory() {
|
||||
val enabled by featureEnable()
|
||||
val snowEnabled by boolean(true)
|
||||
val hOffset by double(max=0.4, default=0.2).lang("hOffset")
|
||||
val vOffset by double(max=0.4, default=0.1).lang("vOffset")
|
||||
val size by double(min=0.75, max=2.5, default=1.4).lang("size")
|
||||
val dense by boolean(false)
|
||||
val hideInternal by boolean(true)
|
||||
val saturationThreshold by double(default=0.1)
|
||||
}
|
||||
|
||||
object shortGrass : PopulationConfigCategory(){
|
||||
override val enabled by featureEnable()
|
||||
val myceliumEnabled by boolean(true)
|
||||
val snowEnabled by boolean(true)
|
||||
val hOffset by double(max=0.4, default=0.2).lang("hOffset")
|
||||
val heightMin by double(min=0.1, max=2.5, default=0.6).lang("heightMin")
|
||||
val heightMax by double(min=0.1, max=2.5, default=0.8).lang("heightMax")
|
||||
val size by double(min=0.5, max=1.5, default=1.0).lang("size")
|
||||
override val population by int(max=64, default=64).lang("population")
|
||||
val useGenerated by boolean(false)
|
||||
val shaderWind by boolean(true).lang("shaderWind")
|
||||
val saturationThreshold by double(default=0.1)
|
||||
}
|
||||
|
||||
object connectedGrass : ConfigCategory(){
|
||||
val enabled by featureEnable()
|
||||
val snowEnabled by boolean(false)
|
||||
}
|
||||
|
||||
object roundLogs : ConfigCategory(){
|
||||
val enabled by featureEnable()
|
||||
val radiusSmall by double(max=0.5, default=0.25)
|
||||
val radiusLarge by double(max=0.5, default=0.44)
|
||||
val dimming by double(default = 0.7)
|
||||
val connectSolids by boolean(false)
|
||||
val lenientConnect by boolean(true)
|
||||
val connectPerpendicular by boolean(true)
|
||||
val connectGrass by boolean(true)
|
||||
val defaultY by boolean(false)
|
||||
val zProtection by double(min = 0.9, default = 0.99)
|
||||
}
|
||||
|
||||
object cactus : ConfigCategory(){
|
||||
val enabled by featureEnable()
|
||||
val size by double(min=1.0, max=2.0, default=1.3).lang("size")
|
||||
val sizeVariation by double(max=0.5, default=0.1)
|
||||
val hOffset by double(max=0.5, default=0.1).lang("hOffset")
|
||||
}
|
||||
|
||||
object lilypad : PopulationConfigCategory(){
|
||||
override val enabled by featureEnable()
|
||||
val hOffset by double(max=0.25, default=0.1).lang("hOffset")
|
||||
override val population by int(max=64, default=16, min=0)
|
||||
val shaderWind by boolean(true).lang("shaderWind")
|
||||
}
|
||||
|
||||
object reed : PopulationConfigCategory(){
|
||||
override val enabled by featureEnable()
|
||||
val hOffset by double(max=0.4, default=0.2).lang("hOffset")
|
||||
val heightMin by double(min=1.5, max=3.5, default=1.7).lang("heightMin")
|
||||
val heightMax by double(min=1.5, max=3.5, default=2.2).lang("heightMax")
|
||||
override val population by int(max=64, default=32).lang("population")
|
||||
val minBiomeTemp by double(default=0.4)
|
||||
val minBiomeRainfall by double(default=0.4)
|
||||
// val biomes by biomeList { it.filterTemp(0.4f, null) && it.filterRain(0.4f, null) }
|
||||
val shaderWind by boolean(true).lang("shaderWind")
|
||||
}
|
||||
|
||||
object algae : PopulationConfigCategory(){
|
||||
override val enabled by featureEnable()
|
||||
val hOffset by double(max=0.25, default=0.1).lang("hOffset")
|
||||
val size by double(min=0.5, max=1.5, default=1.0).lang("size")
|
||||
val heightMin by double(min=0.1, max=1.5, default=0.5).lang("heightMin")
|
||||
val heightMax by double(min=0.1, max=1.5, default=1.0).lang("heightMax")
|
||||
override val population by int(max=64, default=48).lang("population")
|
||||
// val biomes by biomeList { it.filterClass("river", "ocean") }
|
||||
val shaderWind by boolean(true).lang("shaderWind")
|
||||
}
|
||||
|
||||
object coral : PopulationConfigCategory(){
|
||||
override val enabled by featureEnable()
|
||||
val shallowWater by boolean(false)
|
||||
val hOffset by double(max=0.4, default=0.2).lang("hOffset")
|
||||
val vOffset by double(max=0.4, default=0.1).lang("vOffset")
|
||||
val size by double(min=0.5, max=1.5, default=0.7).lang("size")
|
||||
val crustSize by double(min=0.5, max=1.5, default=1.4)
|
||||
val chance by int(max=64, default=32)
|
||||
override val population by int(max=64, default=48).lang("population")
|
||||
// val biomes by biomeList { it.filterClass("river", "ocean", "beach") }
|
||||
}
|
||||
|
||||
object netherrack : ConfigCategory(){
|
||||
val enabled by featureEnable()
|
||||
val hOffset by double(max=0.4, default=0.2).lang("hOffset")
|
||||
val heightMin by double(min=0.1, max=1.5, default=0.2).lang("heightMin")
|
||||
val heightMax by double(min=0.1, max=1.5, default=0.5).lang("heightMax")
|
||||
val size by double(min=0.5, max=1.5, default=1.0).lang("size")
|
||||
}
|
||||
|
||||
object fallingLeaves : ConfigCategory(){
|
||||
val enabled by featureEnable()
|
||||
val speed by double(min=0.01, max=0.15, default=0.05)
|
||||
val windStrength by double(min=0.1, max=2.0, default=0.5)
|
||||
val stormStrength by double(min=0.1, max=2.0, default=0.8)
|
||||
val size by double(min=0.25, max=1.5, default=0.75).lang("size")
|
||||
val chance by double(min=0.001, max=1.0, default=0.02)
|
||||
val perturb by double(min=0.01, max=1.0, default=0.25)
|
||||
val lifetime by double(min=1.0, max=15.0, default=5.0)
|
||||
val opacityHack by boolean(true)
|
||||
}
|
||||
|
||||
object risingSoul : ConfigCategory(){
|
||||
val enabled by featureEnable()
|
||||
val chance by double(min=0.001, max=1.0, default=0.02)
|
||||
val perturb by double(min=0.01, max=0.25, default=0.05)
|
||||
val headSize by double(min=0.25, max=1.5, default=1.0)
|
||||
val trailSize by double(min=0.25, max=1.5, default=0.75)
|
||||
val opacity by double(min=0.05, max=1.0, default=0.5)
|
||||
val sizeDecay by double(min=0.5, max=1.0, default=0.97)
|
||||
val opacityDecay by double(min=0.5, max=1.0, default=0.97)
|
||||
val lifetime by double(min=1.0, max=15.0, default=4.0)
|
||||
val trailLength by int(min=2, max=128, default=48)
|
||||
val trailDensity by int(min=1, max=16, default=3)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
object BlockConfig {
|
||||
private val list = mutableListOf<Any>()
|
||||
|
||||
|
||||
172
src/main/kotlin/mods/betterfoliage/config/Delegate.kt
Normal file
172
src/main/kotlin/mods/betterfoliage/config/Delegate.kt
Normal file
@@ -0,0 +1,172 @@
|
||||
package mods.octarinecore.common.config
|
||||
|
||||
import me.shedaniel.forge.clothconfig2.api.AbstractConfigListEntry
|
||||
import me.shedaniel.forge.clothconfig2.api.ConfigBuilder
|
||||
import me.shedaniel.forge.clothconfig2.api.ConfigEntryBuilder
|
||||
import me.shedaniel.forge.clothconfig2.gui.entries.SubCategoryListEntry
|
||||
import net.minecraft.client.gui.screen.Screen
|
||||
import net.minecraft.client.resources.I18n
|
||||
import net.minecraft.util.ResourceLocation
|
||||
import net.minecraftforge.common.ForgeConfigSpec
|
||||
import java.util.*
|
||||
import kotlin.properties.ReadOnlyProperty
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
const val MAX_LINE_LEN = 30
|
||||
|
||||
fun DelegatingConfigGroup.forgeSpecRoot() =
|
||||
ForgeConfigSpec.Builder()
|
||||
.also { createForgeNode(it) }
|
||||
.build()
|
||||
|
||||
fun DelegatingConfigGroup.clothGuiRoot(
|
||||
parentScreen: Screen,
|
||||
prefix: List<String>,
|
||||
background: ResourceLocation,
|
||||
saveAction: ()->Unit
|
||||
) = ConfigBuilder.create()
|
||||
.setParentScreen(parentScreen)
|
||||
.setTitle(I18n.format((prefix + "title").joinToString(".")))
|
||||
.setDefaultBackgroundTexture(background)
|
||||
.setSavingRunnable(saveAction)
|
||||
.also { builder ->
|
||||
createClothNode(prefix).value.forEach { rootCategory ->
|
||||
builder.getOrCreateCategory("main").addEntry(rootCategory)
|
||||
}
|
||||
}
|
||||
.build()
|
||||
|
||||
sealed class DelegatingConfigNode {
|
||||
abstract fun createClothNode(path: List<String>): AbstractConfigListEntry<*>
|
||||
}
|
||||
|
||||
abstract class DelegatingConfigValue<T> : DelegatingConfigNode(), ReadOnlyProperty<DelegatingConfigGroup, T> {
|
||||
lateinit var forgeValue: ForgeConfigSpec.ConfigValue<T>
|
||||
abstract fun createForgeNode(builder: ForgeConfigSpec.Builder, name: String)
|
||||
}
|
||||
|
||||
open class DelegatingConfigGroup : DelegatingConfigNode() {
|
||||
val children = mutableMapOf<String, DelegatingConfigNode>()
|
||||
|
||||
fun createForgeNode(builder: ForgeConfigSpec.Builder) {
|
||||
children.forEach { (name, node) ->
|
||||
when(node) {
|
||||
is DelegatingConfigGroup -> {
|
||||
builder.push(name)
|
||||
node.createForgeNode(builder)
|
||||
builder.pop()
|
||||
}
|
||||
is DelegatingConfigValue<*> -> node.createForgeNode(builder, name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun createClothNode(path: List<String>): SubCategoryListEntry {
|
||||
val builder = ConfigEntryBuilder.create()
|
||||
.startSubCategory(path.joinToString(".").translate())
|
||||
.setTooltip(*path.joinToString(".").translateTooltip())
|
||||
.setExpanded(false)
|
||||
children.forEach { (name, node) -> builder.add(node.createClothNode(path + name)) }
|
||||
return builder.build()
|
||||
}
|
||||
}
|
||||
|
||||
interface DelegatingConfigGroupFactory<T> {
|
||||
operator fun provideDelegate(parent: DelegatingConfigGroup, property: KProperty<*>): ReadOnlyProperty<DelegatingConfigGroup, T>
|
||||
}
|
||||
|
||||
fun <T: DelegatingConfigGroup> subNode(factory: ()->T) = object : DelegatingConfigGroupFactory<T> {
|
||||
override operator fun provideDelegate(parent: DelegatingConfigGroup, property: KProperty<*>): ReadOnlyProperty<DelegatingConfigGroup, T> {
|
||||
val child = factory()
|
||||
parent.children[property.name] = child
|
||||
return object : ReadOnlyProperty<DelegatingConfigGroup, T> {
|
||||
override fun getValue(thisRef: DelegatingConfigGroup, property: KProperty<*>) = child
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface DelegatingConfigValueFactory<T> {
|
||||
fun createForgeNode(builder: ForgeConfigSpec.Builder, name: String): ForgeConfigSpec.ConfigValue<T>
|
||||
fun createClothNode(prop: CachingConfigProperty<T>, path: List<String>): AbstractConfigListEntry<T>
|
||||
|
||||
operator fun provideDelegate(parent: DelegatingConfigGroup, property: KProperty<*>): ReadOnlyProperty<DelegatingConfigGroup, T> {
|
||||
return object : CachingConfigProperty<T>(parent, property) {
|
||||
override fun createForgeNode(builder: ForgeConfigSpec.Builder, name: String) {
|
||||
forgeValue = this@DelegatingConfigValueFactory.createForgeNode(builder, name)
|
||||
}
|
||||
|
||||
override fun createClothNode(path: List<String>): AbstractConfigListEntry<*> = createClothNode(this, path)
|
||||
|
||||
}.apply { parent.children[property.name] = this }
|
||||
}
|
||||
}
|
||||
|
||||
abstract class CachingConfigProperty<T>(parent: DelegatingConfigGroup, property: KProperty<*>) : DelegatingConfigValue<T>() {
|
||||
var value: T? = null
|
||||
override fun getValue(thisRef: DelegatingConfigGroup, property: KProperty<*>) =
|
||||
value ?: forgeValue.get().apply { value = this }
|
||||
}
|
||||
|
||||
fun String.translate() = I18n.format(this)
|
||||
fun String.translateTooltip(lineLength: Int = MAX_LINE_LEN) = ("$this.tooltip").translate().let { tooltip ->
|
||||
tooltip.splitToSequence(" ").fold(mutableListOf("")) { tooltips, word ->
|
||||
if (tooltips.last().length + word.length < lineLength) {
|
||||
tooltips[tooltips.lastIndex] += "$word "
|
||||
} else {
|
||||
tooltips.add("$word ")
|
||||
}
|
||||
tooltips
|
||||
}.map { it.trim() }.toTypedArray()
|
||||
}
|
||||
|
||||
fun boolean(
|
||||
default: Boolean,
|
||||
langKey: (List<String>)->String = { it.joinToString(".") },
|
||||
valueOverride: (Boolean)->Boolean = { it }
|
||||
) = object : DelegatingConfigValueFactory<Boolean> {
|
||||
override fun createForgeNode(builder: ForgeConfigSpec.Builder, name: String) =
|
||||
builder.define(name, default)
|
||||
|
||||
override fun createClothNode(prop: CachingConfigProperty<Boolean>, path: List<String>) = ConfigEntryBuilder.create()
|
||||
.startBooleanToggle(langKey(path).translate(), prop.forgeValue.get())
|
||||
.setTooltip(langKey(path).let { if (I18n.hasKey("$it.tooltip")) Optional.of(it.translateTooltip()) else Optional.empty() })
|
||||
.setSaveConsumer { prop.forgeValue.set(valueOverride(it)); prop.value = null }
|
||||
.build()
|
||||
}
|
||||
|
||||
fun integer(
|
||||
default: Int = 0, min: Int = 0, max: Int,
|
||||
langKey: (List<String>)->String = { it.joinToString(".") },
|
||||
valueOverride: (Int)->Int = { it }
|
||||
) = object : DelegatingConfigValueFactory<Int> {
|
||||
override fun createForgeNode(builder: ForgeConfigSpec.Builder, name: String) =
|
||||
builder.defineInRange(name, default, min, max)
|
||||
|
||||
override fun createClothNode(prop: CachingConfigProperty<Int>, path: List<String>) = ConfigEntryBuilder.create()
|
||||
.startIntField(langKey(path).translate(), prop.forgeValue.get())
|
||||
.setTooltip(langKey(path).let { if (I18n.hasKey("$it.tooltip")) Optional.of(it.translateTooltip()) else Optional.empty() })
|
||||
.setMin(min).setMax(max)
|
||||
.setSaveConsumer { prop.forgeValue.set(valueOverride(it)); prop.value = null }
|
||||
.build()
|
||||
}
|
||||
|
||||
fun double(
|
||||
default: Double = 0.0, min: Double = 0.0, max: Double = 1.0,
|
||||
langKey: (List<String>)->String = { it.joinToString(".") },
|
||||
valueOverride: (Double)->Double = { it }
|
||||
) = object : DelegatingConfigValueFactory<Double> {
|
||||
override fun createForgeNode(builder: ForgeConfigSpec.Builder, name: String) =
|
||||
builder.defineInRange(name, default, min, max)
|
||||
|
||||
override fun createClothNode(prop: CachingConfigProperty<Double>, path: List<String>) = ConfigEntryBuilder.create()
|
||||
.startDoubleField(langKey(path).translate(), prop.forgeValue.get())
|
||||
.setTooltip(langKey(path).let { if (I18n.hasKey("$it.tooltip")) Optional.of(it.translateTooltip()) else Optional.empty() })
|
||||
.setMin(min).setMax(max)
|
||||
.setSaveConsumer { prop.forgeValue.set(valueOverride(it)); prop.value = null }
|
||||
.build()
|
||||
}
|
||||
|
||||
val recurring = { path: List<String> -> "${path.first()}.${path.last()}" }
|
||||
fun fakeCategory(name: String) = { names: List<String> ->
|
||||
(listOf(names.first(), name) + names.drop(1)).joinToString(".")
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
@file:JvmName("DelegatingConfigKt")
|
||||
|
||||
package mods.betterfoliage.config
|
||||
|
||||
import mods.betterfoliage.util.reflectDelegates
|
||||
import mods.betterfoliage.util.reflectNestedObjects
|
||||
import net.minecraftforge.common.ForgeConfigSpec
|
||||
import kotlin.properties.ReadOnlyProperty
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
open class DelegatingConfig(val modId: String, val langPrefix: String) {
|
||||
fun build() = ForgeConfigSpec.Builder().apply { ConfigBuildContext(langPrefix, emptyList(), this).addCategory(this@DelegatingConfig) }.build()
|
||||
}
|
||||
|
||||
class ConfigBuildContext(val langPrefix: String, val path: List<String>, val builder: ForgeConfigSpec.Builder) {
|
||||
|
||||
fun addCategory(configObj: Any) {
|
||||
configObj.reflectNestedObjects.forEach { (name, category) ->
|
||||
builder.push(name)
|
||||
descend(name).addCategory(category)
|
||||
builder.pop()
|
||||
}
|
||||
configObj.reflectDelegates(ConfigDelegate::class.java).forEach { (name, delegate) ->
|
||||
descend(name).apply { delegate.addToBuilder(this) }
|
||||
}
|
||||
}
|
||||
|
||||
fun descend(pathName: String) = ConfigBuildContext(langPrefix, path + pathName, builder)
|
||||
}
|
||||
|
||||
open class ConfigCategory(val comment: String? = null) {
|
||||
}
|
||||
|
||||
abstract class ConfigDelegate<T> : ReadOnlyProperty<Any, T> {
|
||||
lateinit var configValue: ForgeConfigSpec.ConfigValue<T>
|
||||
var cachedValue: T? = null
|
||||
|
||||
override fun getValue(thisRef: Any, property: KProperty<*>): T {
|
||||
if (cachedValue == null) cachedValue = configValue.get()
|
||||
return cachedValue!!
|
||||
}
|
||||
|
||||
abstract fun getConfigValue(name: String, builder: ForgeConfigSpec.Builder): ForgeConfigSpec.ConfigValue<T>
|
||||
fun addToBuilder(ctx: ConfigBuildContext) {
|
||||
val langKey = ctx.langPrefix + "." + (langPrefixOverride ?: ctx.path.joinToString("."))
|
||||
ctx.builder.translation(langKey)
|
||||
configValue = getConfigValue(ctx.path.last(), ctx.builder)
|
||||
}
|
||||
|
||||
var langPrefixOverride: String? = null
|
||||
fun lang(prefix: String) = apply { langPrefixOverride = prefix }
|
||||
|
||||
}
|
||||
|
||||
class DelegatingBooleanValue(val defaultValue: Boolean) : ConfigDelegate<Boolean>() {
|
||||
override fun getConfigValue(name: String, builder: ForgeConfigSpec.Builder) = builder.define(name, defaultValue)
|
||||
}
|
||||
|
||||
class DelegatingIntValue(
|
||||
val minValue: Int = 0,
|
||||
val maxValue: Int = 1,
|
||||
val defaultValue: Int = 0
|
||||
) : ConfigDelegate<Int>() {
|
||||
override fun getConfigValue(name: String, builder: ForgeConfigSpec.Builder) = builder.defineInRange(name, defaultValue, minValue, maxValue)
|
||||
}
|
||||
|
||||
class DelegatingLongValue(
|
||||
val minValue: Long = 0,
|
||||
val maxValue: Long = 1,
|
||||
val defaultValue: Long = 0
|
||||
) : ConfigDelegate<Long>() {
|
||||
override fun getConfigValue(name: String, builder: ForgeConfigSpec.Builder) = builder.defineInRange(name, defaultValue, minValue, maxValue)
|
||||
}
|
||||
|
||||
class DelegatingDoubleValue(
|
||||
val minValue: Double = 0.0,
|
||||
val maxValue: Double = 1.0,
|
||||
val defaultValue: Double = 0.0
|
||||
) : ConfigDelegate<Double>() {
|
||||
override fun getConfigValue(name: String, builder: ForgeConfigSpec.Builder) = builder.defineInRange(name, defaultValue, minValue, maxValue)
|
||||
}
|
||||
|
||||
// ============================
|
||||
// Delegate factory methods
|
||||
// ============================
|
||||
fun double(min: Double = 0.0, max: Double = 1.0, default: Double) = DelegatingDoubleValue(min, max, default)
|
||||
fun int(min: Int = 0, max: Int, default: Int) = DelegatingIntValue(min, max, default)
|
||||
fun long(min: Long = 0, max: Long, default: Long) = DelegatingLongValue(min, max, default)
|
||||
fun boolean(default: Boolean) = DelegatingBooleanValue(default)
|
||||
162
src/main/kotlin/mods/betterfoliage/config/MainConfig.kt
Normal file
162
src/main/kotlin/mods/betterfoliage/config/MainConfig.kt
Normal file
@@ -0,0 +1,162 @@
|
||||
package mods.betterfoliage.config
|
||||
|
||||
import mods.betterfoliage.BetterFoliageMod
|
||||
import mods.octarinecore.common.config.DelegatingConfigGroup
|
||||
import mods.octarinecore.common.config.boolean
|
||||
import mods.octarinecore.common.config.double
|
||||
import mods.octarinecore.common.config.integer
|
||||
import mods.octarinecore.common.config.recurring
|
||||
import mods.octarinecore.common.config.subNode
|
||||
import java.util.Random
|
||||
|
||||
fun featureEnable(default: Boolean = true) = boolean(default, langKey = recurring)
|
||||
|
||||
val Config get() = BetterFoliageMod.config
|
||||
|
||||
abstract class PopulationConfigGroup() : DelegatingConfigGroup() {
|
||||
abstract val enabled: Boolean
|
||||
abstract val population: Int
|
||||
|
||||
fun enabled(random: Random) = random.nextInt(64) < population && enabled
|
||||
}
|
||||
|
||||
class MainConfig : DelegatingConfigGroup() {
|
||||
val enabled by boolean(true, langKey = { "betterfoliage.global.enabled" })
|
||||
val nVidia by boolean(false)
|
||||
|
||||
val leaves by subNode(::LeavesConfig)
|
||||
val shortGrass by subNode(::ShortGrassConfig)
|
||||
val connectedGrass by subNode(::ConnectedGrassConfig)
|
||||
val roundLogs by subNode(::RoundLogConfig)
|
||||
val cactus by subNode(::CactusConfig)
|
||||
val lilypad by subNode(::LilypadConfig)
|
||||
val reed by subNode(::ReedConfig)
|
||||
val algae by subNode(::AlgaeConfig)
|
||||
val coral by subNode(::CoralConfig)
|
||||
val netherrack by subNode(::NetherrackConfig)
|
||||
val fallingLeaves by subNode(::FallingLeavesConfig)
|
||||
val risingSoul by subNode(::RisingSoulConfig)
|
||||
}
|
||||
|
||||
class LeavesConfig : DelegatingConfigGroup() {
|
||||
val enabled by featureEnable()
|
||||
val snowEnabled by boolean(true)
|
||||
val hOffset by double(max=0.4, default=0.2, langKey = recurring)
|
||||
val vOffset by double(max=0.4, default=0.1, langKey = recurring)
|
||||
val size by double(min=0.75, max=2.5, default=1.4, langKey = recurring)
|
||||
val dense by boolean(false)
|
||||
val hideInternal by boolean(true)
|
||||
val saturationThreshold by double(default=0.1, langKey = recurring)
|
||||
}
|
||||
|
||||
class ShortGrassConfig : PopulationConfigGroup() {
|
||||
override val enabled by boolean(true)
|
||||
val myceliumEnabled by boolean(true)
|
||||
val snowEnabled by boolean(true)
|
||||
val hOffset by double(max=0.4, default=0.2, langKey = recurring)
|
||||
val heightMin by double(min=0.1, max=2.5, default=0.6, langKey = recurring)
|
||||
val heightMax by double(min=0.1, max=2.5, default=0.8, langKey = recurring)
|
||||
val size by double(min=0.5, max=1.5, default=1.0, langKey = recurring)
|
||||
override val population by integer(max=64, default=64)
|
||||
val useGenerated by boolean(false)
|
||||
val shaderWind by boolean(true, langKey = recurring)
|
||||
val saturationThreshold by double(default=0.1, langKey = recurring)
|
||||
}
|
||||
|
||||
class ConnectedGrassConfig() : DelegatingConfigGroup() {
|
||||
val enabled by boolean(true)
|
||||
val snowEnabled by boolean(false)
|
||||
}
|
||||
|
||||
class RoundLogConfig() : DelegatingConfigGroup() {
|
||||
val enabled by featureEnable()
|
||||
val radiusSmall by double(max=0.5, default=0.25)
|
||||
val radiusLarge by double(max=0.5, default=0.44)
|
||||
val dimming by double(default = 0.7)
|
||||
val connectSolids by boolean(false)
|
||||
val lenientConnect by boolean(true)
|
||||
val connectPerpendicular by boolean(true)
|
||||
val connectGrass by boolean(true)
|
||||
val defaultY by boolean(false)
|
||||
val zProtection by double(min = 0.9, default = 0.99)
|
||||
}
|
||||
|
||||
class CactusConfig() : DelegatingConfigGroup() {
|
||||
val enabled by featureEnable()
|
||||
val size by double(min=0.5, max=1.5, default=0.8, langKey = recurring)
|
||||
val sizeVariation by double(max=0.5, default=0.1)
|
||||
val hOffset by double(max=0.5, default=0.1, langKey = recurring)
|
||||
}
|
||||
|
||||
class LilypadConfig() : PopulationConfigGroup() {
|
||||
override val enabled by featureEnable()
|
||||
val hOffset by double(max=0.25, default=0.1, langKey = recurring)
|
||||
override val population by integer(max=64, default=16, min=0)
|
||||
val shaderWind by boolean(true, langKey = recurring)
|
||||
}
|
||||
|
||||
class ReedConfig() : PopulationConfigGroup() {
|
||||
override val enabled by featureEnable()
|
||||
val hOffset by double(max=0.4, default=0.2, langKey = recurring)
|
||||
val heightMin by double(min=1.5, max=3.5, default=1.7, langKey = recurring)
|
||||
val heightMax by double(min=1.5, max=3.5, default=2.2, langKey = recurring)
|
||||
override val population by integer(max=64, default=32, langKey = recurring)
|
||||
val minBiomeTemp by double(default=0.4)
|
||||
val minBiomeRainfall by double(default=0.4)
|
||||
val shaderWind by boolean(true, langKey = recurring)
|
||||
}
|
||||
|
||||
class AlgaeConfig() : PopulationConfigGroup() {
|
||||
override val enabled by featureEnable()
|
||||
val hOffset by double(max=0.25, default=0.1, langKey = recurring)
|
||||
val size by double(min=0.5, max=1.5, default=1.0, langKey = recurring)
|
||||
val heightMin by double(min=0.1, max=1.5, default=0.5, langKey = recurring)
|
||||
val heightMax by double(min=0.1, max=1.5, default=1.0, langKey = recurring)
|
||||
override val population by integer(max=64, default=48, langKey = recurring)
|
||||
val shaderWind by boolean(true, langKey = recurring)
|
||||
}
|
||||
|
||||
class CoralConfig() : PopulationConfigGroup() {
|
||||
override val enabled by featureEnable()
|
||||
val shallowWater by boolean(false)
|
||||
val hOffset by double(max=0.4, default=0.2, langKey = recurring)
|
||||
val vOffset by double(max=0.4, default=0.1, langKey = recurring)
|
||||
val size by double(min=0.5, max=1.5, default=0.7, langKey = recurring)
|
||||
val crustSize by double(min=0.5, max=1.5, default=1.4)
|
||||
val chance by integer(max=64, default=32)
|
||||
override val population by integer(max=64, default=48, langKey = recurring)
|
||||
}
|
||||
|
||||
class NetherrackConfig() : DelegatingConfigGroup() {
|
||||
val enabled by featureEnable()
|
||||
val hOffset by double(max=0.4, default=0.2, langKey = recurring)
|
||||
val heightMin by double(min=0.1, max=1.5, default=0.6, langKey = recurring)
|
||||
val heightMax by double(min=0.1, max=1.5, default=0.8, langKey = recurring)
|
||||
val size by double(min=0.5, max=1.5, default=1.0, langKey = recurring)
|
||||
}
|
||||
|
||||
class FallingLeavesConfig() : DelegatingConfigGroup() {
|
||||
val enabled by featureEnable()
|
||||
val speed by double(min=0.01, max=0.15, default=0.05)
|
||||
val windStrength by double(min=0.1, max=2.0, default=0.5)
|
||||
val stormStrength by double(min=0.1, max=2.0, default=0.8)
|
||||
val size by double(min=0.25, max=1.5, default=0.75, langKey = recurring)
|
||||
val chance by double(min=0.001, max=1.0, default=0.02)
|
||||
val perturb by double(min=0.01, max=1.0, default=0.25)
|
||||
val lifetime by double(min=1.0, max=15.0, default=5.0)
|
||||
val opacityHack by boolean(true)
|
||||
}
|
||||
|
||||
class RisingSoulConfig() : DelegatingConfigGroup() {
|
||||
val enabled by featureEnable()
|
||||
val chance by double(min=0.001, max=1.0, default=0.02)
|
||||
val perturb by double(min=0.01, max=0.25, default=0.05)
|
||||
val headSize by double(min=0.25, max=1.5, default=1.0)
|
||||
val trailSize by double(min=0.25, max=1.5, default=0.75)
|
||||
val opacity by double(min=0.05, max=1.0, default=0.5)
|
||||
val sizeDecay by double(min=0.5, max=1.0, default=0.97)
|
||||
val opacityDecay by double(min=0.5, max=1.0, default=0.97)
|
||||
val lifetime by double(min=1.0, max=15.0, default=4.0)
|
||||
val trailLength by integer(min=2, max=128, default=48)
|
||||
val trailDensity by integer(min=1, max=16, default=3)
|
||||
}
|
||||
175
src/main/resources/assets/betterfoliage/lang/en_us.json
Normal file
175
src/main/resources/assets/betterfoliage/lang/en_us.json
Normal file
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"key.betterfoliage.gui": "Open Settings",
|
||||
|
||||
"betterfoliage.title": "Better Foliage configuration",
|
||||
|
||||
"betterfoliage.global.enabled": "Enable Mod",
|
||||
"betterfoliage.global.enabled.tooltip": "If set to false, BetterFoliage will not render anything",
|
||||
"betterfoliage.nVidia": "nVidia GPU",
|
||||
"betterfoliage.nVidia.tooltip": "Specify whether you have an nVidia GPU",
|
||||
|
||||
"betterfoliage.enabled": "Enable",
|
||||
"betterfoliage.enabled.tooltip": "Is this feature enabled?",
|
||||
"betterfoliage.hOffset": "Horizontal offset",
|
||||
"betterfoliage.hOffset.tooltip": "The distance this element is shifted horizontally, in blocks",
|
||||
"betterfoliage.vOffset": "Vertical offset",
|
||||
"betterfoliage.vOffset.tooltip": "The distance this element is shifted vertically, in blocks",
|
||||
"betterfoliage.size": "Size",
|
||||
"betterfoliage.size.tooltip": "Size of this element",
|
||||
"betterfoliage.heightMin": "Minimum height",
|
||||
"betterfoliage.heightMin.tooltip": "Minimum height of element",
|
||||
"betterfoliage.heightMax": "Maximum height",
|
||||
"betterfoliage.heightMax.tooltip": "Maximum height of element",
|
||||
"betterfoliage.population": "Population",
|
||||
"betterfoliage.population.tooltip": "Chance (N in 64) that an eligible block will have this feature",
|
||||
"betterfoliage.shaderWind": "Shader wind effects",
|
||||
"betterfoliage.shaderWind.tooltip": "Apply wind effects from ShaderMod shaders to this element?",
|
||||
"betterfoliage.distance": "Distance limit",
|
||||
"betterfoliage.distance.tooltip": "Maximum distance from player at which to render this feature",
|
||||
"betterfoliage.saturationThreshold": "Saturation threshold",
|
||||
"betterfoliage.saturationThreshold.tooltip": "Color saturation cutoff between \"colorless\" blocks (using biome color) and \"colorful\" blocks (using their own specific color)",
|
||||
|
||||
"betterfoliage.rendererror": "§a[BetterFoliage]§f Error rendering block %s at position %s",
|
||||
|
||||
"betterfoliage.shaders": "Shader configuration",
|
||||
"betterfoliage.shaders.tooltip": "Configure integration with shaders",
|
||||
"betterfoliage.shaders.leavesId": "Leaves ID",
|
||||
"betterfoliage.shaders.leavesId.tooltip": "Block ID reported to shader programs for all kinds of leaves. If your shader uses a §6block.properties§e file, you'll probably need to change this to match the shader's mappings.",
|
||||
"betterfoliage.shaders.grassId": "Grass ID",
|
||||
"betterfoliage.shaders.grassId.tooltip": "Block ID reported to shader programs for all grasses and crops. If your shader uses a §6block.properties§e file, you'll probably need to change this to match the shader's mappings.",
|
||||
|
||||
"betterfoliage.leaves": "Extra Leaves",
|
||||
"betterfoliage.leaves.tooltip": "Extra round leaves on leaf blocks",
|
||||
"betterfoliage.leaves.dense": "Dense mode",
|
||||
"betterfoliage.leaves.dense.tooltip": "Dense mode has more round leaves",
|
||||
"betterfoliage.leaves.snowEnabled": "Enable snow",
|
||||
"betterfoliage.leaves.snowEnabled.tooltip": "Enable snow on extra leaves?",
|
||||
"betterfoliage.leaves.hideInternal": "Hide internal leaves",
|
||||
"betterfoliage.leaves.hideInternal.tooltip": "Skip rendering extra leaves if leaf block is completely surrounded by other leaves or solid blocks",
|
||||
|
||||
"betterfoliage.shortGrass": "Short Grass & Mycelium",
|
||||
"betterfoliage.shortGrass.tooltip": "Tufts of grass/mycelium on top of appropriate blocks",
|
||||
"betterfoliage.shortGrass.useGenerated": "Use generated texture for grass",
|
||||
"betterfoliage.shortGrass.useGenerated.tooltip": "Generated texture is made by slicing the tallgrass texture from the active resource pack in half",
|
||||
"betterfoliage.shortGrass.myceliumEnabled": "Enable Mycelium",
|
||||
"betterfoliage.shortGrass.myceliumEnabled.tooltip": "Is this feature enabled for mycelium blocks?",
|
||||
"betterfoliage.shortGrass.grassEnabled": "Enable Grass",
|
||||
"betterfoliage.shortGrass.grassEnabled.tooltip": "Is this feature enabled for grass blocks?",
|
||||
"betterfoliage.shortGrass.snowEnabled": "Enable under snow",
|
||||
"betterfoliage.shortGrass.snowEnabled.tooltip": "Enable on snowed grass blocks?",
|
||||
|
||||
"betterfoliage.connectedGrass": "Connected grass textures",
|
||||
"betterfoliage.connectedGrass.tooltip": "Connected grass textures",
|
||||
"betterfoliage.connectedGrass.enabled": "Enable",
|
||||
"betterfoliage.connectedGrass.enabled.tooltip": "If there is a grass block on top of a dirt block: draw grass top texture on all grass block sides,",
|
||||
"betterfoliage.connectedGrass.snowEnabled": "Enable under snow",
|
||||
"betterfoliage.connectedGrass.snowEnabled.tooltip": "Enable on snowed grass blocks?",
|
||||
|
||||
"betterfoliage.hangingGrass": "Hanging Grass",
|
||||
"betterfoliage.hangingGrass.tooltip": "Grass tufts hanging down from the top edges of grass blocks",
|
||||
"betterfoliage.hangingGrass.separation": "Separation",
|
||||
"betterfoliage.hangingGrass.separation.tooltip": "How much the hanging grass stands out from the block",
|
||||
|
||||
"betterfoliage.cactus": "Better Cactus",
|
||||
"betterfoliage.cactus.tooltip": "Enhance cactus with extra bits and smooth shading",
|
||||
"betterfoliage.cactus.sizeVariation": "Size variation",
|
||||
"betterfoliage.cactus.sizeVariation.tooltip": "Amount of random variation on cactus size",
|
||||
|
||||
"betterfoliage.lilypad": "Better Lilypad",
|
||||
"betterfoliage.lilypad.tooltip": "Enhance lilypad with roots and occasional flowers",
|
||||
"betterfoliage.lilypad.flowerChance": "Flower chance",
|
||||
"betterfoliage.lilypad.flowerChance.tooltip": "Chance (N in 64) of a lilypad having a flower on it",
|
||||
|
||||
"betterfoliage.reed": "Reeds",
|
||||
"betterfoliage.reed.tooltip": "Reeds on dirt blocks in shallow water",
|
||||
"betterfoliage.reed.biomes": "Biome List",
|
||||
"betterfoliage.reed.biomes.tooltip": "Configure which biomes reeds are allowed to appear in",
|
||||
"betterfoliage.reed.biomes.tooltip.element": "Should reeds appear in the %s biome?",
|
||||
|
||||
"betterfoliage.algae": "Algae",
|
||||
"betterfoliage.algae.tooltip": "Algae on dirt blocks in deep water",
|
||||
"betterfoliage.algae.biomes": "Biome List",
|
||||
"betterfoliage.algae.biomes.tooltip": "Configure which biomes algae is allowed to appear in",
|
||||
"betterfoliage.algae.biomes.tooltip.element": "Should algae appear in the %s biome?",
|
||||
|
||||
"betterfoliage.coral": "Coral",
|
||||
"betterfoliage.coral.tooltip": "Coral on sand blocks in deep water",
|
||||
"betterfoliage.coral.size": "Coral size",
|
||||
"betterfoliage.coral.size.tooltip": "Size of coral bits sticking out",
|
||||
"betterfoliage.coral.crustSize": "Crust size",
|
||||
"betterfoliage.coral.crustSize.tooltip": "Size of the flat coral part",
|
||||
"betterfoliage.coral.chance": "Coral chance",
|
||||
"betterfoliage.coral.chance.tooltip": "Chance (N in 64) of a specific face of the block to show coral",
|
||||
"betterfoliage.coral.biomes": "Biome List",
|
||||
"betterfoliage.coral.biomes.tooltip": "Configure which biomes coral is allowed to appear in",
|
||||
"betterfoliage.coral.biomes.tooltip.element": "Should coral appear in the %s biome?",
|
||||
"betterfoliage.coral.shallowWater": "Shallow water coral",
|
||||
"betterfoliage.coral.shallowWater.tooltip": "Should coral appear in 1 block deep water?",
|
||||
|
||||
"betterfoliage.netherrack": "Netherrack Vines",
|
||||
"betterfoliage.netherrack.tooltip": "Hanging Vines under netherrack",
|
||||
|
||||
"betterfoliage.fallingLeaves": "Falling leaves",
|
||||
"betterfoliage.fallingLeaves.tooltip": "Falling leaf particle FX emitted from the bottom of leaf blocks",
|
||||
"betterfoliage.fallingLeaves.speed": "Particle speed",
|
||||
"betterfoliage.fallingLeaves.speed.tooltip": "Overall particle speed",
|
||||
"betterfoliage.fallingLeaves.windStrength": "Wind strength",
|
||||
"betterfoliage.fallingLeaves.windStrength.tooltip": "Magnitude of wind effects in good weather (spread of normal distribution centered on 0)",
|
||||
"betterfoliage.fallingLeaves.stormStrength": "Storm strength",
|
||||
"betterfoliage.fallingLeaves.stormStrength.tooltip": "Additional magnitude of wind effects in rainy weather (spread of normal distribution centered on 0)",
|
||||
"betterfoliage.fallingLeaves.size": "Particle size",
|
||||
"betterfoliage.fallingLeaves.chance": "Particle chance",
|
||||
"betterfoliage.fallingLeaves.chance.tooltip": "Chance of each random render tick hitting a leaf block to spawn a particle",
|
||||
"betterfoliage.fallingLeaves.perturb": "Perturbation",
|
||||
"betterfoliage.fallingLeaves.perturb.tooltip": "Magnitude of perturbation effect. Adds a corkscrew-like motion to the particle synchronized to its rotation",
|
||||
"betterfoliage.fallingLeaves.lifetime": "Maximum lifetime",
|
||||
"betterfoliage.fallingLeaves.lifetime.tooltip": "Maximum lifetime of particle in seconds. Minimum lifetime is 60%% of this value",
|
||||
"betterfoliage.fallingLeaves.opacityHack": "Opaque particles",
|
||||
"betterfoliage.fallingLeaves.opacityHack.tooltip": "Stop transparent blocks obscuring particles even when particle is in front. WARNING: may cause glitches.",
|
||||
|
||||
"betterfoliage.risingSoul": "Rising souls",
|
||||
"betterfoliage.risingSoul.tooltip": "Rising soul particle FX emitted from the top of soulsand blocks",
|
||||
"betterfoliage.risingSoul.chance": "Particle chance",
|
||||
"betterfoliage.risingSoul.chance.tooltip": "Chance of each random render tick hitting a soulsand block to spawn a particle",
|
||||
"betterfoliage.risingSoul.speed": "Particle speed",
|
||||
"betterfoliage.risingSoul.speed.tooltip": "Vertical speed of soul particles",
|
||||
"betterfoliage.risingSoul.perturb": "Perturbation",
|
||||
"betterfoliage.risingSoul.perturb.tooltip": "Magnitude of perturbation effect. Adds a corkscrew-like motion to the particle",
|
||||
"betterfoliage.risingSoul.headSize": "Soul size",
|
||||
"betterfoliage.risingSoul.headSize.tooltip": "Size of the soul particle",
|
||||
"betterfoliage.risingSoul.trailSize": "Trail size",
|
||||
"betterfoliage.risingSoul.trailSize.tooltip": "Initial size of the particle trail",
|
||||
"betterfoliage.risingSoul.opacity": "Opacity",
|
||||
"betterfoliage.risingSoul.opacity.tooltip": "Opacity of the particle effect",
|
||||
"betterfoliage.risingSoul.sizeDecay": "Size decay",
|
||||
"betterfoliage.risingSoul.sizeDecay.tooltip": "Trail particle size relative to its size in the previous tick",
|
||||
"betterfoliage.risingSoul.opacityDecay": "Opacity decay",
|
||||
"betterfoliage.risingSoul.opacityDecay.tooltip": "Trail particle opacity relative to its opacity in the previous tick",
|
||||
"betterfoliage.risingSoul.lifetime": "Maximum lifetime",
|
||||
"betterfoliage.risingSoul.lifetime.tooltip": "Maximum lifetime of particle effect in seconds. Minimum lifetime is 60%% of this value",
|
||||
"betterfoliage.risingSoul.trailLength": "Trail length",
|
||||
"betterfoliage.risingSoul.trailLength.tooltip": "Number of previous positions the particle remembers in ticks",
|
||||
"betterfoliage.risingSoul.trailDensity": "Trail density",
|
||||
"betterfoliage.risingSoul.trailDensity.tooltip": "Render every Nth previous position in the particle trail",
|
||||
|
||||
"betterfoliage.roundLogs": "Round Logs",
|
||||
"betterfoliage.roundLogs.tooltip": "Round Logs",
|
||||
"betterfoliage.roundLogs.connectSolids": "Connect to solid",
|
||||
"betterfoliage.roundLogs.connectSolids.tooltip": "Connect round blocks to solid full blocks?",
|
||||
"betterfoliage.roundLogs.connectPerpendicular": "Connect to perpendicular logs",
|
||||
"betterfoliage.roundLogs.connectPerpendicular.tooltip": "Connect round logs to perpendicular logs along its axis?",
|
||||
"betterfoliage.roundLogs.lenientConnect": "Lenient rounding",
|
||||
"betterfoliage.roundLogs.lenientConnect.tooltip": "Connect parallel round logs in an L-shape too, not just 2x2",
|
||||
"betterfoliage.roundLogs.connectGrass": "Connect Grass",
|
||||
"betterfoliage.roundLogs.connectGrass.tooltip": "Render grass block under trees instead of dirt if there is grass nearby",
|
||||
"betterfoliage.roundLogs.radiusSmall": "Chamfer radius",
|
||||
"betterfoliage.roundLogs.radiusSmall.tooltip": "How much to chop off from the log corner",
|
||||
"betterfoliage.roundLogs.radiusLarge": "Connected chamfer radius",
|
||||
"betterfoliage.roundLogs.radiusLarge.tooltip": "How much to chop off from the outer corner of connected logs",
|
||||
"betterfoliage.roundLogs.dimming": "Dimming",
|
||||
"betterfoliage.roundLogs.dimming.tooltip": "Amount to darken obscured log faces",
|
||||
"betterfoliage.roundLogs.zProtection": "Z-Protection",
|
||||
"betterfoliage.roundLogs.zProtection.tooltip": "Amount to scale parallel log connection bits to stop Z-fighting (flickering). Try to set it as high as possible without having glitches.",
|
||||
"betterfoliage.roundLogs.defaultY": "Default to vertical",
|
||||
"betterfoliage.roundLogs.defaultY.tooltip": "If true, log blocks where the orientation cannot be determined will be rendered as vertical. Otherwise, they will be rendered as cube blocks."
|
||||
}
|
||||
@@ -1,250 +0,0 @@
|
||||
key.betterfoliage.gui=Open Settings
|
||||
|
||||
betterfoliage.global.enabled=Enable Mod
|
||||
betterfoliage.global.enabled.tooltip=If set to false, BetterFoliage will not render anything
|
||||
betterfoliage.global.nVidia=nVidia GPU
|
||||
betterfoliage.global.nVidia.tooltip=Specify whether you have an nVidia GPU
|
||||
|
||||
betterfoliage.enabled=Enable
|
||||
betterfoliage.enabled.tooltip=Is this feature enabled?
|
||||
betterfoliage.hOffset=Horizontal offset
|
||||
betterfoliage.hOffset.tooltip=The distance this element is shifted horizontally, in blocks
|
||||
betterfoliage.vOffset=Vertical offset
|
||||
betterfoliage.vOffset.tooltip=The distance this element is shifted vertically, in blocks
|
||||
betterfoliage.size=Size
|
||||
betterfoliage.size.tooltip=Size of this element
|
||||
betterfoliage.heightMin=Minimum height
|
||||
betterfoliage.heightMin.tooltip=Minimum height of element
|
||||
betterfoliage.heightMax=Maximum height
|
||||
betterfoliage.heightMax.tooltip=Maximum height of element
|
||||
betterfoliage.population=Population
|
||||
betterfoliage.population.tooltip=Chance (N in 64) that an eligible block will have this feature
|
||||
betterfoliage.shaderWind=Shader wind effects
|
||||
betterfoliage.shaderWind.tooltip=Apply wind effects from ShaderMod shaders to this element?
|
||||
betterfoliage.distance=Distance limit
|
||||
betterfoliage.distance.tooltip=Maximum distance from player at which to render this feature
|
||||
|
||||
betterfoliage.rendererror=§a[BetterFoliage]§f Error rendering block %s at position %s
|
||||
|
||||
betterfoliage.blocks=Block Types
|
||||
betterfoliage.blocks.tooltip=Configure lists of block classes that will have specific features applied to them
|
||||
|
||||
betterfoliage.blocks.dirtWhitelist=Dirt Whitelist
|
||||
betterfoliage.blocks.dirtBlacklist=Dirt Blacklist
|
||||
betterfoliage.blocks.dirtWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.dirtBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.dirtWhitelist.tooltip=Blocks recognized as Dirt. Has an impact on Reeds, Algae, Connected Grass
|
||||
betterfoliage.blocks.dirtBlacklist.tooltip=Blocks never accepted as Dirt. Has an impact on Reeds, Algae, Connected Grass
|
||||
|
||||
betterfoliage.blocks.grassClassesWhitelist=Grass Whitelist
|
||||
betterfoliage.blocks.grassClassesBlacklist=Grass Blacklist
|
||||
betterfoliage.blocks.grassClassesWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.grassClassesBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.grassModels=Grass Models
|
||||
betterfoliage.blocks.grassModels.arrayEntry=%d entries
|
||||
betterfoliage.blocks.grassWhitelist.tooltip=Blocks recognized as Grass. Has an impact on Short Grass, Connected Grass
|
||||
betterfoliage.blocks.grassBlacklist.tooltip=Blocks never accepted as Grass. Has an impact on Short Grass, Connected Grass
|
||||
betterfoliage.blocks.grassModels.tooltip=Models and textures recognized for grass blocks
|
||||
|
||||
betterfoliage.blocks.leavesClassesWhitelist=Leaves Whitelist
|
||||
betterfoliage.blocks.leavesClassesBlacklist=Leaves Blacklist
|
||||
betterfoliage.blocks.leavesClassesWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.leavesClassesBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.leavesModels=Leaves Models
|
||||
betterfoliage.blocks.leavesModels.arrayEntry=%d entries
|
||||
betterfoliage.blocks.leavesClassesWhitelist.tooltip=Blocks recognized as Leaves. Has an impact on Extra Leaves, Falling Leaves. Leaves will render with leaves block ID in shader programs
|
||||
betterfoliage.blocks.leavesClassesBlacklist.tooltip=Blocks never accepted as Leaves. Has an impact on Extra Leaves, Falling Leaves. Leaves will render with leaves block ID in shader programs
|
||||
betterfoliage.blocks.leavesModels.tooltip=Models and textures recognized for leaves blocks
|
||||
|
||||
betterfoliage.blocks.cropsWhitelist=Crop Whitelist
|
||||
betterfoliage.blocks.cropsBlacklist=Crop Blacklist
|
||||
betterfoliage.blocks.cropsWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.cropsBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.cropsWhitelist.tooltip=Blocks recognized as crops. Crops will render with tallgrass block ID in shader programs
|
||||
betterfoliage.blocks.cropsBlacklist.tooltip=Blocks never accepted as crops. Crops will render with tallgrass block ID in shader programs
|
||||
|
||||
betterfoliage.blocks.logClassesWhitelist=Wood Log Whitelist
|
||||
betterfoliage.blocks.logClassesBlacklist=Wood Log Blacklist
|
||||
betterfoliage.blocks.logClassesWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.logClassesBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.logModels=Wood Log Models
|
||||
betterfoliage.blocks.logModels.arrayEntry=%d entries
|
||||
betterfoliage.blocks.logClassesWhitelist.tooltip=Blocks recognized as wooden logs. Has an impact on Rounded Logs
|
||||
betterfoliage.blocks.logClassesBlacklist.tooltip=Blocks never accepted as wooden logs. Has an impact on Rounded Logs
|
||||
betterfoliage.blocks.logModels.tooltip=Models and textures recognized for wood log blocks
|
||||
|
||||
betterfoliage.blocks.sandWhitelist=Sand Whitelist
|
||||
betterfoliage.blocks.sandBlacklist=Sand Blacklist
|
||||
betterfoliage.blocks.sandWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.sandBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.sandWhitelist.tooltip=Blocks recognized as Sand. Has an impact on Coral
|
||||
betterfoliage.blocks.sandBlacklist.tooltip=Blocks never accepted Sand. Has an impact on Coral
|
||||
|
||||
betterfoliage.blocks.lilypadWhitelist=Lilypad Whitelist
|
||||
betterfoliage.blocks.lilypadBlacklist=Lilypad Blacklist
|
||||
betterfoliage.blocks.lilypadWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.lilypadBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.lilypadWhitelist.tooltip=Blocks recognized as Lilypad. Has an impact on Better Lilypad
|
||||
betterfoliage.blocks.lilypadBlacklist.tooltip=Blocks never accepted Lilypad. Has an impact on Better Lilypad
|
||||
|
||||
betterfoliage.blocks.cactusWhitelist=Cactus Whitelist
|
||||
betterfoliage.blocks.cactusBlacklist=Cactus Blacklist
|
||||
betterfoliage.blocks.cactusWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.cactusBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.cactusWhitelist.tooltip=Blocks recognized as Cactus. Has an impact on Better Cactus
|
||||
betterfoliage.blocks.cactusBlacklist.tooltip=Blocks never accepted Cactus. Has an impact on Better Cactus
|
||||
|
||||
betterfoliage.blocks.myceliumWhitelist=Mycelium Whitelist
|
||||
betterfoliage.blocks.myceliumBlacklist=Mycelium Blacklist
|
||||
betterfoliage.blocks.myceliumWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.myceliumBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.myceliumWhitelist.tooltip=Blocks recognized as Mycelium. Has an impact on Better Grass
|
||||
betterfoliage.blocks.myceliumBlacklist.tooltip=Blocks never accepted Mycelium. Has an impact on Better Grass
|
||||
|
||||
betterfoliage.blocks.netherrackWhitelist=Netherrack Whitelist
|
||||
betterfoliage.blocks.netherrackBlacklist=Netherrack Blacklist
|
||||
betterfoliage.blocks.netherrackWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.netherrackBlacklist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.netherrackWhitelist.tooltip=Blocks recognized as Netherrack. Has an impact on Netherrack Vines
|
||||
betterfoliage.blocks.netherrackBlacklist.tooltip=Blocks never accepted Netherrack. Has an impact on Netherrack Vines
|
||||
|
||||
betterfoliage.shaders=Shader configuration
|
||||
betterfoliage.shaders.tooltip=Configure integration with shaders
|
||||
betterfoliage.shaders.leavesId=Leaves ID
|
||||
betterfoliage.shaders.leavesId.tooltip=Block ID reported to shader programs for all kinds of leaves. If your shader uses a §6block.properties§e file, you'll probably need to change this to match the shader's mappings.
|
||||
betterfoliage.shaders.grassId=Grass ID
|
||||
betterfoliage.shaders.grassId.tooltip=Block ID reported to shader programs for all grasses and crops. If your shader uses a §6block.properties§e file, you'll probably need to change this to match the shader's mappings.
|
||||
|
||||
betterfoliage.leaves=Extra Leaves
|
||||
betterfoliage.leaves.tooltip=Extra round leaves on leaf blocks
|
||||
betterfoliage.leaves.dense=Dense mode
|
||||
betterfoliage.leaves.dense.tooltip=Dense mode has more round leaves
|
||||
betterfoliage.leaves.snowEnabled=Enable snow
|
||||
betterfoliage.leaves.snowEnabled.tooltip=Enable snow on extra leaves?
|
||||
betterfoliage.leaves.hideInternal=Hide internal leaves
|
||||
betterfoliage.leaves.hideInternal.tooltip=Skip rendering extra leaves if leaf block is completely surrounded by other leaves or solid blocks
|
||||
|
||||
betterfoliage.shortGrass=Short Grass & Mycelium
|
||||
betterfoliage.shortGrass.tooltip=Tufts of grass/mycelium on top of appropriate blocks
|
||||
betterfoliage.shortGrass.useGenerated=Use generated texture for grass
|
||||
betterfoliage.shortGrass.useGenerated.tooltip=Generated texture is made by slicing the tallgrass texture from the active resource pack in half
|
||||
betterfoliage.shortGrass.myceliumEnabled=Enable Mycelium
|
||||
betterfoliage.shortGrass.myceliumEnabled.tooltip=Is this feature enabled for mycelium blocks?
|
||||
betterfoliage.shortGrass.grassEnabled=Enable Grass
|
||||
betterfoliage.shortGrass.grassEnabled.tooltip=Is this feature enabled for grass blocks?
|
||||
betterfoliage.shortGrass.snowEnabled=Enable under snow
|
||||
betterfoliage.shortGrass.snowEnabled.tooltip=Enable on snowed grass blocks?
|
||||
betterfoliage.shortGrass.saturationThreshold=Saturation threshold
|
||||
betterfoliage.shortGrass.saturationThreshold.tooltip=Color saturation cutoff between "colorless" blocks (using biome color) and "colorful" blocks (using their own specific color)
|
||||
|
||||
betterfoliage.hangingGrass=Hanging Grass
|
||||
betterfoliage.hangingGrass.tooltip=Grass tufts hanging down from the top edges of grass blocks
|
||||
betterfoliage.hangingGrass.separation=Separation
|
||||
betterfoliage.hangingGrass.separation.tooltip=How much the hanging grass stands out from the block
|
||||
|
||||
betterfoliage.cactus=Better Cactus
|
||||
betterfoliage.cactus.tooltip=Enhance cactus with extra bits and smooth shading
|
||||
betterfoliage.cactus.sizeVariation=Size variation
|
||||
betterfoliage.cactus.sizeVariation.tooltip=Amount of random variation on cactus size
|
||||
|
||||
betterfoliage.lilypad=Better Lilypad
|
||||
betterfoliage.lilypad.tooltip=Enhance lilypad with roots and occasional flowers
|
||||
betterfoliage.lilypad.flowerChance=Flower chance
|
||||
betterfoliage.lilypad.flowerChance.tooltip=Chance (N in 64) of a lilypad having a flower on it
|
||||
|
||||
betterfoliage.reed=Reeds
|
||||
betterfoliage.reed.tooltip=Reeds on dirt blocks in shallow water
|
||||
betterfoliage.reed.biomes=Biome List
|
||||
betterfoliage.reed.biomes.tooltip=Configure which biomes reeds are allowed to appear in
|
||||
betterfoliage.reed.biomes.tooltip.element=Should reeds appear in the %s biome?
|
||||
|
||||
betterfoliage.algae=Algae
|
||||
betterfoliage.algae.tooltip=Algae on dirt blocks in deep water
|
||||
betterfoliage.algae.biomes=Biome List
|
||||
betterfoliage.algae.biomes.tooltip=Configure which biomes algae is allowed to appear in
|
||||
betterfoliage.algae.biomes.tooltip.element=Should algae appear in the %s biome?
|
||||
|
||||
betterfoliage.coral=Coral
|
||||
betterfoliage.coral.tooltip=Coral on sand blocks in deep water
|
||||
betterfoliage.coral.size=Coral size
|
||||
betterfoliage.coral.size.tooltip=Size of coral bits sticking out
|
||||
betterfoliage.coral.crustSize=Crust size
|
||||
betterfoliage.coral.crustSize.tooltip=Size of the flat coral part
|
||||
betterfoliage.coral.chance=Coral chance
|
||||
betterfoliage.coral.chance.tooltip=Chance (N in 64) of a specific face of the block to show coral
|
||||
betterfoliage.coral.biomes=Biome List
|
||||
betterfoliage.coral.biomes.tooltip=Configure which biomes coral is allowed to appear in
|
||||
betterfoliage.coral.biomes.tooltip.element=Should coral appear in the %s biome?
|
||||
betterfoliage.coral.shallowWater=Shallow water coral
|
||||
betterfoliage.coral.shallowWater.tooltip=Should coral appear in 1 block deep water?
|
||||
|
||||
betterfoliage.netherrack=Netherrack Vines
|
||||
betterfoliage.netherrack.tooltip=Hanging Vines under netherrack
|
||||
|
||||
betterfoliage.fallingLeaves=Falling leaves
|
||||
betterfoliage.fallingLeaves.tooltip=Falling leaf particle FX emitted from the bottom of leaf blocks
|
||||
betterfoliage.fallingLeaves.speed=Particle speed
|
||||
betterfoliage.fallingLeaves.speed.tooltip=Overall particle speed
|
||||
betterfoliage.fallingLeaves.windStrength=Wind strength
|
||||
betterfoliage.fallingLeaves.windStrength.tooltip=Magnitude of wind effects in good weather (spread of normal distribution centered on 0)
|
||||
betterfoliage.fallingLeaves.stormStrength=Storm strength
|
||||
betterfoliage.fallingLeaves.stormStrength.tooltip=Additional magnitude of wind effects in rainy weather (spread of normal distribution centered on 0)
|
||||
betterfoliage.fallingLeaves.size=Particle size
|
||||
betterfoliage.fallingLeaves.chance=Particle chance
|
||||
betterfoliage.fallingLeaves.chance.tooltip=Chance of each random render tick hitting a leaf block to spawn a particle
|
||||
betterfoliage.fallingLeaves.perturb=Perturbation
|
||||
betterfoliage.fallingLeaves.perturb.tooltip=Magnitude of perturbation effect. Adds a corkscrew-like motion to the particle synchronized to its rotation
|
||||
betterfoliage.fallingLeaves.lifetime=Maximum lifetime
|
||||
betterfoliage.fallingLeaves.lifetime.tooltip=Maximum lifetime of particle in seconds. Minimum lifetime is 60%% of this value
|
||||
betterfoliage.fallingLeaves.opacityHack=Opaque particles
|
||||
betterfoliage.fallingLeaves.opacityHack.tooltip=Stop transparent blocks obscuring particles even when particle is in front. WARNING: may cause glitches.
|
||||
|
||||
betterfoliage.risingSoul=Rising souls
|
||||
betterfoliage.risingSoul.tooltip=Rising soul particle FX emitted from the top of soulsand blocks
|
||||
betterfoliage.risingSoul.chance=Particle chance
|
||||
betterfoliage.risingSoul.chance.tooltip=Chance of each random render tick hitting a soulsand block to spawn a particle
|
||||
betterfoliage.risingSoul.speed=Particle speed
|
||||
betterfoliage.risingSoul.speed.tooltip=Vertical speed of soul particles
|
||||
betterfoliage.risingSoul.perturb=Perturbation
|
||||
betterfoliage.risingSoul.perturb.tooltip=Magnitude of perturbation effect. Adds a corkscrew-like motion to the particle
|
||||
betterfoliage.risingSoul.headSize=Soul size
|
||||
betterfoliage.risingSoul.headSize.tooltip=Size of the soul particle
|
||||
betterfoliage.risingSoul.trailSize=Trail size
|
||||
betterfoliage.risingSoul.trailSize.tooltip=Initial size of the particle trail
|
||||
betterfoliage.risingSoul.opacity=Opacity
|
||||
betterfoliage.risingSoul.opacity.tooltip=Opacity of the particle effect
|
||||
betterfoliage.risingSoul.sizeDecay=Size decay
|
||||
betterfoliage.risingSoul.sizeDecay.tooltip=Trail particle size relative to its size in the previous tick
|
||||
betterfoliage.risingSoul.opacityDecay=Opacity decay
|
||||
betterfoliage.risingSoul.opacityDecay.tooltip=Trail particle opacity relative to its opacity in the previous tick
|
||||
betterfoliage.risingSoul.lifetime=Maximum lifetime
|
||||
betterfoliage.risingSoul.lifetime.tooltip=Maximum lifetime of particle effect in seconds. Minimum lifetime is 60%% of this value
|
||||
betterfoliage.risingSoul.trailLength=Trail length
|
||||
betterfoliage.risingSoul.trailLength.tooltip=Number of previous positions the particle remembers in ticks
|
||||
betterfoliage.risingSoul.trailDensity=Trail density
|
||||
betterfoliage.risingSoul.trailDensity.tooltip=Render every Nth previous position in the particle trail
|
||||
|
||||
betterfoliage.connectedGrass=Connected grass textures
|
||||
betterfoliage.connectedGrass.enabled=Enable
|
||||
betterfoliage.connectedGrass.enabled.tooltip=If there is a grass block on top of a dirt block: draw grass top texture on all grass block sides,
|
||||
|
||||
betterfoliage.roundLogs=Round Logs
|
||||
betterfoliage.roundLogs.tooltip=Connect round blocks to solid full blocks?
|
||||
betterfoliage.roundLogs.connectSolids=Connect to solid
|
||||
betterfoliage.roundLogs.connectSolids.tooltip=Connect round blocks to solid full blocks?
|
||||
betterfoliage.roundLogs.connectPerpendicular=Connect to perpendicular logs
|
||||
betterfoliage.roundLogs.connectPerpendicular.tooltip=Connect round logs to perpendicular logs along its axis?
|
||||
betterfoliage.roundLogs.lenientConnect=Lenient rounding
|
||||
betterfoliage.roundLogs.lenientConnect.tooltip=Connect parallel round logs in an L-shape too, not just 2x2
|
||||
betterfoliage.roundLogs.connectGrass=Connect Grass
|
||||
betterfoliage.roundLogs.connectGrass.tooltip=Render grass block under trees instead of dirt if there is grass nearby
|
||||
betterfoliage.roundLogs.radiusSmall=Chamfer radius
|
||||
betterfoliage.roundLogs.radiusSmall.tooltip=How much to chop off from the log corner
|
||||
betterfoliage.roundLogs.radiusLarge=Connected chamfer radius
|
||||
betterfoliage.roundLogs.radiusLarge.tooltip=How much to chop off from the outer corner of connected logs
|
||||
betterfoliage.roundLogs.dimming=Dimming
|
||||
betterfoliage.roundLogs.dimming.tooltip=Amount to darken obscured log faces
|
||||
betterfoliage.roundLogs.zProtection=Z-Protection
|
||||
betterfoliage.roundLogs.zProtection.tooltip=Amount to scale parallel log connection bits to stop Z-fighting (flickering). Try to set it as high as possible without having glitches.
|
||||
betterfoliage.roundLogs.defaultY=Default to vertical
|
||||
betterfoliage.roundLogs.defaultY.tooltip=If true, log blocks where the orientation cannot be determined will be rendered as vertical. Otherwise, they will be rendered as cube blocks.
|
||||
155
src/main/resources/assets/betterfoliage/lang/ko_kr.json
Normal file
155
src/main/resources/assets/betterfoliage/lang/ko_kr.json
Normal file
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"key.betterfoliage.gui": "설정",
|
||||
|
||||
"betterfoliage.global.enabled": "모드 활성화",
|
||||
"betterfoliage.global.enabled.tooltip": "비활성화 할 경우, 환경강화모드 렌더링이 보이지 않습니다.",
|
||||
|
||||
"betterfoliage.enabled": "활성화",
|
||||
"betterfoliage.enabled.tooltip": "이 기능이 활성화 되어 있습니까?",
|
||||
"betterfoliage.hOffset": "수평(가로) 상쇄시키다",
|
||||
"betterfoliage.hOffset.tooltip": "이 성분이 블럭 수평으로 이동된다.",
|
||||
"betterfoliage.vOffset": "수직(세로) 상쇄시키다",
|
||||
"betterfoliage.vOffset.tooltip": "이 성분이 블럭 수직으로 이동된다.",
|
||||
"betterfoliage.size": "사이즈(크기)",
|
||||
"betterfoliage.size.tooltip": "사이즈(크기)의 최소",
|
||||
"betterfoliage.heightMin": "최소한 높이",
|
||||
"betterfoliage.heightMin.tooltip": "높이 최소한의 최소",
|
||||
"betterfoliage.heightMax": "최대한 높이",
|
||||
"betterfoliage.heightMax.tooltip": "높이 최대한의 최소",
|
||||
"betterfoliage.population": "주민",
|
||||
"betterfoliage.population.tooltip": "자격을 갖춘 블럭의 기능 확률(N 분의 64)",
|
||||
"betterfoliage.shaderWind": "쉐이더 바람 효과",
|
||||
"betterfoliage.shaderWind.tooltip": "바람효과를 쉐이더에 적용시키겠습니까?",
|
||||
"betterfoliage.distance": "거리 제한",
|
||||
"betterfoliage.distance.tooltip": "이 기능을 렌더링하는 플레이어의 최대거리",
|
||||
"betterfoliage.saturationThreshold": "채도 임계값",
|
||||
"betterfoliage.saturationThreshold.tooltip": "(특정 색상을 사용하여)\"무채색\"블록과 (바이옴 색을 사용하여)\"화려한\"블록 사이의 채도 차단",
|
||||
|
||||
"betterfoliage.leaves": "잎 추가",
|
||||
"betterfoliage.leaves.tooltip": "둥글게 나뭇잎을 추가시켜줍니다.",
|
||||
"betterfoliage.leaves.dense": "조밀한 모드",
|
||||
"betterfoliage.leaves.dense.tooltip": "조밀한 모드는 둥근 나뭇잎을 더 추가시켜줍니다.",
|
||||
|
||||
"betterfoliage.shortGrass": "이쁜 잔디 & 균사체",
|
||||
"betterfoliage.shortGrass.tooltip": "블록 상단에 잔디 / 균사체",
|
||||
"betterfoliage.shortGrass.useGenerated": "잔디텍스쳐를 활성화 합니다.",
|
||||
"betterfoliage.shortGrass.useGenerated.tooltip": "소스팩의 일부분에 활성화 되어있는 큰잔디 텍스쳐를 생성시킵니다.",
|
||||
"betterfoliage.shortGrass.myceliumEnabled": "균사체 활성화",
|
||||
"betterfoliage.shortGrass.myceliumEnabled.tooltip": "균사체 블록에 있는 기능을 활성화 시키겠습니까?",
|
||||
"betterfoliage.shortGrass.grassEnabled": "잔디 활성화",
|
||||
"betterfoliage.shortGrass.grassEnabled.tooltip": "잔디 블록에 있는 기능을 활성화 시키겠습니까?",
|
||||
"betterfoliage.shortGrass.snowEnabled": "눈 활성화",
|
||||
"betterfoliage.shortGrass.snowEnabled.tooltip": "잔디 블록위에 있는 눈을 활성화 시키겠습니까?",
|
||||
|
||||
"betterfoliage.hangingGrass": "매달려있는 잔디",
|
||||
"betterfoliage.hangingGrass.tooltip": "잔디 블록 상단 가장자리에서 아래로 매달려 있는 잔디 다발",
|
||||
"betterfoliage.hangingGrass.separation": "분리",
|
||||
"betterfoliage.hangingGrass.separation.tooltip": "잔디블럭에 매달려있는 잔디의 양 ",
|
||||
|
||||
"betterfoliage.cactus": "선인장",
|
||||
"betterfoliage.cactus.tooltip": "선인장의 비트 수와 부드러운 그림자를 추가",
|
||||
"betterfoliage.cactus.sizeVariation": "사이즈 변화",
|
||||
"betterfoliage.cactus.sizeVariation.tooltip": "선인장의 사이즈 크기를 무작위 변화 시킵니다.",
|
||||
|
||||
"betterfoliage.lilypad": "연꽃잎",
|
||||
"betterfoliage.lilypad.tooltip": "연꽃의 뿌리와 약간의 꽃 추가",
|
||||
"betterfoliage.lilypad.flowerChance": "꽃 확률",
|
||||
"betterfoliage.lilypad.flowerChance.tooltip": "연꽃 위에 있는 꽃 확률(N 분의 64)",
|
||||
|
||||
"betterfoliage.reed": "갈대",
|
||||
"betterfoliage.reed.tooltip": "물 속에서 흙블럭 위에 있는 갈대",
|
||||
"betterfoliage.reed.biomes": "바이옴 리스트",
|
||||
"betterfoliage.reed.biomes.tooltip": "갈대를 바이옴에 따라 표시",
|
||||
"betterfoliage.reed.biomes.tooltip.element": "갈대를 %s 바이옴에 따라 나타내시겠습니까? ",
|
||||
|
||||
"betterfoliage.algae": "해조류",
|
||||
"betterfoliage.algae.tooltip": "깊은 물 속 흙 블럭 위에 있는 해조류",
|
||||
"betterfoliage.algae.biomes": "바이옴 리스트",
|
||||
"betterfoliage.algae.biomes.tooltip": "해조류를 바이옴에 따라 표시",
|
||||
"betterfoliage.algae.biomes.tooltip.element": "해조류를 %s 바이옴에 따라 나타내시겠습니까? ",
|
||||
|
||||
"betterfoliage.coral": "산호",
|
||||
"betterfoliage.coral.tooltip": "깊은 물 속 모래 블럭 위에있는 산호",
|
||||
"betterfoliage.coral.size": "산호 사이즈(크기)",
|
||||
"betterfoliage.coral.size.tooltip": "산호 이미지만큼 적용",
|
||||
"betterfoliage.coral.crustSize": "껍질 크기",
|
||||
"betterfoliage.coral.crustSize.tooltip": "산호 부분의 크기 ",
|
||||
"betterfoliage.coral.chance": "산호 확률",
|
||||
"betterfoliage.coral.chance.tooltip": "산호를 특정블록에 표시하는 확률(N 분의 64)",
|
||||
"betterfoliage.coral.biomes": "바이옴 리스트",
|
||||
"betterfoliage.coral.biomes.tooltip": "산호를 바이옴에 따라 표시",
|
||||
"betterfoliage.coral.biomes.tooltip.element": "산호를 %s 바이옴에 따라 나타내시겠습니까?",
|
||||
"betterfoliage.coral.shallowWater": "얕은 물 산호",
|
||||
"betterfoliage.coral.shallowWater.tooltip": "산호를 깊은 물에 표시하시겠습니까?",
|
||||
|
||||
"betterfoliage.netherrack": "네더랙 덩굴",
|
||||
"betterfoliage.netherrack.tooltip": "네더랙에 매달려있는 덩굴",
|
||||
|
||||
"betterfoliage.fallingLeaves": "떨어지는 나뭇잎",
|
||||
"betterfoliage.fallingLeaves.tooltip": "잎 블록에서 바닥으로 떨어지는 잎 파티클",
|
||||
"betterfoliage.fallingLeaves.speed": "파티클 속도",
|
||||
"betterfoliage.fallingLeaves.speed.tooltip": "전체 파티클 속도",
|
||||
"betterfoliage.fallingLeaves.windStrength": "바람 세기",
|
||||
"betterfoliage.fallingLeaves.windStrength.tooltip": "날씨 바람 추가효과 (0을 중심으로 정규분포의 확산)",
|
||||
"betterfoliage.fallingLeaves.stormStrength": "폭풍 세기",
|
||||
"betterfoliage.fallingLeaves.stormStrength.tooltip": "비 날씨에 바람 추가효과 (0을 중심으로 정규분포의 확산)",
|
||||
"betterfoliage.fallingLeaves.size": "파티클 크기",
|
||||
"betterfoliage.fallingLeaves.chance": "파티클 확률",
|
||||
"betterfoliage.fallingLeaves.chance.tooltip": "잎 파티클 랜덤 확률 설정",
|
||||
"betterfoliage.fallingLeaves.perturb": "움직임",
|
||||
"betterfoliage.fallingLeaves.perturb.tooltip": "움직임 효과의 크기. 코르크 같은 움직임을 추가합니다.",
|
||||
"betterfoliage.fallingLeaves.lifetime": "파티클 지속시간",
|
||||
"betterfoliage.fallingLeaves.lifetime.tooltip": "최대 파티클 지속시간을 설정합니다. 최소 지속시간은 60%입니다.",
|
||||
"betterfoliage.fallingLeaves.opacityHack": "불투명 파티클",
|
||||
"betterfoliage.fallingLeaves.opacityHack.tooltip": "파티클이 앞에 있어도 파티클을 가리는 투명블럭을 없앱니다. 경고: 오류주의",
|
||||
|
||||
"betterfoliage.risingSoul": "소울 상승",
|
||||
"betterfoliage.risingSoul.tooltip": "소울 블럭에서 올라오는 파티클",
|
||||
"betterfoliage.risingSoul.chance": "파티클 수정",
|
||||
"betterfoliage.risingSoul.chance.tooltip": "소울 파티클 랜덤 확률 설정",
|
||||
"betterfoliage.risingSoul.speed": "파티클 속도",
|
||||
"betterfoliage.risingSoul.speed.tooltip": "파티클 속도",
|
||||
"betterfoliage.risingSoul.perturb": "움직임",
|
||||
"betterfoliage.risingSoul.perturb.tooltip": "움직임 효과의 크기. 코르크 같은 움직임을 추가합니다.",
|
||||
"betterfoliage.risingSoul.headSize": "소울 크기",
|
||||
"betterfoliage.risingSoul.headSize.tooltip": "소울 파티클의 크기",
|
||||
"betterfoliage.risingSoul.trailSize": "자취 사이즈",
|
||||
"betterfoliage.risingSoul.trailSize.tooltip": "자취의 크기",
|
||||
"betterfoliage.risingSoul.opacity": "불투명",
|
||||
"betterfoliage.risingSoul.opacity.tooltip": "파티클의 불투명",
|
||||
"betterfoliage.risingSoul.sizeDecay": "크기 감소",
|
||||
"betterfoliage.risingSoul.sizeDecay.tooltip": "상대적인 자취 파티클 크기",
|
||||
"betterfoliage.risingSoul.opacityDecay": "불투명 감소",
|
||||
"betterfoliage.risingSoul.opacityDecay.tooltip": "상대적인 입자의 파티클 불투명도",
|
||||
"betterfoliage.risingSoul.lifetime": "최대 지속시간",
|
||||
"betterfoliage.risingSoul.lifetime.tooltip": "최대 파티클 지속시간을 설정합니다. 최소 지속시간은 60%입니다.",
|
||||
"betterfoliage.risingSoul.trailLength": "자취의 세기",
|
||||
"betterfoliage.risingSoul.trailLength.tooltip": "이전 파티클 틱으로 자취를 생성합니다.",
|
||||
"betterfoliage.risingSoul.trailDensity": "자취의 밀도",
|
||||
"betterfoliage.risingSoul.trailDensity.tooltip": "파티클 자취를 모두 렌더링 합니다.",
|
||||
|
||||
"betterfoliage.connectedGrass": "잔디 연결 텍스쳐",
|
||||
"betterfoliage.connectedGrass.enabled": "활성화",
|
||||
"betterfoliage.connectedGrass.enabled.tooltip": "잔디블록이 흙블록 위에 있을 경우 잔디블록 윗텍스쳐를 옆텍스쳐에 전부 씌웁니다.",
|
||||
|
||||
"betterfoliage.roundLogs": "둥근 나무",
|
||||
"betterfoliage.roundLogs.tooltip": "둥근부분을 블럭과 연결.",
|
||||
"betterfoliage.roundLogs.connectSolids": "블럭과 연결",
|
||||
"betterfoliage.roundLogs.connectSolids.tooltip": "둥근부분을 블럭과 연결.",
|
||||
"betterfoliage.roundLogs.connectPerpendicular": "나무 세로부분과 연결",
|
||||
"betterfoliage.roundLogs.connectPerpendicular.tooltip": "나무 세로부분을 나무부분끼리 연결",
|
||||
"betterfoliage.roundLogs.lenientConnect": "부드럽게 둥글게 연결",
|
||||
"betterfoliage.roundLogs.lenientConnect.tooltip": "2x2사이즈처럼 나무 평형된 부분끼리 서로 연결합니다.",
|
||||
"betterfoliage.roundLogs.connectGrass": "잔디 연결 텍스쳐",
|
||||
"betterfoliage.roundLogs.connectGrass.tooltip": "잔디가 근처에 있을 경우 나무 아래 잔디 블록을 렌더링",
|
||||
"betterfoliage.roundLogs.radiusSmall": "모서리 깎는 반지름",
|
||||
"betterfoliage.roundLogs.radiusSmall.tooltip": "나무 모서리 깎는 정도",
|
||||
"betterfoliage.roundLogs.radiusLarge": "모서리 깎는 부분 연결",
|
||||
"betterfoliage.roundLogs.radiusLarge.tooltip": "나무 모서리 부분을 연결",
|
||||
"betterfoliage.roundLogs.dimming": "조광",
|
||||
"betterfoliage.roundLogs.dimming.tooltip": "나무 표면부분을 어둡게하는 양",
|
||||
"betterfoliage.roundLogs.zProtection": "Z-Protection",
|
||||
"betterfoliage.roundLogs.zProtection.tooltip": "Amount to scale parallel log connection bits to stop Z-fighting (flickering). Try to set it as high as possible without having glitches.",
|
||||
"betterfoliage.roundLogs.defaultY": "수직선에대한 기본값",
|
||||
"betterfoliage.roundLogs.defaultY.tooltip": "true 일경우, 나무 블럭이 수직선에대한 렌더링을 할수가 없습니다. 그렇지 아니하면, 네모난 블럭으로 렌더링 될것임니다."
|
||||
}
|
||||
@@ -1,216 +0,0 @@
|
||||
key.betterfoliage.gui=설정
|
||||
|
||||
betterfoliage.global.enabled=모드 활성화
|
||||
betterfoliage.global.enabled.tooltip=비활성화 할 경우, 환경강화모드 렌더링이 보이지 않습니다.
|
||||
|
||||
betterfoliage.enabled=활성화
|
||||
betterfoliage.enabled.tooltip=이 기능이 활성화 되어 있습니까?
|
||||
betterfoliage.hOffset=수평(가로) 상쇄시키다
|
||||
betterfoliage.hOffset.tooltip=이 성분이 블럭 수평으로 이동된다.
|
||||
betterfoliage.vOffset=수직(세로) 상쇄시키다
|
||||
betterfoliage.vOffset.tooltip=이 성분이 블럭 수직으로 이동된다.
|
||||
betterfoliage.size=사이즈(크기)
|
||||
betterfoliage.size.tooltip=사이즈(크기)의 최소
|
||||
betterfoliage.heightMin=최소한 높이
|
||||
betterfoliage.heightMin.tooltip=높이 최소한의 최소
|
||||
betterfoliage.heightMax=최대한 높이
|
||||
betterfoliage.heightMax.tooltip=높이 최대한의 최소
|
||||
betterfoliage.population=주민
|
||||
betterfoliage.population.tooltip=자격을 갖춘 블럭의 기능 확률(N 분의 64)
|
||||
betterfoliage.shaderWind=쉐이더 바람 효과
|
||||
betterfoliage.shaderWind.tooltip=바람효과를 쉐이더에 적용시키겠습니까?
|
||||
betterfoliage.distance=거리 제한
|
||||
betterfoliage.distance.tooltip=이 기능을 렌더링하는 플레이어의 최대거리
|
||||
|
||||
betterfoliage.blocks=블록 타입
|
||||
betterfoliage.blocks.tooltip=세팅 된 것에 따라 블록이 바뀔 것입니다.
|
||||
|
||||
betterfoliage.blocks.dirtWhitelist=흙 허용목록
|
||||
betterfoliage.blocks.dirtBlacklist=흙 차단목록
|
||||
betterfoliage.blocks.dirtWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.dirtBlacklist.arrayEntry=%d entries
|
||||
|
||||
betterfoliage.blocks.grassWhitelist=잔디 허용목록
|
||||
betterfoliage.blocks.grassBlacklist=잔디 차단목록
|
||||
betterfoliage.blocks.grassWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.grassBlacklist.arrayEntry=%d entries
|
||||
|
||||
betterfoliage.blocks.leavesWhitelist=잎 허용목록
|
||||
betterfoliage.blocks.leavesBlacklist=잎 차단목록
|
||||
betterfoliage.blocks.leavesWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.leavesBlacklist.arrayEntry=%d entries
|
||||
|
||||
betterfoliage.blocks.cropsWhitelist=농작물 허용목록
|
||||
betterfoliage.blocks.cropsBlacklist=농작물 차단목록
|
||||
betterfoliage.blocks.cropsWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.cropsBlacklist.arrayEntry=%d entries
|
||||
|
||||
betterfoliage.blocks.logsWhitelist=나무 허용목록
|
||||
betterfoliage.blocks.logsBlacklist=나무 차단목록
|
||||
betterfoliage.blocks.logsWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.logsBlacklist.arrayEntry=%d entries
|
||||
|
||||
betterfoliage.blocks.sandWhitelist=모래 허용목록
|
||||
betterfoliage.blocks.sandBlacklist=모래 차단목록
|
||||
betterfoliage.blocks.sandWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.sandBlacklist.arrayEntry=%d entries
|
||||
|
||||
betterfoliage.blocks.lilypadWhitelist=연꽃 허용목록
|
||||
betterfoliage.blocks.lilypadBlacklist=연꽃 차단목록
|
||||
betterfoliage.blocks.lilypadWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.lilypadBlacklist.arrayEntry=%d entries
|
||||
|
||||
betterfoliage.blocks.cactusWhitelist=선인장 허용목록
|
||||
betterfoliage.blocks.cactusBlacklist=선인장 차단목록
|
||||
betterfoliage.blocks.cactusWhitelist.arrayEntry=%d entries
|
||||
betterfoliage.blocks.cactusBlacklist.arrayEntry=%d entries
|
||||
|
||||
|
||||
betterfoliage.blocks.dirtWhitelist.tooltip=흙으로 인식됩니다. 갈대, 조류, 잔디 텍스쳐 연결에 영향을 줍니다.
|
||||
betterfoliage.blocks.dirtBlacklist.tooltip=흙으로 인식 되지 않습니다. 갈대, 조류, 잔디 텍스쳐 연결에 영향을 주지 않습니다.
|
||||
betterfoliage.blocks.grassWhitelist.tooltip=잔디로 인식됩니다. 짧은 잔디, 잔디 텍스쳐 연결에 영향을 줍니다.
|
||||
betterfoliage.blocks.grassBlacklist.tooltip=잔디로 인식 되지 않습니다. 짧은 잔디, 잔디 텍스쳐 연결에 영향을 주지 않습니다.
|
||||
betterfoliage.blocks.leavesWhitelist.tooltip=잎으로 인식됩니다. 추가 잎, 떨어지는 잎에 영향을 줍니다.
|
||||
betterfoliage.blocks.leavesBlacklist.tooltip=잎으로 인식 되지 않습니다. 추가 잎, 떨어지는 잎에 영향을 주지 않습니다.
|
||||
betterfoliage.blocks.cropsWhitelist.tooltip=농작물로 인식됩니다. 농작물은 쉐이더 적용하면 큰잔디로 렌더링 됩니다.
|
||||
betterfoliage.blocks.cropsBlacklist.tooltip=농작물로 인식 되지 않습니다. 농작물은 쉐이더 적용하면 큰잔디로 렌더링 되지 않습니다.
|
||||
betterfoliage.blocks.logsWhitelist.tooltip=나무로 인식됩니다. 둥근 나무에 영향을 줍니다.
|
||||
betterfoliage.blocks.logsBlacklist.tooltip=나무로 인식 되지 않습니다. 둥근 나무에 영향을 주지 않습니다.
|
||||
betterfoliage.blocks.sandWhitelist.tooltip=모래로 인식됩니다. 산호에 영향을 줍니다
|
||||
betterfoliage.blocks.sandBlacklist.tooltip=모래로 인식되지 않습니다. 산호에 영향을 주지 않습니다.
|
||||
betterfoliage.blocks.lilypadWhitelist.tooltip=연꽃으로 인식됩니다. 보다 나은 연꽃에 영향을 줍니다.
|
||||
betterfoliage.blocks.lilypadBlacklist.tooltip=연꽃으로 인식되지 않습니다. 보다 나은 연꽃에 영향을 주지 않습니다.
|
||||
betterfoliage.blocks.cactusWhitelist.tooltip=선인장으로 인식됩니다. 보다 나은 선인장에 영향을 줍니다.
|
||||
betterfoliage.blocks.cactusBlacklist.tooltip=선인장으로 인식되지 않습니다. 보다 나은 선인장에 영향을 주지 않습니다.
|
||||
|
||||
betterfoliage.leaves=잎 추가
|
||||
betterfoliage.leaves.tooltip=둥글게 나뭇잎을 추가시켜줍니다.
|
||||
betterfoliage.leaves.dense=조밀한 모드
|
||||
betterfoliage.leaves.dense.tooltip=조밀한 모드는 둥근 나뭇잎을 더 추가시켜줍니다.
|
||||
|
||||
betterfoliage.shortGrass=이쁜 잔디 & 균사체
|
||||
betterfoliage.shortGrass.tooltip=블록 상단에 잔디 / 균사체
|
||||
betterfoliage.shortGrass.useGenerated=잔디텍스쳐를 활성화 합니다.
|
||||
betterfoliage.shortGrass.useGenerated.tooltip=소스팩의 일부분에 활성화 되어있는 큰잔디 텍스쳐를 생성시킵니다.
|
||||
betterfoliage.shortGrass.myceliumEnabled=균사체 활성화
|
||||
betterfoliage.shortGrass.myceliumEnabled.tooltip=균사체 블록에 있는 기능을 활성화 시키겠습니까?
|
||||
betterfoliage.shortGrass.grassEnabled=잔디 활성화
|
||||
betterfoliage.shortGrass.grassEnabled.tooltip=잔디 블록에 있는 기능을 활성화 시키겠습니까?
|
||||
betterfoliage.shortGrass.snowEnabled=눈 활성화
|
||||
betterfoliage.shortGrass.snowEnabled.tooltip=잔디 블록위에 있는 눈을 활성화 시키겠습니까?
|
||||
betterfoliage.shortGrass.saturationThreshold=채도 임계값
|
||||
betterfoliage.shortGrass.saturationThreshold.tooltip=(특정 색상을 사용하여)"무채색"블록과 (바이옴 색을 사용하여)"화려한"블록 사이의 채도 차단
|
||||
|
||||
betterfoliage.hangingGrass=매달려있는 잔디
|
||||
betterfoliage.hangingGrass.tooltip=잔디 블록 상단 가장자리에서 아래로 매달려 있는 잔디 다발
|
||||
betterfoliage.hangingGrass.separation=분리
|
||||
betterfoliage.hangingGrass.separation.tooltip=잔디블럭에 매달려있는 잔디의 양
|
||||
|
||||
betterfoliage.cactus=선인장
|
||||
betterfoliage.cactus.tooltip=선인장의 비트 수와 부드러운 그림자를 추가
|
||||
betterfoliage.cactus.sizeVariation=사이즈 변화
|
||||
betterfoliage.cactus.sizeVariation.tooltip=선인장의 사이즈 크기를 무작위 변화 시킵니다.
|
||||
|
||||
betterfoliage.lilypad=연꽃잎
|
||||
betterfoliage.lilypad.tooltip=연꽃의 뿌리와 약간의 꽃 추가
|
||||
betterfoliage.lilypad.flowerChance=꽃 확률
|
||||
betterfoliage.lilypad.flowerChance.tooltip=연꽃 위에 있는 꽃 확률(N 분의 64)
|
||||
|
||||
betterfoliage.reed=갈대
|
||||
betterfoliage.reed.tooltip=물 속에서 흙블럭 위에 있는 갈대
|
||||
betterfoliage.reed.biomes=바이옴 리스트
|
||||
betterfoliage.reed.biomes.tooltip=갈대를 바이옴에 따라 표시
|
||||
betterfoliage.reed.biomes.tooltip.element=갈대를 %s 바이옴에 따라 나타내시겠습니까?
|
||||
|
||||
betterfoliage.algae=해조류
|
||||
betterfoliage.algae.tooltip=깊은 물 속 흙 블럭 위에 있는 해조류
|
||||
betterfoliage.algae.biomes=바이옴 리스트
|
||||
betterfoliage.algae.biomes.tooltip=해조류를 바이옴에 따라 표시
|
||||
betterfoliage.algae.biomes.tooltip.element=해조류를 %s 바이옴에 따라 나타내시겠습니까?
|
||||
|
||||
betterfoliage.coral=산호
|
||||
betterfoliage.coral.tooltip=깊은 물 속 모래 블럭 위에있는 산호
|
||||
betterfoliage.coral.size=산호 사이즈(크기)
|
||||
betterfoliage.coral.size.tooltip=산호 이미지만큼 적용
|
||||
betterfoliage.coral.crustSize=껍질 크기
|
||||
betterfoliage.coral.crustSize.tooltip=산호 부분의 크기
|
||||
betterfoliage.coral.chance=산호 확률
|
||||
betterfoliage.coral.chance.tooltip=산호를 특정블록에 표시하는 확률(N 분의 64)
|
||||
betterfoliage.coral.biomes=바이옴 리스트
|
||||
betterfoliage.coral.biomes.tooltip=산호를 바이옴에 따라 표시
|
||||
betterfoliage.coral.biomes.tooltip.element=산호를 %s 바이옴에 따라 나타내시겠습니까?
|
||||
betterfoliage.coral.shallowWater=얕은 물 산호
|
||||
betterfoliage.coral.shallowWater.tooltip=산호를 깊은 물에 표시하시겠습니까?
|
||||
|
||||
betterfoliage.netherrack=네더랙 덩굴
|
||||
betterfoliage.netherrack.tooltip=네더랙에 매달려있는 덩굴
|
||||
|
||||
betterfoliage.fallingLeaves=떨어지는 나뭇잎
|
||||
betterfoliage.fallingLeaves.tooltip=잎 블록에서 바닥으로 떨어지는 잎 파티클
|
||||
betterfoliage.fallingLeaves.speed=파티클 속도
|
||||
betterfoliage.fallingLeaves.speed.tooltip=전체 파티클 속도
|
||||
betterfoliage.fallingLeaves.windStrength=바람 세기
|
||||
betterfoliage.fallingLeaves.windStrength.tooltip=날씨 바람 추가효과 (0을 중심으로 정규분포의 확산)
|
||||
betterfoliage.fallingLeaves.stormStrength=폭풍 세기
|
||||
betterfoliage.fallingLeaves.stormStrength.tooltip=비 날씨에 바람 추가효과 (0을 중심으로 정규분포의 확산)
|
||||
betterfoliage.fallingLeaves.size=파티클 크기
|
||||
betterfoliage.fallingLeaves.chance=파티클 확률
|
||||
betterfoliage.fallingLeaves.chance.tooltip=잎 파티클 랜덤 확률 설정
|
||||
betterfoliage.fallingLeaves.perturb=움직임
|
||||
betterfoliage.fallingLeaves.perturb.tooltip=움직임 효과의 크기. 코르크 같은 움직임을 추가합니다.
|
||||
betterfoliage.fallingLeaves.lifetime=파티클 지속시간
|
||||
betterfoliage.fallingLeaves.lifetime.tooltip=최대 파티클 지속시간을 설정합니다. 최소 지속시간은 60%입니다.
|
||||
betterfoliage.fallingLeaves.opacityHack=불투명 파티클
|
||||
betterfoliage.fallingLeaves.opacityHack.tooltip=파티클이 앞에 있어도 파티클을 가리는 투명블럭을 없앱니다. 경고: 오류주의
|
||||
|
||||
betterfoliage.risingSoul=소울 상승
|
||||
betterfoliage.risingSoul.tooltip=소울 블럭에서 올라오는 파티클
|
||||
betterfoliage.risingSoul.chance=파티클 수정
|
||||
betterfoliage.risingSoul.chance.tooltip=소울 파티클 랜덤 확률 설정
|
||||
betterfoliage.risingSoul.speed=파티클 속도
|
||||
betterfoliage.risingSoul.speed.tooltip=파티클 속도
|
||||
betterfoliage.risingSoul.perturb=움직임
|
||||
betterfoliage.risingSoul.perturb.tooltip=움직임 효과의 크기. 코르크 같은 움직임을 추가합니다.
|
||||
betterfoliage.risingSoul.headSize=소울 크기
|
||||
betterfoliage.risingSoul.headSize.tooltip=소울 파티클의 크기
|
||||
betterfoliage.risingSoul.trailSize=자취 사이즈
|
||||
betterfoliage.risingSoul.trailSize.tooltip=자취의 크기
|
||||
betterfoliage.risingSoul.opacity=불투명
|
||||
betterfoliage.risingSoul.opacity.tooltip=파티클의 불투명
|
||||
betterfoliage.risingSoul.sizeDecay=크기 감소
|
||||
betterfoliage.risingSoul.sizeDecay.tooltip=상대적인 자취 파티클 크기
|
||||
betterfoliage.risingSoul.opacityDecay=불투명 감소
|
||||
betterfoliage.risingSoul.opacityDecay.tooltip=상대적인 입자의 파티클 불투명도
|
||||
betterfoliage.risingSoul.lifetime=최대 지속시간
|
||||
betterfoliage.risingSoul.lifetime.tooltip=최대 파티클 지속시간을 설정합니다. 최소 지속시간은 60%입니다.
|
||||
betterfoliage.risingSoul.trailLength=자취의 세기
|
||||
betterfoliage.risingSoul.trailLength.tooltip=이전 파티클 틱으로 자취를 생성합니다.
|
||||
betterfoliage.risingSoul.trailDensity=자취의 밀도
|
||||
betterfoliage.risingSoul.trailDensity.tooltip=파티클 자취를 모두 렌더링 합니다.
|
||||
|
||||
betterfoliage.connectedGrass=잔디 연결 텍스쳐
|
||||
betterfoliage.connectedGrass.enabled=활성화
|
||||
betterfoliage.connectedGrass.enabled.tooltip=잔디블록이 흙블록 위에 있을 경우 잔디블록 윗텍스쳐를 옆텍스쳐에 전부 씌웁니다.
|
||||
|
||||
betterfoliage.roundLogs=둥근 나무
|
||||
betterfoliage.roundLogs.tooltip=둥근부분을 블럭과 연결.
|
||||
betterfoliage.roundLogs.connectSolids=블럭과 연결
|
||||
betterfoliage.roundLogs.connectSolids.tooltip=둥근부분을 블럭과 연결.
|
||||
betterfoliage.roundLogs.connectPerpendicular=나무 세로부분과 연결
|
||||
betterfoliage.roundLogs.connectPerpendicular.tooltip=나무 세로부분을 나무부분끼리 연결
|
||||
betterfoliage.roundLogs.lenientConnect=부드럽게 둥글게 연결
|
||||
betterfoliage.roundLogs.lenientConnect.tooltip=2x2사이즈처럼 나무 평형된 부분끼리 서로 연결합니다.
|
||||
betterfoliage.roundLogs.connectGrass=잔디 연결 텍스쳐
|
||||
betterfoliage.roundLogs.connectGrass.tooltip=잔디가 근처에 있을 경우 나무 아래 잔디 블록을 렌더링
|
||||
betterfoliage.roundLogs.radiusSmall=모서리 깎는 반지름
|
||||
betterfoliage.roundLogs.radiusSmall.tooltip=나무 모서리 깎는 정도
|
||||
betterfoliage.roundLogs.radiusLarge=모서리 깎는 부분 연결
|
||||
betterfoliage.roundLogs.radiusLarge.tooltip=나무 모서리 부분을 연결
|
||||
betterfoliage.roundLogs.dimming=조광
|
||||
betterfoliage.roundLogs.dimming.tooltip=나무 표면부분을 어둡게하는 양
|
||||
betterfoliage.roundLogs.zProtection=Z-Protection
|
||||
betterfoliage.roundLogs.zProtection.tooltip=Amount to scale parallel log connection bits to stop Z-fighting (flickering). Try to set it as high as possible without having glitches.
|
||||
betterfoliage.roundLogs.defaultY=수직선에대한 기본값
|
||||
betterfoliage.roundLogs.defaultY.tooltip=true 일경우, 나무 블럭이 수직선에대한 렌더링을 할수가 없습니다. 그렇지 아니하면, 네모난 블럭으로 렌더링 될것임니다.
|
||||
|
||||
# Translate by IS_Jump for feedback mail acarus22@gmail.com
|
||||
154
src/main/resources/assets/betterfoliage/lang/ru_ru.json
Normal file
154
src/main/resources/assets/betterfoliage/lang/ru_ru.json
Normal file
@@ -0,0 +1,154 @@
|
||||
{
|
||||
"key.betterfoliage.gui": "Открыть настройки",
|
||||
|
||||
"betterfoliage.global.enabled": "Включить мод",
|
||||
"betterfoliage.global.enabled.tooltip": "Если установлено на false, BetterFoliage не будет ничего рендерить",
|
||||
|
||||
"betterfoliage.enabled": "Включить",
|
||||
"betterfoliage.enabled.tooltip": "Включена ли эта функция?",
|
||||
"betterfoliage.hOffset": "Горизонтальное смещение",
|
||||
"betterfoliage.hOffset.tooltip": "Дистанция горизонтального смещения этого элемента в блоках",
|
||||
"betterfoliage.vOffset": "Вертикальное смещение",
|
||||
"betterfoliage.vOffset.tooltip": "Дистанция вертикального смещения этого элемента в блоках",
|
||||
"betterfoliage.size": "Размер",
|
||||
"betterfoliage.size.tooltip": "Размер этого элемента",
|
||||
"betterfoliage.heightMin": "Минимальная высота",
|
||||
"betterfoliage.heightMin.tooltip": "Минимальная высота элемента",
|
||||
"betterfoliage.heightMax": "Максимальная высота",
|
||||
"betterfoliage.heightMax.tooltip": "Максимальная высота этого элемента",
|
||||
"betterfoliage.population": "Популяция",
|
||||
"betterfoliage.population.tooltip": "Шанс (N к 64), что блок будет иметь эту функцию",
|
||||
"betterfoliage.shaderWind": "Шейдерные эффекты ветра",
|
||||
"betterfoliage.shaderWind.tooltip": "Применить эффекты ветра с ShaderMod для этого элемента?",
|
||||
"betterfoliage.distance": "Лимит дистанции",
|
||||
"betterfoliage.distance.tooltip": "Максимальное расстояние от игрока для рендеринга этой функции",
|
||||
"betterfoliage.saturationThreshold": "Порог насыщения",
|
||||
"betterfoliage.saturationThreshold.tooltip": "Насыщенность цвета разделяется на: \"обесцвеченные\" блоки (используя цвет биома) и \"цветные\" блоки (используя их собственный цвет)",
|
||||
|
||||
"betterfoliage.leaves": "Улучшенная листва",
|
||||
"betterfoliage.leaves.tooltip": "Дополнительное округление листьев на блоках листвы.",
|
||||
"betterfoliage.leaves.dense": "Плотный режим",
|
||||
"betterfoliage.leaves.dense.tooltip": "Плотный режим имеет более округлые листья.",
|
||||
|
||||
"betterfoliage.shortGrass": "Низкая трава и мицелий",
|
||||
"betterfoliage.shortGrass.tooltip": "Пучки травы / мицелия на поверхности соответствующих блоков.",
|
||||
"betterfoliage.shortGrass.useGenerated": "Использовать сгенерированные текстуры для травы.",
|
||||
"betterfoliage.shortGrass.useGenerated.tooltip": "Сгенерированная текстура создается путём разрезания текстуры высокой травы с активного ресурс-пака пополам.",
|
||||
"betterfoliage.shortGrass.myceliumEnabled": "Включить мицелий",
|
||||
"betterfoliage.shortGrass.myceliumEnabled.tooltip": "Включить эту особенность для блоков мицелия?",
|
||||
"betterfoliage.shortGrass.grassEnabled": "Включить траву",
|
||||
"betterfoliage.shortGrass.grassEnabled.tooltip": "Включить эту особенность для блоков травы?",
|
||||
"betterfoliage.shortGrass.snowEnabled": "Включить траву под снегом",
|
||||
"betterfoliage.shortGrass.snowEnabled.tooltip": "Включить эту особенность для заснеженных блоков травы?",
|
||||
|
||||
"betterfoliage.hangingGrass": "Висячая трава",
|
||||
"betterfoliage.hangingGrass.tooltip": "Пучки травы свисают вниз с верхних краев блока травы.",
|
||||
"betterfoliage.hangingGrass.separation": "Разделение",
|
||||
"betterfoliage.hangingGrass.separation.tooltip": "Как долго подвесная трава выделяется из блока?",
|
||||
|
||||
"betterfoliage.cactus": "Улучшенные кактусы",
|
||||
"betterfoliage.cactus.tooltip": "Улучшить кактус с дополнительными частицами и плавными тенями.",
|
||||
"betterfoliage.cactus.sizeVariation": "Вариации размера",
|
||||
"betterfoliage.cactus.sizeVariation.tooltip": "Количество случайных изменений в размере кактусов.",
|
||||
|
||||
"betterfoliage.lilypad": "Улучшенные кувшинки",
|
||||
"betterfoliage.lilypad.tooltip": "Добавить кувшинкам корни и цветы.",
|
||||
"betterfoliage.lilypad.flowerChance": "Шанс появления цветов",
|
||||
"betterfoliage.lilypad.flowerChance.tooltip": "Шанс (N к 64) появления цветка на кувшинке.",
|
||||
|
||||
"betterfoliage.reed": "Камыши",
|
||||
"betterfoliage.reed.tooltip": "Мелководные камыши на блоках земли.",
|
||||
"betterfoliage.reed.biomes": "Список биомов",
|
||||
"betterfoliage.reed.biomes.tooltip": "Настройка биомов, в которых камышам разрешено появляться.",
|
||||
"betterfoliage.reed.biomes.tooltip.element": "Должны ли камыши встречаться в %s биоме?",
|
||||
|
||||
"betterfoliage.algae": "Морские водоросли",
|
||||
"betterfoliage.algae.tooltip": "Глубоководные водоросли на блоках земли.",
|
||||
"betterfoliage.algae.biomes": "Список биомов",
|
||||
"betterfoliage.algae.biomes.tooltip": "Настройка биомов, в которых водорослям разрешено появляться.",
|
||||
"betterfoliage.algae.biomes.tooltip.element": "Должны ли водоросли встречаться в %s биоме?",
|
||||
|
||||
"betterfoliage.coral": "Кораллы",
|
||||
"betterfoliage.coral.tooltip": "Кораллы на песчаных блоках в глубокой воде.",
|
||||
"betterfoliage.coral.size": "Размер кораллов",
|
||||
"betterfoliage.coral.size.tooltip": "Размер торчащих частичек кораллов.",
|
||||
"betterfoliage.coral.crustSize": "Размер коры",
|
||||
"betterfoliage.coral.crustSize.tooltip": "Размер плоской части кораллов.",
|
||||
"betterfoliage.coral.chance": "Шанс кораллов",
|
||||
"betterfoliage.coral.chance.tooltip": "Шанс (N in 64) появления кораллов на определенном блоке.",
|
||||
"betterfoliage.coral.biomes": "Список биомов",
|
||||
"betterfoliage.coral.biomes.tooltip": "Настройка биомов, в которых разрешено появляться кораллам.",
|
||||
"betterfoliage.coral.biomes.tooltip.element": "Должны ли кораллы появляться в %s биоме?",
|
||||
"betterfoliage.coral.shallowWater": "Мелководные кораллы",
|
||||
"betterfoliage.coral.shallowWater.tooltip": "Должны ли появляться кораллы в воде, глубиной в 1 блок?",
|
||||
|
||||
"betterfoliage.netherrack": "Адская лоза",
|
||||
"betterfoliage.netherrack.tooltip": "Висячая лоза под адским камнем",
|
||||
|
||||
"betterfoliage.fallingLeaves": "Падающие листья",
|
||||
"betterfoliage.fallingLeaves.tooltip": "Падение FX частиц листвы исходящие из низа блоков листвы",
|
||||
"betterfoliage.fallingLeaves.speed": "Скорость частиц",
|
||||
"betterfoliage.fallingLeaves.speed.tooltip": "Общая скорость частиц",
|
||||
"betterfoliage.fallingLeaves.windStrength": "Сила ветра",
|
||||
"betterfoliage.fallingLeaves.windStrength.tooltip": "Величина воздействия ветра в хорошую погоду (распространение нормального распределения сосредоточено на 0)",
|
||||
"betterfoliage.fallingLeaves.stormStrength": "Сила шторма",
|
||||
"betterfoliage.fallingLeaves.stormStrength.tooltip": "Дополнительная величина воздействия ветра в ненастную погоду (распространение нормального распределения сосредоточено на 0)",
|
||||
"betterfoliage.fallingLeaves.size": "Размер частиц",
|
||||
"betterfoliage.fallingLeaves.chance": "Шанс частиц",
|
||||
"betterfoliage.fallingLeaves.chance.tooltip": "Вероятность каждого случайного рендеринга в такт (1/20 секунды) опадения частицы блока листвы.",
|
||||
"betterfoliage.fallingLeaves.perturb": "Возмущение",
|
||||
"betterfoliage.fallingLeaves.perturb.tooltip": "Величина эффекта возмущений. Добавляет штопорообразное движение к частице синхронизированной с его вращением.",
|
||||
"betterfoliage.fallingLeaves.lifetime": "Максимальное время жизни",
|
||||
"betterfoliage.fallingLeaves.lifetime.tooltip": "Максимальное время жизни частиц. Минимальное время жизни - 60%% от этого значения.",
|
||||
"betterfoliage.fallingLeaves.opacityHack": "Непрозрачные частицы",
|
||||
"betterfoliage.fallingLeaves.opacityHack.tooltip": "Запретить прозрачным блокам затемнять частицы даже тогда, когда частицы впереди. ВНИМАНИЕ: может спровоцировать баги.",
|
||||
|
||||
"betterfoliage.risingSoul": "Адские духи",
|
||||
"betterfoliage.risingSoul.tooltip": "Количество душ-частиц FX, испускаемых из верхней части блоков песка душ.",
|
||||
"betterfoliage.risingSoul.chance": "Шанс частиц",
|
||||
"betterfoliage.risingSoul.chance.tooltip": "Частота генерации частиц на песке душ.",
|
||||
"betterfoliage.risingSoul.speed": "Скорость частиц",
|
||||
"betterfoliage.risingSoul.speed.tooltip": "Вертикальная скорость движения частиц духов.",
|
||||
"betterfoliage.risingSoul.perturb": "Возмущение",
|
||||
"betterfoliage.risingSoul.perturb.tooltip": "Магнитуда эффекта возмущений. Добавляет штопороподобное движение частиц.",
|
||||
"betterfoliage.risingSoul.headSize": "Размер духа",
|
||||
"betterfoliage.risingSoul.headSize.tooltip": "Размер частицы духа",
|
||||
"betterfoliage.risingSoul.trailSize": "Размер следов",
|
||||
"betterfoliage.risingSoul.trailSize.tooltip": "Начальный размер следа частиц",
|
||||
"betterfoliage.risingSoul.opacity": "Прозрачность",
|
||||
"betterfoliage.risingSoul.opacity.tooltip": "Непрозрачность эффекта частиц",
|
||||
"betterfoliage.risingSoul.sizeDecay": "Размер распада",
|
||||
"betterfoliage.risingSoul.sizeDecay.tooltip": "Следующий размер частицы соответствует их же размеру в предыдущем такте (1/20 секунды).",
|
||||
"betterfoliage.risingSoul.opacityDecay": "Непрозрачность распада",
|
||||
"betterfoliage.risingSoul.opacityDecay.tooltip": "Следующий уровень прозрачности частицы соответствует их же уровню прозрачности в предыдущем такте (1/20 секунды).",
|
||||
"betterfoliage.risingSoul.lifetime": "Максимальное время жизни",
|
||||
"betterfoliage.risingSoul.lifetime.tooltip": "Максимальное время жизни эффекта частиц. Минимальное время жизни равно 60%% от этого числа.",
|
||||
"betterfoliage.risingSoul.trailLength": "Длина следов",
|
||||
"betterfoliage.risingSoul.trailLength.tooltip": "Количество предыдущих позиций, которые запомнила частица в тактах (1/20 секунды).",
|
||||
"betterfoliage.risingSoul.trailDensity": "Плотность следов",
|
||||
"betterfoliage.risingSoul.trailDensity.tooltip": "Рендер каждой предыдущий N’ой позиции в следах частиц.",
|
||||
|
||||
|
||||
"betterfoliage.connectedGrass": "Соединенные текстуры травы",
|
||||
"betterfoliage.connectedGrass.enabled": "Включить",
|
||||
"betterfoliage.connectedGrass.enabled.tooltip": "Если блок травы находится над блоком земли: прорисовать верхнюю текстуру травы на всех сторонах блока травы.",
|
||||
|
||||
"betterfoliage.roundLogs": "Цилиндрические брёвна",
|
||||
"betterfoliage.roundLogs.tooltip": "Соединить круглые блоки в сплошные, полные блоки?",
|
||||
"betterfoliage.roundLogs.connectSolids": "Соединение в крупные брёвна",
|
||||
"betterfoliage.roundLogs.connectSolids.tooltip": "Соединить круглые блоки в сплошные, полные блоки?",
|
||||
"betterfoliage.roundLogs.connectPerpendicular": "Соединение в перпендикулярные брёвна",
|
||||
"betterfoliage.roundLogs.connectPerpendicular.tooltip": "Соединить круглые брёвна к перпендикулярным брёвнам относительно их оси?",
|
||||
"betterfoliage.roundLogs.lenientConnect": "Мягкое округление",
|
||||
"betterfoliage.roundLogs.lenientConnect.tooltip": "Соединение в параллельные круглые брёвна L-формы, не только 2х2.",
|
||||
"betterfoliage.roundLogs.connectGrass": "Соединенная трава",
|
||||
"betterfoliage.roundLogs.connectGrass.tooltip": "Заменяет землю под деревьями на траву, если она есть поблизости.",
|
||||
"betterfoliage.roundLogs.radiusSmall": "Радиус фаски",
|
||||
"betterfoliage.roundLogs.radiusSmall.tooltip": "Радиус обрезки углов от бревна.",
|
||||
"betterfoliage.roundLogs.radiusLarge": "Радиус соединенной фаски",
|
||||
"betterfoliage.roundLogs.radiusLarge.tooltip": "Радиус среза внешнего угла соединённых брёвен.",
|
||||
"betterfoliage.roundLogs.dimming": "Затемнение",
|
||||
"betterfoliage.roundLogs.dimming.tooltip": "Затемнить неясные длинные грани.",
|
||||
"betterfoliage.roundLogs.zProtection": "Z-Защита",
|
||||
"betterfoliage.roundLogs.zProtection.tooltip": "Для масштабирования параллельных битов соединения бревен, чтобы остановить Z-бой (мерцание). Попробуйте установить его как можно выше, для устранения мерцания."
|
||||
}
|
||||
@@ -1,213 +0,0 @@
|
||||
key.betterfoliage.gui=Открыть настройки
|
||||
|
||||
betterfoliage.global.enabled=Включить мод
|
||||
betterfoliage.global.enabled.tooltip=Если установлено на false, BetterFoliage не будет ничего рендерить
|
||||
|
||||
betterfoliage.enabled=Включить
|
||||
betterfoliage.enabled.tooltip=Включена ли эта функция?
|
||||
betterfoliage.hOffset=Горизонтальное смещение
|
||||
betterfoliage.hOffset.tooltip=Дистанция горизонтального смещения этого элемента в блоках
|
||||
betterfoliage.vOffset=Вертикальное смещение
|
||||
betterfoliage.vOffset.tooltip=Дистанция вертикального смещения этого элемента в блоках
|
||||
betterfoliage.size=Размер
|
||||
betterfoliage.size.tooltip=Размер этого элемента
|
||||
betterfoliage.heightMin=Минимальная высота
|
||||
betterfoliage.heightMin.tooltip=Минимальная высота элемента
|
||||
betterfoliage.heightMax=Максимальная высота
|
||||
betterfoliage.heightMax.tooltip=Максимальная высота этого элемента
|
||||
betterfoliage.population=Популяция
|
||||
betterfoliage.population.tooltip=Шанс (N к 64), что блок будет иметь эту функцию
|
||||
betterfoliage.shaderWind=Шейдерные эффекты ветра
|
||||
betterfoliage.shaderWind.tooltip=Применить эффекты ветра с ShaderMod для этого элемента?
|
||||
betterfoliage.distance=Лимит дистанции
|
||||
betterfoliage.distance.tooltip=Максимальное расстояние от игрока для рендеринга этой функции
|
||||
|
||||
betterfoliage.blocks=Типы блоков
|
||||
betterfoliage.blocks.tooltip=Настройки списка классов блоков, которые будут иметь примененные к ним функции
|
||||
|
||||
betterfoliage.blocks.dirtWhitelist=Белый список земли
|
||||
betterfoliage.blocks.dirtBlacklist=Черный список земли
|
||||
betterfoliage.blocks.dirtWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.dirtBlacklist.arrayEntry=%d записей
|
||||
|
||||
betterfoliage.blocks.grassWhitelist=Белый список травы
|
||||
betterfoliage.blocks.grassBlacklist=Черный список травы
|
||||
betterfoliage.blocks.grassWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.grassBlacklist.arrayEntry=%d записей
|
||||
|
||||
betterfoliage.blocks.leavesWhitelist=Белый список листвы
|
||||
betterfoliage.blocks.leavesBlacklist=Черный список листвы
|
||||
betterfoliage.blocks.leavesWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.leavesBlacklist.arrayEntry=%d записей
|
||||
|
||||
betterfoliage.blocks.cropsWhitelist=Белый список урожая
|
||||
betterfoliage.blocks.cropsBlacklist=Черный список урожая
|
||||
betterfoliage.blocks.cropsWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.cropsBlacklist.arrayEntry=%d записей
|
||||
|
||||
betterfoliage.blocks.logsWhitelist=Белый список древесины
|
||||
betterfoliage.blocks.logsBlacklist=Черный список древесины
|
||||
betterfoliage.blocks.logsWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.logsBlacklist.arrayEntry=%d записей
|
||||
|
||||
betterfoliage.blocks.sandWhitelist=Белый список песка
|
||||
betterfoliage.blocks.sandBlacklist=Черный список песка
|
||||
betterfoliage.blocks.sandWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.sandBlacklist.arrayEntry=%d записей
|
||||
|
||||
betterfoliage.blocks.lilypadWhitelist=Белый список кувшинок
|
||||
betterfoliage.blocks.lilypadBlacklist=Черный список кувшинок
|
||||
betterfoliage.blocks.lilypadWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.lilypadBlacklist.arrayEntry=%d записей
|
||||
|
||||
betterfoliage.blocks.cactusWhitelist=Белый список кактусов
|
||||
betterfoliage.blocks.cactusBlacklist=Черный список кактусов
|
||||
betterfoliage.blocks.cactusWhitelist.arrayEntry=%d записей
|
||||
betterfoliage.blocks.cactusBlacklist.arrayEntry=%d записей
|
||||
|
||||
|
||||
betterfoliage.blocks.dirtWhitelist.tooltip=Блоки, которые будут восприниматься в качестве земли. Влияет на камыши, водоросли, соединенную траву.
|
||||
betterfoliage.blocks.dirtBlacklist.tooltip=Блоки, которые не будут восприниматься в качестве земли. Влияет на камыши, водоросли, соединенную траву.
|
||||
betterfoliage.blocks.grassWhitelist.tooltip=Блоки, которые будут восприниматься в качестве травы. Влияет на короткую и соединенную траву.
|
||||
betterfoliage.blocks.grassBlacklist.tooltip=Блоки, которые не будут восприниматься в качестве травы. Влияет на короткую и соединенную траву.
|
||||
betterfoliage.blocks.leavesWhitelist.tooltip=Блоки, которые будут восприниматься в качестве листвы. Влияет на дополнительную листву, падающую листву. Листва будут рендериться с ID листвы в шейдер-программах.
|
||||
betterfoliage.blocks.leavesBlacklist.tooltip=Блоки, которые никогда не будут восприниматься как листва. Влияет на дополнительную листву, падающую листву. Листва будут рендериться с ID листвы в шейдер-программах.
|
||||
betterfoliage.blocks.cropsWhitelist.tooltip=Блоки, которые будут восприниматься как культуры. Культуры будут рендериться с ID высокой травы в шейдер-программах.
|
||||
betterfoliage.blocks.cropsBlacklist.tooltip= Блоки, которые никогда не будут восприниматься как культуры. Культуры будут рендериться с ID высокой травы в шейдер-программах.
|
||||
betterfoliage.blocks.logsWhitelist.tooltip=Блоки, которые будут восприниматься в качестве деревянных брёвен. Влияет на цилиндрические брёвна.
|
||||
betterfoliage.blocks.logsBlacklist.tooltip=Блоки, которые никогда не будут восприниматься в качестве деревянных брёвен. Влияет на цилиндрические брёвна.
|
||||
betterfoliage.blocks.sandWhitelist.tooltip=Блоки, которые будут восприниматься в качестве песка. Влияет на кораллы.
|
||||
betterfoliage.blocks.sandBlacklist.tooltip=Блоки, которые никогда не будут восприниматься в качестве песка. Влияет на кораллы.
|
||||
betterfoliage.blocks.lilypadWhitelist.tooltip=Блоки, которые будут восприниматься в качестве кувшинок. Влияет на улучшенные кувшинки.
|
||||
betterfoliage.blocks.lilypadBlacklist.tooltip=Блоки, которые никогда не будут восприниматься в качестве кувшинок. Влияет на улучшенные кувшинки.
|
||||
betterfoliage.blocks.cactusWhitelist.tooltip=Блоки, которые будут восприниматься в качестве кактусов. Влияет на улучшенные кактусы.
|
||||
betterfoliage.blocks.cactusBlacklist.tooltip=Блоки, которые никогда не будут восприниматься в качестве кувшинок. Влияет на улучшенные кактусы.
|
||||
|
||||
betterfoliage.leaves=Улучшенная листва
|
||||
betterfoliage.leaves.tooltip=Дополнительное округление листьев на блоках листвы.
|
||||
betterfoliage.leaves.dense=Плотный режим
|
||||
betterfoliage.leaves.dense.tooltip=Плотный режим имеет более округлые листья.
|
||||
|
||||
betterfoliage.shortGrass=Низкая трава и мицелий
|
||||
betterfoliage.shortGrass.tooltip=Пучки травы / мицелия на поверхности соответствующих блоков.
|
||||
betterfoliage.shortGrass.useGenerated=Использовать сгенерированные текстуры для травы.
|
||||
betterfoliage.shortGrass.useGenerated.tooltip=Сгенерированная текстура создается путём разрезания текстуры высокой травы с активного ресурс-пака пополам.
|
||||
betterfoliage.shortGrass.myceliumEnabled=Включить мицелий
|
||||
betterfoliage.shortGrass.myceliumEnabled.tooltip=Включить эту особенность для блоков мицелия?
|
||||
betterfoliage.shortGrass.grassEnabled=Включить траву
|
||||
betterfoliage.shortGrass.grassEnabled.tooltip=Включить эту особенность для блоков травы?
|
||||
betterfoliage.shortGrass.snowEnabled=Включить траву под снегом
|
||||
betterfoliage.shortGrass.snowEnabled.tooltip=Включить эту особенность для заснеженных блоков травы?
|
||||
betterfoliage.shortGrass.saturationThreshold=Порог насыщения
|
||||
betterfoliage.shortGrass.saturationThreshold.tooltip=Насыщенность цвета разделяется на: "обесцвеченные" блоки (используя цвет биома) и "цветные" блоки (используя их собственный цвет)
|
||||
|
||||
betterfoliage.hangingGrass=Висячая трава
|
||||
betterfoliage.hangingGrass.tooltip=Пучки травы свисают вниз с верхних краев блока травы.
|
||||
betterfoliage.hangingGrass.separation=Разделение
|
||||
betterfoliage.hangingGrass.separation.tooltip=Как долго подвесная трава выделяется из блока?
|
||||
|
||||
betterfoliage.cactus=Улучшенные кактусы
|
||||
betterfoliage.cactus.tooltip=Улучшить кактус с дополнительными частицами и плавными тенями.
|
||||
betterfoliage.cactus.sizeVariation=Вариации размера
|
||||
betterfoliage.cactus.sizeVariation.tooltip=Количество случайных изменений в размере кактусов.
|
||||
|
||||
betterfoliage.lilypad=Улучшенные кувшинки
|
||||
betterfoliage.lilypad.tooltip=Добавить кувшинкам корни и цветы.
|
||||
betterfoliage.lilypad.flowerChance=Шанс появления цветов
|
||||
betterfoliage.lilypad.flowerChance.tooltip=Шанс (N к 64) появления цветка на кувшинке.
|
||||
|
||||
betterfoliage.reed=Камыши
|
||||
betterfoliage.reed.tooltip=Мелководные камыши на блоках земли.
|
||||
betterfoliage.reed.biomes=Список биомов
|
||||
betterfoliage.reed.biomes.tooltip=Настройка биомов, в которых камышам разрешено появляться.
|
||||
betterfoliage.reed.biomes.tooltip.element=Должны ли камыши встречаться в %s биоме?
|
||||
|
||||
betterfoliage.algae=Морские водоросли
|
||||
betterfoliage.algae.tooltip=Глубоководные водоросли на блоках земли.
|
||||
betterfoliage.algae.biomes=Список биомов
|
||||
betterfoliage.algae.biomes.tooltip=Настройка биомов, в которых водорослям разрешено появляться.
|
||||
betterfoliage.algae.biomes.tooltip.element=Должны ли водоросли встречаться в %s биоме?
|
||||
|
||||
betterfoliage.coral=Кораллы
|
||||
betterfoliage.coral.tooltip=Кораллы на песчаных блоках в глубокой воде.
|
||||
betterfoliage.coral.size=Размер кораллов
|
||||
betterfoliage.coral.size.tooltip=Размер торчащих частичек кораллов.
|
||||
betterfoliage.coral.crustSize=Размер коры
|
||||
betterfoliage.coral.crustSize.tooltip=Размер плоской части кораллов.
|
||||
betterfoliage.coral.chance=Шанс кораллов
|
||||
betterfoliage.coral.chance.tooltip=Шанс (N in 64) появления кораллов на определенном блоке.
|
||||
betterfoliage.coral.biomes=Список биомов
|
||||
betterfoliage.coral.biomes.tooltip=Настройка биомов, в которых разрешено появляться кораллам.
|
||||
betterfoliage.coral.biomes.tooltip.element=Должны ли кораллы появляться в %s биоме?
|
||||
betterfoliage.coral.shallowWater=Мелководные кораллы
|
||||
betterfoliage.coral.shallowWater.tooltip=Должны ли появляться кораллы в воде, глубиной в 1 блок?
|
||||
|
||||
betterfoliage.netherrack=Адская лоза
|
||||
betterfoliage.netherrack.tooltip=Висячая лоза под адским камнем
|
||||
|
||||
betterfoliage.fallingLeaves=Падающие листья
|
||||
betterfoliage.fallingLeaves.tooltip=Падение FX частиц листвы исходящие из низа блоков листвы
|
||||
betterfoliage.fallingLeaves.speed=Скорость частиц
|
||||
betterfoliage.fallingLeaves.speed.tooltip=Общая скорость частиц
|
||||
betterfoliage.fallingLeaves.windStrength=Сила ветра
|
||||
betterfoliage.fallingLeaves.windStrength.tooltip=Величина воздействия ветра в хорошую погоду (распространение нормального распределения сосредоточено на 0)
|
||||
betterfoliage.fallingLeaves.stormStrength=Сила шторма
|
||||
betterfoliage.fallingLeaves.stormStrength.tooltip=Дополнительная величина воздействия ветра в ненастную погоду (распространение нормального распределения сосредоточено на 0)
|
||||
betterfoliage.fallingLeaves.size=Размер частиц
|
||||
betterfoliage.fallingLeaves.chance=Шанс частиц
|
||||
betterfoliage.fallingLeaves.chance.tooltip=Вероятность каждого случайного рендеринга в такт (1/20 секунды) опадения частицы блока листвы.
|
||||
betterfoliage.fallingLeaves.perturb=Возмущение
|
||||
betterfoliage.fallingLeaves.perturb.tooltip=Величина эффекта возмущений. Добавляет штопорообразное движение к частице синхронизированной с его вращением.
|
||||
betterfoliage.fallingLeaves.lifetime=Максимальное время жизни
|
||||
betterfoliage.fallingLeaves.lifetime.tooltip=Максимальное время жизни частиц. Минимальное время жизни - 60%% от этого значения.
|
||||
betterfoliage.fallingLeaves.opacityHack=Непрозрачные частицы
|
||||
betterfoliage.fallingLeaves.opacityHack.tooltip=Запретить прозрачным блокам затемнять частицы даже тогда, когда частицы впереди. ВНИМАНИЕ: может спровоцировать баги.
|
||||
|
||||
betterfoliage.risingSoul=Адские духи
|
||||
betterfoliage.risingSoul.tooltip=Количество душ-частиц FX, испускаемых из верхней части блоков песка душ.
|
||||
betterfoliage.risingSoul.chance=Шанс частиц
|
||||
betterfoliage.risingSoul.chance.tooltip=Частота генерации частиц на песке душ.
|
||||
betterfoliage.risingSoul.speed=Скорость частиц
|
||||
betterfoliage.risingSoul.speed.tooltip=Вертикальная скорость движения частиц духов.
|
||||
betterfoliage.risingSoul.perturb=Возмущение
|
||||
betterfoliage.risingSoul.perturb.tooltip=Магнитуда эффекта возмущений. Добавляет штопороподобное движение частиц.
|
||||
betterfoliage.risingSoul.headSize=Размер духа
|
||||
betterfoliage.risingSoul.headSize.tooltip=Размер частицы духа
|
||||
betterfoliage.risingSoul.trailSize=Размер следов
|
||||
betterfoliage.risingSoul.trailSize.tooltip=Начальный размер следа частиц
|
||||
betterfoliage.risingSoul.opacity=Прозрачность
|
||||
betterfoliage.risingSoul.opacity.tooltip=Непрозрачность эффекта частиц
|
||||
betterfoliage.risingSoul.sizeDecay=Размер распада
|
||||
betterfoliage.risingSoul.sizeDecay.tooltip=Следующий размер частицы соответствует их же размеру в предыдущем такте (1/20 секунды).
|
||||
betterfoliage.risingSoul.opacityDecay=Непрозрачность распада
|
||||
betterfoliage.risingSoul.opacityDecay.tooltip=Следующий уровень прозрачности частицы соответствует их же уровню прозрачности в предыдущем такте (1/20 секунды).
|
||||
betterfoliage.risingSoul.lifetime=Максимальное время жизни
|
||||
betterfoliage.risingSoul.lifetime.tooltip=Максимальное время жизни эффекта частиц. Минимальное время жизни равно 60%% от этого числа.
|
||||
betterfoliage.risingSoul.trailLength=Длина следов
|
||||
betterfoliage.risingSoul.trailLength.tooltip=Количество предыдущих позиций, которые запомнила частица в тактах (1/20 секунды).
|
||||
betterfoliage.risingSoul.trailDensity=Плотность следов
|
||||
betterfoliage.risingSoul.trailDensity.tooltip=Рендер каждой предыдущий N’ой позиции в следах частиц.
|
||||
|
||||
|
||||
betterfoliage.connectedGrass=Соединенные текстуры травы
|
||||
betterfoliage.connectedGrass.enabled=Включить
|
||||
betterfoliage.connectedGrass.enabled.tooltip=Если блок травы находится над блоком земли: прорисовать верхнюю текстуру травы на всех сторонах блока травы.
|
||||
|
||||
betterfoliage.roundLogs=Цилиндрические брёвна
|
||||
betterfoliage.roundLogs.tooltip=Соединить круглые блоки в сплошные, полные блоки?
|
||||
betterfoliage.roundLogs.connectSolids=Соединение в крупные брёвна
|
||||
betterfoliage.roundLogs.connectSolids.tooltip=Соединить круглые блоки в сплошные, полные блоки?
|
||||
betterfoliage.roundLogs.connectPerpendicular=Соединение в перпендикулярные брёвна
|
||||
betterfoliage.roundLogs.connectPerpendicular.tooltip=Соединить круглые брёвна к перпендикулярным брёвнам относительно их оси?
|
||||
betterfoliage.roundLogs.lenientConnect=Мягкое округление
|
||||
betterfoliage.roundLogs.lenientConnect.tooltip=Соединение в параллельные круглые брёвна L-формы, не только 2х2.
|
||||
betterfoliage.roundLogs.connectGrass=Соединенная трава
|
||||
betterfoliage.roundLogs.connectGrass.tooltip=Заменяет землю под деревьями на траву, если она есть поблизости.
|
||||
betterfoliage.roundLogs.radiusSmall=Радиус фаски
|
||||
betterfoliage.roundLogs.radiusSmall.tooltip=Радиус обрезки углов от бревна.
|
||||
betterfoliage.roundLogs.radiusLarge=Радиус соединенной фаски
|
||||
betterfoliage.roundLogs.radiusLarge.tooltip=Радиус среза внешнего угла соединённых брёвен.
|
||||
betterfoliage.roundLogs.dimming=Затемнение
|
||||
betterfoliage.roundLogs.dimming.tooltip=Затемнить неясные длинные грани.
|
||||
betterfoliage.roundLogs.zProtection=Z-Защита
|
||||
betterfoliage.roundLogs.zProtection.tooltip=Для масштабирования параллельных битов соединения бревен, чтобы остановить Z-бой (мерцание). Попробуйте установить его как можно выше, для устранения мерцания.
|
||||
177
src/main/resources/assets/betterfoliage/lang/zh_cn.json
Normal file
177
src/main/resources/assets/betterfoliage/lang/zh_cn.json
Normal file
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"key.betterfoliage.gui": "打开BF设置",
|
||||
|
||||
"betterfoliage.global.enabled": "模组使用",
|
||||
"betterfoliage.global.enabled.tooltip": "如果关闭,BetterFoliage不会呈现任何东西",
|
||||
"betterfoliage.nVidia": "nVidia GPU",
|
||||
"betterfoliage.nVidia.tooltip": "明确你是否有一个nVidia GPU",
|
||||
|
||||
"betterfoliage.enabled": "启用",
|
||||
"betterfoliage.enabled.tooltip": "要启用这个功能吗?",
|
||||
"betterfoliage.hOffset": "水平偏移",
|
||||
"betterfoliage.hOffset.tooltip": "在方块中这个元素是横向距离移动的",
|
||||
"betterfoliage.vOffset": "垂直偏移",
|
||||
"betterfoliage.vOffset.tooltip": "在方块中这个元素是横向距离移动的",
|
||||
"betterfoliage.size": "尺寸",
|
||||
"betterfoliage.size.tooltip": "该元素的尺寸",
|
||||
"betterfoliage.heightMin": "最小高度",
|
||||
"betterfoliage.heightMin.tooltip": "最小元素的高度",
|
||||
"betterfoliage.heightMax": "最大高度",
|
||||
"betterfoliage.heightMax.tooltip": "最大元素的高度",
|
||||
"betterfoliage.population": "物体密度",
|
||||
"betterfoliage.population.tooltip": "生成的概率为64分之1",
|
||||
"betterfoliage.shaderWind": "光影水反中的 风的影响",
|
||||
"betterfoliage.shaderWind.tooltip": "能适用于光影水反中的\"风的影响\" 这一元素?",
|
||||
"betterfoliage.distance": "距离限制",
|
||||
"betterfoliage.distance.tooltip": "离游戏者的最大距离,在这个范围内呈现这个特征",
|
||||
"betterfoliage.saturationThreshold": "饱和度阈值",
|
||||
"betterfoliage.saturationThreshold.tooltip": "色彩饱和度将介于\"无色\"方块(使用生物群系的颜色)和\"有色\"方块(使用材质特定颜色)之间",
|
||||
|
||||
"betterfoliage.rendererror": "§a[BF更好的叶子]§f 错误:渲染方块 %s 此位置 %s",
|
||||
|
||||
"betterfoliage.shaders": "着色器配置",
|
||||
"betterfoliage.shaders.tooltip": "Configure integration with shaders",
|
||||
"betterfoliage.shaders.leavesId": "叶子 ID",
|
||||
"betterfoliage.shaders.leavesId.tooltip": "方块 ID 将作为所有叶片都使用的相同ID提供给光影水反 如果你的光影水反文件使用了一个 §6block.properties§e 文件, 你可能需要修改这个以匹配光影水反的映射",
|
||||
"betterfoliage.shaders.grassId": "草 ID",
|
||||
"betterfoliage.shaders.grassId.tooltip": "方块 ID 将作为所有的草和作物都使用的相同ID提供给光影水反 如果你的光影水反文件使用了一个 §6block.properties§e 文件, 你可能需要修改这个以匹配光影水反的映射",
|
||||
|
||||
"betterfoliage.leaves": "额外的叶片",
|
||||
"betterfoliage.leaves.tooltip": "叶方块上额外的密叶",
|
||||
"betterfoliage.leaves.dense": "浓密模式",
|
||||
"betterfoliage.leaves.dense.tooltip": "浓密的叶子会有更多额外的叶片",
|
||||
"betterfoliage.leaves.snowEnabled": "启用雪覆盖叶片",
|
||||
"betterfoliage.leaves.snowEnabled.tooltip": "是否启用被雪覆盖的额外叶片?",
|
||||
"betterfoliage.leaves.hideInternal": "隐藏内部的叶片",
|
||||
"betterfoliage.leaves.hideInternal.tooltip": "如果该叶方块完全被其他叶方块或者固体方块包围,将不渲染额外的叶片",
|
||||
|
||||
"betterfoliage.shortGrass": "短草和菌丝",
|
||||
"betterfoliage.shortGrass.tooltip": "一簇小草或者一丛菌丝长在合适的方块的顶部",
|
||||
"betterfoliage.shortGrass.useGenerated": "为草使用mod创建的材质",
|
||||
"betterfoliage.shortGrass.useGenerated.tooltip": "mod创建的材质指的是将已选用的资源包中高草的材质切一半来用",
|
||||
"betterfoliage.shortGrass.myceliumEnabled": "使用在菌丝上",
|
||||
"betterfoliage.shortGrass.myceliumEnabled.tooltip": "将这个特性利用到菌丝中吗?",
|
||||
"betterfoliage.shortGrass.grassEnabled": "使用在草方块上",
|
||||
"betterfoliage.shortGrass.grassEnabled.tooltip": "将这个特性利用到草方块中吗?",
|
||||
"betterfoliage.shortGrass.snowEnabled": "使用在雪地里",
|
||||
"betterfoliage.shortGrass.snowEnabled.tooltip": "使用到被雪覆盖的草方块中去?",
|
||||
"betterfoliage.shortGrass.saturationThreshold": "饱和度阈值",
|
||||
"betterfoliage.shortGrass.saturationThreshold.tooltip": "色彩饱和度将介于\"无色\"方块(使用生物群系的颜色)和\"有色\"方块(使用材质特定颜色)之间",
|
||||
|
||||
"betterfoliage.connectedGrass": "草的纹理的连接",
|
||||
"betterfoliage.connectedGrass.tooltip": "使得草方块侧面拥有像顶面的材质",
|
||||
"betterfoliage.connectedGrass.enabled": "启用",
|
||||
"betterfoliage.connectedGrass.enabled.tooltip": "如果泥土上有草方块:所有的草方块的侧面换成草方块顶部的材质,",
|
||||
"betterfoliage.connectedGrass.snowEnabled": "使用在被雪覆盖的草方块上",
|
||||
"betterfoliage.connectedGrass.snowEnabled.tooltip": "是否应用于被雪覆盖的草方块上?",
|
||||
|
||||
"betterfoliage.hangingGrass": "悬挂的草",
|
||||
"betterfoliage.hangingGrass.tooltip": "草会在边缘的草方块上垂下来",
|
||||
"betterfoliage.hangingGrass.separation": "垂下来的距离",
|
||||
"betterfoliage.hangingGrass.separation.tooltip": "有多长的挂草会从草方块上垂下来",
|
||||
|
||||
"betterfoliage.cactus": "更好的仙人掌",
|
||||
"betterfoliage.cactus.tooltip": "用额外的仙人掌刺和圆润的形状来提高仙人掌的真实性",
|
||||
"betterfoliage.cactus.sizeVariation": "尺寸变化",
|
||||
"betterfoliage.cactus.sizeVariation.tooltip": "仙人掌的尺寸随机变化的范围",
|
||||
|
||||
"betterfoliage.lilypad": "更好的莲叶与荷花",
|
||||
"betterfoliage.lilypad.tooltip": "用莲叶的根和随机的莲花以提高莲叶的真实性",
|
||||
"betterfoliage.lilypad.flowerChance": "花的生成概率",
|
||||
"betterfoliage.lilypad.flowerChance.tooltip": "(64个莲叶中 N 个)莲叶具有花了",
|
||||
|
||||
"betterfoliage.reed": "芦苇",
|
||||
"betterfoliage.reed.tooltip": "芦苇会生成在浅水中的泥土块上",
|
||||
"betterfoliage.reed.biomes": "生物群系的列表",
|
||||
"betterfoliage.reed.biomes.tooltip": "配置允许出现芦苇的生物群系",
|
||||
"betterfoliage.reed.biomes.tooltip.element": "芦苇应该出现在%s生物群落?",
|
||||
|
||||
"betterfoliage.algae": "藻类",
|
||||
"betterfoliage.algae.tooltip": "藻类会生成在深水中的泥土块上",
|
||||
"betterfoliage.algae.biomes": "生物群系的列表",
|
||||
"betterfoliage.algae.biomes.tooltip": "配置允许出现藻类的生物群系",
|
||||
"betterfoliage.algae.biomes.tooltip.element": "藻类应该出现在%s生物群落?",
|
||||
|
||||
"betterfoliage.coral": "珊瑚",
|
||||
"betterfoliage.coral.tooltip": "珊瑚会生成在深水中的沙块上",
|
||||
"betterfoliage.coral.size": "珊瑚的大小",
|
||||
"betterfoliage.coral.size.tooltip": "珊瑚伸出的部分的大小",
|
||||
"betterfoliage.coral.crustSize": "外壳尺寸",
|
||||
"betterfoliage.coral.crustSize.tooltip": "珊瑚的平的部分的尺寸",
|
||||
"betterfoliage.coral.chance": "珊瑚的生成概率",
|
||||
"betterfoliage.coral.chance.tooltip": "64个特殊表面的方块中有N个有机会出现珊瑚",
|
||||
"betterfoliage.coral.biomes": "生物群落的列表",
|
||||
"betterfoliage.coral.biomes.tooltip": "配置允许出现珊瑚的生物群系",
|
||||
"betterfoliage.coral.biomes.tooltip.element": "珊瑚应该出现在%s生物群落?",
|
||||
"betterfoliage.coral.shallowWater": "浅海珊瑚",
|
||||
"betterfoliage.coral.shallowWater.tooltip": "珊瑚应该生成在深水1格?",
|
||||
|
||||
"betterfoliage.netherrack": "下界岩下面的藤蔓",
|
||||
"betterfoliage.netherrack.tooltip": "下界岩下面将挂上藤蔓",
|
||||
|
||||
"betterfoliage.fallingLeaves": "落叶",
|
||||
"betterfoliage.fallingLeaves.tooltip": "落叶粒子效果 FX 会从叶方块底部下落",
|
||||
"betterfoliage.fallingLeaves.speed": "粒子速度",
|
||||
"betterfoliage.fallingLeaves.speed.tooltip": "总体的粒子速度",
|
||||
"betterfoliage.fallingLeaves.windStrength": "柔风的强度",
|
||||
"betterfoliage.fallingLeaves.windStrength.tooltip": "在晴天中体现的风的效果(默认以0为中心散播)",
|
||||
"betterfoliage.fallingLeaves.stormStrength": "风暴的强度",
|
||||
"betterfoliage.fallingLeaves.stormStrength.tooltip": "附加在阴天里体现的风的效果(默认以0为中心散播)",
|
||||
"betterfoliage.fallingLeaves.size": "粒子大小",
|
||||
"betterfoliage.fallingLeaves.chance": "粒子生成机率",
|
||||
"betterfoliage.fallingLeaves.chance.tooltip": "随机渲染刻激发叶方块生成粒子的概率",
|
||||
"betterfoliage.fallingLeaves.perturb": "扰动",
|
||||
"betterfoliage.fallingLeaves.perturb.tooltip": "扰动的大小.增加了一个与之旋转同步的螺旋状动量",
|
||||
"betterfoliage.fallingLeaves.lifetime": "最长存在时间",
|
||||
"betterfoliage.fallingLeaves.lifetime.tooltip": "粒子的最长存在时间,仅在几秒内,最短时间为这个值60%%",
|
||||
"betterfoliage.fallingLeaves.opacityHack": "粒子不透明",
|
||||
"betterfoliage.fallingLeaves.opacityHack.tooltip": "阻止透明方块隐藏粒子,即使粒子已经在前面了.警告:可能会导致错误",
|
||||
|
||||
"betterfoliage.risingSoul": "灵魂沙上飘起的魂灵",
|
||||
"betterfoliage.risingSoul.tooltip": "灵魂沙的顶部飘出灵魂粒子 FX",
|
||||
"betterfoliage.risingSoul.chance": "粒子的生成机率",
|
||||
"betterfoliage.risingSoul.chance.tooltip": "随机渲染刻激发灵魂沙生成一个粒子的概率",
|
||||
"betterfoliage.risingSoul.speed": "粒子速度",
|
||||
"betterfoliage.risingSoul.speed.tooltip": "灵颗粒的垂直速度",
|
||||
"betterfoliage.risingSoul.perturb": "扰动",
|
||||
"betterfoliage.risingSoul.perturb.tooltip": "动的大小.增加了一个与之旋转同步的螺旋状动量",
|
||||
"betterfoliage.risingSoul.headSize": "魂灵的大小",
|
||||
"betterfoliage.risingSoul.headSize.tooltip": "灵魂粒子的大小",
|
||||
"betterfoliage.risingSoul.trailSize": "魂灵轨迹的大小",
|
||||
"betterfoliage.risingSoul.trailSize.tooltip": "灵魂粒子的轨迹的初始大小",
|
||||
"betterfoliage.risingSoul.opacity": "不透明度",
|
||||
"betterfoliage.risingSoul.opacity.tooltip": "粒子效果的不透明度",
|
||||
"betterfoliage.risingSoul.sizeDecay": "大小的衰减",
|
||||
"betterfoliage.risingSoul.sizeDecay.tooltip": "灵魂轨迹粒子大小与前一刻他的大小相关",
|
||||
"betterfoliage.risingSoul.opacityDecay": "不透明度的衰减",
|
||||
"betterfoliage.risingSoul.opacityDecay.tooltip": "灵魂轨迹粒子不透明度与前一刻他的不透明度相关",
|
||||
"betterfoliage.risingSoul.lifetime": "最长存在时间",
|
||||
"betterfoliage.risingSoul.lifetime.tooltip": "粒子的最长存在时间,仅在几秒内,最短时间为这个值60%%",
|
||||
"betterfoliage.risingSoul.trailLength": "魂灵轨迹长度",
|
||||
"betterfoliage.risingSoul.trailLength.tooltip": "在游戏刻内粒子记录的轨迹位置的数量",
|
||||
"betterfoliage.risingSoul.trailDensity": "魂灵轨迹密集程度",
|
||||
"betterfoliage.risingSoul.trailDensity.tooltip": "整条轨迹中渲染每第N个轨迹位置",
|
||||
|
||||
"betterfoliage.roundLogs": "圆木",
|
||||
"betterfoliage.roundLogs.tooltip": "使木方块拥有八角形的横截面",
|
||||
"betterfoliage.roundLogs.plantsOnly": "仅仅应用于植物性材料",
|
||||
"betterfoliage.roundLogs.plantsOnly.tooltip": "是否仅仅应用于木质材料和干草堆,而不是所有圆柱方块?",
|
||||
"betterfoliage.roundLogs.connectSolids": "连接到固体方块上",
|
||||
"betterfoliage.roundLogs.connectSolids.tooltip": "要使圆木连接到完整的固体方块上吗?",
|
||||
"betterfoliage.roundLogs.connectPerpendicular": "连接到垂直的圆木上",
|
||||
"betterfoliage.roundLogs.connectPerpendicular.tooltip": "要使圆木根据它的角度连接到垂直圆木上吗?",
|
||||
"betterfoliage.roundLogs.lenientConnect": "巨大的圆木",
|
||||
"betterfoliage.roundLogs.lenientConnect.tooltip": "在L形中也连接成巨大的圆木, 不只是2x2形",
|
||||
"betterfoliage.roundLogs.connectGrass": "连接到草方块上",
|
||||
"betterfoliage.roundLogs.connectGrass.tooltip": "如果树木下的泥土附近有草方块,那么它也会被渲染成草方块",
|
||||
"betterfoliage.roundLogs.radiusSmall": "圆木斜面的半径",
|
||||
"betterfoliage.roundLogs.radiusSmall.tooltip": "从圆木的外角砍掉多大的部分",
|
||||
"betterfoliage.roundLogs.radiusLarge": "连接圆木的斜面半径",
|
||||
"betterfoliage.roundLogs.radiusLarge.tooltip": "从连接着的巨大圆木的外角砍掉多大的部分",
|
||||
"betterfoliage.roundLogs.dimming": "调光变暗",
|
||||
"betterfoliage.roundLogs.dimming.tooltip": "将圆木阴暗面变黑的程度",
|
||||
"betterfoliage.roundLogs.zProtection": "Z-Protection [Z保护]",
|
||||
"betterfoliage.roundLogs.zProtection.tooltip": "用多少倍放大平行圆木连接处的面 去停止 Z-fighting (闪烁)[斑驳,两个多边形共面所出现的效果].在没有发生故障的情况下,试着将这个值设置得尽可能的高[这是Z-fighting出现的原因:多个多面体的面重叠在一起,会一直闪烁]",
|
||||
"betterfoliage.roundLogs.defaultY": "默认垂直",
|
||||
"betterfoliage.roundLogs.defaultY.tooltip": "如果开启, 方向不确定的圆木将会渲染成垂直的.否则, 它们仅仅渲染为cube型方块.",
|
||||
}
|
||||
Reference in New Issue
Block a user