mirror of
https://github.com/TeamMidnightDust/VisualOverhaul.git
synced 2025-12-17 06:15:09 +01:00
First release! - VisualOverhaul 1.0.0
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
package eu.midnightdust.visualoverhaul;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class VisualOverhaul {
|
||||
public static final Identifier UPDATE_POTION_BOTTLES = new Identifier("visualoverhaul", "brewingstand");
|
||||
public static final Identifier UPDATE_RECORD = new Identifier("visualoverhaul", "record");
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package eu.midnightdust.visualoverhaul;
|
||||
|
||||
import eu.midnightdust.visualoverhaul.block.JukeboxTop;
|
||||
import eu.midnightdust.visualoverhaul.block.renderer.BrewingStandBlockEntityRenderer;
|
||||
import eu.midnightdust.visualoverhaul.block.renderer.JukeboxBlockEntityRenderer;
|
||||
import eu.midnightdust.visualoverhaul.config.VOConfig;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.serializer.JanksonConfigSerializer;
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
|
||||
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
|
||||
import net.fabricmc.fabric.impl.networking.ClientSidePacketRegistryImpl;
|
||||
import net.fabricmc.loader.api.FabricLoader;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.entity.BlockEntityType;
|
||||
import net.minecraft.block.entity.BrewingStandBlockEntity;
|
||||
import net.minecraft.block.entity.JukeboxBlockEntity;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.MusicDiscItem;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.collection.DefaultedList;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
|
||||
import static eu.midnightdust.visualoverhaul.VisualOverhaul.UPDATE_POTION_BOTTLES;
|
||||
import static eu.midnightdust.visualoverhaul.VisualOverhaul.UPDATE_RECORD;
|
||||
|
||||
public class VisualOverhaulClient implements ClientModInitializer {
|
||||
public static VOConfig VO_CONFIG;
|
||||
public static Block JukeBoxTop = new JukeboxTop();
|
||||
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
AutoConfig.register(VOConfig.class, JanksonConfigSerializer::new);
|
||||
VO_CONFIG = AutoConfig.getConfigHolder(VOConfig.class).getConfig();
|
||||
|
||||
// Block only registered on client, because it's just used for the renderer //
|
||||
Registry.register(Registry.BLOCK, new Identifier("visualoverhaul","jukebox_top"), JukeBoxTop);
|
||||
|
||||
BlockEntityRendererRegistry.INSTANCE.register(BlockEntityType.BREWING_STAND, BrewingStandBlockEntityRenderer::new);
|
||||
BlockEntityRendererRegistry.INSTANCE.register(BlockEntityType.JUKEBOX, JukeboxBlockEntityRenderer::new);
|
||||
|
||||
Registry.ITEM.forEach((item) -> {
|
||||
if(item instanceof MusicDiscItem) {
|
||||
FabricModelPredicateProviderRegistry.register(item, new Identifier("round"), (stack, world, entity) -> stack.getCount() == 2 ? 1.0F : 0.0F);
|
||||
}
|
||||
});
|
||||
|
||||
ClientSidePacketRegistryImpl.INSTANCE.register(UPDATE_POTION_BOTTLES,
|
||||
(packetContext, attachedData) -> {
|
||||
BlockPos pos = attachedData.readBlockPos();
|
||||
DefaultedList<ItemStack> inv = DefaultedList.ofSize(5, ItemStack.EMPTY);
|
||||
for (int i = 0; i < 4; i++) {
|
||||
inv.set(i, attachedData.readItemStack());
|
||||
}
|
||||
packetContext.getTaskQueue().execute(() -> {
|
||||
BrewingStandBlockEntity blockEntity = (BrewingStandBlockEntity) MinecraftClient.getInstance().world.getBlockEntity(pos);
|
||||
blockEntity.setStack(0,inv.get(0));
|
||||
blockEntity.setStack(1,inv.get(1));
|
||||
blockEntity.setStack(2,inv.get(2));
|
||||
blockEntity.setStack(3,inv.get(3));
|
||||
blockEntity.setStack(4,inv.get(4));
|
||||
});
|
||||
});
|
||||
ClientSidePacketRegistryImpl.INSTANCE.register(UPDATE_RECORD,
|
||||
(packetContext, attachedData) -> {
|
||||
BlockPos pos = attachedData.readBlockPos();
|
||||
ItemStack record = attachedData.readItemStack();
|
||||
packetContext.getTaskQueue().execute(() -> {
|
||||
JukeboxBlockEntity blockEntity = (JukeboxBlockEntity)MinecraftClient.getInstance().world.getBlockEntity(pos);
|
||||
blockEntity.setRecord(record);
|
||||
});
|
||||
});
|
||||
|
||||
FabricLoader.getInstance().getModContainer("visualoverhaul").ifPresent(modContainer -> {
|
||||
ResourceManagerHelper.registerBuiltinResourcePack(new Identifier("visualoverhaul:nobottles"), "resourcepacks/visualoverhaul", modContainer, true);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package eu.midnightdust.visualoverhaul.block;
|
||||
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.state.StateManager;
|
||||
import net.minecraft.state.property.BooleanProperty;
|
||||
import net.minecraft.state.property.Properties;
|
||||
|
||||
public class JukeboxTop extends Block {
|
||||
|
||||
private static final BooleanProperty HAS_RECORD = Properties.HAS_RECORD;
|
||||
|
||||
public JukeboxTop() {
|
||||
super(FabricBlockSettings.copy(Blocks.JUKEBOX));
|
||||
this.setDefaultState(this.stateManager.getDefaultState().with(HAS_RECORD,false));
|
||||
}
|
||||
@Override
|
||||
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
|
||||
builder.add(HAS_RECORD);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package eu.midnightdust.visualoverhaul.block.renderer;
|
||||
|
||||
import eu.midnightdust.visualoverhaul.VisualOverhaul;
|
||||
import eu.midnightdust.visualoverhaul.VisualOverhaulClient;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.block.entity.BrewingStandBlockEntity;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.WorldRenderer;
|
||||
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
|
||||
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
|
||||
import net.minecraft.client.render.model.json.ModelTransformation;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.client.util.math.Vector3f;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class BrewingStandBlockEntityRenderer extends BlockEntityRenderer<BrewingStandBlockEntity> {
|
||||
|
||||
public BrewingStandBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) {
|
||||
super(blockEntityRenderDispatcher);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void render(BrewingStandBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) {
|
||||
|
||||
if (VisualOverhaulClient.VO_CONFIG.brewingstand) {
|
||||
int lightAtBlock = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos());
|
||||
ItemStack item1 = blockEntity.getStack(0);
|
||||
ItemStack item2 = blockEntity.getStack(1);
|
||||
ItemStack item3 = blockEntity.getStack(2);
|
||||
|
||||
matrices.push();
|
||||
|
||||
matrices.translate(0.86f, 0.23f, 0.5f);
|
||||
matrices.scale(1.15f, 1.15f, 1.15f);
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(180));
|
||||
MinecraftClient.getInstance().getItemRenderer().renderItem(item1, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers);
|
||||
|
||||
matrices.pop();
|
||||
matrices.push();
|
||||
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(315));
|
||||
matrices.translate(0.32f, 0.23f, 0f);
|
||||
matrices.scale(1.15f, 1.15f, 1.15f);
|
||||
MinecraftClient.getInstance().getItemRenderer().renderItem(item2, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers);
|
||||
|
||||
matrices.pop();
|
||||
matrices.push();
|
||||
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(45));
|
||||
matrices.translate(-0.39f, 0.23f, 0.705f);
|
||||
matrices.scale(1.15f, 1.15f, 1.15f);
|
||||
MinecraftClient.getInstance().getItemRenderer().renderItem(item3, ModelTransformation.Mode.GROUND, lightAtBlock, overlay, matrices, vertexConsumers);
|
||||
|
||||
matrices.pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package eu.midnightdust.visualoverhaul.block.renderer;
|
||||
|
||||
import eu.midnightdust.visualoverhaul.VisualOverhaulClient;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.minecraft.block.entity.JukeboxBlockEntity;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.render.RenderLayer;
|
||||
import net.minecraft.client.render.VertexConsumerProvider;
|
||||
import net.minecraft.client.render.WorldRenderer;
|
||||
import net.minecraft.client.render.block.entity.BlockEntityRenderDispatcher;
|
||||
import net.minecraft.client.render.block.entity.BlockEntityRenderer;
|
||||
import net.minecraft.client.render.model.json.ModelTransformation;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
import net.minecraft.client.util.math.Vector3f;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.state.property.Properties;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class JukeboxBlockEntityRenderer extends BlockEntityRenderer<JukeboxBlockEntity> {
|
||||
|
||||
public JukeboxBlockEntityRenderer(BlockEntityRenderDispatcher blockEntityRenderDispatcher) {
|
||||
super(blockEntityRenderDispatcher);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(JukeboxBlockEntity blockEntity, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay) {
|
||||
|
||||
if (VisualOverhaulClient.VO_CONFIG.jukebox) {
|
||||
int lightAbove = WorldRenderer.getLightmapCoordinates(blockEntity.getWorld(), blockEntity.getPos().up());
|
||||
ItemStack record = blockEntity.getRecord();
|
||||
record.setCount(2);
|
||||
|
||||
matrices.push();
|
||||
|
||||
matrices.translate(0.5f, 1.03f, 0.5f);
|
||||
matrices.scale(0.75f, 0.75f, 0.75f);
|
||||
matrices.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion((blockEntity.getWorld().getTime() + tickDelta) * 4));
|
||||
MinecraftClient.getInstance().getItemRenderer().renderItem(record, ModelTransformation.Mode.GROUND, lightAbove, overlay, matrices, vertexConsumers);
|
||||
|
||||
matrices.pop();
|
||||
if (VisualOverhaulClient.VO_CONFIG.jukebox_fake_block) {
|
||||
matrices.push();
|
||||
matrices.translate(0f, 1f, 0f);
|
||||
if (record == ItemStack.EMPTY) {
|
||||
MinecraftClient.getInstance().getBlockRenderManager().renderBlock(VisualOverhaulClient.JukeBoxTop.getDefaultState().with(Properties.HAS_RECORD, false), blockEntity.getPos().up(), blockEntity.getWorld(), matrices, vertexConsumers.getBuffer(RenderLayer.getCutout()), false, new Random());
|
||||
} else {
|
||||
MinecraftClient.getInstance().getBlockRenderManager().renderBlock(VisualOverhaulClient.JukeBoxTop.getDefaultState().with(Properties.HAS_RECORD, true), blockEntity.getPos().up(), blockEntity.getWorld(), matrices, vertexConsumers.getBuffer(RenderLayer.getCutout()), false, new Random());
|
||||
}
|
||||
matrices.pop();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package eu.midnightdust.visualoverhaul.config;
|
||||
|
||||
import io.github.prospector.modmenu.api.ConfigScreenFactory;
|
||||
import io.github.prospector.modmenu.api.ModMenuApi;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.AutoConfig;
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class ModMenuIntegration implements ModMenuApi {
|
||||
|
||||
@Override
|
||||
public ConfigScreenFactory<?> getModConfigScreenFactory() {
|
||||
return parent -> AutoConfig.getConfigScreen(VOConfig.class, parent).get();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package eu.midnightdust.visualoverhaul.config;
|
||||
|
||||
import me.sargunvohra.mcmods.autoconfig1u.ConfigData;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.annotation.Config;
|
||||
import me.sargunvohra.mcmods.autoconfig1u.shadowed.blue.endless.jankson.Comment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Config(name = "visualoverhaul")
|
||||
public class VOConfig implements ConfigData {
|
||||
|
||||
public boolean brewingstand = true;
|
||||
public boolean jukebox = true;
|
||||
public boolean jukebox_fake_block = true;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package eu.midnightdust.visualoverhaul.mixin;
|
||||
|
||||
import eu.midnightdust.visualoverhaul.VisualOverhaul;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import net.fabricmc.fabric.api.server.PlayerStream;
|
||||
import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl;
|
||||
import net.minecraft.block.entity.BlockEntityType;
|
||||
import net.minecraft.block.entity.BrewingStandBlockEntity;
|
||||
import net.minecraft.block.entity.LockableContainerBlockEntity;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.PacketByteBuf;
|
||||
import net.minecraft.util.collection.DefaultedList;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Mixin(BrewingStandBlockEntity.class)
|
||||
public abstract class MixinBrewingStandBlockEntity extends LockableContainerBlockEntity {
|
||||
|
||||
|
||||
@Shadow private DefaultedList<ItemStack> inventory;
|
||||
public ItemStack item1;
|
||||
public ItemStack item2;
|
||||
public ItemStack item3;
|
||||
Boolean sendData = true;
|
||||
|
||||
private MixinBrewingStandBlockEntity(BlockEntityType<?> blockEntityType) {
|
||||
super(blockEntityType);
|
||||
|
||||
}
|
||||
|
||||
@Inject(at = @At("TAIL"), method = "tick")
|
||||
public void tick(CallbackInfo ci) {
|
||||
item1 = inventory.get(0);
|
||||
item2 = inventory.get(1);
|
||||
item3 = inventory.get(2);
|
||||
|
||||
if (!this.world.isClient) {
|
||||
Stream<PlayerEntity> watchingPlayers = PlayerStream.watching(world, getPos());
|
||||
PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer());
|
||||
passedData.writeBlockPos(pos);
|
||||
passedData.writeItemStack(inventory.get(0));
|
||||
passedData.writeItemStack(inventory.get(1));
|
||||
passedData.writeItemStack(inventory.get(2));
|
||||
passedData.writeItemStack(inventory.get(3));
|
||||
passedData.writeItemStack(inventory.get(4));
|
||||
|
||||
passedData.writeString(String.valueOf(inventory));
|
||||
watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_POTION_BOTTLES, passedData));
|
||||
sendData = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(at = @At("RETURN"), method = "getStack", cancellable = true)
|
||||
public void getStack(int slot, CallbackInfoReturnable cir) {
|
||||
this.sendData = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package eu.midnightdust.visualoverhaul.mixin;
|
||||
|
||||
import eu.midnightdust.visualoverhaul.VisualOverhaul;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import net.fabricmc.fabric.api.server.PlayerStream;
|
||||
import net.fabricmc.fabric.impl.networking.ServerSidePacketRegistryImpl;
|
||||
import net.minecraft.block.entity.*;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.PacketByteBuf;
|
||||
import net.minecraft.util.Tickable;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.Unique;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Mixin(JukeboxBlockEntity.class)
|
||||
public abstract class MixinJukeboxBlockEntity extends BlockEntity implements Tickable {
|
||||
|
||||
|
||||
@Shadow private ItemStack record;
|
||||
Boolean sendData = true;
|
||||
|
||||
private MixinJukeboxBlockEntity(BlockEntityType<?> blockEntityType) {
|
||||
super(blockEntityType);
|
||||
|
||||
}
|
||||
|
||||
@Unique
|
||||
public void tick() {
|
||||
if (!this.world.isClient) {
|
||||
Stream<PlayerEntity> watchingPlayers = PlayerStream.watching(world, getPos());
|
||||
PacketByteBuf passedData = new PacketByteBuf(Unpooled.buffer());
|
||||
passedData.writeBlockPos(pos);
|
||||
passedData.writeItemStack(record);
|
||||
|
||||
watchingPlayers.forEach(player -> ServerSidePacketRegistryImpl.INSTANCE.sendToPlayer(player, VisualOverhaul.UPDATE_RECORD, passedData));
|
||||
sendData = false;
|
||||
}
|
||||
}
|
||||
|
||||
@Inject(at = @At("RETURN"), method = "getRecord", cancellable = true)
|
||||
public void getRecord(CallbackInfoReturnable cir) {
|
||||
this.sendData = true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_11"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_11_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_11"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_13"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_13_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_13"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_blocks"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_blocks_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_blocks"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_cat"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_cat_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_cat"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_chirp"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_chirp_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_chirp"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_far"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_far_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_far"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_mall"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_mall_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_mall"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_mellohi"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_mellohi_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_mellohi"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_pigstep"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_pigstep_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_pigstep"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_stal"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_stal_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_stal"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_strad"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_strad_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_strad"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_wait"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_wait_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_wait"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "minecraft:item/music_disc_ward"
|
||||
},
|
||||
|
||||
"overrides": [
|
||||
{
|
||||
"predicate": {
|
||||
"round": 1
|
||||
},
|
||||
"model": "minecraft:item/music_disc_ward_round"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "visualoverhaul:item/round_disc",
|
||||
"textures": {
|
||||
"0": "minecraft:item/music_disc_ward"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"variants": {
|
||||
"has_record=true": {
|
||||
"model": "visualoverhaul:block/jukebox_top_playing"
|
||||
},
|
||||
"has_record=false": {
|
||||
"model": "visualoverhaul:block/jukebox_top_stopped"
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/assets/visualoverhaul/icon.png
Normal file
BIN
src/main/resources/assets/visualoverhaul/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"credit": "made by Motschen",
|
||||
"textures": {
|
||||
"0": "block/glass",
|
||||
"1": "block/black_concrete",
|
||||
"2": "block/anvil",
|
||||
"3": "visualoverhaul:block/vo_jukebox_top",
|
||||
"particle": "block/glass"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 0.001, 16],
|
||||
"faces": {
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 5, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.875, 0, 7.875],
|
||||
"to": [8.125, 1.25, 8.125],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.75, 1, 11.29],
|
||||
"to": [6, 1.5, 11.54],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [5, 8, 12]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.875, 0, 14.875],
|
||||
"to": [1.375, 1.5, 15.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 8, 15]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.65, 1.5, 14.875],
|
||||
"to": [7.15, 2, 15.375],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [1, 10, 15]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"credit": "made by Motschen",
|
||||
"textures": {
|
||||
"0": "block/glass",
|
||||
"1": "block/black_concrete",
|
||||
"2": "block/anvil",
|
||||
"3": "visualoverhaul:block/vo_jukebox_top",
|
||||
"particle": "block/glass"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 0.001, 16],
|
||||
"faces": {
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 5, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 5], "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.875, 0, 7.875],
|
||||
"to": [8.125, 1.25, 8.125],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.75, 1, 15],
|
||||
"to": [7, 1.5, 15.25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.875, 0, 14.875],
|
||||
"to": [1.375, 1.5, 15.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 8, 15]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.65, 1.5, 14.875],
|
||||
"to": [7.15, 2, 15.375],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 10, 15]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"east": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"south": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"west": {"uv": [0, 0, 0.25, 2], "texture": "#1"},
|
||||
"up": {"uv": [0, 0, 0.25, 0.25], "texture": "#1"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,447 @@
|
||||
{
|
||||
"credit": "made by Motschen",
|
||||
"textures": {
|
||||
"0": "item/music_disc_mellohi",
|
||||
"particle": "#0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [7.5, 0, 7.5],
|
||||
"to": [8.5, 1, 8.5],
|
||||
"faces": {
|
||||
"up": {"uv": [7, 7, 8, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9.5, 0, 9.5],
|
||||
"to": [10.5, 1, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 10]},
|
||||
"faces": {
|
||||
"up": {"uv": [5, 6, 6, 7], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0, 9.5],
|
||||
"to": [6.5, 1, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 10]},
|
||||
"faces": {
|
||||
"up": {"uv": [9, 6, 10, 7], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0, 5.5],
|
||||
"to": [6.5, 1, 6.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 6]},
|
||||
"faces": {
|
||||
"up": {"uv": [9, 8, 10, 9], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9.5, 0, 5.5],
|
||||
"to": [10.5, 1, 6.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 6]},
|
||||
"faces": {
|
||||
"up": {"uv": [5, 8, 6, 9], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, 0, 5.5],
|
||||
"to": [9.5, 1, 6.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6]},
|
||||
"faces": {
|
||||
"up": {"uv": [6, 8, 9, 9], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.5, 0, 4.5],
|
||||
"to": [13.5, 1, 5.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 5]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 9, 13, 10], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 0.001, 2.5],
|
||||
"to": [5.5, 1.001, 13.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 9, 13, 10], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10.5, 0.001, 2.5],
|
||||
"to": [11.5, 1.001, 13.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 9, 13, 10], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.5, 0, 10.5],
|
||||
"to": [13.5, 1, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 11]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 5, 13, 6], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, 0, 9.5],
|
||||
"to": [9.5, 1, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 10]},
|
||||
"faces": {
|
||||
"up": {"uv": [6, 6, 9, 7], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0, 6.5],
|
||||
"to": [6.5, 1, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [6, 8, 9, 9], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9.5, 0, 6.5],
|
||||
"to": [10.5, 1, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [6, 6, 9, 7], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.5, 0, 6.5],
|
||||
"to": [9.5, 1, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [6, 7, 7, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, 0, 6.5],
|
||||
"to": [7.5, 1, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [8, 7, 9, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 0, 8.5],
|
||||
"to": [8.5, 1, 9.5],
|
||||
"faces": {
|
||||
"up": {"uv": [6, 7, 7, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, 0, 6.5],
|
||||
"to": [8.5, 1, 7.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6]},
|
||||
"faces": {
|
||||
"up": {"uv": [8, 7, 9, 8], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.5, -0.001, 11.5],
|
||||
"to": [12.5, 0.999, 12.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 12]},
|
||||
"faces": {
|
||||
"up": {"uv": [3, 5, 8, 6], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, -0.001, 11.5],
|
||||
"to": [7.5, 0.999, 12.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 8, 12]},
|
||||
"faces": {
|
||||
"up": {"uv": [8, 5, 12, 6], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0, 12.5],
|
||||
"to": [10.5, 1, 13.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 13]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 5, 3, 10], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, 0, 13.5],
|
||||
"to": [11.5, 1, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 14]},
|
||||
"faces": {
|
||||
"east": {"uv": [10, 11, 11, 12], "texture": "#0"},
|
||||
"south": {"uv": [5, 12, 10, 13], "texture": "#0"},
|
||||
"up": {"uv": [5, 3, 10, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 0, 13.5],
|
||||
"to": [6.5, 1, 14.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 14]},
|
||||
"faces": {
|
||||
"south": {"uv": [3, 11, 5, 12], "texture": "#0"},
|
||||
"west": {"uv": [2, 11, 3, 12], "texture": "#0"},
|
||||
"up": {"uv": [8, 3, 10, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, 0, 12.5],
|
||||
"to": [4.5, 1, 13.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, 8, 13]},
|
||||
"faces": {
|
||||
"south": {"uv": [13, 10, 14, 11], "texture": "#0"},
|
||||
"west": {"uv": [13, 10, 14, 11], "texture": "#0"},
|
||||
"up": {"uv": [10, 4, 11, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.5, 0, 11.5],
|
||||
"to": [3.5, 1, 12.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [1, 8, 12]},
|
||||
"faces": {
|
||||
"south": {"uv": [12, 11, 13, 12], "texture": "#0"},
|
||||
"west": {"uv": [10, 11, 11, 12], "texture": "#0"},
|
||||
"up": {"uv": [11, 4, 12, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12.5, 0, 11.5],
|
||||
"to": [13.5, 1, 12.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [11, 8, 12]},
|
||||
"faces": {
|
||||
"east": {"uv": [13, 10, 14, 11], "texture": "#0"},
|
||||
"south": {"uv": [13, 10, 14, 11], "texture": "#0"},
|
||||
"up": {"uv": [2, 4, 3, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11.5, 0, 12.5],
|
||||
"to": [12.5, 1, 13.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 13]},
|
||||
"faces": {
|
||||
"east": {"uv": [12, 11, 13, 12], "texture": "#0"},
|
||||
"south": {"uv": [11, 11, 12, 12], "texture": "#0"},
|
||||
"up": {"uv": [4, 4, 5, 5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11.5, -0.001, 5.5],
|
||||
"to": [12.5, 0.999, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [5, 4, 10, 5], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11.5, -0.001, 3.5],
|
||||
"to": [12.5, 0.999, 4.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 6]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 9, 3, 10], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12.5, 0, 5.5],
|
||||
"to": [13.5, 1, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 5, 3, 10], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13.5, 0, 4.5],
|
||||
"to": [14.5, 1, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 8, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 11, 11, 12], "texture": "#0"},
|
||||
"east": {"uv": [5, 12, 10, 13], "texture": "#0"},
|
||||
"up": {"uv": [5, 3, 10, 4], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13.5, 0, 9.5],
|
||||
"to": [14.5, 1, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [14, 8, 12]},
|
||||
"faces": {
|
||||
"east": {"uv": [3, 11, 5, 12], "texture": "#0"},
|
||||
"south": {"uv": [2, 11, 3, 12], "texture": "#0"},
|
||||
"up": {"uv": [8, 3, 10, 4], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11.5, 0, 2.5],
|
||||
"to": [12.5, 1, 3.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 5]},
|
||||
"faces": {
|
||||
"north": {"uv": [11, 11, 12, 12], "texture": "#0"},
|
||||
"east": {"uv": [10, 11, 11, 12], "texture": "#0"},
|
||||
"up": {"uv": [1, 5, 2, 6], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12.5, 0, 3.5],
|
||||
"to": [13.5, 1, 4.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [13, 8, 6]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 11, 13, 12], "texture": "#0"},
|
||||
"east": {"uv": [11, 11, 12, 12], "texture": "#0"},
|
||||
"up": {"uv": [2, 4, 3, 5], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, -0.001, 3.5],
|
||||
"to": [10.5, 0.999, 4.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 4.1]},
|
||||
"faces": {
|
||||
"up": {"uv": [5, 10, 10, 11], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, -0.001, 3.5],
|
||||
"to": [4.5, 0.999, 4.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 4]},
|
||||
"faces": {
|
||||
"up": {"uv": [12, 9, 13, 10], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 0, 2.5],
|
||||
"to": [10.5, 1, 3.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 3]},
|
||||
"faces": {
|
||||
"up": {"uv": [2, 5, 3, 10], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6.5, 0, 1.5],
|
||||
"to": [11.5, 1, 2.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 12, 10, 13], "texture": "#0"},
|
||||
"east": {"uv": [12, 11, 13, 12], "texture": "#0"},
|
||||
"up": {"uv": [5, 3, 10, 4], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 0, 1.5],
|
||||
"to": [6.5, 1, 2.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [7, 8, 2]},
|
||||
"faces": {
|
||||
"north": {"uv": [10, 11, 12, 12], "texture": "#0"},
|
||||
"west": {"uv": [9, 12, 10, 13], "texture": "#0"},
|
||||
"up": {"uv": [8, 3, 10, 4], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.5, 0, 3.5],
|
||||
"to": [3.5, 1, 4.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [5, 8, 4]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 11, 13, 12], "texture": "#0"},
|
||||
"west": {"uv": [12, 11, 13, 12], "texture": "#0"},
|
||||
"up": {"uv": [1, 5, 2, 6], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, 0, 2.5],
|
||||
"to": [4.5, 1, 3.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 3]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 11, 13, 12], "texture": "#0"},
|
||||
"west": {"uv": [11, 11, 12, 12], "texture": "#0"},
|
||||
"up": {"uv": [12, 10, 13, 11], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.5, -0.001, 5.5],
|
||||
"to": [4.5, 0.999, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [4, 8, 8.1]},
|
||||
"faces": {
|
||||
"up": {"uv": [11, 5, 12, 10], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.5, 0, 5.5],
|
||||
"to": [3.5, 1, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [3, 8, 8]},
|
||||
"faces": {
|
||||
"up": {"uv": [12, 5, 13, 10], "rotation": 180, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1.5, 0, 6.5],
|
||||
"to": [2.5, 1, 11.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, 8, 9]},
|
||||
"faces": {
|
||||
"south": {"uv": [13, 10, 14, 11], "texture": "#0"},
|
||||
"west": {"uv": [5, 12, 10, 13], "texture": "#0"},
|
||||
"up": {"uv": [5, 3, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1.5, 0, 4.5],
|
||||
"to": [2.5, 1, 6.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [2, 8, 4]},
|
||||
"faces": {
|
||||
"north": {"uv": [13, 10, 14, 11], "texture": "#0"},
|
||||
"west": {"uv": [10, 11, 12, 12], "texture": "#0"},
|
||||
"up": {"uv": [8, 3, 10, 4], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"gui_light": "front",
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [38, 0, 0],
|
||||
"translation": [0, 1.75, 0.75],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [38, 0, 0],
|
||||
"translation": [0, 1.75, 0.75],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [87, -19, 41],
|
||||
"translation": [0, 4.25, 0]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [87, -19, 41],
|
||||
"translation": [0, 4.25, 0]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 7.5, 0]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [90, 0, 0]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, 14.5, 0]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 0, 0],
|
||||
"translation": [0, 0, -8]
|
||||
}
|
||||
},
|
||||
"groups": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [10, 8, 12],
|
||||
"children": [17, 18, 19, 20, 21, 22, 23, 24, 25]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [10, 8, 12],
|
||||
"children": [26, 27, 28, 29, 30, 31, 32]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [10, 8, 12],
|
||||
"children": [33, 34, 35, 36, 37, 38, 39]
|
||||
},
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [10, 8, 12],
|
||||
"children": [40, 41, 42, 43]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 261 B |
38
src/main/resources/fabric.mod.json
Normal file
38
src/main/resources/fabric.mod.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"id": "visualoverhaul",
|
||||
"version": "${version}",
|
||||
|
||||
"name": "VisualOverhaul",
|
||||
"description": "Adds better visuals for certain Minecraft Vanilla Blocks.",
|
||||
"authors": [
|
||||
"Motschen",
|
||||
"TeamMidnightDust"
|
||||
],
|
||||
"contact": {
|
||||
"homepage": "https://www.midnightdust.eu/",
|
||||
"sources": "https://github.com/TeamMidnightDust/VisualOverhaul",
|
||||
"issues": "https://github.com/TeamMidnightDust/VisualOverhaul/issues"
|
||||
},
|
||||
|
||||
"license": "MIT",
|
||||
"icon": "assets/visualoverhaul/icon.png",
|
||||
|
||||
"environment": "*",
|
||||
"entrypoints": {
|
||||
"client": [
|
||||
"eu.midnightdust.visualoverhaul.VisualOverhaulClient"
|
||||
],
|
||||
"modmenu": [
|
||||
"eu.midnightdust.visualoverhaul.config.ModMenuIntegration"
|
||||
]
|
||||
},
|
||||
|
||||
"mixins": [
|
||||
"visualoverhaul.mixins.json"
|
||||
],
|
||||
|
||||
"depends": {
|
||||
"fabric": "*"
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 434 B |
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"pack": {
|
||||
"pack_format": 6,
|
||||
"description": "§2Removes the bottles from the brewing stand texture"
|
||||
}
|
||||
}
|
||||
BIN
src/main/resources/resourcepacks/visualoverhaul/pack.png
Normal file
BIN
src/main/resources/resourcepacks/visualoverhaul/pack.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 710 B |
12
src/main/resources/visualoverhaul.mixins.json
Normal file
12
src/main/resources/visualoverhaul.mixins.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"required": true,
|
||||
"package": "eu.midnightdust.visualoverhaul.mixin",
|
||||
"compatibilityLevel": "JAVA_8",
|
||||
"mixins": [
|
||||
"MixinBrewingStandBlockEntity",
|
||||
"MixinJukeboxBlockEntity"
|
||||
],
|
||||
"injectors": {
|
||||
"defaultRequire": 1
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user