mirror of
https://github.com/BlueMap-Minecraft/BlueMap.git
synced 2024-11-16 07:35:31 +01:00
Restructure resource-extensions, fix some issues and add support for biome grass_color_modifier
This commit is contained in:
parent
a311fc1cef
commit
36c1d3f7ac
2
.gitignore
vendored
2
.gitignore
vendored
@ -18,7 +18,7 @@ release.md
|
|||||||
|
|
||||||
# exclude generated resource
|
# exclude generated resource
|
||||||
BlueMapCommon/src/main/resources/de/bluecolored/bluemap/webapp.zip
|
BlueMapCommon/src/main/resources/de/bluecolored/bluemap/webapp.zip
|
||||||
BlueMapCore/src/main/resources/de/bluecolored/bluemap/*/resourceExtensions.zip
|
BlueMapCore/src/main/resources/de/bluecolored/bluemap/resourceExtensions.zip
|
||||||
|
|
||||||
#exclude-test-data
|
#exclude-test-data
|
||||||
data/test-render
|
data/test-render
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit b200d339f1a20c5d0def4e134237c756e6294c50
|
Subproject commit 6c84500dfc560ec9588c89f71cc4a2d7edef2b2d
|
@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
@ -121,28 +121,11 @@ tasks.processResources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//resource Extensions
|
tasks.register("zipResourceExtensions", type = Zip::class) {
|
||||||
val resourceIds: Array<String> = arrayOf(
|
from(fileTree("src/main/resourceExtensions"))
|
||||||
"1_13", "1_15", "1_16", "1_18", "1_20_3"
|
|
||||||
)
|
|
||||||
|
|
||||||
tasks.register("zipResourceExtensions") {
|
|
||||||
resourceIds.forEach {
|
|
||||||
dependsOn("zipResourceExtensions$it")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resourceIds.forEach {
|
|
||||||
zipResourcesTask(it)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun zipResourcesTask(resourceId: String) {
|
|
||||||
tasks.register ("zipResourceExtensions$resourceId", type = Zip::class) {
|
|
||||||
from(fileTree("src/main/resourceExtensions/mc$resourceId"))
|
|
||||||
archiveFileName.set("resourceExtensions.zip")
|
archiveFileName.set("resourceExtensions.zip")
|
||||||
destinationDirectory.set(file("src/main/resources/de/bluecolored/bluemap/mc$resourceId/"))
|
destinationDirectory.set(file("src/main/resources/de/bluecolored/bluemap/"))
|
||||||
outputs.upToDateWhen{ false }
|
outputs.upToDateWhen{ false }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//always update the zip before build
|
//always update the zip before build
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
import com.google.gson.stream.JsonReader;
|
import com.google.gson.stream.JsonReader;
|
||||||
import de.bluecolored.bluemap.api.debug.DebugDump;
|
import de.bluecolored.bluemap.api.debug.DebugDump;
|
||||||
import de.bluecolored.bluemap.core.util.math.Color;
|
import de.bluecolored.bluemap.core.util.math.Color;
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.block.Block;
|
import de.bluecolored.bluemap.core.world.block.Block;
|
||||||
import de.bluecolored.bluemap.core.world.block.BlockNeighborhood;
|
import de.bluecolored.bluemap.core.world.block.BlockNeighborhood;
|
||||||
|
|
||||||
@ -188,12 +188,10 @@ public Color getBlendedGrassColor(BlockNeighborhood<?> block, Color target) {
|
|||||||
|
|
||||||
int x, y, z;
|
int x, y, z;
|
||||||
|
|
||||||
Biome biome;
|
|
||||||
for (y = BLEND_MIN_Y; y <= BLEND_MAX_Y; y++) {
|
for (y = BLEND_MIN_Y; y <= BLEND_MAX_Y; y++) {
|
||||||
for (x = BLEND_MIN_X; x <= BLEND_MAX_X; x++) {
|
for (x = BLEND_MIN_X; x <= BLEND_MAX_X; x++) {
|
||||||
for (z = BLEND_MIN_Z; z <= BLEND_MAX_Z; z++) {
|
for (z = BLEND_MIN_Z; z <= BLEND_MAX_Z; z++) {
|
||||||
biome = block.getNeighborBlock(x, y, z).getBiome();
|
target.add(getGrassColor(block.getNeighborBlock(x, y, z), tempColor));
|
||||||
target.add(getGrassColor(biome, tempColor));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -201,9 +199,12 @@ public Color getBlendedGrassColor(BlockNeighborhood<?> block, Color target) {
|
|||||||
return target.flatten();
|
return target.flatten();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Color getGrassColor(Biome biome, Color target) {
|
public Color getGrassColor(Block<?> block, Color target) {
|
||||||
|
Biome biome = block.getBiome();
|
||||||
getColorFromMap(biome, grassMap, 0xff52952f, target);
|
getColorFromMap(biome, grassMap, 0xff52952f, target);
|
||||||
return target.overlay(biome.getOverlayGrassColor());
|
target.overlay(biome.getOverlayGrassColor());
|
||||||
|
biome.getGrassColorModifier().apply(block, target);
|
||||||
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getColorFromMap(Biome biome, int[] colorMap, int defaultColor, Color target) {
|
private void getColorFromMap(Biome biome, int[] colorMap, int defaultColor, Color target) {
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.nio.file.*;
|
import java.nio.file.*;
|
||||||
import java.security.DigestInputStream;
|
import java.security.DigestInputStream;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
@ -196,7 +197,7 @@ private static VersionInfo loadVersionInfo(Path file) throws IOException {
|
|||||||
Path versionFile = fsRoot.resolve("version.json");
|
Path versionFile = fsRoot.resolve("version.json");
|
||||||
if (!Files.exists(versionFile)) continue;
|
if (!Files.exists(versionFile)) continue;
|
||||||
|
|
||||||
try (Reader reader = Files.newBufferedReader(file)) {
|
try (Reader reader = Files.newBufferedReader(versionFile, StandardCharsets.UTF_8)) {
|
||||||
return GSON.fromJson(reader, VersionInfo.class);
|
return GSON.fromJson(reader, VersionInfo.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -217,8 +218,8 @@ public static class VersionInfo {
|
|||||||
|
|
||||||
public static class VersionInfoAdapter extends AbstractTypeAdapterFactory<VersionInfo> {
|
public static class VersionInfoAdapter extends AbstractTypeAdapterFactory<VersionInfo> {
|
||||||
|
|
||||||
public VersionInfoAdapter(Class<VersionInfo> type) {
|
public VersionInfoAdapter() {
|
||||||
super(type);
|
super(VersionInfo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -54,8 +54,8 @@ public ResourcePath(String namespace, String value) {
|
|||||||
super(namespace.toLowerCase(Locale.ROOT), value.toLowerCase(Locale.ROOT));
|
super(namespace.toLowerCase(Locale.ROOT), value.toLowerCase(Locale.ROOT));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResourcePath(Path filePath) {
|
public ResourcePath(Path filePath, int namespacePos, int valuePos) {
|
||||||
super(parsePath(filePath).toLowerCase(Locale.ROOT));
|
super(parsePath(filePath, namespacePos, valuePos).toLowerCase(Locale.ROOT));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@ -73,12 +73,12 @@ public void setResource(T resource) {
|
|||||||
this.resource = resource;
|
this.resource = resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String parsePath(Path filePath) {
|
private static String parsePath(Path filePath, int namespacePos, int valuePos) {
|
||||||
if (filePath.getNameCount() < 4)
|
if (filePath.getNameCount() <= valuePos)
|
||||||
throw new IllegalArgumentException("The provided filePath has less than 4 segments!");
|
throw new IllegalArgumentException("The provided filePath has not enough segments!");
|
||||||
|
|
||||||
String namespace = filePath.getName(1).toString();
|
String namespace = filePath.getName(namespacePos).toString();
|
||||||
String path = filePath.subpath(3, filePath.getNameCount()).toString().replace(filePath.getFileSystem().getSeparator(), "/");
|
String path = filePath.subpath(valuePos, filePath.getNameCount()).toString().replace(filePath.getFileSystem().getSeparator(), "/");
|
||||||
|
|
||||||
// remove file-ending
|
// remove file-ending
|
||||||
int dotIndex = path.lastIndexOf('.');
|
int dotIndex = path.lastIndexOf('.');
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
@ -47,7 +48,7 @@ public static VersionManifest getOrFetch() throws IOException {
|
|||||||
public static VersionManifest fetch() throws IOException {
|
public static VersionManifest fetch() throws IOException {
|
||||||
try (
|
try (
|
||||||
InputStream in = new URL(MANIFEST_URL).openStream();
|
InputStream in = new URL(MANIFEST_URL).openStream();
|
||||||
Reader reader = new BufferedReader(new InputStreamReader(in))
|
Reader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))
|
||||||
) {
|
) {
|
||||||
instance = GSON.fromJson(reader, VersionManifest.class);
|
instance = GSON.fromJson(reader, VersionManifest.class);
|
||||||
}
|
}
|
||||||
@ -94,7 +95,7 @@ public synchronized VersionDetail fetchDetail() throws IOException {
|
|||||||
if (detail == null) {
|
if (detail == null) {
|
||||||
try (
|
try (
|
||||||
InputStream in = new URL(url).openStream();
|
InputStream in = new URL(url).openStream();
|
||||||
Reader reader = new BufferedReader(new InputStreamReader(in))
|
Reader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))
|
||||||
) {
|
) {
|
||||||
detail = GSON.fromJson(reader, VersionDetail.class);
|
detail = GSON.fromJson(reader, VersionDetail.class);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package de.bluecolored.bluemap.core.resources.adapter;
|
||||||
|
|
||||||
|
import com.google.gson.TypeAdapter;
|
||||||
|
import com.google.gson.stream.JsonReader;
|
||||||
|
import com.google.gson.stream.JsonWriter;
|
||||||
|
import de.bluecolored.bluemap.core.logger.Logger;
|
||||||
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
|
import de.bluecolored.bluemap.core.util.Keyed;
|
||||||
|
import de.bluecolored.bluemap.core.util.Registry;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class RegistryAdapter<T extends Keyed> extends TypeAdapter<T> {
|
||||||
|
|
||||||
|
private final Registry<T> registry;
|
||||||
|
private final String defaultNamespace;
|
||||||
|
private final T fallback;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T read(JsonReader in) throws IOException {
|
||||||
|
Key key = Key.parse(in.nextString(), defaultNamespace);
|
||||||
|
T value = registry.get(key);
|
||||||
|
if (value != null) return value;
|
||||||
|
|
||||||
|
Logger.global.noFloodWarning("unknown-registry-key-" + key.getFormatted(), "Failed to find registry-entry for key: " + key);
|
||||||
|
return fallback;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(JsonWriter out, T value) throws IOException {
|
||||||
|
out.value(value.getKey().getFormatted());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -31,8 +31,10 @@
|
|||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import de.bluecolored.bluemap.core.resources.pack.resourcepack.blockmodel.Face;
|
import de.bluecolored.bluemap.core.resources.pack.resourcepack.blockmodel.Face;
|
||||||
import de.bluecolored.bluemap.core.util.Direction;
|
import de.bluecolored.bluemap.core.util.Direction;
|
||||||
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
import de.bluecolored.bluemap.core.util.math.Axis;
|
import de.bluecolored.bluemap.core.util.math.Axis;
|
||||||
import de.bluecolored.bluemap.core.util.math.Color;
|
import de.bluecolored.bluemap.core.util.math.Color;
|
||||||
|
import de.bluecolored.bluemap.core.world.biome.GrassColorModifier;
|
||||||
|
|
||||||
import java.util.EnumMap;
|
import java.util.EnumMap;
|
||||||
|
|
||||||
@ -56,7 +58,12 @@ public static GsonBuilder addAdapter(GsonBuilder builder) {
|
|||||||
.registerTypeAdapter(
|
.registerTypeAdapter(
|
||||||
new TypeToken<EnumMap<Direction, Face>>(){}.getType(),
|
new TypeToken<EnumMap<Direction, Face>>(){}.getType(),
|
||||||
new EnumMapInstanceCreator<Direction, Face>(Direction.class)
|
new EnumMapInstanceCreator<Direction, Face>(Direction.class)
|
||||||
);
|
)
|
||||||
|
.registerTypeAdapter(GrassColorModifier.class, new RegistryAdapter<>(
|
||||||
|
GrassColorModifier.REGISTRY,
|
||||||
|
Key.MINECRAFT_NAMESPACE,
|
||||||
|
GrassColorModifier.NONE
|
||||||
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import de.bluecolored.bluemap.core.logger.Logger;
|
import de.bluecolored.bluemap.core.logger.Logger;
|
||||||
import de.bluecolored.bluemap.core.resources.PackMeta;
|
|
||||||
import de.bluecolored.bluemap.core.resources.ResourcePath;
|
import de.bluecolored.bluemap.core.resources.ResourcePath;
|
||||||
import de.bluecolored.bluemap.core.resources.adapter.ResourcesGson;
|
import de.bluecolored.bluemap.core.resources.adapter.ResourcesGson;
|
||||||
import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack;
|
import de.bluecolored.bluemap.core.resources.pack.resourcepack.ResourcePack;
|
||||||
@ -80,9 +79,9 @@ protected void loadResourcePath(Path root, ResourcePack.PathLoader resourceLoade
|
|||||||
resourceLoader.load(root);
|
resourceLoader.load(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <T> void loadResource(Path root, Path file, Loader<T> loader, Map<? super ResourcePath<T>, T> resultMap) {
|
protected <T> void loadResource(Path root, Path file, int namespacePos, int valuePos, Loader<T> loader, Map<? super ResourcePath<T>, T> resultMap) {
|
||||||
try {
|
try {
|
||||||
ResourcePath<T> resourcePath = new ResourcePath<>(root.relativize(file));
|
ResourcePath<T> resourcePath = new ResourcePath<>(root.relativize(file), namespacePos, valuePos);
|
||||||
if (resultMap.containsKey(resourcePath)) return; // don't load already present resources
|
if (resultMap.containsKey(resourcePath)) return; // don't load already present resources
|
||||||
|
|
||||||
T resource = loader.load(resourcePath);
|
T resource = loader.load(resourcePath);
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package de.bluecolored.bluemap.core.resources;
|
package de.bluecolored.bluemap.core.resources.pack;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.annotations.JsonAdapter;
|
import com.google.gson.annotations.JsonAdapter;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.google.gson.stream.JsonReader;
|
import com.google.gson.stream.JsonReader;
|
||||||
import com.google.gson.stream.JsonToken;
|
import com.google.gson.stream.JsonToken;
|
||||||
|
import de.bluecolored.bluemap.core.resources.AbstractTypeAdapterFactory;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
@ -50,8 +51,8 @@ public boolean includes(int version) {
|
|||||||
|
|
||||||
private static class Adapter extends AbstractTypeAdapterFactory<VersionRange> {
|
private static class Adapter extends AbstractTypeAdapterFactory<VersionRange> {
|
||||||
|
|
||||||
public Adapter(Class<VersionRange> type) {
|
public Adapter() {
|
||||||
super(type);
|
super(VersionRange.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
@ -30,7 +30,7 @@
|
|||||||
import de.bluecolored.bluemap.core.resources.pack.datapack.biome.DatapackBiome;
|
import de.bluecolored.bluemap.core.resources.pack.datapack.biome.DatapackBiome;
|
||||||
import de.bluecolored.bluemap.core.resources.pack.datapack.dimension.DimensionTypeData;
|
import de.bluecolored.bluemap.core.resources.pack.datapack.dimension.DimensionTypeData;
|
||||||
import de.bluecolored.bluemap.core.util.Key;
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.DimensionType;
|
import de.bluecolored.bluemap.core.world.DimensionType;
|
||||||
import de.bluecolored.bluemap.core.world.mca.chunk.LegacyBiomes;
|
import de.bluecolored.bluemap.core.world.mca.chunk.LegacyBiomes;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@ -88,7 +88,7 @@ private void loadPath(Path root) {
|
|||||||
.flatMap(DataPack::walk)
|
.flatMap(DataPack::walk)
|
||||||
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
||||||
.filter(Files::isRegularFile)
|
.filter(Files::isRegularFile)
|
||||||
.forEach(file -> loadResource(root, file, key -> {
|
.forEach(file -> loadResource(root, file, 1, 3, key -> {
|
||||||
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
||||||
return ResourcesGson.INSTANCE.fromJson(reader, DimensionTypeData.class);
|
return ResourcesGson.INSTANCE.fromJson(reader, DimensionTypeData.class);
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ private void loadPath(Path root) {
|
|||||||
.flatMap(DataPack::walk)
|
.flatMap(DataPack::walk)
|
||||||
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
||||||
.filter(Files::isRegularFile)
|
.filter(Files::isRegularFile)
|
||||||
.forEach(file -> loadResource(root, file, key -> {
|
.forEach(file -> loadResource(root, file, 1, 4, key -> {
|
||||||
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
||||||
return new DatapackBiome(key, ResourcesGson.INSTANCE.fromJson(reader, DatapackBiome.Data.class));
|
return new DatapackBiome(key, ResourcesGson.INSTANCE.fromJson(reader, DatapackBiome.Data.class));
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
import de.bluecolored.bluemap.core.util.Key;
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
import de.bluecolored.bluemap.core.util.math.Color;
|
import de.bluecolored.bluemap.core.util.math.Color;
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
|
import de.bluecolored.bluemap.core.world.biome.GrassColorModifier;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
@ -38,6 +39,11 @@ public Color getOverlayGrassColor() {
|
|||||||
return data.effects.grassColor;
|
return data.effects.grassColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GrassColorModifier getGrassColorModifier() {
|
||||||
|
return data.effects.grassColorModifier;
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("FieldMayBeFinal")
|
@SuppressWarnings("FieldMayBeFinal")
|
||||||
@Getter
|
@Getter
|
||||||
public static class Data {
|
public static class Data {
|
||||||
@ -55,6 +61,7 @@ public static class Effects {
|
|||||||
private Color waterColor = Biome.DEFAULT.getWaterColor();
|
private Color waterColor = Biome.DEFAULT.getWaterColor();
|
||||||
private Color foliageColor = Biome.DEFAULT.getOverlayFoliageColor();
|
private Color foliageColor = Biome.DEFAULT.getOverlayFoliageColor();
|
||||||
private Color grassColor = Biome.DEFAULT.getOverlayGrassColor();
|
private Color grassColor = Biome.DEFAULT.getOverlayGrassColor();
|
||||||
|
private GrassColorModifier grassColorModifier = Biome.DEFAULT.getGrassColorModifier();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ private void loadResources(Path root) throws IOException {
|
|||||||
.flatMap(ResourcePack::walk)
|
.flatMap(ResourcePack::walk)
|
||||||
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
||||||
.filter(Files::isRegularFile)
|
.filter(Files::isRegularFile)
|
||||||
.forEach(file -> loadResource(root, file, key -> {
|
.forEach(file -> loadResource(root, file, 1, 3, key -> {
|
||||||
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
||||||
return ResourcesGson.INSTANCE.fromJson(reader, BlockState.class);
|
return ResourcesGson.INSTANCE.fromJson(reader, BlockState.class);
|
||||||
}
|
}
|
||||||
@ -150,7 +150,7 @@ private void loadResources(Path root) throws IOException {
|
|||||||
.flatMap(ResourcePack::walk)
|
.flatMap(ResourcePack::walk)
|
||||||
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
.filter(path -> path.getFileName().toString().endsWith(".json"))
|
||||||
.filter(Files::isRegularFile)
|
.filter(Files::isRegularFile)
|
||||||
.forEach(file -> loadResource(root, file, key -> {
|
.forEach(file -> loadResource(root, file, 1, 3, key -> {
|
||||||
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
try (BufferedReader reader = Files.newBufferedReader(file)) {
|
||||||
return ResourcesGson.INSTANCE.fromJson(reader, BlockModel.class);
|
return ResourcesGson.INSTANCE.fromJson(reader, BlockModel.class);
|
||||||
}
|
}
|
||||||
@ -162,7 +162,7 @@ private void loadResources(Path root) throws IOException {
|
|||||||
walk(root.resolve("assets").resolve("minecraft").resolve("textures").resolve("colormap"))
|
walk(root.resolve("assets").resolve("minecraft").resolve("textures").resolve("colormap"))
|
||||||
.filter(path -> path.getFileName().toString().endsWith(".png"))
|
.filter(path -> path.getFileName().toString().endsWith(".png"))
|
||||||
.filter(Files::isRegularFile)
|
.filter(Files::isRegularFile)
|
||||||
.forEach(file -> loadResource(root, file, key -> {
|
.forEach(file -> loadResource(root, file, 1, 3, key -> {
|
||||||
try (InputStream in = Files.newInputStream(file)) {
|
try (InputStream in = Files.newInputStream(file)) {
|
||||||
return ImageIO.read(in);
|
return ImageIO.read(in);
|
||||||
}
|
}
|
||||||
@ -226,7 +226,7 @@ private void loadTextures(Path root) throws IOException {
|
|||||||
.flatMap(ResourcePack::walk)
|
.flatMap(ResourcePack::walk)
|
||||||
.filter(path -> path.getFileName().toString().endsWith(".png"))
|
.filter(path -> path.getFileName().toString().endsWith(".png"))
|
||||||
.filter(Files::isRegularFile)
|
.filter(Files::isRegularFile)
|
||||||
.forEach(file -> loadResource(root, file, key -> {
|
.forEach(file -> loadResource(root, file, 1, 3, key -> {
|
||||||
if (!usedTextures.contains(key)) return null; // don't load unused textures
|
if (!usedTextures.contains(key)) return null; // don't load unused textures
|
||||||
|
|
||||||
// load image
|
// load image
|
||||||
|
@ -81,11 +81,15 @@ public Key getKey() {
|
|||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (this == o) return true;
|
if (this == o) return true;
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
if (!(o instanceof Key that)) return false;
|
||||||
Key that = (Key) o;
|
if (!that.canEqual(this)) return false;
|
||||||
return formatted == that.formatted;
|
return formatted == that.formatted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean canEqual(Object o) {
|
||||||
|
return o instanceof Key;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
return formatted.hashCode();
|
return formatted.hashCode();
|
||||||
|
@ -66,7 +66,6 @@ public BlockState(String value, Map<String, String> properties) {
|
|||||||
this.hashed = false;
|
this.hashed = false;
|
||||||
this.hash = 0;
|
this.hash = 0;
|
||||||
|
|
||||||
//this.properties = Collections.unmodifiableMap(new HashMap<>(properties)); // <- not doing this to reduce object-creation
|
|
||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
this.propertiesArray = properties.entrySet().stream()
|
this.propertiesArray = properties.entrySet().stream()
|
||||||
.map(e -> new Property(e.getKey(), e.getValue()))
|
.map(e -> new Property(e.getKey(), e.getValue()))
|
||||||
@ -141,13 +140,17 @@ public int getRedstonePower() {
|
|||||||
@Override
|
@Override
|
||||||
public boolean equals(Object obj) {
|
public boolean equals(Object obj) {
|
||||||
if (this == obj) return true;
|
if (this == obj) return true;
|
||||||
|
if (!(obj instanceof BlockState b)) return false;
|
||||||
if (!(obj instanceof BlockState)) return false;
|
if (!b.canEqual(this)) return false;
|
||||||
BlockState b = (BlockState) obj;
|
|
||||||
if (getFormatted() != b.getFormatted()) return false;
|
if (getFormatted() != b.getFormatted()) return false;
|
||||||
return Arrays.equals(propertiesArray, b.propertiesArray);
|
return Arrays.equals(propertiesArray, b.propertiesArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean canEqual(Object o) {
|
||||||
|
return o instanceof BlockState;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
if (!hashed){
|
if (!hashed){
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
package de.bluecolored.bluemap.core.world;
|
package de.bluecolored.bluemap.core.world;
|
||||||
|
|
||||||
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.block.entity.BlockEntity;
|
import de.bluecolored.bluemap.core.world.block.entity.BlockEntity;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
* THE SOFTWARE.
|
* THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
package de.bluecolored.bluemap.core.world;
|
package de.bluecolored.bluemap.core.world.biome;
|
||||||
|
|
||||||
import de.bluecolored.bluemap.api.debug.DebugDump;
|
import de.bluecolored.bluemap.api.debug.DebugDump;
|
||||||
import de.bluecolored.bluemap.core.util.Key;
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
@ -45,6 +45,8 @@ public interface Biome extends Keyed {
|
|||||||
|
|
||||||
Color getOverlayGrassColor();
|
Color getOverlayGrassColor();
|
||||||
|
|
||||||
|
GrassColorModifier getGrassColorModifier();
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
class Default implements Biome {
|
class Default implements Biome {
|
||||||
|
|
||||||
@ -54,6 +56,7 @@ class Default implements Biome {
|
|||||||
private final Color waterColor = new Color().set(4159204 | 0xFF000000).premultiplied();
|
private final Color waterColor = new Color().set(4159204 | 0xFF000000).premultiplied();
|
||||||
private final Color overlayFoliageColor = new Color().premultiplied();
|
private final Color overlayFoliageColor = new Color().premultiplied();
|
||||||
private final Color overlayGrassColor = new Color().premultiplied();
|
private final Color overlayGrassColor = new Color().premultiplied();
|
||||||
|
private final GrassColorModifier grassColorModifier = GrassColorModifier.NONE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
|||||||
|
package de.bluecolored.bluemap.core.world.biome;
|
||||||
|
|
||||||
|
import de.bluecolored.bluemap.core.util.math.Color;
|
||||||
|
import de.bluecolored.bluemap.core.world.block.Block;
|
||||||
|
|
||||||
|
public interface ColorModifier {
|
||||||
|
|
||||||
|
void apply(Block<?> block, Color color);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package de.bluecolored.bluemap.core.world.biome;
|
||||||
|
|
||||||
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
|
import de.bluecolored.bluemap.core.util.Keyed;
|
||||||
|
import de.bluecolored.bluemap.core.util.Registry;
|
||||||
|
import de.bluecolored.bluemap.core.util.math.Color;
|
||||||
|
import de.bluecolored.bluemap.core.world.block.Block;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
public interface GrassColorModifier extends Keyed, ColorModifier {
|
||||||
|
|
||||||
|
GrassColorModifier NONE = new Impl(Key.minecraft("none"), (Block<?> block, Color color) -> {});
|
||||||
|
GrassColorModifier DARK_FOREST = new Impl(Key.minecraft("dark_forest"), (Block<?> block, Color color) ->
|
||||||
|
color.set(((color.getInt() & 0xfefefe) + 0x28340a >> 1) | 0xff000000, true)
|
||||||
|
);
|
||||||
|
GrassColorModifier SWAMP = new Impl(Key.minecraft("swamp"), (Block<?> block, Color color) -> {
|
||||||
|
color.set(0xff6a7039, true);
|
||||||
|
|
||||||
|
/* Vanilla code with noise:
|
||||||
|
double f = FOLIAGE_NOISE.sample(block.getX() * 0.0225, block.getZ() * 0.0225, false);
|
||||||
|
|
||||||
|
if (f < -0.1) color.set(5011004)
|
||||||
|
else color.set(6975545);
|
||||||
|
*/
|
||||||
|
});
|
||||||
|
|
||||||
|
Registry<GrassColorModifier> REGISTRY = new Registry<>(
|
||||||
|
NONE,
|
||||||
|
DARK_FOREST,
|
||||||
|
SWAMP
|
||||||
|
);
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Getter
|
||||||
|
class Impl implements GrassColorModifier {
|
||||||
|
|
||||||
|
private final Key key;
|
||||||
|
private final ColorModifier modifier;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(Block<?> block, Color color) {
|
||||||
|
modifier.apply(block, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -25,6 +25,7 @@
|
|||||||
package de.bluecolored.bluemap.core.world.block;
|
package de.bluecolored.bluemap.core.world.block;
|
||||||
|
|
||||||
import de.bluecolored.bluemap.core.world.*;
|
import de.bluecolored.bluemap.core.world.*;
|
||||||
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.block.entity.BlockEntity;
|
import de.bluecolored.bluemap.core.world.block.entity.BlockEntity;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import de.bluecolored.bluemap.core.logger.Logger;
|
import de.bluecolored.bluemap.core.logger.Logger;
|
||||||
import de.bluecolored.bluemap.core.util.Key;
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.BlockState;
|
import de.bluecolored.bluemap.core.world.BlockState;
|
||||||
import de.bluecolored.bluemap.core.world.DimensionType;
|
import de.bluecolored.bluemap.core.world.DimensionType;
|
||||||
import de.bluecolored.bluemap.core.world.LightData;
|
import de.bluecolored.bluemap.core.world.LightData;
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
package de.bluecolored.bluemap.core.world.mca.chunk;
|
package de.bluecolored.bluemap.core.world.mca.chunk;
|
||||||
|
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.mca.MCAWorld;
|
import de.bluecolored.bluemap.core.world.mca.MCAWorld;
|
||||||
|
|
||||||
public class Chunk_1_15 extends Chunk_1_13 {
|
public class Chunk_1_15 extends Chunk_1_13 {
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import de.bluecolored.bluemap.core.logger.Logger;
|
import de.bluecolored.bluemap.core.logger.Logger;
|
||||||
import de.bluecolored.bluemap.core.util.Key;
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.BlockState;
|
import de.bluecolored.bluemap.core.world.BlockState;
|
||||||
import de.bluecolored.bluemap.core.world.DimensionType;
|
import de.bluecolored.bluemap.core.world.DimensionType;
|
||||||
import de.bluecolored.bluemap.core.world.LightData;
|
import de.bluecolored.bluemap.core.world.LightData;
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import de.bluecolored.bluemap.core.logger.Logger;
|
import de.bluecolored.bluemap.core.logger.Logger;
|
||||||
import de.bluecolored.bluemap.core.util.Key;
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import de.bluecolored.bluemap.core.world.BlockState;
|
import de.bluecolored.bluemap.core.world.BlockState;
|
||||||
import de.bluecolored.bluemap.core.world.DimensionType;
|
import de.bluecolored.bluemap.core.world.DimensionType;
|
||||||
import de.bluecolored.bluemap.core.world.LightData;
|
import de.bluecolored.bluemap.core.world.LightData;
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
import de.bluecolored.bluemap.core.resources.pack.datapack.DataPack;
|
import de.bluecolored.bluemap.core.resources.pack.datapack.DataPack;
|
||||||
import de.bluecolored.bluemap.core.util.Key;
|
import de.bluecolored.bluemap.core.util.Key;
|
||||||
import de.bluecolored.bluemap.core.world.Biome;
|
import de.bluecolored.bluemap.core.world.biome.Biome;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class LegacyBiomes {
|
public class LegacyBiomes {
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": { "model": "bluemap:block/missing" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "block/cube_all",
|
||||||
|
"textures": {
|
||||||
|
"all": "bluemap:block/missing"
|
||||||
|
}
|
||||||
|
}
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
"default": "@foliage",
|
||||||
|
"minecraft:water": "@water",
|
||||||
|
"minecraft:cauldron": "@water",
|
||||||
|
"minecraft:water_cauldron": "@water",
|
||||||
|
"minecraft:powder_snow_cauldron": "#ffffff",
|
||||||
|
"minecraft:lava_cauldron": "#ffffff",
|
||||||
|
"minecraft:grass_block": "@grass",
|
||||||
|
"minecraft:grass": "@grass",
|
||||||
|
"minecraft:short_grass": "@grass",
|
||||||
|
"minecraft:tall_grass": "@grass",
|
||||||
|
"minecraft:fern": "@grass",
|
||||||
|
"minecraft:large_fern": "@grass",
|
||||||
|
"minecraft:redstone_wire": "@redstone",
|
||||||
|
"minecraft:birch_leaves": 8431445,
|
||||||
|
"minecraft:spruce_leaves": 6396257,
|
||||||
|
"minecraft:stonecutter": "#ffffff",
|
||||||
|
"minecraft:snow": "#ffffff",
|
||||||
|
"minecraft:cherry_leaves": "#ffffff",
|
||||||
|
"minecraft:white_banner": "#f9fffe",
|
||||||
|
"minecraft:light_gray_banner": "#9d9d97",
|
||||||
|
"minecraft:gray_banner": "#474f52",
|
||||||
|
"minecraft:black_banner": "#1d1d21",
|
||||||
|
"minecraft:brown_banner": "#835432",
|
||||||
|
"minecraft:red_banner": "#b02e26",
|
||||||
|
"minecraft:orange_banner": "#f9801d",
|
||||||
|
"minecraft:yellow_banner": "#fed83d",
|
||||||
|
"minecraft:lime_banner": "#80c71f",
|
||||||
|
"minecraft:green_banner": "#5e7c16",
|
||||||
|
"minecraft:cyan_banner": "#169c9c",
|
||||||
|
"minecraft:light_blue_banner": "#3ab3da",
|
||||||
|
"minecraft:blue_banner": "#3c44aa",
|
||||||
|
"minecraft:purple_banner": "#8932b8",
|
||||||
|
"minecraft:magenta_banner": "#c74ebd",
|
||||||
|
"minecraft:pink_banner": "#f38baa",
|
||||||
|
"minecraft:white_wall_banner": "#f9fffe",
|
||||||
|
"minecraft:light_gray_wall_banner": "#9d9d97",
|
||||||
|
"minecraft:gray_wall_banner": "#474f52",
|
||||||
|
"minecraft:black_wall_banner": "#1d1d21",
|
||||||
|
"minecraft:brown_wall_banner": "#835432",
|
||||||
|
"minecraft:red_wall_banner": "#b02e26",
|
||||||
|
"minecraft:orange_wall_banner": "#f9801d",
|
||||||
|
"minecraft:yellow_wall_banner": "#fed83d",
|
||||||
|
"minecraft:lime_wall_banner": "#80c71f",
|
||||||
|
"minecraft:green_wall_banner": "#5e7c16",
|
||||||
|
"minecraft:cyan_wall_banner": "#169c9c",
|
||||||
|
"minecraft:light_blue_wall_banner": "#3ab3da",
|
||||||
|
"minecraft:blue_wall_banner": "#3c44aa",
|
||||||
|
"minecraft:purple_wall_banner": "#8932b8",
|
||||||
|
"minecraft:magenta_wall_banner": "#c74ebd",
|
||||||
|
"minecraft:pink_wall_banner": "#f38baa",
|
||||||
|
"minecraft:white_shulker_box": "#f9fffe",
|
||||||
|
"minecraft:light_gray_shulker_box": "#9d9d97",
|
||||||
|
"minecraft:gray_shulker_box": "#474f52",
|
||||||
|
"minecraft:black_shulker_box": "#1d1d21",
|
||||||
|
"minecraft:brown_shulker_box": "#835432",
|
||||||
|
"minecraft:red_shulker_box": "#b02e26",
|
||||||
|
"minecraft:orange_shulker_box": "#f9801d",
|
||||||
|
"minecraft:yellow_shulker_box": "#fed83d",
|
||||||
|
"minecraft:lime_shulker_box": "#80c71f",
|
||||||
|
"minecraft:green_shulker_box": "#5e7c16",
|
||||||
|
"minecraft:cyan_shulker_box": "#169c9c",
|
||||||
|
"minecraft:light_blue_shulker_box": "#3ab3da",
|
||||||
|
"minecraft:blue_shulker_box": "#3c44aa",
|
||||||
|
"minecraft:purple_shulker_box": "#8932b8",
|
||||||
|
"minecraft:magenta_shulker_box": "#c74ebd",
|
||||||
|
"minecraft:pink_shulker_box": "#f38baa"
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/acacia_hanging_sign", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/acacia_hanging_sign", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/acacia_hanging_sign", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/acacia_hanging_sign", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/acacia_hanging_sign", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/acacia_hanging_sign", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/acacia_hanging_sign", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/acacia_hanging_sign", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/acacia_hanging_sign" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/acacia_hanging_sign", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/acacia_hanging_sign", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/acacia_hanging_sign", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/acacia_hanging_sign", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/acacia_hanging_sign", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/acacia_hanging_sign", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/acacia_hanging_sign", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "block/sign/acacia" },
|
||||||
|
"rotation=1": { "model": "block/sign/acacia", "y": 22.5 },
|
||||||
|
"rotation=2": { "model": "block/sign/acacia", "y": 45 },
|
||||||
|
"rotation=3": { "model": "block/sign/acacia", "y": 67.5 },
|
||||||
|
"rotation=4": { "model": "block/sign/acacia", "y": 90 },
|
||||||
|
"rotation=5": { "model": "block/sign/acacia", "y": 112.5 },
|
||||||
|
"rotation=6": { "model": "block/sign/acacia", "y": 135 },
|
||||||
|
"rotation=7": { "model": "block/sign/acacia", "y": 157.5 },
|
||||||
|
"rotation=8": { "model": "block/sign/acacia", "y": 180 },
|
||||||
|
"rotation=9": { "model": "block/sign/acacia", "y": 202.5 },
|
||||||
|
"rotation=10": { "model": "block/sign/acacia", "y": 225 },
|
||||||
|
"rotation=11": { "model": "block/sign/acacia", "y": 247.5 },
|
||||||
|
"rotation=12": { "model": "block/sign/acacia", "y": 270 },
|
||||||
|
"rotation=13": { "model": "block/sign/acacia", "y": 292.5 },
|
||||||
|
"rotation=14": { "model": "block/sign/acacia", "y": 315 },
|
||||||
|
"rotation=15": { "model": "block/sign/acacia", "y": 337.5 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/acacia_wall_hanging_sign", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/acacia_wall_hanging_sign", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/acacia_wall_hanging_sign", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/acacia_wall_hanging_sign" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/bamboo_hanging_sign" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/bamboo_hanging_sign", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/bamboo_wall_hanging_sign", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/bamboo_wall_hanging_sign", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/bamboo_wall_hanging_sign", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/bamboo_wall_hanging_sign" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/birch_hanging_sign", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/birch_hanging_sign", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/birch_hanging_sign", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/birch_hanging_sign", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/birch_hanging_sign", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/birch_hanging_sign", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/birch_hanging_sign", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/birch_hanging_sign", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/birch_hanging_sign" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/birch_hanging_sign", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/birch_hanging_sign", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/birch_hanging_sign", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/birch_hanging_sign", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/birch_hanging_sign", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/birch_hanging_sign", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/birch_hanging_sign", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "block/sign/birch" },
|
||||||
|
"rotation=1": { "model": "block/sign/birch", "y": 22.5 },
|
||||||
|
"rotation=2": { "model": "block/sign/birch", "y": 45 },
|
||||||
|
"rotation=3": { "model": "block/sign/birch", "y": 67.5 },
|
||||||
|
"rotation=4": { "model": "block/sign/birch", "y": 90 },
|
||||||
|
"rotation=5": { "model": "block/sign/birch", "y": 112.5 },
|
||||||
|
"rotation=6": { "model": "block/sign/birch", "y": 135 },
|
||||||
|
"rotation=7": { "model": "block/sign/birch", "y": 157.5 },
|
||||||
|
"rotation=8": { "model": "block/sign/birch", "y": 180 },
|
||||||
|
"rotation=9": { "model": "block/sign/birch", "y": 202.5 },
|
||||||
|
"rotation=10": { "model": "block/sign/birch", "y": 225 },
|
||||||
|
"rotation=11": { "model": "block/sign/birch", "y": 247.5 },
|
||||||
|
"rotation=12": { "model": "block/sign/birch", "y": 270 },
|
||||||
|
"rotation=13": { "model": "block/sign/birch", "y": 292.5 },
|
||||||
|
"rotation=14": { "model": "block/sign/birch", "y": 315 },
|
||||||
|
"rotation=15": { "model": "block/sign/birch", "y": 337.5 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/birch_wall_hanging_sign", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/birch_wall_hanging_sign", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/birch_wall_hanging_sign", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/birch_wall_hanging_sign" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"part=head,facing=north": { "model": "block/bed/black_head" },
|
||||||
|
"part=head,facing=east": { "model": "block/bed/black_head", "y": 90 },
|
||||||
|
"part=head,facing=south": { "model": "block/bed/black_head", "y": 180 },
|
||||||
|
"part=head,facing=west": { "model": "block/bed/black_head", "y": 270 },
|
||||||
|
"part=foot,facing=north": { "model": "block/bed/black_foot" },
|
||||||
|
"part=foot,facing=east": { "model": "block/bed/black_foot", "y": 90 },
|
||||||
|
"part=foot,facing=south": { "model": "block/bed/black_foot", "y": 180 },
|
||||||
|
"part=foot,facing=west": { "model": "block/bed/black_foot", "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"part=head,facing=north": { "model": "block/bed/blue_head" },
|
||||||
|
"part=head,facing=east": { "model": "block/bed/blue_head", "y": 90 },
|
||||||
|
"part=head,facing=south": { "model": "block/bed/blue_head", "y": 180 },
|
||||||
|
"part=head,facing=west": { "model": "block/bed/blue_head", "y": 270 },
|
||||||
|
"part=foot,facing=north": { "model": "block/bed/blue_foot" },
|
||||||
|
"part=foot,facing=east": { "model": "block/bed/blue_foot", "y": 90 },
|
||||||
|
"part=foot,facing=south": { "model": "block/bed/blue_foot", "y": 180 },
|
||||||
|
"part=foot,facing=west": { "model": "block/bed/blue_foot", "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"part=head,facing=north": { "model": "block/bed/brown_head" },
|
||||||
|
"part=head,facing=east": { "model": "block/bed/brown_head", "y": 90 },
|
||||||
|
"part=head,facing=south": { "model": "block/bed/brown_head", "y": 180 },
|
||||||
|
"part=head,facing=west": { "model": "block/bed/brown_head", "y": 270 },
|
||||||
|
"part=foot,facing=north": { "model": "block/bed/brown_foot" },
|
||||||
|
"part=foot,facing=east": { "model": "block/bed/brown_foot", "y": 90 },
|
||||||
|
"part=foot,facing=south": { "model": "block/bed/brown_foot", "y": 180 },
|
||||||
|
"part=foot,facing=west": { "model": "block/bed/brown_foot", "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": { "model": "block/bubble_column" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/cherry_hanging_sign", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/cherry_hanging_sign", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/cherry_hanging_sign", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/cherry_hanging_sign", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/cherry_hanging_sign", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/cherry_hanging_sign", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/cherry_hanging_sign", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/cherry_hanging_sign", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/cherry_hanging_sign" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/cherry_hanging_sign", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/cherry_hanging_sign", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/cherry_hanging_sign", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/cherry_hanging_sign", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/cherry_hanging_sign", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/cherry_hanging_sign", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/cherry_hanging_sign", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/cherry_wall_hanging_sign", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/cherry_wall_hanging_sign", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/cherry_wall_hanging_sign", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/cherry_wall_hanging_sign" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"type=single,facing=north": { "model": "block/chest/normal", "y": 180 },
|
||||||
|
"type=single,facing=east": { "model": "block/chest/normal", "y": 270 },
|
||||||
|
"type=single,facing=south": { "model": "block/chest/normal" },
|
||||||
|
"type=single,facing=west": { "model": "block/chest/normal", "y": 90 },
|
||||||
|
"type=right,facing=north": { "model": "block/chest/normal_double", "y": 180 },
|
||||||
|
"type=right,facing=east": { "model": "block/chest/normal_double", "y": 270 },
|
||||||
|
"type=right,facing=south": { "model": "block/chest/normal_double" },
|
||||||
|
"type=right,facing=west": { "model": "block/chest/normal_double", "y": 90 },
|
||||||
|
"type=left": { "model": "block/chest/left" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/creeper_head", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/creeper_head", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/creeper_head", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/creeper_head", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/creeper_head", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/creeper_head", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/creeper_head", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/creeper_head", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/creeper_head" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/creeper_head", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/creeper_head", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/creeper_head", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/creeper_head", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/creeper_head", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/creeper_head", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/creeper_head", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/creeper_wall_head", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/creeper_wall_head", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/creeper_wall_head", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/creeper_wall_head" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/crimson_hanging_sign", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/crimson_hanging_sign", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/crimson_hanging_sign", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/crimson_hanging_sign", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/crimson_hanging_sign", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/crimson_hanging_sign", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/crimson_hanging_sign", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/crimson_hanging_sign", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/crimson_hanging_sign" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/crimson_hanging_sign", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/crimson_hanging_sign", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/crimson_hanging_sign", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/crimson_hanging_sign", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/crimson_hanging_sign", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/crimson_hanging_sign", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/crimson_hanging_sign", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "block/sign/crimson" },
|
||||||
|
"rotation=1": { "model": "block/sign/crimson", "y": 22.5 },
|
||||||
|
"rotation=2": { "model": "block/sign/crimson", "y": 45 },
|
||||||
|
"rotation=3": { "model": "block/sign/crimson", "y": 67.5 },
|
||||||
|
"rotation=4": { "model": "block/sign/crimson", "y": 90 },
|
||||||
|
"rotation=5": { "model": "block/sign/crimson", "y": 112.5 },
|
||||||
|
"rotation=6": { "model": "block/sign/crimson", "y": 135 },
|
||||||
|
"rotation=7": { "model": "block/sign/crimson", "y": 157.5 },
|
||||||
|
"rotation=8": { "model": "block/sign/crimson", "y": 180 },
|
||||||
|
"rotation=9": { "model": "block/sign/crimson", "y": 202.5 },
|
||||||
|
"rotation=10": { "model": "block/sign/crimson", "y": 225 },
|
||||||
|
"rotation=11": { "model": "block/sign/crimson", "y": 247.5 },
|
||||||
|
"rotation=12": { "model": "block/sign/crimson", "y": 270 },
|
||||||
|
"rotation=13": { "model": "block/sign/crimson", "y": 292.5 },
|
||||||
|
"rotation=14": { "model": "block/sign/crimson", "y": 315 },
|
||||||
|
"rotation=15": { "model": "block/sign/crimson", "y": 337.5 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/crimson_wall_hanging_sign", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/crimson_wall_hanging_sign", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/crimson_wall_hanging_sign", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/crimson_wall_hanging_sign" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"part=head,facing=north": { "model": "block/bed/cyan_head" },
|
||||||
|
"part=head,facing=east": { "model": "block/bed/cyan_head", "y": 90 },
|
||||||
|
"part=head,facing=south": { "model": "block/bed/cyan_head", "y": 180 },
|
||||||
|
"part=head,facing=west": { "model": "block/bed/cyan_head", "y": 270 },
|
||||||
|
"part=foot,facing=north": { "model": "block/bed/cyan_foot" },
|
||||||
|
"part=foot,facing=east": { "model": "block/bed/cyan_foot", "y": 90 },
|
||||||
|
"part=foot,facing=south": { "model": "block/bed/cyan_foot", "y": 180 },
|
||||||
|
"part=foot,facing=west": { "model": "block/bed/cyan_foot", "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/dark_oak_hanging_sign" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/dark_oak_hanging_sign", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "block/sign/dark_oak" },
|
||||||
|
"rotation=1": { "model": "block/sign/dark_oak", "y": 22.5 },
|
||||||
|
"rotation=2": { "model": "block/sign/dark_oak", "y": 45 },
|
||||||
|
"rotation=3": { "model": "block/sign/dark_oak", "y": 67.5 },
|
||||||
|
"rotation=4": { "model": "block/sign/dark_oak", "y": 90 },
|
||||||
|
"rotation=5": { "model": "block/sign/dark_oak", "y": 112.5 },
|
||||||
|
"rotation=6": { "model": "block/sign/dark_oak", "y": 135 },
|
||||||
|
"rotation=7": { "model": "block/sign/dark_oak", "y": 157.5 },
|
||||||
|
"rotation=8": { "model": "block/sign/dark_oak", "y": 180 },
|
||||||
|
"rotation=9": { "model": "block/sign/dark_oak", "y": 202.5 },
|
||||||
|
"rotation=10": { "model": "block/sign/dark_oak", "y": 225 },
|
||||||
|
"rotation=11": { "model": "block/sign/dark_oak", "y": 247.5 },
|
||||||
|
"rotation=12": { "model": "block/sign/dark_oak", "y": 270 },
|
||||||
|
"rotation=13": { "model": "block/sign/dark_oak", "y": 292.5 },
|
||||||
|
"rotation=14": { "model": "block/sign/dark_oak", "y": 315 },
|
||||||
|
"rotation=15": { "model": "block/sign/dark_oak", "y": 337.5 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/dark_oak_wall_hanging_sign", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dark_oak_wall_hanging_sign", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dark_oak_wall_hanging_sign", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dark_oak_wall_hanging_sign" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/decorated_pot", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/decorated_pot", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/decorated_pot", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/decorated_pot" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/dragon_head", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/dragon_head", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/dragon_head", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/dragon_head", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/dragon_head", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/dragon_head", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/dragon_head", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/dragon_head", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/dragon_head" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/dragon_head", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/dragon_head", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/dragon_head", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/dragon_head", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/dragon_head", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/dragon_head", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/dragon_head", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/dragon_wall_head", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dragon_wall_head", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dragon_wall_head", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dragon_wall_head" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": { "model": "block/chest/ender", "y": 180 },
|
||||||
|
"facing=east": { "model": "block/chest/ender", "y": 270 },
|
||||||
|
"facing=south": { "model": "block/chest/ender" },
|
||||||
|
"facing=west": { "model": "block/chest/ender", "y": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"part=head,facing=north": { "model": "block/bed/gray_head" },
|
||||||
|
"part=head,facing=east": { "model": "block/bed/gray_head", "y": 90 },
|
||||||
|
"part=head,facing=south": { "model": "block/bed/gray_head", "y": 180 },
|
||||||
|
"part=head,facing=west": { "model": "block/bed/gray_head", "y": 270 },
|
||||||
|
"part=foot,facing=north": { "model": "block/bed/gray_foot" },
|
||||||
|
"part=foot,facing=east": { "model": "block/bed/gray_foot", "y": 90 },
|
||||||
|
"part=foot,facing=south": { "model": "block/bed/gray_foot", "y": 180 },
|
||||||
|
"part=foot,facing=west": { "model": "block/bed/gray_foot", "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"part=head,facing=north": { "model": "block/bed/green_head" },
|
||||||
|
"part=head,facing=east": { "model": "block/bed/green_head", "y": 90 },
|
||||||
|
"part=head,facing=south": { "model": "block/bed/green_head", "y": 180 },
|
||||||
|
"part=head,facing=west": { "model": "block/bed/green_head", "y": 270 },
|
||||||
|
"part=foot,facing=north": { "model": "block/bed/green_foot" },
|
||||||
|
"part=foot,facing=east": { "model": "block/bed/green_foot", "y": 90 },
|
||||||
|
"part=foot,facing=south": { "model": "block/bed/green_foot", "y": 180 },
|
||||||
|
"part=foot,facing=west": { "model": "block/bed/green_foot", "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/jungle_hanging_sign", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/jungle_hanging_sign", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/jungle_hanging_sign", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/jungle_hanging_sign", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/jungle_hanging_sign", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/jungle_hanging_sign", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/jungle_hanging_sign", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/jungle_hanging_sign", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/jungle_hanging_sign" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/jungle_hanging_sign", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/jungle_hanging_sign", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/jungle_hanging_sign", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/jungle_hanging_sign", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/jungle_hanging_sign", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/jungle_hanging_sign", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/jungle_hanging_sign", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "block/sign/jungle" },
|
||||||
|
"rotation=1": { "model": "block/sign/jungle", "y": 22.5 },
|
||||||
|
"rotation=2": { "model": "block/sign/jungle", "y": 45 },
|
||||||
|
"rotation=3": { "model": "block/sign/jungle", "y": 67.5 },
|
||||||
|
"rotation=4": { "model": "block/sign/jungle", "y": 90 },
|
||||||
|
"rotation=5": { "model": "block/sign/jungle", "y": 112.5 },
|
||||||
|
"rotation=6": { "model": "block/sign/jungle", "y": 135 },
|
||||||
|
"rotation=7": { "model": "block/sign/jungle", "y": 157.5 },
|
||||||
|
"rotation=8": { "model": "block/sign/jungle", "y": 180 },
|
||||||
|
"rotation=9": { "model": "block/sign/jungle", "y": 202.5 },
|
||||||
|
"rotation=10": { "model": "block/sign/jungle", "y": 225 },
|
||||||
|
"rotation=11": { "model": "block/sign/jungle", "y": 247.5 },
|
||||||
|
"rotation=12": { "model": "block/sign/jungle", "y": 270 },
|
||||||
|
"rotation=13": { "model": "block/sign/jungle", "y": 292.5 },
|
||||||
|
"rotation=14": { "model": "block/sign/jungle", "y": 315 },
|
||||||
|
"rotation=15": { "model": "block/sign/jungle", "y": 337.5 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/jungle_wall_hanging_sign", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/jungle_wall_hanging_sign", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/jungle_wall_hanging_sign", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/jungle_wall_hanging_sign" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": { "model": "block/lava" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=up": { "model": "minecraft:entity/dyed_shulker_box" },
|
||||||
|
"facing=down": { "model": "minecraft:entity/dyed_shulker_box", "x": 180 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/dyed_shulker_box", "x": 90 },
|
||||||
|
"facing=east": { "model": "minecraft:entity/dyed_shulker_box", "y": 90, "x": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/dyed_shulker_box", "y": 180, "x": 90 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/dyed_shulker_box", "y": 270, "x": 90 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east": { "model": "minecraft:entity/wall_banner", "y": 90 },
|
||||||
|
"facing=south": { "model": "minecraft:entity/wall_banner", "y": 180 },
|
||||||
|
"facing=west": { "model": "minecraft:entity/wall_banner", "y": 270 },
|
||||||
|
"facing=north": { "model": "minecraft:entity/wall_banner" }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"rotation=0": { "model": "minecraft:entity/banner", "y": 180 },
|
||||||
|
"rotation=1": { "model": "minecraft:entity/banner", "y": 202 },
|
||||||
|
"rotation=2": { "model": "minecraft:entity/banner", "y": 225 },
|
||||||
|
"rotation=3": { "model": "minecraft:entity/banner", "y": 247 },
|
||||||
|
"rotation=4": { "model": "minecraft:entity/banner", "y": 270 },
|
||||||
|
"rotation=5": { "model": "minecraft:entity/banner", "y": 292 },
|
||||||
|
"rotation=6": { "model": "minecraft:entity/banner", "y": 315 },
|
||||||
|
"rotation=7": { "model": "minecraft:entity/banner", "y": 337 },
|
||||||
|
"rotation=8": { "model": "minecraft:entity/banner" },
|
||||||
|
"rotation=9": { "model": "minecraft:entity/banner", "y": 22 },
|
||||||
|
"rotation=10": { "model": "minecraft:entity/banner", "y": 45 },
|
||||||
|
"rotation=11": { "model": "minecraft:entity/banner", "y": 67 },
|
||||||
|
"rotation=12": { "model": "minecraft:entity/banner", "y": 90 },
|
||||||
|
"rotation=13": { "model": "minecraft:entity/banner", "y": 112 },
|
||||||
|
"rotation=14": { "model": "minecraft:entity/banner", "y": 135 },
|
||||||
|
"rotation=15": { "model": "minecraft:entity/banner", "y": 157 }
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"part=head,facing=north": { "model": "block/bed/lime_head" },
|
||||||
|
"part=head,facing=east": { "model": "block/bed/lime_head", "y": 90 },
|
||||||
|
"part=head,facing=south": { "model": "block/bed/lime_head", "y": 180 },
|
||||||
|
"part=head,facing=west": { "model": "block/bed/lime_head", "y": 270 },
|
||||||
|
"part=foot,facing=north": { "model": "block/bed/lime_foot" },
|
||||||
|
"part=foot,facing=east": { "model": "block/bed/lime_foot", "y": 90 },
|
||||||
|
"part=foot,facing=south": { "model": "block/bed/lime_foot", "y": 180 },
|
||||||
|
"part=foot,facing=west": { "model": "block/bed/lime_foot", "y": 270 }
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user