mirror of
https://github.com/BlueMap-Minecraft/BlueMap.git
synced 2025-02-19 14:01:59 +01:00
Merge branch 'master' into mc/1.12
This commit is contained in:
commit
5cc3870c2c
@ -11,6 +11,7 @@
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import com.flowpowered.math.vector.Vector2i;
|
||||
import com.flowpowered.math.vector.Vector3i;
|
||||
|
||||
import de.bluecolored.bluemap.common.plugin.Commands;
|
||||
@ -75,27 +76,40 @@ public boolean execute(CommandSender sender, CommandSource source, String[] args
|
||||
commands.add(new Command("bluemap.rendertask.create.world", "render") {
|
||||
@Override
|
||||
public boolean execute(CommandSender sender, CommandSource source, String[] args) {
|
||||
if (args.length > 1) return false;
|
||||
|
||||
World world;
|
||||
if (args.length == 1) {
|
||||
world = Bukkit.getWorld(args[0]);
|
||||
if (world == null) {
|
||||
source.sendMessage(Text.of(TextColor.RED, "There is no world named '" + args[0] + "'!"));
|
||||
return true;
|
||||
if (sender instanceof Player) {
|
||||
if (args.length > 2) return false;
|
||||
Player player = (Player) sender;
|
||||
|
||||
World world = null;
|
||||
int radius = -1;
|
||||
if (args.length >= 1) {
|
||||
world = Bukkit.getWorld(args[0]);
|
||||
}
|
||||
} else {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if (args.length == 2 || (args.length == 1 && world == null)) {
|
||||
try {
|
||||
radius = Integer.parseInt(args[args.length - 1]);
|
||||
} catch (NumberFormatException ex) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (world == null){
|
||||
world = player.getWorld();
|
||||
} else {
|
||||
source.sendMessage(Text.of(TextColor.RED, "Since you are not a player, you have to specify a world!"));
|
||||
return true;
|
||||
}
|
||||
|
||||
if (radius >= 0) {
|
||||
Vector2i pos = new Vector2i(player.getLocation().getBlockX(), player.getLocation().getBlockZ());
|
||||
bluemapCommands.executeRenderWorldCommand(source, world.getUID(), pos, radius);
|
||||
} else {
|
||||
bluemapCommands.executeRenderWorldCommand(source, world.getUID());
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
if (args.length != 1) return false;
|
||||
World world = Bukkit.getWorld(args[0]);
|
||||
|
||||
bluemapCommands.executeRenderWorldCommand(source, world.getUID());
|
||||
return true;
|
||||
}
|
||||
|
||||
bluemapCommands.executeRenderWorldCommand(source, world.getUID());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -14,7 +14,7 @@ commands:
|
||||
/<command> reload
|
||||
/<command> pause
|
||||
/<command> resume
|
||||
/<command> render [world]
|
||||
/<command> render [world] [block-radius]
|
||||
/<command> debug
|
||||
permissions:
|
||||
bluemap.*:
|
||||
|
@ -171,6 +171,7 @@ public void renderMaps() throws IOException {
|
||||
Logger.global.logInfo("Found unfinished render, continuing ... (If you want to start a new render, delete the this file: " + rmstate.getCanonicalPath());
|
||||
} catch (IOException ex) {
|
||||
Logger.global.logError("Failed to read saved render-state! Remove the file " + rmstate.getCanonicalPath() + " to start a new render.", ex);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
for (MapType map : maps.values()) {
|
||||
|
@ -5,6 +5,7 @@
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.apache.commons.lang3.time.DurationFormatUtils;
|
||||
|
||||
@ -154,10 +155,18 @@ public boolean executeResumeCommand(CommandSource source) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Command: /bluemap render [world]
|
||||
*/
|
||||
public boolean executeRenderWorldCommand(CommandSource source, UUID worldUuid) {
|
||||
return executeRenderWorldCommand(source, worldUuid, null, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Command: /bluemap render [world] [block-radius]
|
||||
*/
|
||||
public boolean executeRenderWorldCommand(CommandSource source, UUID worldUuid, Vector2i center, int blockRadius) {
|
||||
if (!checkLoaded(source)) return false;
|
||||
|
||||
World world = bluemap.getWorld(worldUuid);
|
||||
@ -170,7 +179,7 @@ public boolean executeRenderWorldCommand(CommandSource source, UUID worldUuid) {
|
||||
world.invalidateChunkCache();
|
||||
|
||||
new Thread(() -> {
|
||||
createWorldRenderTask(source, world);
|
||||
createWorldRenderTask(source, world, center, blockRadius);
|
||||
}).start();
|
||||
|
||||
return true;
|
||||
@ -262,9 +271,21 @@ private Text createPrioritizeTaskText(RenderTask task) {
|
||||
return Text.of(TextColor.GREEN, "[^]").setHoverText(Text.of(TextColor.GRAY, "click to prioritize this render-task")).setClickCommand("/bluemap render prioritize " + task.getUuid());
|
||||
}
|
||||
|
||||
private void createWorldRenderTask(CommandSource source, World world) {
|
||||
private void createWorldRenderTask(CommandSource source, World world, Vector2i center, long blockRadius) {
|
||||
source.sendMessage(Text.of(TextColor.GOLD, "Collecting chunks to render..."));
|
||||
Collection<Vector2i> chunks = world.getChunkList();
|
||||
|
||||
String taskName = "world-render";
|
||||
|
||||
Predicate<Vector2i> filter;
|
||||
if (center == null || blockRadius < 0) {
|
||||
filter = c -> true;
|
||||
} else {
|
||||
filter = c -> c.mul(16).distanceSquared(center) <= blockRadius * blockRadius;
|
||||
taskName = "radius-render";
|
||||
}
|
||||
|
||||
Collection<Vector2i> chunks = world.getChunkList(filter);
|
||||
|
||||
source.sendMessage(Text.of(TextColor.GREEN, chunks.size() + " chunks found!"));
|
||||
|
||||
for (MapType map : bluemap.getMapTypes()) {
|
||||
@ -274,8 +295,8 @@ private void createWorldRenderTask(CommandSource source, World world) {
|
||||
|
||||
HiresModelManager hmm = map.getTileRenderer().getHiresModelManager();
|
||||
Collection<Vector2i> tiles = hmm.getTilesForChunks(chunks);
|
||||
|
||||
RenderTask task = new RenderTask("world-render", map);
|
||||
|
||||
RenderTask task = new RenderTask(taskName, map);
|
||||
task.addTiles(tiles);
|
||||
task.optimizeQueue();
|
||||
bluemap.getRenderManager().addRenderTask(task);
|
||||
|
@ -41,6 +41,7 @@
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.flowpowered.math.vector.Vector2i;
|
||||
import com.flowpowered.math.vector.Vector3i;
|
||||
@ -245,7 +246,7 @@ public boolean isChunkGenerated(Vector2i chunkPos) throws IOException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Vector2i> getChunkList(long modifiedSinceMillis){
|
||||
public Collection<Vector2i> getChunkList(long modifiedSinceMillis, Predicate<Vector2i> filter){
|
||||
List<Vector2i> chunks = new ArrayList<>(10000);
|
||||
|
||||
if (!getRegionFolder().toFile().isDirectory()) return Collections.emptyList();
|
||||
@ -274,7 +275,12 @@ public Collection<Vector2i> getChunkList(long modifiedSinceMillis){
|
||||
timestamp |= (raf.read() & 0xFF) << 8;
|
||||
timestamp |= raf.read() & 0xFF;
|
||||
|
||||
if (timestamp >= (modifiedSinceMillis / 1000)) chunks.add(new Vector2i(rX * 32 + x, rZ * 32 + z));
|
||||
if (timestamp >= (modifiedSinceMillis / 1000)) {
|
||||
Vector2i chunk = new Vector2i(rX * 32 + x, rZ * 32 + z);
|
||||
if (filter.test(chunk)) {
|
||||
chunks.add(chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
|
@ -29,7 +29,6 @@
|
||||
import com.flowpowered.math.imaginary.Quaternionf;
|
||||
import com.flowpowered.math.matrix.Matrix3f;
|
||||
import com.flowpowered.math.vector.Vector2f;
|
||||
import com.flowpowered.math.vector.Vector2i;
|
||||
import com.flowpowered.math.vector.Vector3f;
|
||||
import com.flowpowered.math.vector.Vector3i;
|
||||
import com.flowpowered.math.vector.Vector4f;
|
||||
@ -71,7 +70,7 @@ public BlockStateModel build(TransformedBlockModelResource bmr) {
|
||||
model.merge(fromModelElementResource(element, bmr));
|
||||
}
|
||||
|
||||
if (!bmr.getRotation().equals(Vector2i.ZERO)) {
|
||||
if (!bmr.getRotation().equals(Vector2f.ZERO)) {
|
||||
model.translate(NEG_HALF_3F);
|
||||
model.rotate(Quaternionf.fromAxesAnglesDeg(
|
||||
-bmr.getRotation().getX(),
|
||||
@ -173,7 +172,7 @@ private void createElementFace(BlockStateModel model, TransformedBlockModelResou
|
||||
|
||||
//UV-Lock counter-rotation
|
||||
int uvLockAngle = 0;
|
||||
Vector2i rotation = modelResource.getRotation();
|
||||
Vector2f rotation = modelResource.getRotation();
|
||||
if (modelResource.isUVLock()){
|
||||
Quaternionf rot = Quaternionf.fromAxesAnglesDeg(rotation.getX(), rotation.getY(), 0);
|
||||
uvLockAngle = (int) rot.getAxesAnglesDeg().dot(faceDir.toVector().toFloat());
|
||||
@ -257,16 +256,16 @@ private void createElementFace(BlockStateModel model, TransformedBlockModelResou
|
||||
|
||||
}
|
||||
|
||||
private Block getRotationRelativeBlock(Vector2i modelRotation, Direction direction){
|
||||
private Block getRotationRelativeBlock(Vector2f modelRotation, Direction direction){
|
||||
return getRotationRelativeBlock(modelRotation, direction.toVector());
|
||||
}
|
||||
|
||||
private Block getRotationRelativeBlock(Vector2i modelRotation, Vector3i direction){
|
||||
private Block getRotationRelativeBlock(Vector2f modelRotation, Vector3i direction){
|
||||
Vector3i dir = getRotationRelativeDirectionVector(modelRotation, direction.toFloat()).round().toInt();
|
||||
return block.getRelativeBlock(dir);
|
||||
}
|
||||
|
||||
private Vector3f getRotationRelativeDirectionVector(Vector2i modelRotation, Vector3f direction){
|
||||
private Vector3f getRotationRelativeDirectionVector(Vector2f modelRotation, Vector3f direction){
|
||||
Quaternionf rot = Quaternionf.fromAxesAnglesDeg(
|
||||
-modelRotation.getX(),
|
||||
-modelRotation.getY(),
|
||||
@ -276,7 +275,7 @@ private Vector3f getRotationRelativeDirectionVector(Vector2i modelRotation, Vect
|
||||
return dir;
|
||||
}
|
||||
|
||||
private double testAo(Vector2i modelRotation, Vector3f vertex, Direction dir){
|
||||
private double testAo(Vector2f modelRotation, Vector3f vertex, Direction dir){
|
||||
int occluding = 0;
|
||||
|
||||
int x = 0;
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.flowpowered.math.vector.Vector2i;
|
||||
import com.flowpowered.math.vector.Vector2f;
|
||||
import com.flowpowered.math.vector.Vector3i;
|
||||
|
||||
import de.bluecolored.bluemap.core.logger.Logger;
|
||||
@ -258,7 +258,7 @@ private Weighted<TransformedBlockModelResource> loadModel(ConfigurationNode node
|
||||
resourcePack.blockModelResources.put(modelPath, model);
|
||||
}
|
||||
|
||||
Vector2i rotation = new Vector2i(node.getNode("x").getInt(0), node.getNode("y").getInt(0));
|
||||
Vector2f rotation = new Vector2f(node.getNode("x").getFloat(0), node.getNode("y").getFloat(0));
|
||||
boolean uvLock = node.getNode("uvlock").getBoolean(false);
|
||||
|
||||
TransformedBlockModelResource transformedModel = new TransformedBlockModelResource(rotation, uvLock, model);
|
||||
|
@ -24,22 +24,22 @@
|
||||
*/
|
||||
package de.bluecolored.bluemap.core.resourcepack;
|
||||
|
||||
import com.flowpowered.math.vector.Vector2i;
|
||||
import com.flowpowered.math.vector.Vector2f;
|
||||
|
||||
public class TransformedBlockModelResource {
|
||||
|
||||
private Vector2i rotation = Vector2i.ZERO;
|
||||
private Vector2f rotation = Vector2f.ZERO;
|
||||
private boolean uvLock = false;
|
||||
|
||||
private BlockModelResource model;
|
||||
|
||||
public TransformedBlockModelResource(Vector2i rotation, boolean uvLock, BlockModelResource model) {
|
||||
public TransformedBlockModelResource(Vector2f rotation, boolean uvLock, BlockModelResource model) {
|
||||
this.model = model;
|
||||
this.rotation = rotation;
|
||||
this.uvLock = uvLock;
|
||||
}
|
||||
|
||||
public Vector2i getRotation() {
|
||||
public Vector2f getRotation() {
|
||||
return rotation;
|
||||
}
|
||||
|
||||
|
@ -264,7 +264,7 @@ private static void floatArray2Json(JsonWriter json, float[] array, int itemSize
|
||||
json.name("array").beginArray();
|
||||
for (int i = 0; i < array.length; i++){
|
||||
//rounding and remove ".0" to save string space
|
||||
double d = GenericMath.round(array[i], 3);
|
||||
double d = GenericMath.round(array[i], 4);
|
||||
if (d == (int) d) json.value((int) d);
|
||||
else json.value(d);
|
||||
}
|
||||
|
@ -25,9 +25,9 @@
|
||||
package de.bluecolored.bluemap.core.world;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.flowpowered.math.vector.Vector2i;
|
||||
import com.flowpowered.math.vector.Vector3i;
|
||||
@ -98,29 +98,8 @@ public Block getBlock(int x, int y, int z) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Vector2i> getChunkList(){
|
||||
Collection<Vector2i> chunkList = world.getChunkList();
|
||||
|
||||
ArrayList<Vector2i> filteredChunkList = new ArrayList<>(chunkList.size());
|
||||
for (Vector2i chunk : chunkList) {
|
||||
if (isInside(chunk)) filteredChunkList.add(chunk);
|
||||
}
|
||||
filteredChunkList.trimToSize();
|
||||
|
||||
return filteredChunkList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Vector2i> getChunkList(long modifiedSince) {
|
||||
Collection<Vector2i> chunkList = world.getChunkList(modifiedSince);
|
||||
|
||||
ArrayList<Vector2i> filteredChunkList = new ArrayList<>(chunkList.size());
|
||||
for (Vector2i chunk : chunkList) {
|
||||
if (isInside(chunk)) filteredChunkList.add(chunk);
|
||||
}
|
||||
filteredChunkList.trimToSize();
|
||||
|
||||
return filteredChunkList;
|
||||
public Collection<Vector2i> getChunkList(long modifiedSince, Predicate<Vector2i> filter) {
|
||||
return world.getChunkList(modifiedSince, filter.and(chunk -> isInside(chunk)));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -27,6 +27,7 @@
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.UUID;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import com.flowpowered.math.vector.Vector2i;
|
||||
import com.flowpowered.math.vector.Vector3i;
|
||||
@ -73,14 +74,30 @@ default Block getBlock(int x, int y, int z) {
|
||||
* <i>(Be aware that the collection is not cached and recollected each time from the world-files!)</i>
|
||||
*/
|
||||
public default Collection<Vector2i> getChunkList(){
|
||||
return getChunkList(0);
|
||||
return getChunkList(0, c -> true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a filtered collection of all generated chunks.<br>
|
||||
* <i>(Be aware that the collection is not cached and recollected each time from the world-files!)</i>
|
||||
*/
|
||||
public default Collection<Vector2i> getChunkList(Predicate<Vector2i> filter){
|
||||
return getChunkList(0, filter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a collection of all chunks that have been modified at or after the specified timestamp.<br>
|
||||
* <i>(Be aware that the collection is not cached and recollected each time from the world-files!)</i>
|
||||
*/
|
||||
public Collection<Vector2i> getChunkList(long modifiedSince);
|
||||
public default Collection<Vector2i> getChunkList(long modifiedSince){
|
||||
return getChunkList(modifiedSince, c -> true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a filtered collection of all chunks that have been modified at or after the specified timestamp.<br>
|
||||
* <i>(Be aware that the collection is not cached and recollected each time from the world-files!)</i>
|
||||
*/
|
||||
public Collection<Vector2i> getChunkList(long modifiedSince, Predicate<Vector2i> filter);
|
||||
|
||||
/**
|
||||
* Returns true if and only if that chunk is fully generated and no world-generation or lighting has yet to be done.
|
||||
|
@ -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=south": { "model": "block/sign/wall_acacia" },
|
||||
"facing=west": { "model": "block/sign/wall_acacia", "y": 90 },
|
||||
"facing=north": { "model": "block/sign/wall_acacia", "y": 180 },
|
||||
"facing=east": { "model": "block/sign/wall_acacia", "y": 270 }
|
||||
}
|
||||
}
|
@ -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=south": { "model": "block/sign/wall_birch" },
|
||||
"facing=west": { "model": "block/sign/wall_birch", "y": 90 },
|
||||
"facing=north": { "model": "block/sign/wall_birch", "y": 180 },
|
||||
"facing=east": { "model": "block/sign/wall_birch", "y": 270 }
|
||||
}
|
||||
}
|
@ -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,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,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,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,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,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=south": { "model": "block/sign/wall_dark_oak" },
|
||||
"facing=west": { "model": "block/sign/wall_dark_oak", "y": 90 },
|
||||
"facing=north": { "model": "block/sign/wall_dark_oak", "y": 180 },
|
||||
"facing=east": { "model": "block/sign/wall_dark_oak", "y": 270 }
|
||||
}
|
||||
}
|
@ -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,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,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,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=south": { "model": "block/sign/wall_jungle" },
|
||||
"facing=west": { "model": "block/sign/wall_jungle", "y": 90 },
|
||||
"facing=north": { "model": "block/sign/wall_jungle", "y": 180 },
|
||||
"facing=east": { "model": "block/sign/wall_jungle", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/light_blue_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/light_blue_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/light_blue_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/light_blue_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/light_blue_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/light_blue_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/light_blue_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/light_blue_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/light_gray_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/light_gray_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/light_gray_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/light_gray_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/light_gray_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/light_gray_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/light_gray_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/light_gray_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -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 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/magenta_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/magenta_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/magenta_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/magenta_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/magenta_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/magenta_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/magenta_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/magenta_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
{
|
||||
"variants": {
|
||||
"rotation=0": { "model": "block/sign/oak" },
|
||||
"rotation=1": { "model": "block/sign/oak", "y": 22.5 },
|
||||
"rotation=2": { "model": "block/sign/oak", "y": 45 },
|
||||
"rotation=3": { "model": "block/sign/oak", "y": 67.5 },
|
||||
"rotation=4": { "model": "block/sign/oak", "y": 90 },
|
||||
"rotation=5": { "model": "block/sign/oak", "y": 112.5 },
|
||||
"rotation=6": { "model": "block/sign/oak", "y": 135 },
|
||||
"rotation=7": { "model": "block/sign/oak", "y": 157.5 },
|
||||
"rotation=8": { "model": "block/sign/oak", "y": 180 },
|
||||
"rotation=9": { "model": "block/sign/oak", "y": 202.5 },
|
||||
"rotation=10": { "model": "block/sign/oak", "y": 225 },
|
||||
"rotation=11": { "model": "block/sign/oak", "y": 247.5 },
|
||||
"rotation=12": { "model": "block/sign/oak", "y": 270 },
|
||||
"rotation=13": { "model": "block/sign/oak", "y": 292.5 },
|
||||
"rotation=14": { "model": "block/sign/oak", "y": 315 },
|
||||
"rotation=15": { "model": "block/sign/oak", "y": 337.5 }
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=south": { "model": "block/sign/wall_oak" },
|
||||
"facing=west": { "model": "block/sign/wall_oak", "y": 90 },
|
||||
"facing=north": { "model": "block/sign/wall_oak", "y": 180 },
|
||||
"facing=east": { "model": "block/sign/wall_oak", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/orange_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/orange_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/orange_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/orange_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/orange_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/orange_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/orange_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/orange_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/pink_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/pink_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/pink_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/pink_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/pink_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/pink_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/pink_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/pink_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/purple_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/purple_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/purple_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/purple_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/purple_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/purple_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/purple_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/purple_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/red_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/red_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/red_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/red_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/red_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/red_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/red_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/red_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
{
|
||||
"variants": {
|
||||
"rotation=0": { "model": "block/sign/spruce" },
|
||||
"rotation=1": { "model": "block/sign/spruce", "y": 22.5 },
|
||||
"rotation=2": { "model": "block/sign/spruce", "y": 45 },
|
||||
"rotation=3": { "model": "block/sign/spruce", "y": 67.5 },
|
||||
"rotation=4": { "model": "block/sign/spruce", "y": 90 },
|
||||
"rotation=5": { "model": "block/sign/spruce", "y": 112.5 },
|
||||
"rotation=6": { "model": "block/sign/spruce", "y": 135 },
|
||||
"rotation=7": { "model": "block/sign/spruce", "y": 157.5 },
|
||||
"rotation=8": { "model": "block/sign/spruce", "y": 180 },
|
||||
"rotation=9": { "model": "block/sign/spruce", "y": 202.5 },
|
||||
"rotation=10": { "model": "block/sign/spruce", "y": 225 },
|
||||
"rotation=11": { "model": "block/sign/spruce", "y": 247.5 },
|
||||
"rotation=12": { "model": "block/sign/spruce", "y": 270 },
|
||||
"rotation=13": { "model": "block/sign/spruce", "y": 292.5 },
|
||||
"rotation=14": { "model": "block/sign/spruce", "y": 315 },
|
||||
"rotation=15": { "model": "block/sign/spruce", "y": 337.5 }
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=south": { "model": "block/sign/wall_spruce" },
|
||||
"facing=west": { "model": "block/sign/wall_spruce", "y": 90 },
|
||||
"facing=north": { "model": "block/sign/wall_spruce", "y": 180 },
|
||||
"facing=east": { "model": "block/sign/wall_spruce", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
{
|
||||
"variants": {
|
||||
"type=single,facing=north": { "model": "block/chest/trapped", "y": 180 },
|
||||
"type=single,facing=east": { "model": "block/chest/trapped", "y": 270 },
|
||||
"type=single,facing=south": { "model": "block/chest/trapped" },
|
||||
"type=single,facing=west": { "model": "block/chest/trapped", "y":90 },
|
||||
"type=right,facing=north": { "model": "block/chest/trapped_double", "y": 180 },
|
||||
"type=right,facing=east": { "model": "block/chest/trapped_double", "y": 270 },
|
||||
"type=right,facing=south": { "model": "block/chest/trapped_double" },
|
||||
"type=right,facing=west": { "model": "block/chest/trapped_double", "y":90 },
|
||||
"type=left": { "model": "block/chest/left" }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/white_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/white_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/white_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/white_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/white_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/white_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/white_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/white_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
{
|
||||
"variants": {
|
||||
"part=head,facing=north": { "model": "block/bed/yellow_head" },
|
||||
"part=head,facing=east": { "model": "block/bed/yellow_head", "y": 90 },
|
||||
"part=head,facing=south": { "model": "block/bed/yellow_head", "y": 180 },
|
||||
"part=head,facing=west": { "model": "block/bed/yellow_head", "y": 270 },
|
||||
"part=foot,facing=north": { "model": "block/bed/yellow_foot" },
|
||||
"part=foot,facing=east": { "model": "block/bed/yellow_foot", "y": 90 },
|
||||
"part=foot,facing=south": { "model": "block/bed/yellow_foot", "y": 180 },
|
||||
"part=foot,facing=west": { "model": "block/bed/yellow_foot", "y": 270 }
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 13],
|
||||
"to": [3, 3, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [14.75, 0.75, 15.5, 1.5], "texture": "#bed"},
|
||||
"east": {"uv": [14, 0.75, 14.75, 1.5], "texture": "#bed"},
|
||||
"south": {"uv": [13.25, 0.75, 14, 1.5], "texture": "#bed"},
|
||||
"west": {"uv": [12.5, 0.75, 13.25, 1.5], "texture": "#bed"},
|
||||
"up": {"uv": [13.25, 0, 14, 0.75], "texture": "#bed"},
|
||||
"down": {"uv": [14, 0, 14.75, 0.75], "texture": "#bed"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13, 0, 13],
|
||||
"to": [16, 3, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [14, 3.75, 14.75, 4.5], "texture": "#bed"},
|
||||
"east": {"uv": [13.25, 3.75, 14, 4.5], "texture": "#bed"},
|
||||
"south": {"uv": [12.5, 3.75, 13.25, 4.5], "texture": "#bed"},
|
||||
"west": {"uv": [14.75, 3.75, 15.5, 4.5], "texture": "#bed"},
|
||||
"up": {"uv": [13.25, 3, 14, 3.75], "texture": "#bed"},
|
||||
"down": {"uv": [14, 3, 14.75, 3.75], "texture": "#bed"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 3, 0],
|
||||
"to": [16, 9, 16],
|
||||
"faces": {
|
||||
"east": {"uv": [5.5, 7, 7, 11], "rotation": 90, "texture": "#bed"},
|
||||
"south": {"uv": [5.5, 7, 9.5, 5.5], "texture": "#bed"},
|
||||
"west": {"uv": [0, 7, 1.5, 11], "rotation": 270, "texture": "#bed"},
|
||||
"up": {"uv": [1.5, 7, 5.5, 11], "texture": "#bed"},
|
||||
"down": {"uv": [7, 7, 11, 11], "rotation": 180, "texture": "#bed"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 3, 3],
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 2.25, 13.25, 3], "texture": "#bed"},
|
||||
"east": {"uv": [14.75, 2.25, 15.5, 3], "texture": "#bed"},
|
||||
"south": {"uv": [14, 2.25, 14.75, 3], "texture": "#bed"},
|
||||
"west": {"uv": [13.25, 2.25, 14, 3], "texture": "#bed"},
|
||||
"up": {"uv": [13.25, 1.5, 14, 2.25], "texture": "#bed"},
|
||||
"down": {"uv": [14, 1.5, 14.75, 2.25], "texture": "#bed"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13, 0, 0],
|
||||
"to": [16, 3, 3],
|
||||
"faces": {
|
||||
"north": {"uv": [13.25, 5.25, 14, 6], "texture": "#bed"},
|
||||
"east": {"uv": [12.5, 5.25, 13.25, 6], "texture": "#bed"},
|
||||
"south": {"uv": [14.75, 5.25, 15.5, 6], "texture": "#bed"},
|
||||
"west": {"uv": [14, 5.25, 14.75, 6], "texture": "#bed"},
|
||||
"up": {"uv": [13.25, 4.5, 14, 5.25], "texture": "#bed"},
|
||||
"down": {"uv": [14, 4.5, 14.75, 5.25], "texture": "#bed"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 3, 0],
|
||||
"to": [16, 9, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1.5, 1.5, 5.5, 0], "texture": "#bed"},
|
||||
"east": {"uv": [5.5, 1.5, 7, 5.5], "rotation": 90, "texture": "#bed"},
|
||||
"west": {"uv": [0, 1.5, 1.5, 5.5], "rotation": 270, "texture": "#bed"},
|
||||
"up": {"uv": [1.5, 1.5, 5.5, 5.5], "texture": "#bed"},
|
||||
"down": {"uv": [7, 1.5, 11, 5.5], "rotation": 180, "texture": "#bed"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/black"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/black"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/blue"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/blue"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/brown"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/brown"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/cyan"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/cyan"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/gray"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/gray"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/green"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/green"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/light_blue"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/light_blue"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/light_gray"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/light_gray"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/lime"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/lime"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/magenta"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/magenta"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/orange"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/orange"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/pink"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/pink"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/purple"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/purple"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/red"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/red"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/white"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/white"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_foot",
|
||||
"textures": {
|
||||
"bed": "entity/bed/yellow"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/bed/bed_head",
|
||||
"textures": {
|
||||
"bed": "entity/bed/yellow"
|
||||
}
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 0, 1],
|
||||
"to": [15, 10, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 8.25, 14, 10.75], "texture": "#chest"},
|
||||
"east": {"uv": [7, 8.25, 10.5, 10.75], "texture": "#chest"},
|
||||
"south": {"uv": [3.5, 8.25, 7, 10.75], "texture": "#chest"},
|
||||
"west": {"uv": [0, 8.25, 3.5, 10.75], "texture": "#chest"},
|
||||
"up": {"uv": [3.5, 4.75, 7, 8.25], "texture": "#chest"},
|
||||
"down": {"uv": [7, 4.75, 10.5, 8.25], "texture": "#chest"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 9, 1],
|
||||
"to": [15, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 3.5, 14, 4.75], "texture": "#chest"},
|
||||
"east": {"uv": [7, 3.5, 10.5, 4.75], "texture": "#chest"},
|
||||
"south": {"uv": [3.5, 3.5, 7, 4.75], "texture": "#chest"},
|
||||
"west": {"uv": [0, 3.5, 3.5, 4.75], "texture": "#chest"},
|
||||
"up": {"uv": [3.5, 0, 7, 3.5], "texture": "#chest"},
|
||||
"down": {"uv": [7, 0, 10.5, 3.5], "texture": "#chest"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 7, 15],
|
||||
"to": [9, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0.25, 0.25, 0.75, 1.25], "texture": "#chest"},
|
||||
"east": {"uv": [0, 0.25, 0.25, 1.25], "texture": "#chest"},
|
||||
"south": {"uv": [1, 0.25, 1.5, 1.25], "texture": "#chest"},
|
||||
"west": {"uv": [0.75, 0.25, 1, 1.25], "texture": "#chest"},
|
||||
"up": {"uv": [0.25, 0, 0.75, 0.25], "texture": "#chest"},
|
||||
"down": {"uv": [0.75, 0, 1.25, 0.25], "texture": "#chest"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 0, 1],
|
||||
"to": [31, 10, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [7.25, 8.25, 11, 10.75], "texture": "#chest"},
|
||||
"east": {"uv": [5.5, 8.25, 7.25, 10.75], "texture": "#chest"},
|
||||
"south": {"uv": [1.75, 8.25, 5.5, 10.75], "texture": "#chest"},
|
||||
"west": {"uv": [0, 8.25, 1.75, 10.75], "texture": "#chest"},
|
||||
"up": {"uv": [1.75, 4.75, 5.5, 8.25], "texture": "#chest"},
|
||||
"down": {"uv": [5.5, 4.75, 9.25, 8.25], "texture": "#chest"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 9, 1],
|
||||
"to": [31, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [7.25, 3.5, 11, 4.75], "texture": "#chest"},
|
||||
"east": {"uv": [5.5, 3.5, 7.25, 4.75], "texture": "#chest"},
|
||||
"south": {"uv": [1.75, 3.5, 5.5, 4.75], "texture": "#chest"},
|
||||
"west": {"uv": [0, 3.5, 1.75, 4.75], "texture": "#chest"},
|
||||
"up": {"uv": [1.75, 0, 5.5, 3.5], "texture": "#chest"},
|
||||
"down": {"uv": [5.5, 0, 9.25, 3.5], "texture": "#chest"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15, 7, 15],
|
||||
"to": [17, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0.5, 0.25, 0.75, 1.25], "texture": "#chest"},
|
||||
"east": {"uv": [0.375, 0.25, 0.5, 1.25], "texture": "#chest"},
|
||||
"south": {"uv": [0.125, 0.25, 0.375, 1.25], "texture": "#chest"},
|
||||
"west": {"uv": [0, 0.25, 0.125, 1.25], "texture": "#chest"},
|
||||
"up": {"uv": [0.125, 0, 0.375, 0.25], "texture": "#chest"},
|
||||
"down": {"uv": [0.375, 0, 0.625, 0.25], "texture": "#chest"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/chest/chest",
|
||||
"textures": {
|
||||
"chest": "entity/chest/ender"
|
||||
}
|
||||
}
|
@ -0,0 +1 @@
|
||||
{}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/chest/chest",
|
||||
"textures": {
|
||||
"chest": "entity/chest/normal"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/chest/chest_double",
|
||||
"textures": {
|
||||
"chest": "entity/chest/normal_double"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/chest/chest",
|
||||
"textures": {
|
||||
"chest": "entity/chest/trapped"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/chest/chest_double",
|
||||
"textures": {
|
||||
"chest": "entity/chest/trapped_double"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/acacia"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/birch"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/dark_oak"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/jungle"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/oak"
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"from": [7.25, 0, 7.25],
|
||||
"to": [8.75, 9.333, 8.75],
|
||||
"faces": {
|
||||
"north": {"uv": [1.5, 8, 2, 15], "texture": "#sign"},
|
||||
"east": {"uv": [1, 8, 1.5, 15], "texture": "#sign"},
|
||||
"south": {"uv": [0.5, 8, 1, 15], "texture": "#sign"},
|
||||
"west": {"uv": [0, 8, 0.5, 15], "texture": "#sign"},
|
||||
"up": {"uv": [0.5, 7, 1, 8], "texture": "#sign"},
|
||||
"down": {"uv": [1, 7, 1.5, 8], "texture": "#sign"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 9.333, 7.25],
|
||||
"to": [16, 17.333, 8.75],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 1, 13, 7], "texture": "#sign"},
|
||||
"east": {"uv": [6.5, 1, 7, 7], "texture": "#sign"},
|
||||
"south": {"uv": [0.5, 1, 6.5, 7], "texture": "#sign"},
|
||||
"west": {"uv": [0, 1, 0.5, 7], "texture": "#sign"},
|
||||
"up": {"uv": [0.5, 0, 6.5, 1], "texture": "#sign"},
|
||||
"down": {"uv": [6.5, 1, 12.5, 0], "texture": "#sign"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/spruce"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/wall_sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/acacia"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/wall_sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/birch"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/wall_sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/dark_oak"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/wall_sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/jungle"
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/wall_sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/oak"
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 4.333, 0.25],
|
||||
"to": [16, 12.333, 1.75],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 1, 13, 7], "texture": "#sign"},
|
||||
"east": {"uv": [6.5, 1, 7, 7], "texture": "#sign"},
|
||||
"south": {"uv": [0.5, 1, 6.5, 7], "texture": "#sign"},
|
||||
"west": {"uv": [0, 1, 0.5, 7], "texture": "#sign"},
|
||||
"up": {"uv": [0.5, 0, 6.5, 1], "texture": "#sign"},
|
||||
"down": {"uv": [6.5, 1, 12.5, 0], "texture": "#sign"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent":"block/sign/wall_sign",
|
||||
"textures": {
|
||||
"sign": "entity/signs/spruce"
|
||||
}
|
||||
}
|
@ -37,6 +37,7 @@ import {
|
||||
MeshLambertMaterial,
|
||||
NormalBlending,
|
||||
NearestFilter,
|
||||
NearestMipmapLinearFilter,
|
||||
PerspectiveCamera,
|
||||
Scene,
|
||||
Texture,
|
||||
@ -89,7 +90,7 @@ export default class BlueMap {
|
||||
this.initModules();
|
||||
this.start();
|
||||
}).catch(error => {
|
||||
this.onLoadError(error.toString())
|
||||
this.onLoadError(error.toString());
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
@ -364,9 +365,11 @@ export default class BlueMap {
|
||||
for (let i = 0; i < textures['textures'].length; i++) {
|
||||
let t = textures['textures'][i];
|
||||
|
||||
let opaque = t['color'][3] === 1;
|
||||
let transparent = t['transparent'];
|
||||
let material = new MeshLambertMaterial({
|
||||
transparent: t['transparent'],
|
||||
alphaTest: 0.01,
|
||||
transparent: transparent,
|
||||
alphaTest: transparent ? 0 : (opaque ? 1 : 0.01),
|
||||
depthWrite: true,
|
||||
depthTest: true,
|
||||
blending: NormalBlending,
|
||||
@ -378,15 +381,15 @@ export default class BlueMap {
|
||||
let texture = new Texture();
|
||||
texture.image = stringToImage(t['texture']);
|
||||
|
||||
texture.premultiplyAlpha = false;
|
||||
texture.generateMipmaps = false;
|
||||
texture.anisotropy = 1;
|
||||
texture.generateMipmaps = opaque || transparent;
|
||||
texture.magFilter = NearestFilter;
|
||||
texture.minFilter = NearestFilter;
|
||||
texture.minFilter = texture.generateMipmaps ? NearestMipmapLinearFilter : NearestFilter;
|
||||
texture.wrapS = ClampToEdgeWrapping;
|
||||
texture.wrapT = ClampToEdgeWrapping;
|
||||
texture.flipY = false;
|
||||
texture.needsUpdate = true;
|
||||
texture.flatShading = true;
|
||||
texture.needsUpdate = true;
|
||||
|
||||
material.map = texture;
|
||||
material.needsUpdate = true;
|
||||
|
@ -48,6 +48,7 @@ export default class Position {
|
||||
.children()
|
||||
.first();
|
||||
element.on('input', this.onInput(type));
|
||||
element.on('keydown', this.onKeyDown);
|
||||
return element;
|
||||
}
|
||||
|
||||
@ -58,6 +59,10 @@ export default class Position {
|
||||
}
|
||||
};
|
||||
|
||||
onKeyDown = event => {
|
||||
event.stopPropagation();
|
||||
};
|
||||
|
||||
onBlueMapUpdateFrame = () => {
|
||||
const { x, y, z } = this.blueMap.controls.targetPosition;
|
||||
const values = [ z, y, x ];
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user